-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Added sample configuration file for virtual surround sound in pipewire Added copies of HeSuVi format BRIRs for use with pipewire
- Loading branch information
1 parent
5983501
commit aa07fb2
Showing
57 changed files
with
158 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
Room,Sed Command | ||
"Room Calypso, TU Berlin","sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Room_Calypso.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
ASH Listening Room (KU100),"sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/ASH_Listening_Room_KU100.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
ASH Listening Room (KEMAR-N),"sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/ASH_Listening_Room_KEMAR-N.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
ASH Listening Room (KEMAR-L),"sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/ASH_Listening_Room_KEMAR-L.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
ASH Listening Room (TYPE4128),"sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/ASH_Listening_Room_TYPE4128.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
"Control Room 1, WDR Broadcast Studios","sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Control_Room_1.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
"Control Room 7, WDR Broadcast Studios","sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Control_Room_7.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
"Listening Room, University of Salford","sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Listening_Room_Salford.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
"Audio Lab, University of Rostock (with absorbers)","sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Audio_Lab_Absorbers.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
"Office, University of Surrey","sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Office.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
Small Room A,"sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Small_Room_A.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
Small Room B,"sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Small_Room_B.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
Small Room C,"sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Small_Room_C.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
Small Room D,"sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Small_Room_D.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
Small Room E,"sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Small_Room_E.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
Small Room F,"sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Small_Room_F.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
Small Room G (FABIAN),"sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Small_Room_G_FABIAN.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
Small Room G (KU100),"sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Small_Room_G_KU100.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
Small Room H,"sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Small_Room_H.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
Small Room I,"sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Small_Room_I.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
Small Room J (TYPE4128),"sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Small_Room_J_TYPE4128.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
Small Room J (KU100),"sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Small_Room_J_KU100.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
Small Room K (KEMAR-N Position 1),"sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Small_Room_K_KEMAR-N_Pos_1.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
Small Room K (KEMAR-N Position 2),"sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Small_Room_K_KEMAR-N_Pos_2.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
Small Room K (KEMAR-L Position 1),"sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Small_Room_K_KEMAR-L_Pos_1.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
Small Room K (KEMAR-L Position 2),"sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Small_Room_K_KEMAR-L_Pos_2.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
Small Room K (KU100 Position 1),"sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Small_Room_K_KU100_Pos_1.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
Small Room K (KU100 Position 2),"sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Small_Room_K_KU100_Pos_2.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
"Coupled Rooms, RWTH Aachen University","sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Coupled_Rooms.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
"Room Spirit, TU Berlin (reduced reverberation)","sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Room_Spirit_Reduced_Reverb.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
"Room Spirit, TU Berlin (more reverberation)","sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Room_Spirit_More_Reverb.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
"Classroom, University of Surrey","sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Classroom.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
"Conference Room, TU Ilmenau (Position 1)","sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Conference_Room_Pos_1.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
"Conference Room, TU Ilmenau (Position 2)","sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Conference_Room_Pos_2.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
"Conference Room, TU Ilmenau (Position 3)","sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Conference_Room_Pos_3.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
"Rehabilitation Room, TU Ilmenau","sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Rehab_Room.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
"Seminar Room, TU Ilmenau","sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Seminar_Room_TUI.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
Laboratory (Position 1),"sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Laboratory_Pos_1.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
Laboratory (Position 2),"sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Laboratory_Pos_2.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
Studio A,"sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Studio_A.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
Studio B,"sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Studio_B.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
"TV Studio, TU Ilmenau (reduced reverberation)","sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/TV_Studio_Reduced_Reverb.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
"TV Studio, TU Ilmenau (more reverberation)","sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/TV_Studio_More_Reverb.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
"Room HU201, TU Ilmenau (reduced reverberation)","sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Room_HU201_Reduced_Reverb.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
"Room HU201, TU Ilmenau (more reverberation)","sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Room_HU201_More_Reverb.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
Lecture Room,"sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Lecture_Room.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
"Adream Laboratory, LAAS-CNRS Toulouse (reduced reverberation)","sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Adream_Lab_Reduced_Reverb.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
"Adream Laboratory, LAAS-CNRS Toulouse (more reverberation)","sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Adream_Lab_More_Reverb.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
"Room Auditorium 3, TU Berlin (reduced reverberation)","sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Room_Auditorium_3_Reduced_Reverb.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
"Room Auditorium 3, TU Berlin (more reverberation)","sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Room_Auditorium_3_More_Reverb.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
"Seminar Room, University of Surrey (reduced reverberation)","sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Seminar_Room_Surrey_Reduced_Reverb.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
"Seminar Room, University of Surrey (more reverberation)","sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Seminar_Room_Surrey_More_Reverb.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
"Small Broadcast Studio, WDR Broadcast Studios (reduced reverberation)","sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Small_Broadcast_Studio_Reduced_Reverb.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
"Small Broadcast Studio, WDR Broadcast Studios (more reverberation)","sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Small_Broadcast_Studio_More_Reverb.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" | ||
"Audio Lab, University of Rostock (without absorbers)","sed -i ""s#config = { filename = .*wav#config = { filename = ""${HOME}/.config/pipewire/hrir/Audio_Lab_No_Absorbers.wav#g"" ~/.config/pipewire/filter-chain.conf.d/virtual-surround.conf" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,102 @@ | ||
# Convolver sink | ||
# | ||
# Copy this file into a conf.d/ directory such as | ||
# ~/.config/pipewire/filter-chain.conf.d/ | ||
# | ||
context.modules = [ | ||
{ name = libpipewire-module-filter-chain | ||
args = { | ||
node.description = "Virtual Surround Sink" | ||
media.name = "Virtual Surround Sink" | ||
filter.graph = { | ||
nodes = [ | ||
# duplicate inputs | ||
{ type = builtin label = copy name = copyFL } | ||
{ type = builtin label = copy name = copyFR } | ||
{ type = builtin label = copy name = copyFC } | ||
{ type = builtin label = copy name = copyRL } | ||
{ type = builtin label = copy name = copyRR } | ||
{ type = builtin label = copy name = copySL } | ||
{ type = builtin label = copy name = copySR } | ||
{ type = builtin label = copy name = copyLFE } | ||
|
||
# apply hrir - HeSuVi 14-channel WAV (not the *-.wav variants) (note: */44/* in HeSuVi are the same, but resampled to 44100) | ||
{ type = builtin label = convolver name = convFL_L config = { filename = "/var/home/shanonpearce/.config/pipewire/hrir/_Audio_Lab_Absorbers.wav" channel = 0 } } | ||
{ type = builtin label = convolver name = convFL_R config = { filename = "/var/home/shanonpearce/.config/pipewire/hrir/_Audio_Lab_Absorbers.wav" channel = 1 } } | ||
{ type = builtin label = convolver name = convSL_L config = { filename = "/var/home/shanonpearce/.config/pipewire/hrir/_Audio_Lab_Absorbers.wav" channel = 2 } } | ||
{ type = builtin label = convolver name = convSL_R config = { filename = "/var/home/shanonpearce/.config/pipewire/hrir/_Audio_Lab_Absorbers.wav" channel = 3 } } | ||
{ type = builtin label = convolver name = convRL_L config = { filename = "/var/home/shanonpearce/.config/pipewire/hrir/_Audio_Lab_Absorbers.wav" channel = 4 } } | ||
{ type = builtin label = convolver name = convRL_R config = { filename = "/var/home/shanonpearce/.config/pipewire/hrir/_Audio_Lab_Absorbers.wav" channel = 5 } } | ||
{ type = builtin label = convolver name = convFC_L config = { filename = "/var/home/shanonpearce/.config/pipewire/hrir/_Audio_Lab_Absorbers.wav" channel = 6 } } | ||
{ type = builtin label = convolver name = convFR_R config = { filename = "/var/home/shanonpearce/.config/pipewire/hrir/_Audio_Lab_Absorbers.wav" channel = 7 } } | ||
{ type = builtin label = convolver name = convFR_L config = { filename = "/var/home/shanonpearce/.config/pipewire/hrir/_Audio_Lab_Absorbers.wav" channel = 8 } } | ||
{ type = builtin label = convolver name = convSR_R config = { filename = "/var/home/shanonpearce/.config/pipewire/hrir/_Audio_Lab_Absorbers.wav" channel = 9 } } | ||
{ type = builtin label = convolver name = convSR_L config = { filename = "/var/home/shanonpearce/.config/pipewire/hrir/_Audio_Lab_Absorbers.wav" channel = 10 } } | ||
{ type = builtin label = convolver name = convRR_R config = { filename = "/var/home/shanonpearce/.config/pipewire/hrir/_Audio_Lab_Absorbers.wav" channel = 11 } } | ||
{ type = builtin label = convolver name = convRR_L config = { filename = "/var/home/shanonpearce/.config/pipewire/hrir/_Audio_Lab_Absorbers.wav" channel = 12 } } | ||
{ type = builtin label = convolver name = convFC_R config = { filename = "/var/home/shanonpearce/.config/pipewire/hrir/_Audio_Lab_Absorbers.wav" channel = 13 } } | ||
|
||
# treat LFE as FC | ||
{ type = builtin label = convolver name = convLFE_L config = { filename = "/var/home/shanonpearce/.config/pipewire/hrir/_Audio_Lab_Absorbers.wav" channel = 6 } } | ||
{ type = builtin label = convolver name = convLFE_R config = { filename = "/var/home/shanonpearce/.config/pipewire/hrir/_Audio_Lab_Absorbers.wav" channel = 13 } } | ||
|
||
# stereo output | ||
{ type = builtin label = mixer name = mixL } | ||
{ type = builtin label = mixer name = mixR } | ||
] | ||
links = [ | ||
# input | ||
{ output = "copyFL:Out" input="convFL_L:In" } | ||
{ output = "copyFL:Out" input="convFL_R:In" } | ||
{ output = "copySL:Out" input="convSL_L:In" } | ||
{ output = "copySL:Out" input="convSL_R:In" } | ||
{ output = "copyRL:Out" input="convRL_L:In" } | ||
{ output = "copyRL:Out" input="convRL_R:In" } | ||
{ output = "copyFC:Out" input="convFC_L:In" } | ||
{ output = "copyFR:Out" input="convFR_R:In" } | ||
{ output = "copyFR:Out" input="convFR_L:In" } | ||
{ output = "copySR:Out" input="convSR_R:In" } | ||
{ output = "copySR:Out" input="convSR_L:In" } | ||
{ output = "copyRR:Out" input="convRR_R:In" } | ||
{ output = "copyRR:Out" input="convRR_L:In" } | ||
{ output = "copyFC:Out" input="convFC_R:In" } | ||
{ output = "copyLFE:Out" input="convLFE_L:In" } | ||
{ output = "copyLFE:Out" input="convLFE_R:In" } | ||
|
||
# output | ||
{ output = "convFL_L:Out" input="mixL:In 1" } | ||
{ output = "convFL_R:Out" input="mixR:In 1" } | ||
{ output = "convSL_L:Out" input="mixL:In 2" } | ||
{ output = "convSL_R:Out" input="mixR:In 2" } | ||
{ output = "convRL_L:Out" input="mixL:In 3" } | ||
{ output = "convRL_R:Out" input="mixR:In 3" } | ||
{ output = "convFC_L:Out" input="mixL:In 4" } | ||
{ output = "convFC_R:Out" input="mixR:In 4" } | ||
{ output = "convFR_R:Out" input="mixR:In 5" } | ||
{ output = "convFR_L:Out" input="mixL:In 5" } | ||
{ output = "convSR_R:Out" input="mixR:In 6" } | ||
{ output = "convSR_L:Out" input="mixL:In 6" } | ||
{ output = "convRR_R:Out" input="mixR:In 7" } | ||
{ output = "convRR_L:Out" input="mixL:In 7" } | ||
{ output = "convLFE_R:Out" input="mixR:In 8" } | ||
{ output = "convLFE_L:Out" input="mixL:In 8" } | ||
] | ||
inputs = [ "copyFL:In" "copyFR:In" "copyFC:In" "copyLFE:In" "copyRL:In" "copyRR:In", "copySL:In", "copySR:In" ] | ||
outputs = [ "mixL:Out" "mixR:Out" ] | ||
} | ||
capture.props = { | ||
node.name = "effect_input.virtual-surround-7.1-hesuvi" | ||
media.class = Audio/Sink | ||
audio.channels = 8 | ||
audio.position = [ FL FR FC LFE RL RR SL SR ] | ||
} | ||
playback.props = { | ||
node.name = "effect_output.virtual-surround-7.1-hesuvi" | ||
node.passive = true | ||
audio.channels = 2 | ||
audio.position = [ FL FR ] | ||
} | ||
} | ||
} | ||
|
||
] |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.