From 80e9f4bd0931a2989c1e303dc830c742fe1da315 Mon Sep 17 00:00:00 2001 From: Nils <> Date: Sat, 18 Apr 2020 22:11:16 +0200 Subject: [PATCH] remove timeline sequencer mixer --- FL/About_Dialog.fl | 100 - FL/Fl_Blink_Button.H | 162 -- FL/Fl_DialX.C | 124 - FL/Fl_DialX.H | 36 - FL/Fl_Flip_Button.H | 72 - FL/Fl_Flowpack.H | 237 -- FL/Fl_Labelpad_Group.H | 78 - FL/Fl_Menu_Settings.C | 338 --- FL/Fl_Menu_Settings.H | 43 - FL/Fl_Packscroller.H | 212 -- FL/Fl_Scalepack.C | 250 -- FL/Fl_Scalepack.H | 43 - FL/Fl_SliderX.C | 341 --- FL/Fl_SliderX.H | 50 - FL/Fl_Sometimes_Input.H | 113 - FL/Fl_Sometimes_Pack.H | 76 - FL/Fl_Text_Edit_Window.fl | 53 - FL/Fl_Value_SliderX.C | 234 -- FL/Fl_Value_SliderX.H | 100 - FL/New_Project_Dialog.fl | 132 - FL/event_name.C | 52 - FL/event_name.H | 20 - FL/focus_frame.C | 103 - FL/focus_frame.H | 22 - FL/img_io_input_connector_10x10_png.h | 61 - FL/img_io_output_connector_10x10_png.h | 63 - FL/lib | 1 - FL/menu_popup.C | 61 - FL/menu_popup.H | 26 - FL/test_press.C | 40 - FL/test_press.H | 20 - FL/util/ntk-perf.C | 163 -- FL/wscript | 29 - README.build => README.md | 0 mixer/doc/MANUAL.html | 515 ---- mixer/doc/MANUAL.mu | 544 ---- mixer/doc/Makefile | 23 - mixer/doc/controls.png | Bin 11634 -> 0 bytes mixer/doc/group-dropdown.png | Bin 8262 -> 0 bytes mixer/doc/icon.png | 1 - mixer/doc/mixer-strips.png | Bin 14288 -> 0 bytes mixer/doc/modules.png | Bin 13617 -> 0 bytes mixer/doc/mup.css | 461 ---- mixer/doc/new-project.png | Bin 8382 -> 0 bytes .../doc/non-mixer-and-non-daw-in-patchage.png | Bin 23977 -> 0 bytes mixer/doc/non-mixer-complex.png | Bin 128705 -> 0 bytes mixer/doc/single-strip.png | Bin 18393 -> 0 bytes mixer/doc/spatialization-console.png | Bin 447050 -> 0 bytes mixer/doc/spatialization-in-mpe.png | Bin 166575 -> 0 bytes mixer/doc/spatialization-on-strip.png | Bin 18010 -> 0 bytes mixer/doc/spatializer-module.png | Bin 12570 -> 0 bytes .../icons/hicolor/128x128/apps/non-mixer.png | Bin 10270 -> 0 bytes mixer/icons/hicolor/16x16/apps/non-mixer.png | Bin 1327 -> 0 bytes .../icons/hicolor/192x192/apps/non-mixer.png | Bin 17794 -> 0 bytes .../icons/hicolor/256x256/apps/non-mixer.png | Bin 20201 -> 0 bytes mixer/icons/hicolor/32x32/apps/non-mixer.png | Bin 2333 -> 0 bytes mixer/icons/hicolor/36x36/apps/non-mixer.png | Bin 3080 -> 0 bytes mixer/icons/hicolor/48x48/apps/non-mixer.png | Bin 4176 -> 0 bytes .../icons/hicolor/512x512/apps/non-mixer.png | Bin 20144 -> 0 bytes mixer/icons/hicolor/64x64/apps/non-mixer.png | Bin 5137 -> 0 bytes mixer/icons/hicolor/72x72/apps/non-mixer.png | Bin 6609 -> 0 bytes mixer/icons/hicolor/96x96/apps/non-mixer.png | Bin 8588 -> 0 bytes .../icons/hicolor/scalable/apps/non-mixer.svg | 155 -- mixer/icons/icon-16x16.xpm | 774 ------ mixer/icons/icon-large.svg | 155 -- mixer/icons/icon-small.svg | 1 - mixer/non-mixer.desktop.in | 9 - mixer/pixmaps/panner-plane-502x502.png | Bin 29800 -> 0 bytes mixer/pixmaps/panner-plane-802x802.png | Bin 11077 -> 0 bytes mixer/pixmaps/panner-plane-92x92.png | Bin 864 -> 0 bytes mixer/pixmaps/panner-sphere-502x502.png | Bin 118356 -> 0 bytes mixer/pixmaps/panner-sphere-802x802.png | Bin 230397 -> 0 bytes mixer/pixmaps/panner-sphere-92x92.png | Bin 8210 -> 0 bytes mixer/src/AUX_Module.C | 206 -- mixer/src/AUX_Module.H | 61 - mixer/src/Chain.C | 991 ------- mixer/src/Chain.H | 149 -- mixer/src/Controller_Module.C | 994 -------- mixer/src/Controller_Module.H | 127 - mixer/src/DPM.C | 256 -- mixer/src/DPM.H | 107 - mixer/src/Gain_Module.C | 142 -- mixer/src/Gain_Module.H | 50 - mixer/src/Group.C | 303 --- mixer/src/Group.H | 102 - mixer/src/JACK_Module.C | 730 ------ mixer/src/JACK_Module.H | 87 - mixer/src/LADSPAInfo.C | 828 ------ mixer/src/LADSPAInfo.h | 208 -- mixer/src/Meter.H | 101 - mixer/src/Meter_Indicator_Module.C | 267 -- mixer/src/Meter_Indicator_Module.H | 83 - mixer/src/Meter_Module.C | 185 -- mixer/src/Meter_Module.H | 51 - mixer/src/Mixer.C | 1310 ---------- mixer/src/Mixer.H | 176 -- mixer/src/Mixer_Strip.C | 1263 --------- mixer/src/Mixer_Strip.H | 188 -- mixer/src/Module.C | 1426 ----------- mixer/src/Module.H | 578 ----- mixer/src/Module_Parameter_Editor.C | 671 ----- mixer/src/Module_Parameter_Editor.H | 112 - mixer/src/Mono_Pan_Module.C | 121 - mixer/src/Mono_Pan_Module.H | 49 - mixer/src/NSM.C | 121 - mixer/src/NSM.H | 40 - mixer/src/Panner.C | 553 ---- mixer/src/Panner.H | 209 -- mixer/src/Plugin_Chooser.C | 442 ---- mixer/src/Plugin_Chooser.H | 58 - mixer/src/Plugin_Chooser_UI.fl | 68 - mixer/src/Plugin_Module.C | 880 ------- mixer/src/Plugin_Module.H | 154 -- mixer/src/Project.C | 350 --- mixer/src/Project.H | 66 - mixer/src/Spatialization_Console.C | 229 -- mixer/src/Spatialization_Console.H | 66 - mixer/src/Spatializer_Module.C | 862 ------- mixer/src/Spatializer_Module.H | 67 - mixer/src/SpectrumView.C | 370 --- mixer/src/SpectrumView.H | 64 - mixer/src/const.h | 24 - mixer/src/main.C | 327 --- mixer/src/midi-mapper.C | 816 ------ mixer/wscript | 106 - sequencer/COPYING | 340 --- sequencer/doc/KEYS.html | 71 - sequencer/doc/KEYS.mu | 46 - sequencer/doc/MANUAL.html | 294 --- sequencer/doc/MANUAL.mu | 391 --- sequencer/doc/Makefile | 21 - sequencer/doc/icon.png | 1 - sequencer/doc/mup.css | 461 ---- sequencer/doc/non-cursors.png | Bin 73394 -> 0 bytes sequencer/doc/non-event-editor-notes.png | Bin 109534 -> 0 bytes sequencer/doc/non-new-about.png | Bin 40787 -> 0 bytes sequencer/doc/non-patchage.png | Bin 69811 -> 0 bytes sequencer/doc/non-pattern-editor.png | Bin 103894 -> 0 bytes sequencer/doc/non-pattern-triggers.png | Bin 96365 -> 0 bytes sequencer/doc/non-phrase-editor.png | Bin 35316 -> 0 bytes .../hicolor/128x128/apps/non-sequencer.png | Bin 12692 -> 0 bytes .../hicolor/16x16/apps/non-sequencer.png | Bin 1352 -> 0 bytes .../hicolor/192x192/apps/non-sequencer.png | Bin 21159 -> 0 bytes .../hicolor/256x256/apps/non-sequencer.png | Bin 23532 -> 0 bytes .../hicolor/32x32/apps/non-sequencer.png | Bin 2848 -> 0 bytes .../hicolor/36x36/apps/non-sequencer.png | Bin 3410 -> 0 bytes .../hicolor/48x48/apps/non-sequencer.png | Bin 4811 -> 0 bytes .../hicolor/512x512/apps/non-sequencer.png | Bin 23096 -> 0 bytes .../hicolor/64x64/apps/non-sequencer.png | Bin 5996 -> 0 bytes .../hicolor/72x72/apps/non-sequencer.png | Bin 7793 -> 0 bytes .../hicolor/96x96/apps/non-sequencer.png | Bin 10390 -> 0 bytes .../hicolor/scalable/apps/non-sequencer.svg | 165 -- sequencer/icons/icon-16x16.xpm | 774 ------ sequencer/instruments/Default.inst | 13 - sequencer/instruments/GM-Drum.inst | 44 - sequencer/instruments/GS-Brush.inst | 61 - sequencer/instruments/GS-Electronic.inst | 61 - sequencer/instruments/GS-Jazz.inst | 61 - sequencer/instruments/GS-Orchestra.inst | 62 - sequencer/instruments/GS-Power.inst | 61 - sequencer/instruments/GS-Room.inst | 61 - sequencer/instruments/GS-SFX.inst | 58 - sequencer/instruments/GS-Standard.inst | 61 - sequencer/instruments/GS-TR-808.inst | 61 - sequencer/non-sequencer.desktop.in | 9 - sequencer/src/NSM.C | 134 - sequencer/src/NSM.H | 41 - sequencer/src/NSM/Client.C | 298 --- sequencer/src/NSM/Client.H | 109 - sequencer/src/canvas.C | 1897 -------------- sequencer/src/canvas.H | 201 -- sequencer/src/common.h | 38 - sequencer/src/config.h | 3 - sequencer/src/const.h | 41 - sequencer/src/debug.C | 62 - sequencer/src/debug.h | 116 - sequencer/src/grid.C | 1024 -------- sequencer/src/grid.H | 282 -- sequencer/src/gui/event_edit.fl | 546 ---- sequencer/src/gui/ui.fl | 2040 --------------- sequencer/src/instrument.C | 330 --- sequencer/src/instrument.H | 66 - sequencer/src/jack.C | 640 ----- sequencer/src/jack.H | 17 - sequencer/src/main.C | 292 --- sequencer/src/mapping.C | 170 -- sequencer/src/mapping.H | 76 - sequencer/src/non.H | 127 - sequencer/src/pattern.C | 739 ------ sequencer/src/pattern.H | 119 - sequencer/src/phrase.C | 274 -- sequencer/src/phrase.H | 63 - sequencer/src/scale.C | 217 -- sequencer/src/scale.H | 47 - sequencer/src/sequence.C | 456 ---- sequencer/src/sequence.H | 85 - sequencer/src/smf.C | 1162 --------- sequencer/src/smf.H | 143 -- sequencer/src/transport.C | 220 -- sequencer/src/transport.H | 84 - sequencer/wscript | 85 - timeline/bin/import-ardour-session | 219 -- timeline/bin/import-ardour-session_gui.fl | 103 - timeline/bin/import-external-sources | 94 - timeline/bin/remove-unused-sources | 146 -- timeline/doc/MANUAL.html | 410 --- timeline/doc/MANUAL.mu | 363 --- timeline/doc/Makefile | 23 - timeline/doc/annotations.png | Bin 17588 -> 0 bytes timeline/doc/automation.png | Bin 37717 -> 0 bytes timeline/doc/clocks.png | Bin 6869 -> 0 bytes timeline/doc/control-points.png | Bin 8067 -> 0 bytes timeline/doc/control-signals.png | Bin 18901 -> 0 bytes timeline/doc/cursors.png | Bin 90242 -> 0 bytes timeline/doc/fade-in-out.png | Bin 28404 -> 0 bytes timeline/doc/icon.png | 1 - timeline/doc/looping.png | Bin 5865 -> 0 bytes timeline/doc/mup.css | 461 ---- timeline/doc/new-project.png | Bin 13050 -> 0 bytes timeline/doc/project-info.png | Bin 84543 -> 0 bytes timeline/doc/range.png | Bin 91879 -> 0 bytes timeline/doc/recording.png | Bin 30506 -> 0 bytes timeline/doc/tempomap.png | Bin 3482 -> 0 bytes timeline/doc/tle.png | Bin 103289 -> 0 bytes timeline/doc/track-header.png | Bin 4248 -> 0 bytes timeline/doc/transport.png | Bin 4678 -> 0 bytes .../hicolor/128x128/apps/non-timeline.png | Bin 11384 -> 0 bytes .../icons/hicolor/16x16/apps/non-timeline.png | Bin 1404 -> 0 bytes .../hicolor/192x192/apps/non-timeline.png | Bin 19113 -> 0 bytes .../hicolor/256x256/apps/non-timeline.png | Bin 20665 -> 0 bytes .../icons/hicolor/32x32/apps/non-timeline.png | Bin 2865 -> 0 bytes .../icons/hicolor/36x36/apps/non-timeline.png | Bin 3272 -> 0 bytes .../icons/hicolor/48x48/apps/non-timeline.png | Bin 4539 -> 0 bytes .../hicolor/512x512/apps/non-timeline.png | Bin 18930 -> 0 bytes .../icons/hicolor/64x64/apps/non-timeline.png | Bin 5701 -> 0 bytes .../icons/hicolor/72x72/apps/non-timeline.png | Bin 7202 -> 0 bytes .../icons/hicolor/96x96/apps/non-timeline.png | Bin 9184 -> 0 bytes .../hicolor/scalable/apps/non-timeline.svg | 166 -- timeline/icons/icon-16x16.xpm | 774 ------ timeline/icons/icon-large.svg | 166 -- timeline/icons/icon-small.svg | 1 - timeline/non-timeline.desktop.in | 9 - timeline/src/Annotation_Point.H | 120 - timeline/src/Annotation_Region.C | 125 - timeline/src/Annotation_Region.H | 57 - timeline/src/Annotation_Sequence.H | 156 -- timeline/src/Audio_Region.C | 973 ------- timeline/src/Audio_Region.H | 176 -- timeline/src/Audio_Sequence.C | 366 --- timeline/src/Audio_Sequence.H | 88 - timeline/src/Clock.H | 243 -- timeline/src/Control_Point.C | 135 - timeline/src/Control_Point.H | 68 - timeline/src/Control_Sequence.C | 809 ------ timeline/src/Control_Sequence.H | 147 -- timeline/src/Cursor_Point.C | 134 - timeline/src/Cursor_Point.H | 64 - timeline/src/Cursor_Region.C | 153 -- timeline/src/Cursor_Region.H | 74 - timeline/src/Cursor_Sequence.C | 97 - timeline/src/Cursor_Sequence.H | 53 - timeline/src/Engine/Audio_File.C | 196 -- timeline/src/Engine/Audio_File.H | 108 - timeline/src/Engine/Audio_File_Dummy.C | 30 - timeline/src/Engine/Audio_File_Dummy.H | 46 - timeline/src/Engine/Audio_File_SF.C | 267 -- timeline/src/Engine/Audio_File_SF.H | 63 - timeline/src/Engine/Audio_Region.C | 371 --- timeline/src/Engine/Audio_Sequence.C | 63 - timeline/src/Engine/Control_Sequence.C | 135 - timeline/src/Engine/Disk_Stream.C | 236 -- timeline/src/Engine/Disk_Stream.H | 126 - timeline/src/Engine/Engine.C | 247 -- timeline/src/Engine/Engine.H | 72 - timeline/src/Engine/Peak.H | 27 - timeline/src/Engine/Peaks.C | 980 ------- timeline/src/Engine/Peaks.H | 159 -- timeline/src/Engine/Playback_DS.C | 233 -- timeline/src/Engine/Playback_DS.H | 51 - timeline/src/Engine/Record_DS.C | 382 --- timeline/src/Engine/Record_DS.H | 76 - timeline/src/Engine/Timeline.C | 362 --- timeline/src/Engine/Track.C | 410 --- timeline/src/Engine/const.h | 20 - timeline/src/Engine/types.h | 25 - timeline/src/NSM.C | 119 - timeline/src/OSC_Thread.C | 94 - timeline/src/OSC_Thread.H | 42 - timeline/src/Project.C | 404 --- timeline/src/Project.H | 66 - timeline/src/RWLock.H | 73 - timeline/src/Sequence.C | 621 ----- timeline/src/Sequence.H | 151 -- timeline/src/Sequence_Point.C | 122 - timeline/src/Sequence_Point.H | 56 - timeline/src/Sequence_Region.C | 258 -- timeline/src/Sequence_Region.H | 58 - timeline/src/Sequence_Widget.C | 596 ----- timeline/src/Sequence_Widget.H | 342 --- timeline/src/TLE.fl | 1132 -------- timeline/src/Tempo_Point.C | 174 -- timeline/src/Tempo_Point.H | 79 - timeline/src/Tempo_Sequence.C | 79 - timeline/src/Tempo_Sequence.H | 43 - timeline/src/Time_Point.C | 203 -- timeline/src/Time_Point.H | 87 - timeline/src/Time_Sequence.C | 82 - timeline/src/Time_Sequence.H | 65 - timeline/src/Timeline.C | 2266 ----------------- timeline/src/Timeline.H | 320 --- timeline/src/Track.C | 1297 ---------- timeline/src/Track.H | 262 -- timeline/src/Track_Header.fl | 154 -- timeline/src/Transport.C | 339 --- timeline/src/Transport.H | 86 - timeline/src/Waveform.C | 143 -- timeline/src/Waveform.H | 39 - timeline/src/const.h | 22 - timeline/src/main.C | 292 --- timeline/src/types.h | 25 - timeline/wscript | 132 - tools.waf/ntk_fluid.py | 18 - wscript | 3 +- 323 files changed, 1 insertion(+), 61310 deletions(-) delete mode 100644 FL/About_Dialog.fl delete mode 100644 FL/Fl_Blink_Button.H delete mode 100644 FL/Fl_DialX.C delete mode 100644 FL/Fl_DialX.H delete mode 100644 FL/Fl_Flip_Button.H delete mode 100644 FL/Fl_Flowpack.H delete mode 100644 FL/Fl_Labelpad_Group.H delete mode 100644 FL/Fl_Menu_Settings.C delete mode 100644 FL/Fl_Menu_Settings.H delete mode 100644 FL/Fl_Packscroller.H delete mode 100644 FL/Fl_Scalepack.C delete mode 100644 FL/Fl_Scalepack.H delete mode 100644 FL/Fl_SliderX.C delete mode 100644 FL/Fl_SliderX.H delete mode 100644 FL/Fl_Sometimes_Input.H delete mode 100644 FL/Fl_Sometimes_Pack.H delete mode 100644 FL/Fl_Text_Edit_Window.fl delete mode 100644 FL/Fl_Value_SliderX.C delete mode 100644 FL/Fl_Value_SliderX.H delete mode 100644 FL/New_Project_Dialog.fl delete mode 100644 FL/event_name.C delete mode 100644 FL/event_name.H delete mode 100644 FL/focus_frame.C delete mode 100644 FL/focus_frame.H delete mode 100644 FL/img_io_input_connector_10x10_png.h delete mode 100644 FL/img_io_output_connector_10x10_png.h delete mode 120000 FL/lib delete mode 100644 FL/menu_popup.C delete mode 100644 FL/menu_popup.H delete mode 100644 FL/test_press.C delete mode 100644 FL/test_press.H delete mode 100644 FL/util/ntk-perf.C delete mode 100644 FL/wscript rename README.build => README.md (100%) delete mode 100644 mixer/doc/MANUAL.html delete mode 100644 mixer/doc/MANUAL.mu delete mode 100644 mixer/doc/Makefile delete mode 100644 mixer/doc/controls.png delete mode 100644 mixer/doc/group-dropdown.png delete mode 120000 mixer/doc/icon.png delete mode 100644 mixer/doc/mixer-strips.png delete mode 100644 mixer/doc/modules.png delete mode 100644 mixer/doc/mup.css delete mode 100644 mixer/doc/new-project.png delete mode 100644 mixer/doc/non-mixer-and-non-daw-in-patchage.png delete mode 100644 mixer/doc/non-mixer-complex.png delete mode 100644 mixer/doc/single-strip.png delete mode 100644 mixer/doc/spatialization-console.png delete mode 100644 mixer/doc/spatialization-in-mpe.png delete mode 100644 mixer/doc/spatialization-on-strip.png delete mode 100644 mixer/doc/spatializer-module.png delete mode 100644 mixer/icons/hicolor/128x128/apps/non-mixer.png delete mode 100644 mixer/icons/hicolor/16x16/apps/non-mixer.png delete mode 100644 mixer/icons/hicolor/192x192/apps/non-mixer.png delete mode 100644 mixer/icons/hicolor/256x256/apps/non-mixer.png delete mode 100644 mixer/icons/hicolor/32x32/apps/non-mixer.png delete mode 100644 mixer/icons/hicolor/36x36/apps/non-mixer.png delete mode 100644 mixer/icons/hicolor/48x48/apps/non-mixer.png delete mode 100644 mixer/icons/hicolor/512x512/apps/non-mixer.png delete mode 100644 mixer/icons/hicolor/64x64/apps/non-mixer.png delete mode 100644 mixer/icons/hicolor/72x72/apps/non-mixer.png delete mode 100644 mixer/icons/hicolor/96x96/apps/non-mixer.png delete mode 100644 mixer/icons/hicolor/scalable/apps/non-mixer.svg delete mode 100644 mixer/icons/icon-16x16.xpm delete mode 100644 mixer/icons/icon-large.svg delete mode 120000 mixer/icons/icon-small.svg delete mode 100644 mixer/non-mixer.desktop.in delete mode 100644 mixer/pixmaps/panner-plane-502x502.png delete mode 100644 mixer/pixmaps/panner-plane-802x802.png delete mode 100644 mixer/pixmaps/panner-plane-92x92.png delete mode 100644 mixer/pixmaps/panner-sphere-502x502.png delete mode 100644 mixer/pixmaps/panner-sphere-802x802.png delete mode 100644 mixer/pixmaps/panner-sphere-92x92.png delete mode 100644 mixer/src/AUX_Module.C delete mode 100644 mixer/src/AUX_Module.H delete mode 100644 mixer/src/Chain.C delete mode 100644 mixer/src/Chain.H delete mode 100644 mixer/src/Controller_Module.C delete mode 100644 mixer/src/Controller_Module.H delete mode 100644 mixer/src/DPM.C delete mode 100644 mixer/src/DPM.H delete mode 100644 mixer/src/Gain_Module.C delete mode 100644 mixer/src/Gain_Module.H delete mode 100644 mixer/src/Group.C delete mode 100644 mixer/src/Group.H delete mode 100644 mixer/src/JACK_Module.C delete mode 100644 mixer/src/JACK_Module.H delete mode 100644 mixer/src/LADSPAInfo.C delete mode 100644 mixer/src/LADSPAInfo.h delete mode 100644 mixer/src/Meter.H delete mode 100644 mixer/src/Meter_Indicator_Module.C delete mode 100644 mixer/src/Meter_Indicator_Module.H delete mode 100644 mixer/src/Meter_Module.C delete mode 100644 mixer/src/Meter_Module.H delete mode 100644 mixer/src/Mixer.C delete mode 100644 mixer/src/Mixer.H delete mode 100644 mixer/src/Mixer_Strip.C delete mode 100644 mixer/src/Mixer_Strip.H delete mode 100644 mixer/src/Module.C delete mode 100644 mixer/src/Module.H delete mode 100644 mixer/src/Module_Parameter_Editor.C delete mode 100644 mixer/src/Module_Parameter_Editor.H delete mode 100644 mixer/src/Mono_Pan_Module.C delete mode 100644 mixer/src/Mono_Pan_Module.H delete mode 100644 mixer/src/NSM.C delete mode 100644 mixer/src/NSM.H delete mode 100644 mixer/src/Panner.C delete mode 100644 mixer/src/Panner.H delete mode 100644 mixer/src/Plugin_Chooser.C delete mode 100644 mixer/src/Plugin_Chooser.H delete mode 100644 mixer/src/Plugin_Chooser_UI.fl delete mode 100644 mixer/src/Plugin_Module.C delete mode 100644 mixer/src/Plugin_Module.H delete mode 100644 mixer/src/Project.C delete mode 100644 mixer/src/Project.H delete mode 100644 mixer/src/Spatialization_Console.C delete mode 100644 mixer/src/Spatialization_Console.H delete mode 100644 mixer/src/Spatializer_Module.C delete mode 100644 mixer/src/Spatializer_Module.H delete mode 100644 mixer/src/SpectrumView.C delete mode 100644 mixer/src/SpectrumView.H delete mode 100644 mixer/src/const.h delete mode 100644 mixer/src/main.C delete mode 100644 mixer/src/midi-mapper.C delete mode 100644 mixer/wscript delete mode 100644 sequencer/COPYING delete mode 100644 sequencer/doc/KEYS.html delete mode 100644 sequencer/doc/KEYS.mu delete mode 100644 sequencer/doc/MANUAL.html delete mode 100644 sequencer/doc/MANUAL.mu delete mode 100644 sequencer/doc/Makefile delete mode 120000 sequencer/doc/icon.png delete mode 100644 sequencer/doc/mup.css delete mode 100644 sequencer/doc/non-cursors.png delete mode 100644 sequencer/doc/non-event-editor-notes.png delete mode 100644 sequencer/doc/non-new-about.png delete mode 100644 sequencer/doc/non-patchage.png delete mode 100644 sequencer/doc/non-pattern-editor.png delete mode 100644 sequencer/doc/non-pattern-triggers.png delete mode 100644 sequencer/doc/non-phrase-editor.png delete mode 100644 sequencer/icons/hicolor/128x128/apps/non-sequencer.png delete mode 100644 sequencer/icons/hicolor/16x16/apps/non-sequencer.png delete mode 100644 sequencer/icons/hicolor/192x192/apps/non-sequencer.png delete mode 100644 sequencer/icons/hicolor/256x256/apps/non-sequencer.png delete mode 100644 sequencer/icons/hicolor/32x32/apps/non-sequencer.png delete mode 100644 sequencer/icons/hicolor/36x36/apps/non-sequencer.png delete mode 100644 sequencer/icons/hicolor/48x48/apps/non-sequencer.png delete mode 100644 sequencer/icons/hicolor/512x512/apps/non-sequencer.png delete mode 100644 sequencer/icons/hicolor/64x64/apps/non-sequencer.png delete mode 100644 sequencer/icons/hicolor/72x72/apps/non-sequencer.png delete mode 100644 sequencer/icons/hicolor/96x96/apps/non-sequencer.png delete mode 100644 sequencer/icons/hicolor/scalable/apps/non-sequencer.svg delete mode 100644 sequencer/icons/icon-16x16.xpm delete mode 100644 sequencer/instruments/Default.inst delete mode 100644 sequencer/instruments/GM-Drum.inst delete mode 100644 sequencer/instruments/GS-Brush.inst delete mode 100644 sequencer/instruments/GS-Electronic.inst delete mode 100644 sequencer/instruments/GS-Jazz.inst delete mode 100644 sequencer/instruments/GS-Orchestra.inst delete mode 100644 sequencer/instruments/GS-Power.inst delete mode 100644 sequencer/instruments/GS-Room.inst delete mode 100644 sequencer/instruments/GS-SFX.inst delete mode 100644 sequencer/instruments/GS-Standard.inst delete mode 100644 sequencer/instruments/GS-TR-808.inst delete mode 100644 sequencer/non-sequencer.desktop.in delete mode 100644 sequencer/src/NSM.C delete mode 100644 sequencer/src/NSM.H delete mode 100644 sequencer/src/NSM/Client.C delete mode 100644 sequencer/src/NSM/Client.H delete mode 100644 sequencer/src/canvas.C delete mode 100644 sequencer/src/canvas.H delete mode 100644 sequencer/src/common.h delete mode 100644 sequencer/src/config.h delete mode 100644 sequencer/src/const.h delete mode 100644 sequencer/src/debug.C delete mode 100644 sequencer/src/debug.h delete mode 100644 sequencer/src/grid.C delete mode 100644 sequencer/src/grid.H delete mode 100644 sequencer/src/gui/event_edit.fl delete mode 100644 sequencer/src/gui/ui.fl delete mode 100644 sequencer/src/instrument.C delete mode 100644 sequencer/src/instrument.H delete mode 100644 sequencer/src/jack.C delete mode 100644 sequencer/src/jack.H delete mode 100644 sequencer/src/main.C delete mode 100644 sequencer/src/mapping.C delete mode 100644 sequencer/src/mapping.H delete mode 100644 sequencer/src/non.H delete mode 100644 sequencer/src/pattern.C delete mode 100644 sequencer/src/pattern.H delete mode 100644 sequencer/src/phrase.C delete mode 100644 sequencer/src/phrase.H delete mode 100644 sequencer/src/scale.C delete mode 100644 sequencer/src/scale.H delete mode 100644 sequencer/src/sequence.C delete mode 100644 sequencer/src/sequence.H delete mode 100644 sequencer/src/smf.C delete mode 100644 sequencer/src/smf.H delete mode 100644 sequencer/src/transport.C delete mode 100644 sequencer/src/transport.H delete mode 100644 sequencer/wscript delete mode 100755 timeline/bin/import-ardour-session delete mode 100644 timeline/bin/import-ardour-session_gui.fl delete mode 100755 timeline/bin/import-external-sources delete mode 100755 timeline/bin/remove-unused-sources delete mode 100644 timeline/doc/MANUAL.html delete mode 100644 timeline/doc/MANUAL.mu delete mode 100644 timeline/doc/Makefile delete mode 100644 timeline/doc/annotations.png delete mode 100644 timeline/doc/automation.png delete mode 100644 timeline/doc/clocks.png delete mode 100644 timeline/doc/control-points.png delete mode 100644 timeline/doc/control-signals.png delete mode 100644 timeline/doc/cursors.png delete mode 100644 timeline/doc/fade-in-out.png delete mode 120000 timeline/doc/icon.png delete mode 100644 timeline/doc/looping.png delete mode 100644 timeline/doc/mup.css delete mode 100644 timeline/doc/new-project.png delete mode 100644 timeline/doc/project-info.png delete mode 100644 timeline/doc/range.png delete mode 100644 timeline/doc/recording.png delete mode 100644 timeline/doc/tempomap.png delete mode 100644 timeline/doc/tle.png delete mode 100644 timeline/doc/track-header.png delete mode 100644 timeline/doc/transport.png delete mode 100644 timeline/icons/hicolor/128x128/apps/non-timeline.png delete mode 100644 timeline/icons/hicolor/16x16/apps/non-timeline.png delete mode 100644 timeline/icons/hicolor/192x192/apps/non-timeline.png delete mode 100644 timeline/icons/hicolor/256x256/apps/non-timeline.png delete mode 100644 timeline/icons/hicolor/32x32/apps/non-timeline.png delete mode 100644 timeline/icons/hicolor/36x36/apps/non-timeline.png delete mode 100644 timeline/icons/hicolor/48x48/apps/non-timeline.png delete mode 100644 timeline/icons/hicolor/512x512/apps/non-timeline.png delete mode 100644 timeline/icons/hicolor/64x64/apps/non-timeline.png delete mode 100644 timeline/icons/hicolor/72x72/apps/non-timeline.png delete mode 100644 timeline/icons/hicolor/96x96/apps/non-timeline.png delete mode 100644 timeline/icons/hicolor/scalable/apps/non-timeline.svg delete mode 100644 timeline/icons/icon-16x16.xpm delete mode 100644 timeline/icons/icon-large.svg delete mode 120000 timeline/icons/icon-small.svg delete mode 100644 timeline/non-timeline.desktop.in delete mode 100644 timeline/src/Annotation_Point.H delete mode 100644 timeline/src/Annotation_Region.C delete mode 100644 timeline/src/Annotation_Region.H delete mode 100644 timeline/src/Annotation_Sequence.H delete mode 100644 timeline/src/Audio_Region.C delete mode 100644 timeline/src/Audio_Region.H delete mode 100644 timeline/src/Audio_Sequence.C delete mode 100644 timeline/src/Audio_Sequence.H delete mode 100644 timeline/src/Clock.H delete mode 100644 timeline/src/Control_Point.C delete mode 100644 timeline/src/Control_Point.H delete mode 100644 timeline/src/Control_Sequence.C delete mode 100644 timeline/src/Control_Sequence.H delete mode 100644 timeline/src/Cursor_Point.C delete mode 100644 timeline/src/Cursor_Point.H delete mode 100644 timeline/src/Cursor_Region.C delete mode 100644 timeline/src/Cursor_Region.H delete mode 100644 timeline/src/Cursor_Sequence.C delete mode 100644 timeline/src/Cursor_Sequence.H delete mode 100644 timeline/src/Engine/Audio_File.C delete mode 100644 timeline/src/Engine/Audio_File.H delete mode 100644 timeline/src/Engine/Audio_File_Dummy.C delete mode 100644 timeline/src/Engine/Audio_File_Dummy.H delete mode 100644 timeline/src/Engine/Audio_File_SF.C delete mode 100644 timeline/src/Engine/Audio_File_SF.H delete mode 100644 timeline/src/Engine/Audio_Region.C delete mode 100644 timeline/src/Engine/Audio_Sequence.C delete mode 100644 timeline/src/Engine/Control_Sequence.C delete mode 100644 timeline/src/Engine/Disk_Stream.C delete mode 100644 timeline/src/Engine/Disk_Stream.H delete mode 100644 timeline/src/Engine/Engine.C delete mode 100644 timeline/src/Engine/Engine.H delete mode 100644 timeline/src/Engine/Peak.H delete mode 100644 timeline/src/Engine/Peaks.C delete mode 100644 timeline/src/Engine/Peaks.H delete mode 100644 timeline/src/Engine/Playback_DS.C delete mode 100644 timeline/src/Engine/Playback_DS.H delete mode 100644 timeline/src/Engine/Record_DS.C delete mode 100644 timeline/src/Engine/Record_DS.H delete mode 100644 timeline/src/Engine/Timeline.C delete mode 100644 timeline/src/Engine/Track.C delete mode 100644 timeline/src/Engine/const.h delete mode 100644 timeline/src/Engine/types.h delete mode 100644 timeline/src/NSM.C delete mode 100644 timeline/src/OSC_Thread.C delete mode 100644 timeline/src/OSC_Thread.H delete mode 100644 timeline/src/Project.C delete mode 100644 timeline/src/Project.H delete mode 100644 timeline/src/RWLock.H delete mode 100644 timeline/src/Sequence.C delete mode 100644 timeline/src/Sequence.H delete mode 100644 timeline/src/Sequence_Point.C delete mode 100644 timeline/src/Sequence_Point.H delete mode 100644 timeline/src/Sequence_Region.C delete mode 100644 timeline/src/Sequence_Region.H delete mode 100644 timeline/src/Sequence_Widget.C delete mode 100644 timeline/src/Sequence_Widget.H delete mode 100644 timeline/src/TLE.fl delete mode 100644 timeline/src/Tempo_Point.C delete mode 100644 timeline/src/Tempo_Point.H delete mode 100644 timeline/src/Tempo_Sequence.C delete mode 100644 timeline/src/Tempo_Sequence.H delete mode 100644 timeline/src/Time_Point.C delete mode 100644 timeline/src/Time_Point.H delete mode 100644 timeline/src/Time_Sequence.C delete mode 100644 timeline/src/Time_Sequence.H delete mode 100644 timeline/src/Timeline.C delete mode 100644 timeline/src/Timeline.H delete mode 100644 timeline/src/Track.C delete mode 100644 timeline/src/Track.H delete mode 100644 timeline/src/Track_Header.fl delete mode 100644 timeline/src/Transport.C delete mode 100644 timeline/src/Transport.H delete mode 100644 timeline/src/Waveform.C delete mode 100644 timeline/src/Waveform.H delete mode 100644 timeline/src/const.h delete mode 100644 timeline/src/main.C delete mode 100644 timeline/src/types.h delete mode 100644 timeline/wscript delete mode 100644 tools.waf/ntk_fluid.py diff --git a/FL/About_Dialog.fl b/FL/About_Dialog.fl deleted file mode 100644 index 2504854..0000000 --- a/FL/About_Dialog.fl +++ /dev/null @@ -1,100 +0,0 @@ -# data file for the Fltk User Interface Designer (fluid) -version 1.0300 -header_name {.H} -code_name {.C} -decl {\#include } {private local -} - -decl {\#include } {private local -} - -decl {\#include } {private local -} - -Function {open_url( const char *url )} {open return_type void -} { - code {fl_open_uri( url );} {} -} - -class About_Dialog {open -} { - Function {About_Dialog( const char *logo_filename )} {open - } { - code {make_window( logo_filename );} {} - } - Function {run()} {open return_type void - } { - code {window->show(); - -while ( window->shown() ) - Fl::wait(); - -delete window;} {} - } - Function {make_window( const char *logo_filename )} {open private - } { - Fl_Window window { - label About - callback {o->hide(); - -if ( logo_box->image() ) -{ - ((Fl_Shared_Image*)logo_box->image())->release(); - logo_box->image( 0 ); -}} open selected - private xywh {879 215 560 695} type Double - visible - } { - Fl_Tabs {} {open - xywh {0 352 558 296} - } { - Fl_Group {} { - label Credits open - xywh {2 386 553 261} - } { - Fl_Box credits { - label {} - xywh {5 389 545 249} box ROUNDED_BOX color 46 labelsize 18 - } - } - Fl_Group {} { - label License open - xywh {2 378 553 268} hide - } { - Fl_Box copyright { - label COPYRIGHT - xywh {43 389 462 22} labeltype SHADOW_LABEL labelfont 1 labelsize 18 - } - Fl_Box {} { - label {This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - -You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.} - xywh {10 414 535 225} box ROUNDED_BOX color 46 labelfont 1 labelsize 12 labelcolor 53 align 144 - } - } - } - Fl_Box logo_box { - label VERSION - xywh {5 5 550 305} color 48 labelfont 1 labelsize 18 align 16 - code0 {o->image( Fl_Shared_Image::get( logo_filename ) );} - code1 {o->label( VERSION );} - } - Fl_Return_Button {} { - label Rock - callback {o->window()->do_callback();} - xywh {400 660 76 30} - } - Fl_Button website_url { - label {http://non-daw.tuxfamily.org} - callback {open_url( o->label() );} - xywh {125 660 245 30} color 14 labeltype SHADOW_LABEL labelcolor 6 - } - Fl_Box title { - label TITLE - xywh {5 317 545 29} labeltype SHADOW_LABEL labelfont 3 labelsize 17 - } - } - } -} diff --git a/FL/Fl_Blink_Button.H b/FL/Fl_Blink_Button.H deleted file mode 100644 index bc81303..0000000 --- a/FL/Fl_Blink_Button.H +++ /dev/null @@ -1,162 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include -#include - -/* Kind of like Fl_Light_Button except that the whole thing is the - * indicator and it can optionally blink */ - -class Fl_Blink_Button : public Fl_Button -{ - bool _on; - int _blink_interval; - bool _blinking; - bool _ignore_input; - - static void - update_cb ( void *v ) - { - ((Fl_Blink_Button*)v)->update_cb(); - } - - - float - blink_interval_as_fraction_of_seceond ( void ) const - { - return (float)_blink_interval / 1000; - } - - void - update_cb ( void ) - { - Fl::repeat_timeout( blink_interval_as_fraction_of_seceond(), update_cb, this ); - - _on = ! _on; - - redraw(); - } - -public: - - enum - { - SLOW=500, - MEDIUM=300, - FAST=100, - DEFAULT=500 - }; - - Fl_Blink_Button ( int X, int Y, int W, int H, const char *L=0 ) - : Fl_Button( X, Y, W, H, L ) - { - _blinking = true; - _on = false; - _ignore_input = false; - _blink_interval = DEFAULT; - - type( FL_TOGGLE_BUTTON ); - } - - virtual - ~Fl_Blink_Button () - { - if ( value() ) - Fl::remove_timeout( update_cb, this ); - } - - void ignore_input ( bool b ) - { - _ignore_input = b; - } - - bool ignore_input ( void ) const - { - return _ignore_input; - } - - void blink ( bool b ) - { - _blinking = b; - if ( ! b ) - _on = true; - } - - bool blink ( void ) const - { - return _blinking; - } - - void - blink_interval ( float v ) - { - _blink_interval = v * 1000; - if ( value() ) - { - Fl::remove_timeout( update_cb, this ); - Fl::add_timeout( blink_interval_as_fraction_of_seceond(), update_cb, this ); - } - } - - virtual void value ( float v ) - { - bool b = v; - - if ( b != value() ) - { - if ( b ) - { - if ( _blinking ) - { - /* just to be safe.. */ - Fl::remove_timeout( update_cb, this ); - Fl::add_timeout( blink_interval_as_fraction_of_seceond(), update_cb, this ); - } - Fl_Button::value( b ); - redraw(); - } - else - { - Fl_Button::value( b ); - Fl::remove_timeout( update_cb, this ); - redraw(); - } - } - } - - virtual float value ( void ) { return (bool)Fl_Button::value(); } - - virtual void - draw ( void ) - { - draw_box( value() ? box() : down_box(), x(), y(), w(), h(), - ( value() != 0 && _on ) ? selection_color() : color() ); - draw_label(); - } - - virtual int handle ( int m ) - { - if ( _ignore_input ) - return 0; - else - return Fl_Button::handle( m ); - } -}; diff --git a/FL/Fl_DialX.C b/FL/Fl_DialX.C deleted file mode 100644 index 64973b5..0000000 --- a/FL/Fl_DialX.C +++ /dev/null @@ -1,124 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2013 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "Fl_DialX.H" -#include -#include - -void -Fl_DialX::draw ( void ) -{ - int X,Y,S; - int act = active_r(); - - { - int ox, oy, ww, hh, side; - ox = x(); - oy = y(); - ww = w(); - hh = h(); - - if (ww > hh) - { - side = hh; - ox = ox + (ww - side) / 2; - } - else - { - side = ww; - oy = oy + (hh - side) / 2; - } - side = w() > h() ? hh : ww; - - X = ox; - Y = oy; - S = side; - } - - draw_box(); - draw_label(); - - double angle = ( angle2() - angle1() ) * ( value() - minimum()) / ( maximum() - minimum() ) + angle1(); - - fl_draw_box( box(), X, Y, S, S, color() ); - - /* shrink a bit */ - int OX = x(); - int OY = y(); - X += S / 8; - Y += S / 8; - int OS = S; - S -= S / 4; - - fl_line_style( FL_SOLID, S / 12 ); - - /* background arc */ - - Fl_Color c = fl_darker( color() ); - if ( !act ) - c = fl_inactive( c ); - - fl_color( c ); - fl_arc( X, Y, S, S, 270 - angle1(), 270 - angle2() ); - - /* foreground arc */ - c = selection_color(); - - if ( !act ) - c = fl_inactive( c ); - - fl_color(c); - fl_arc( X, Y, S, S, 270 - angle1(), 270 - angle ); - - fl_line_style( FL_SOLID, 0 ); - - if ( act ) - { - int W = OS; - int H = OS; - - fl_push_matrix(); - fl_translate(OX+W/2, OY+H/2); - fl_scale(W, H); - fl_rotate(310+angle); - fl_color( fl_color_add_alpha( FL_WHITE, 127 )); - fl_begin_polygon(); fl_circle(-0.26, 0.26, 0.12); fl_end_polygon(); - fl_color( FL_WHITE ); - fl_begin_polygon(); fl_circle(-0.26, 0.26, 0.06); fl_end_polygon(); - - fl_pop_matrix(); - } - - fl_color( fl_contrast( labelcolor(), color() ) ); - - if ( Fl::belowmouse() == this ) - { - char s[128]; - - fl_font( FL_HELVETICA, 9 ); - - char buf[128]; - format(buf); - - snprintf( s, sizeof( s ), buf, value() ); - - fl_color( FL_FOREGROUND_COLOR ); - fl_draw( s, X, Y, S, S, FL_ALIGN_CENTER ); - } -} diff --git a/FL/Fl_DialX.H b/FL/Fl_DialX.H deleted file mode 100644 index d27da3c..0000000 --- a/FL/Fl_DialX.H +++ /dev/null @@ -1,36 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2013 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include - -class Fl_DialX : public Fl_Dial -{ - -public: - - Fl_DialX ( int X, int Y, int W, int H, const char *L=0 ) : Fl_Dial(X,Y,W,H,L) - { - } - - virtual void draw ( void ); - virtual ~Fl_DialX() { } -}; - diff --git a/FL/Fl_Flip_Button.H b/FL/Fl_Flip_Button.H deleted file mode 100644 index d3e0b1e..0000000 --- a/FL/Fl_Flip_Button.H +++ /dev/null @@ -1,72 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -/* Simple extension of Fl_Button to support different lables for the - * two button states. Simpler than using a an Fl_Choice when all you - * need is two states. Set the label to "foo/bar" for "foo" to be the - * off label and "bar" the on. Obviously you should make sure that - * each label will fit. */ - -#pragma once - -#include - -#include -#include - -class Fl_Flip_Button : public Fl_Button -{ - - char *_off; - char *_on; - -public: - - Fl_Flip_Button ( int X, int Y, int W, int H, const char *L = 0 ) : - Fl_Button( X, Y, W, H, 0 ) - { - sscanf( L, "%m[^/]/%ms", &_off, &_on ); - - type( FL_TOGGLE_BUTTON ); - } - - virtual ~Fl_Flip_Button ( ) - { - if ( _off ) free( _off ); - if ( _on ) free( _on ); - } - -protected: - - virtual void - draw ( void ) - { - if ( value() ) - { - if ( label() != _on ) - label( _on ); - } - else - if ( label() != _off ) - label( _off ); - - draw_box( box(), x(), y(), w(), h(), value() ? selection_color() : color() ); - draw_label(); - } -}; diff --git a/FL/Fl_Flowpack.H b/FL/Fl_Flowpack.H deleted file mode 100644 index cdb3779..0000000 --- a/FL/Fl_Flowpack.H +++ /dev/null @@ -1,237 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2009 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include -#include - -class Fl_Flowpack : public Fl_Group -{ - int _hspacing; - int _vspacing; - bool _flow; - bool _flowdown; - int _initial_height; - int _initial_width; - -public: - - Fl_Flowpack ( int X, int Y, int W, int H, const char *L = 0 ) - : Fl_Group( X, Y, W, H, L ) - { - resizable( 0 ); - _hspacing = _vspacing = 0; - _initial_width = W; - _initial_height = H; - _flow = true; - _flowdown = false; - } - - virtual ~Fl_Flowpack ( ) - { - } - - - void vspacing ( int v ) { _vspacing = v; } - int vspacing ( void ) const { return _vspacing; }; - - void hspacing ( int h ) { _hspacing = h; } - int hspacing ( void ) const { return _hspacing; }; - - bool flow ( void ) const { return _flow; } - void flow ( bool v ) { _flow = v; } - - bool flowdown ( void ) const { return _flowdown; } - void flowdown ( bool v ) { _flowdown = v; } - - void - add ( Fl_Widget *w ) - { - Fl_Group::add( w ); - dolayout(); - } - - void - remove ( Fl_Widget *w ) - { - Fl_Group::remove( w ); - dolayout(); - } - - void - resize ( int X, int Y, int W, int H ) - { - _initial_width = W; - _initial_height = H; - - layout(); - - Fl_Group::resize( X, Y, w(), h() ); - } - - void - draw ( void ) - { - layout(); - Fl_Group::draw(); - } - - void dolayout ( void ) - { - layout(); - } - - void - layout ( void ) - { - resizable( 0 ); - - int W; - int H; - int X = 0; - int Y = 0; - int LW = 0; - int LH = 0; - int LX = 0; - int LY = 0; - int RH = 0; -// int RY = 0; - int CW = 0; - - if ( _flow ) - { - H = 0; - W = 0; - } - else - { - H = _initial_height; - W = _initial_width; - } - - for ( int i = 0; i < children(); ++i ) - { - Fl_Widget *o = child( i ); - - if ( ! o->visible() ) - continue; - - if ( _flow ) - { - if ( _flowdown ) - { - if ( Y + o->h() <= _initial_height ) - { - /* if it'll fit in this column, put it below the previous widget */ - X = LX; - } - else - { - Y = H; - CW = 0; - } - - CW = o->w() > CW ? o->w() : CW; - RH = Y + o->h() > RH ? Y + o->h() : RH; - } - else - { - if ( X + o->w() >= _initial_width ) - { - /* maybe wrap to the next row */ - H += RH + _vspacing; -// RY = Y; - RH = 0; - if ( X > W ) - W = X; - - X = 0; - } - else - { - /* otherwise, put it in the next column */ - Y = H; - - } - - RH = o->h() > RH ? o->h() : RH; - - } - } - - LW = o->w(); - LH = o->h(); - - LX = X; - LY = Y; - - if ( _flow ) - { - if ( _flowdown ) - { - Y += LH + _vspacing; - X += CW + _hspacing; - } - else - { - Y += RH + _vspacing; - X += LW + _hspacing; - } - } - else - { - if ( type() == Fl_Pack::HORIZONTAL ) - { - X += LW + _hspacing; - LH = _initial_height; - W = X; - } - else - { - Y += LH + _vspacing; - LW = _initial_width; - H = Y; - } - } - - - if ( ! ( o->x() == x() + LX && - o->y() == y() + LY && - o->w() == LW && - o->h() == LH ) ) - o->resize( x() + LX, - y() + LY, - LW, - LH); - } - - if ( _flow ) - { - H += RH; - if ( X > W ) - W = X; - - /* if ( _flowdown ) */ - /* H = _initial_height; */ - } - - Fl_Group::resize( x(), y(), W, H ); - } -}; diff --git a/FL/Fl_Labelpad_Group.H b/FL/Fl_Labelpad_Group.H deleted file mode 100644 index bf7e641..0000000 --- a/FL/Fl_Labelpad_Group.H +++ /dev/null @@ -1,78 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2009 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -/* wrap a widget in a group as wide as the widget's label. This is - * useful when you want to put labeled widgets into a pack */ - -#include -#include -#include - -class Fl_Labelpad_Group : public Fl_Group -{ -public: - - static void measure_label ( Fl_Widget *o, int &W, int &H ) - { - W = fl_width( o->label() ); - H = fl_height(); - } - - Fl_Labelpad_Group ( Fl_Widget *o ) : Fl_Group( 0, 0, 50, 50, 0 ) - { - resizable( 0 ); - - end(); - - add( o ); - - fl_font( o->labelfont(), o->labelsize() ); - - int W, H; - - measure_label( o, W, H ); - - // set size to contain widget - if ( o->align() & ( FL_ALIGN_TOP | FL_ALIGN_BOTTOM ) ) - size( W > o->w() ? W : o->w(), o->h() + H ); - if ( o->align() & ( FL_ALIGN_LEFT | FL_ALIGN_RIGHT ) ) - size( o->w() + W, H > o->h() ? H : o->h() ); - - // center widget in group - if ( o->align() & FL_ALIGN_TOP ) - o->position( x() + w() / 2 - (o->w() / 2 ), y() + H ); - else if ( o->align() & FL_ALIGN_BOTTOM ) - o->position( x() + w() / 2 - (o->w() / 2 ), y() ); - else if ( o->align() & FL_ALIGN_RIGHT ) - o->position( x(), y() ); - else if ( o->align() & FL_ALIGN_LEFT ) - o->position( x() + W, y() ); - else - { - /* TODO: other alignments */ - } - - resizable(o); - init_sizes(); - } - - virtual ~Fl_Labelpad_Group ( ) - { - } -}; diff --git a/FL/Fl_Menu_Settings.C b/FL/Fl_Menu_Settings.C deleted file mode 100644 index a2f513e..0000000 --- a/FL/Fl_Menu_Settings.C +++ /dev/null @@ -1,338 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "Fl_Menu_Settings.H" - -#include - -/* code to dump and restore (portions of) an Fl_Menu_ */ - -#define MAX_PATH 1024 - -void -Fl_Menu_Settings::remove_ampersands ( char *str, int n ) -{ - char *d = str; - char *s = str; - - while ( n-- ) - { - if ( *s == '&' ) - { - ++s; - continue; - } - - *(d++) = *(s++); - } - - *d = '\0'; -} - -void -Fl_Menu_Settings::indent ( FILE *fp, int n ) -{ - while ( n-- ) - fprintf( fp, "\t" ); -} - -int -Fl_Menu_Settings::item_pathname_x ( char *path, int n, const Fl_Menu_Item *item ) -{ - int r = Fl_Menu_::item_pathname( path, n, item ); - - remove_ampersands( path, n ); - - return r; -} - -/** dump options from submenu /menu/ of menubar /bar/ to file /fp/ */ -const Fl_Menu_Item * -Fl_Menu_Settings::dump ( Fl_Menu_ *bar, const Fl_Menu_Item *menu, FILE *fp, int depth ) -{ - static char path[256]; - const Fl_Menu_Item *m = menu; - - for ( ; m->text; ++m ) - { - bool is_radio = false; - - if ( m->flags & FL_SUBMENU ) -// if ( m->submenu() ) - { - strcpy( path, m->text ); - remove_ampersands( path, strlen( path ) ); - - indent( fp, depth ); - fprintf( fp, "%s\n", path ); - - /* recurse */ - m = dump( bar, ++m, fp, depth + 1 ); - -// ++m; - -// m = dump( bar, m->flags & FL_SUBMENU_POINTER ? (Fl_Menu_Item*) m->user_data() : m, fp, depth + 1 ); - - if ( ! depth ) - break; - else - continue; - } - - if ( m->radio() ) - is_radio = true; - -// bar->item_pathname( path, sizeof( path ) - 1, m ); - item_pathname_x( path, sizeof( path ) - 1, m ); - - - if ( m->flags & FL_MENU_TOGGLE || m->flags & FL_MENU_RADIO ) - { - if ( ! is_radio ) - { - indent( fp, depth ); - - fprintf( fp, "%s\n", rindex( path, '/' ) + 1 ); - - indent( fp, depth + 1 ); - - fprintf( fp, "%s\n", m->flags & FL_MENU_VALUE ? "true" : "false" ); - } - else if ( m->flags & FL_MENU_VALUE ) - { - *rindex( path, '/' ) = '\0'; - - indent( fp, depth ); - - fprintf( fp, "%s\n", path + strlen( path ) + 1 ); - } - } - - } - - return m; -} - -/** dump menu to file /name/ starting at /item. */ -int -Fl_Menu_Settings::dump ( const Fl_Menu_Item *item, const char *name ) -{ - FILE *fp = fopen( name, "w" ); - - if ( ! fp ) - return false; - - dump( this, item, fp, 0 ); - - fclose( fp ); - - - return true; -} - -#define strlcat strncat - -/* taken from Fl_Menu_.cxx and modified to ignore hotkeys and case */ -const Fl_Menu_Item * -Fl_Menu_Settings::find_item_x ( const char *name, const Fl_Menu_Item *item ) -{ - char menupath [ MAX_PATH ] = ""; // File/Export - - const Fl_Menu_Item *m = item ? item : menu(); - - int depth = 0; - - while ( depth >= 0 ) - for ( ;m ; ++m ) - { - if ( m->flags & FL_SUBMENU ) - { - // IT'S A SUBMENU - // we do not support searches through FL_SUBMENU_POINTER links - if ( menupath[0] ) - strlcat( menupath, "/", sizeof( menupath ) ); - - strlcat( menupath, m->label(), sizeof( menupath ) ); - - remove_ampersands( menupath, strlen( menupath ) ); - - if ( ! strcasecmp( menupath, name ) ) - return m; - else - { - ++depth; - continue; - } - } - else - { - if ( ! m->label() ) - { - // END OF SUBMENU? Pop back one level. - char *ss = strrchr( menupath, '/' ); - if ( ss ) - *ss = 0; - else - menupath[0] = '\0'; - - --depth; - ++m; - - break; - } - - // IT'S A MENU ITEM - char itempath[ MAX_PATH ]; // eg. Edit/Copy - strcpy( itempath, menupath ); - - if ( itempath[0] ) - strlcat( itempath, "/", sizeof( itempath ) ); - - strlcat( itempath, m->label(), sizeof( itempath ) ); - - remove_ampersands( itempath, strlen( itempath ) ); - - if ( !strcasecmp( itempath, name ) ) - return m; - } - } - - return ( Fl_Menu_Item * )0; -} - - -static void -path_push ( char *path, const char *s ) -{ - strcat( path, s ); - strcat( path, "/" ); -} - -static void -path_pop ( char *path ) -{ - char *s; - - int l = strlen( path ); - - if ( ! l ) - return; - - if ( path[ l - 1 ] == '/' ) - path[ l - 1 ] = '\0'; - - s = rindex( path, '/' ); - - if ( s ) - *(s + 1) = '\0'; - else - *path = '\0'; -} - -void -Fl_Menu_Settings::load ( Fl_Menu_ *bar, const Fl_Menu_Item *item, FILE *fp, int depth, char *path, int pmax ) -{ - char line[256]; - - while ( ! feof( fp ) ) - { - *line = '\0'; - - fgets( line, sizeof( line ), fp ); - - if ( *line == '#' ) - continue; - - line[ strlen( line ) - 1 ] = '\0'; - - int ld = strspn( line, "\t" ); - - if ( ld > depth ) - { - path_push( path, line + ld ); - - ++depth; - -// load( bar, item, fp, depth + 1, path, pmax ); - /* */; - } - else if ( ld < depth ) - { - /* we should know the path and the value now */ - - // path_pop( path ); - *rindex( path, '/' ) = '\0'; - -// printf( "%s = %s\n", path, path + strlen( path ) + 1 ); - - const Fl_Menu_Item *it = find_item_x( path, item + 1 ); - - if ( it && it->radio() ) /* radio button */ - { - bar->picked( it ); - - path_pop( path ); - } - else /* toggle */ - { - *rindex( path, '/' ) = '\0'; - - if ( ( it = find_item_x( path, item + 1 ) ) && it->checkbox() ) - { - int v = 0 == strcasecmp( "true", (path + strlen( path ) + 1 ) ); - - if ( v != ( it->value() != 0 ) /* grr, FLTK */ ) - bar->picked( it ); - } - - } - - while ( ld < depth ) - { - path_pop( path ); - depth--; - } - - path_push( path, line + ld ); - } - else /* d == depth */ - { - /* doesn't apply? */ - } - } -} - -/** load settings from file /name/ into menu starting at /item */ -int -Fl_Menu_Settings::load ( const Fl_Menu_Item *item, const char *name ) -{ - FILE *fp = fopen( name, "r" ); - - if ( ! fp ) - return false; - - char path[ MAX_PATH ]; - path[0] = '\0'; - - load( this, item, fp, 0, path, sizeof( path ) ); - - fclose( fp ); - - return true; -} diff --git a/FL/Fl_Menu_Settings.H b/FL/Fl_Menu_Settings.H deleted file mode 100644 index 7a94697..0000000 --- a/FL/Fl_Menu_Settings.H +++ /dev/null @@ -1,43 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - - - -#include -#include - -class Fl_Menu_Settings : public Fl_Menu_ -{ - - void remove_ampersands ( char *str, int n ); - void indent ( FILE *fp, int n ); - const Fl_Menu_Item * dump ( Fl_Menu_ *bar, const Fl_Menu_Item *menu, FILE *fp, int depth ); - void load ( Fl_Menu_ *bar, const Fl_Menu_Item *item, FILE *fp, int depth, char *path, int pmax ); - -public: - - - int item_pathname_x ( char *path, int n, const Fl_Menu_Item *item ); - const Fl_Menu_Item * find_item_x ( const char *name, const Fl_Menu_Item *item ); - - int dump ( const Fl_Menu_Item *item, const char *name ); - int load ( const Fl_Menu_Item *item, const char *name ); - - -}; diff --git a/FL/Fl_Packscroller.H b/FL/Fl_Packscroller.H deleted file mode 100644 index 0661b48..0000000 --- a/FL/Fl_Packscroller.H +++ /dev/null @@ -1,212 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2010 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -/* Scrolling group suitable for containing a single child (a - * pack). When the Fl_Packscroller is resized, the child will be resized - * too. No scrollbars are displayed, but the widget responds to - * FL_MOUSEWHEEL events. */ - -#pragma once - -#include -#include -#include - -/* FIXME: Optimize scroll */ - -class Fl_Packscroller : public Fl_Group -{ - int _increment; - int _yposition; - static const int sbh = 15; /* scroll button height */ - -public: - - Fl_Packscroller ( int X, int Y, int W, int H, const char *L = 0 ) : Fl_Group( X, Y, W, H, L ) - { - _increment = 30; - _yposition = 0; -// color( FL_WHITE ); - } - - int increment ( void ) const { return _increment; } - void increment ( int v ) { _increment = v; } - - void yposition ( int v ) - { - if ( ! children() ) - return; - - int Y = v; - - if ( Y > 0 ) - Y = 0; - - const int H = h(); -// - (sbh * 2); - - Fl_Widget *o = child( 0 ); - - if ( o->h() > H && - Y + o->h() < H ) - Y = H - o->h(); - else if ( o->h() < H ) - Y = 0; - - if ( _yposition != Y ) - { - _yposition = Y; - - damage( FL_DAMAGE_SCROLL ); - } - } - - int yposition ( void ) const - { - if ( children() ) - return child( 0 )->y() - (y() + sbh); - - return 0; - } - - void bbox ( int &X, int &Y, int &W, int &H ) - { - X = x(); - Y = y() + ( sbh * top_sb_visible() ); - W = w(); - H = h() - ( sbh * ( top_sb_visible() + bottom_sb_visible() ) ); - } - - int top_sb_visible ( void ) - { - return children() && child(0)->y() != y() ? 1 : 0; - } - - int bottom_sb_visible ( void ) - { - if ( children() ) - { - Fl_Widget *o = child( 0 ); - - if ( o->h() > h() && o->y() + o->h() != y() + h() ) - return 1; - } - - return 0; - } - - virtual void - draw ( void ) - { - if ( damage() & FL_DAMAGE_ALL ) - { - fl_rectf( x(), y(), w(), h(), color() ); - } - - if ( ! children() ) - return; - - Fl_Widget *o = child( 0 ); - - o->position( x(), y() + _yposition ); - - const int top_sb = top_sb_visible(); - const int bottom_sb = bottom_sb_visible(); - - fl_push_clip( x(), y() + ( sbh * top_sb ), w(), h() - (sbh * (top_sb + bottom_sb) )); - - draw_children(); - - fl_pop_clip(); - - fl_font( FL_HELVETICA, 12 ); - - if ( top_sb ) - { - fl_draw_box( box(), x(), y(), w(), sbh, color() ); - fl_color( fl_contrast( FL_FOREGROUND_COLOR, color() ) ); - fl_draw( "@2<", x(), y(), w(), sbh, FL_ALIGN_CENTER ); - } - - if ( bottom_sb ) - { - fl_draw_box( box(), x(), y() + h() - sbh, w(), sbh, color() ); - fl_color( fl_contrast( FL_FOREGROUND_COLOR, color() ) ); - fl_draw( "@2>", x(), y() + h() - sbh, w(), sbh, FL_ALIGN_CENTER ); - } - } - - virtual int - handle ( int m ) - { - switch ( m ) - { - case FL_PUSH: - if ( top_sb_visible() && - Fl::event_inside( x(), y(), w(), sbh ) ) - { - return 1; - } - else if ( bottom_sb_visible() && - Fl::event_inside( x(), y() + h() - sbh, w(), sbh ) ) - { - return 1; - } - break; - case FL_RELEASE: - { - if ( top_sb_visible() && - Fl::event_inside( x(), y(), w(), sbh ) ) - { - yposition( yposition() + ( h() / 4 ) ); - return 1; - } - else if ( bottom_sb_visible() && - Fl::event_inside( x(), y() + h() - sbh, w(), sbh ) ) - { - yposition( yposition() - (h() / 4 ) ); - return 1; - } - break; - } - case FL_KEYBOARD: - { - if ( Fl::event_key() == FL_Up ) - { - yposition( yposition() + ( h() / 4 ) ); - return 1; - } - else if ( Fl::event_key() == FL_Down ) - { - yposition( yposition() - (h() / 4 ) ); - return 1; - } - break; - } - case FL_MOUSEWHEEL: - { - yposition( yposition() - ( Fl::event_dy() * _increment ) ); - - return 1; - } - } - - return Fl_Group::handle( m ); - } -}; diff --git a/FL/Fl_Scalepack.C b/FL/Fl_Scalepack.C deleted file mode 100644 index c253838..0000000 --- a/FL/Fl_Scalepack.C +++ /dev/null @@ -1,250 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - - -/* Fl_Scalepack - - This is similar to an Fl_Pack, but instead of the pack resizing - itself to enclose its children, this pack resizes its children to - fit itself. Of course, this only works well with highly flexible - widgets, but the task comes up often enough to warrent this class. - - If and child happens to be the resizable() widget, then it will be - resized so the all the other children can fit around it, with their - current sizes (and the size of the Fl_Scalepack) maintained. - - NOTES: An Fl_Pack as a direct child will not work, because Fl_Pack - changes its size in draw(), which throws off our resize - calculation. The whole idea of widgets being able to resize - themselves within draw() is horribly broken... -*/ - -#include "Fl_Scalepack.H" - -#include -#include -#include - -Fl_Scalepack::Fl_Scalepack ( int X, int Y, int W, int H, const char *L ) : - Fl_Group( X, Y, W, H, L ) -{ - resizable( 0 ); - _spacing = 0; -} - -void -Fl_Scalepack::resize ( int X, int Y, int W, int H ) -{ - /* Fl_Group's resize will change our child widget sizes, which - interferes with our own resizing method. */ - long dx = X - x(); - long dy = Y - y(); - - bool r = W != w() || H != h(); - - Fl_Widget::resize( X, Y, W, H ); - - Fl_Widget*const* a = array(); - - for (int i=children(); i--;) - { - Fl_Widget* o = *a++; - - o->position( o->x() + dx, o->y() + dy ); - } - - if ( r ) - redraw(); -} - -void -Fl_Scalepack::draw ( void ) -{ - - if ( resizable() == this ) - /* this resizable( this ) is the default for Fl_Group and is - * reset by Fl_Group::clear(), but it is not our default... */ - resizable( 0 ); - - int tx = x() + Fl::box_dx( box() ); - int ty = y() + Fl::box_dy( box() ); - int tw = w() - Fl::box_dw( box() ); - int th = h() - Fl::box_dh( box() ); - - if ( damage() & FL_DAMAGE_ALL ) - { - draw_box(); - - draw_label(); - } - - int v = 0; - - int cth = 0; - int ctw = 0; - - Fl_Widget * const * a = array(); - - for ( int i = children(); i--; ) - { - Fl_Widget *o = *a++; - - if ( o->visible() ) - { - ++v; - - if ( o != this->resizable() ) - { - cth += o->h(); - ctw += o->w(); - } - - cth += _spacing; - ctw += _spacing; - } - } - - ctw -= _spacing; - cth -= _spacing; - - if ( 0 == v ) - return; - - if ( this->resizable() ) - { - int pos = 0; - - Fl_Widget * const * a = array(); - - for ( int i = children(); i--; ) - { - Fl_Widget *o = *a++; - - if ( o->visible() ) - { - int X, Y, W, H; - - if ( type() == HORIZONTAL ) - { - X = tx + pos; - Y = ty; - W = o->w(); - H = th; - } - else - { - X = tx; - Y = ty + pos; - W = tw; - H = o->h(); - } - - if ( this->resizable() == o ) - { - if ( type() == HORIZONTAL ) - W = tw - ctw - 3; - else - H = th - cth; - } - - if (X != o->x() || Y != o->y() || W != o->w() || H != o->h() ) - { - o->resize(X,Y,W,H); - o->clear_damage(FL_DAMAGE_ALL); - } - - if ( damage() & FL_DAMAGE_ALL ) - { - draw_child( *o ); - draw_outside_label( *o ); - } - else - update_child( *o ); - -/* if ( this->resizable() == o ) */ -/* fl_rect( o->x(), o->y(), o->w(), o->h(), type() == VERTICAL ? FL_GREEN : FL_BLUE ); */ - - if ( type() == HORIZONTAL ) - pos += o->w() + spacing(); - else - pos += o->h() + spacing(); - - } - } - } - else - { - int sz = 0; - int pos = 0; - - if ( type() == HORIZONTAL ) - sz = (tw - (_spacing * (v - 1))) / v; - else - sz = (th - (_spacing * (v - 1))) / v; - - Fl_Widget * const * a = array(); - - for ( int i = children(); i--; ) - { - Fl_Widget *o = *a++; - - if ( o->visible() ) - { - int X, Y, W, H; - - if ( type() == HORIZONTAL ) - { - X = tx + pos; - Y = ty; - W = sz; - H = th; - } - else - { - X = tx; - Y = ty + pos; - W = tw; - H = sz; - } - - if (X != o->x() || Y != o->y() || W != o->w() || H != o->h() ) - { - o->resize(X,Y,W,H); - o->clear_damage(FL_DAMAGE_ALL); - } - - if ( damage() & FL_DAMAGE_ALL ) - { - draw_child( *o ); - draw_outside_label( *o ); - } - else - update_child( *o ); - -// fl_rect( o->x(), o->y(), o->w(), o->h(), type() == VERTICAL ? FL_RED : FL_YELLOW ); - - if ( type() == HORIZONTAL ) - pos += o->w() + spacing(); - else - pos += o->h() + spacing(); - - } - } - } -} diff --git a/FL/Fl_Scalepack.H b/FL/Fl_Scalepack.H deleted file mode 100644 index 9974bba..0000000 --- a/FL/Fl_Scalepack.H +++ /dev/null @@ -1,43 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include - -class Fl_Scalepack : public Fl_Group -{ - - int _spacing; - -public: - - enum { VERTICAL, HORIZONTAL }; - - Fl_Scalepack ( int X, int Y, int W, int H, const char *L = 0 ); - virtual ~Fl_Scalepack ( ) { } - - int spacing ( void ) const { return _spacing; } - void spacing ( int v ) { _spacing = v; redraw(); } - - virtual void resize ( int, int, int, int ); - - virtual void draw ( void ); - -}; diff --git a/FL/Fl_SliderX.C b/FL/Fl_SliderX.C deleted file mode 100644 index 582b02a..0000000 --- a/FL/Fl_SliderX.C +++ /dev/null @@ -1,341 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2013 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "Fl_SliderX.H" -#include -#include - -#include - -void -Fl_SliderX::draw ( int X, int Y, int W, int H) -{ - slider_size( horizontal() ? H / (float)W : W / (float)H ); - - int act = active_r(); - - if (damage()&FL_DAMAGE_ALL) draw_box(); - - - int ww = (horizontal() ? W : H); - int hh = (horizontal() ? H : W); - int xx, S; - - xx = slider_position( value(), ww ); - - S = (horizontal() ? H : W ); - - int xsl, ysl, wsl, hsl; - if (horizontal()) { - xsl = X+xx; - wsl = S; - ysl = Y + hh/2; - hsl = hh/4; - } else { - ysl = Y+xx; - hsl = S; - xsl = X + hh/2; - wsl = hh/4; - } - - { - fl_push_clip(X, Y, W, H); - draw_box(); - fl_pop_clip(); - } - //draw_bg(X, Y, W, H); - - fl_line_style( FL_SOLID, hh/6 ); - - Fl_Color c = fl_darker(color()); - - if ( !act ) - c = fl_inactive(c); - - fl_color(c); - - if ( horizontal() ) - fl_line ( X + S/2, Y + hh/2, X + W - S/2, Y + hh/2 ); - else - fl_line ( X + hh/2, Y + S/2, X + hh/2, Y + H - S/2 ); - - c = selection_color(); - - if ( !act ) - c = fl_inactive(c); - - fl_color( c ); - - if ( horizontal() ) - fl_line ( X + S/2, ysl, xsl + S/2, ysl ); - else - fl_line ( X + S/2, Y + H - S/2, xsl, ysl + (S/2) ); - - fl_line_style( FL_SOLID, 0 ); - - if ( act ) - { - fl_push_matrix(); - if ( horizontal() ) - fl_translate( xsl + (hh/2), ysl); - else - fl_translate( xsl, ysl + (hh/2) ); - - fl_color( fl_color_add_alpha( FL_WHITE, 127 )); - fl_begin_polygon(); fl_circle(0.0,0.0, hh/3); fl_end_polygon(); - fl_color( FL_WHITE ); - fl_begin_polygon(); fl_circle(0.0,0.0, hh/6); fl_end_polygon(); - - fl_pop_matrix(); - } - - draw_label(xsl, ysl, wsl, hsl); - - if (Fl::focus() == this) { - draw_focus(); - } - - /* draw(x()+Fl::box_dx(box()), */ - /* y()+Fl::box_dy(box()), */ - /* w()-Fl::box_dw(box()), */ - /* h()-Fl::box_dh(box())); */ - -} - -/** return a value between 0.0 and 1.0 which represents the current slider position. */ -int -Fl_SliderX::slider_position ( double value, int w ) -{ - double A = minimum(); - double B = maximum(); - if (B == A) return 0; - bool flip = B < A; - if (flip) {A = B; B = minimum();} -// if (!horizontal()) flip = !flip; - // if both are negative, make the range positive: - if (B <= 0) {flip = !flip; double t = A; A = -B; B = -t; value = -value;} - double fraction; - if (!log()) { - // linear slider - fraction = (value-A)/(B-A); - } else if (A > 0) { - // logatithmic slider - if (value <= A) fraction = 0; - else fraction = (::log(value)-::log(A))/(::log(B)-::log(A)); - } else if (A == 0) { - // squared slider - if (value <= 0) fraction = 0; - else fraction = sqrt(value/B); - } else { - // squared signed slider - if (value < 0) fraction = (1-sqrt(value/A))*.5; - else fraction = (1+sqrt(value/B))*.5; - } - if (flip) fraction = 1-fraction; - - w -= int(slider_size()*w+.5); if (w <= 0) return 0; - if (fraction >= 1) return w; - else if (fraction <= 0) return 0; - else return int(fraction*w+.5); -} - -double -Fl_SliderX::slider_value ( int X, int w ) -{ - w -= int(slider_size()*w+.5); if (w <= 0) return minimum(); - double A = minimum(); - double B = maximum(); - bool flip = B < A; - if (flip) {A = B; B = minimum();} -// if (!horizontal()) flip = !flip; - if (flip) X = w-X; - double fraction = double(X)/w; - if (fraction <= 0) return A; - if (fraction >= 1) return B; - // if both are negative, make the range positive: - flip = (B <= 0); - if (flip) {double t = A; A = -B; B = -t; fraction = 1-fraction;} - double value; - double derivative; - if (!log()) { - // linear slider - value = fraction*(B-A)+A; - derivative = (B-A)/w; - } else if (A > 0) { - // log slider - double d = (::log(B)-::log(A)); - value = exp(fraction*d+::log(A)); - derivative = value*d/w; - } else if (A == 0) { - // squared slider - value = fraction*fraction*B; - derivative = 2*fraction*B/w; - } else { - // squared signed slider - fraction = 2*fraction - 1; - if (fraction < 0) B = A; - value = fraction*fraction*B; - derivative = 4*fraction*B/w; - } - // find nicest multiple of 10,5, or 2 of step() that is close to 1 pixel: - if (step() && derivative > step()) { - double w = log10(derivative); - double l = ceil(w); - int num = 1; - int i; for (i = 0; i < l; i++) num *= 10; - int denom = 1; - for (i = -1; i >= l; i--) denom *= 10; - if (l-w > 0.69897) denom *= 5; - else if (l-w > 0.30103) denom *= 2; - value = floor(value*denom/num+.5)*num/denom; - } - if (flip) return -value; - return value; - -} - -int Fl_SliderX::handle(int event, int X, int Y, int W, int H) { - // Fl_Widget_Tracker wp(this); - switch (event) { - case FL_PUSH: { - Fl_Widget_Tracker wp(this); - if (!Fl::event_inside(X, Y, W, H)) return 0; - handle_push(); - if (wp.deleted()) return 1; } - // fall through ... - case FL_DRAG: { - - static int offcenter; - - int ww = (horizontal() ? W : H); - - if ( event == FL_PUSH ) - { - int x = slider_position( value(), ww ); - - offcenter = (horizontal() ? (Fl::event_x()-X) - x : (Fl::event_y()-Y) - x ); - } - - try_again: - - int mx = (horizontal() ? Fl::event_x()-X : Fl::event_y()-Y) - offcenter; - double v = slider_value( mx, ww ); - - if (event == FL_PUSH ) // && v == value()) { - { - int os = int(slider_size()*ww+0.5)/2; - if ( abs( offcenter ) > os ) - { - offcenter = os; - event = FL_DRAG; - goto try_again; - } - } - - handle_drag(clamp(v)); - } return 1; - case FL_RELEASE: - handle_release(); - return 1; - case FL_KEYBOARD: - { Fl_Widget_Tracker wp(this); - switch (Fl::event_key()) { - case FL_Up: - if (horizontal()) return 0; - handle_push(); - if (wp.deleted()) return 1; - handle_drag(clamp(increment(value(),-1))); - if (wp.deleted()) return 1; - handle_release(); - return 1; - case FL_Down: - if (horizontal()) return 0; - handle_push(); - if (wp.deleted()) return 1; - handle_drag(clamp(increment(value(),1))); - if (wp.deleted()) return 1; - handle_release(); - return 1; - case FL_Left: - if (!horizontal()) return 0; - handle_push(); - if (wp.deleted()) return 1; - handle_drag(clamp(increment(value(),-1))); - if (wp.deleted()) return 1; - handle_release(); - return 1; - case FL_Right: - if (!horizontal()) return 0; - handle_push(); - if (wp.deleted()) return 1; - handle_drag(clamp(increment(value(),1))); - if (wp.deleted()) return 1; - handle_release(); - return 1; - default: - return 0; - } - } - // break not required because of switch... - case FL_FOCUS : - case FL_UNFOCUS : - if (Fl::visible_focus()) { - redraw(); - return 1; - } else return 0; - case FL_ENTER : - case FL_LEAVE : - return 1; - case FL_MOUSEWHEEL : - { - if ( this != Fl::belowmouse() ) - return 0; - if (Fl::e_dy==0) - return 0; - - const int steps = Fl::event_ctrl() ? 128 : 16; - - const float step = fabs( maximum() - minimum() ) / (float)steps; - - int dy = Fl::e_dy; - - /* slider is in 'upside down' configuration, invert meaning of mousewheel */ - if ( minimum() > maximum() ) - dy = 0 - dy; - - handle_drag(clamp(value() + step * dy)); - return 1; - } - default: - return 0; - } -} - -int Fl_SliderX::handle(int event) { - if (event == FL_PUSH && Fl::visible_focus()) { - Fl::focus(this); - redraw(); - } - - return handle(event, - x()+Fl::box_dx(box()), - y()+Fl::box_dy(box()), - w()-Fl::box_dw(box()), - h()-Fl::box_dh(box())); -} diff --git a/FL/Fl_SliderX.H b/FL/Fl_SliderX.H deleted file mode 100644 index bc56605..0000000 --- a/FL/Fl_SliderX.H +++ /dev/null @@ -1,50 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2013 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include - -class Fl_SliderX : public Fl_Slider -{ - bool _log; - - -public: - - void log ( bool v ) { _log = v; } - bool log ( void ) const { return _log; } - - Fl_SliderX( int X, int Y, int W, int H, const char *L=0 ) : Fl_Slider(X,Y,W,H,L) - { - _log = 0; - } - - virtual ~Fl_SliderX ( ) { }; - - virtual int slider_position ( double value, int w ); - virtual double slider_value ( int X, int w ); - - virtual void draw ( int X, int Y, int W, int H ); - virtual void draw ( void ) { draw(x(),y(),w(),h()); } - - - virtual int handle(int event, int X, int Y, int W, int H); - virtual int handle(int event); -}; diff --git a/FL/Fl_Sometimes_Input.H b/FL/Fl_Sometimes_Input.H deleted file mode 100644 index ef5be75..0000000 --- a/FL/Fl_Sometimes_Input.H +++ /dev/null @@ -1,113 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -/* Just like an Fl_Input, except that when not being edited it - * displays just like a label. */ - -#include -#include -#include -#include - -class Fl_Sometimes_Input : public Fl_Input -{ - Fl_Boxtype _up_box; - -public: - - Fl_Sometimes_Input ( int X, int Y, int W, int H, const char *L=0 ) - : Fl_Input( X, Y, W, H, L ) - { - clear_visible_focus(); - up_box( FL_NO_BOX ); - when(FL_WHEN_ENTER_KEY); - } - - void up_box ( Fl_Boxtype b ) { _up_box = b; } - Fl_Boxtype up_box ( void ) const { return _up_box; } - - virtual void - draw ( void ) - { - if ( this == Fl::focus() ) - Fl_Input::draw(); - else - { - fl_draw_box( up_box(), x(), y(), w(), h(), color() ); - - Fl_Color c = fl_contrast( textcolor(), color() ); - - fl_color( active_r() ? c : fl_inactive( c ) ); - - fl_font( textfont(), textsize() ); - fl_draw( value(), x(), y(), w(), h(), (Fl_Align)(FL_ALIGN_CENTER | FL_ALIGN_CLIP) ); - } - } - - virtual void - take_focus ( void ) - { - set_visible_focus(); - Fl_Widget::take_focus(); - clear_visible_focus(); - } - - virtual int - handle ( int m ) - { - int r = 0; - - switch ( m ) - { - case FL_KEYDOWN: - { - if ( ( Fl::event_key() == FL_Enter || - Fl::event_key() == FL_Tab ) ) - { - Fl::focus( NULL ); - r = 1; - } - break; - } - case FL_FOCUS: - redraw(); - r = 1; - break; - case FL_UNFOCUS: - do_callback(); - r = 1; - break; - case FL_PUSH: - take_focus(); - redraw(); - r = 1; - break; - case FL_DND_ENTER: - return 0; - case FL_PASTE: - return 0; - default: - break; - } - - return Fl_Input::handle( m ) | r; - } -}; diff --git a/FL/Fl_Sometimes_Pack.H b/FL/Fl_Sometimes_Pack.H deleted file mode 100644 index d20a035..0000000 --- a/FL/Fl_Sometimes_Pack.H +++ /dev/null @@ -1,76 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2012 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include - -class Fl_Sometimes_Pack : public Fl_Pack -{ - bool _pack; - -public: - - Fl_Sometimes_Pack ( int X, int Y, int W, int H, const char *L=0 ) : Fl_Pack(X,Y,W,H,L) - { - _pack = true; - } - - virtual ~Fl_Sometimes_Pack ( ) - { - } - - void pack ( bool b ) - { - if ( b != _pack ) - redraw(); - - _pack = b; - } - - bool pack ( void ) const - { - return _pack; - } - - virtual void draw ( void ) - { - /* draw_box(); */ - - if ( _pack ) - { - Fl_Pack::draw(); - } - else - { - if ( children() ) - { - for ( int i = 0; i < children(); i++ ) - { - Fl_Widget *o = child( i ); - - o->resize( x(),y(),w(), o->h() ); - } - resize( x(), y(), w(), child(0)->h() ); - } - - Fl_Group::draw(); - } - } -}; diff --git a/FL/Fl_Text_Edit_Window.fl b/FL/Fl_Text_Edit_Window.fl deleted file mode 100644 index 8e95597..0000000 --- a/FL/Fl_Text_Edit_Window.fl +++ /dev/null @@ -1,53 +0,0 @@ -# data file for the Fltk User Interface Designer (fluid) -version 1.0300 -header_name {.H} -code_name {.C} -decl {\#include } {private local -} - -widget_class Fl_Text_Edit_Window {open - xywh {377 295 355 410} type Double resizable - code0 {this->size_range( 0, 0, 400, 400 );} - class Fl_Double_Window modal visible -} { - Fl_Box title_box { - label {} - xywh {5 7 345 28} - } - Fl_Text_Editor text_editor {selected - xywh {5 37 345 341} resizable - code0 {o->buffer( new Fl_Text_Buffer );} - } - Fl_Group {} {open - xywh {5 383 345 27} - } { - Fl_Return_Button return_button { - label {<return>} - callback {hide();} - xywh {250 383 100 25} - } - Fl_Box {} { - label {<empty>} - xywh {5 386 240 19} resizable - code0 {o->labeltype( FL_NO_LABEL );} - } - } -} - -Function {fl_text_edit( const char *title, const char *button_text, const char *initial_text, int W = 355, int H = 410 )} {open C return_type {char *} -} { - code {Fl_Text_Edit_Window tew( 355, 410, title ); - -tew.size( W, H ); -tew.return_button->label( button_text ); -tew.title_box->label( title ); -if ( initial_text ) - tew.text_editor->buffer()->text( initial_text ); - -tew.show(); - -while ( tew.shown() ) - Fl::wait(); - -return strdup( tew.text_editor->buffer()->text() );} {} -} diff --git a/FL/Fl_Value_SliderX.C b/FL/Fl_Value_SliderX.C deleted file mode 100644 index 0e8821f..0000000 --- a/FL/Fl_Value_SliderX.C +++ /dev/null @@ -1,234 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2012 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - - -#include "Fl_Value_SliderX.H" - -#include <FL/Fl.H> -#include <FL/fl_draw.H> -#include <math.h> - -void Fl_Value_SliderX::input_cb(Fl_Widget*, void* v) { - Fl_Value_SliderX& t = *(Fl_Value_SliderX*)v; - double nv; - if ((t.step() - floor(t.step()))>0.0 || t.step() == 0.0) - nv = strtod(t.input.value(), 0); - else - nv = strtol(t.input.value(), 0, 0); - - if (nv != t.value() || t.when() & FL_WHEN_NOT_CHANGED) { - - if ( ! t.soft()) - nv = t.clamp(nv); - t.set_value(nv); - t.set_changed(); - if (t.when()) - { - t.value_damage(); - t.do_callback(); - } - } -} - -void Fl_Value_SliderX::value_damage() { - char buf[128]; - format(buf); - input.value(buf); - input.mark(input.position()); // turn off selection highlight - redraw(); -} - - -Fl_Value_SliderX::~Fl_Value_SliderX ( void ) -{ - if (input.parent() == (Fl_Group *)this) - input.parent(0); // *revert* ctor kludge! -} - -/** - Creates a new Fl_Value_SliderX widget using the given - position, size, and label string. The default boxtype is FL_DOWN_BOX. -*/ -Fl_Value_SliderX::Fl_Value_SliderX(int X, int Y, int W, int H, const char*l) - : Fl_SliderX(X,Y,W,H,l),input(X, Y, W, H, 0) { - step(1,100); - - soft_ = 0; - if (input.parent()) // defeat automatic-add - input.parent()->remove(input); - input.parent((Fl_Group *)this); // kludge! - input.callback(input_cb, this); - input.when(FL_WHEN_ENTER_KEY); - align(FL_ALIGN_LEFT); - value_damage(); - textsize(9); - set_flag(SHORTCUT_LABEL); - -} - -void Fl_Value_SliderX::draw() { - - int sxx = x(), syy = y(), sww = w(), shh = h(); - int bxx = x(), byy = y(), bww = w(), bhh = h(); - if (horizontal()) { - input.resize(x(), y(), 35, h()); - bww = 35; sxx += 35; sww -= 35; - } else { - input.resize(x(), y(), w(), 25 ); - syy += 25; bhh = 25; shh -= 25; - } - if (damage()&FL_DAMAGE_ALL) draw_box(box(),sxx,syy,sww,shh,color()); - Fl_SliderX::draw(sxx+Fl::box_dx(box()), - syy+Fl::box_dy(box()), - sww-Fl::box_dw(box()), - shh-Fl::box_dh(box())); - draw_box(box(),bxx,byy,bww,bhh,color()); - - if (damage()&~FL_DAMAGE_CHILD) input.clear_damage(FL_DAMAGE_ALL); - input.box(box()); - input.color(color(), selection_color()); - Fl_Widget *i = &input; i->draw(); // calls protected input.draw() - input.clear_damage(); -} - -int Fl_Value_SliderX::handle(int event) { - if (event == FL_PUSH && Fl::visible_focus()) { - Fl::focus(this); - redraw(); - } - - int sxx = x(), syy = y(), sww = w(), shh = h(); - if (horizontal()) { - sxx += 35; sww -= 35; - } else { - syy += 25; shh -= 25; - } - - double v; - int delta; - int mx = Fl::event_x_root(); - static int ix, drag; -// input.when(when()); - switch (event) { - case FL_ENTER: - return 1; - case FL_LEAVE: - if ( ! drag ) - fl_cursor( FL_CURSOR_DEFAULT ); - return 1; - case FL_MOVE: - if ( drag || Fl::event_inside( &input ) ) - fl_cursor( FL_CURSOR_WE ); - else - fl_cursor( FL_CURSOR_DEFAULT ); - return 1; - case FL_PUSH: -// if (!step()) goto DEFAULT; - if ( Fl::event_inside(&input) ) - { - input.handle(event); - ix = mx; - drag = Fl::event_button(); - handle_push(); - return 1; - } - goto DEFAULT; - break; - case FL_DRAG: - { - if ( ! drag ) - goto DEFAULT; - - fl_cursor( FL_CURSOR_WE ); - -// if (!step()) goto DEFAULT; - delta = mx-ix; - if (!horizontal()) - delta = -delta; - - if (delta > 5) delta -= 5; - else if (delta < -5) delta += 5; - else delta = 0; - - float S = fabs( maximum() - minimum() ); - - switch (drag) { - case 3: v = previous_value() + ( S * delta * 0.0100f); break; - case 2: v = previous_value() + ( S * delta * 0.0010f); break; - default:v = previous_value() + ( S * delta * 0.0005f); break; - } - - v = round(v); - v = soft()?softclamp(v):clamp(v); - handle_drag(v); - value_damage(); - return 1; - } - case FL_RELEASE: - - if ( ! drag ) - goto DEFAULT; - - // if (!step()) goto DEFAULT; - if (value() != previous_value() || !Fl::event_is_click()) - handle_release(); - - drag = 0; - - fl_cursor( FL_CURSOR_DEFAULT ); - - /* else { */ - /* Fl_Widget_Tracker wp(&input); */ - /* input.handle(FL_PUSH); */ - /* if (wp.exists()) */ - /* input.handle(FL_RELEASE); */ - /* } */ - return 1; - case FL_FOCUS: - return input.take_focus(); - case FL_UNFOCUS: - { - input_cb(&input,this); - return 1; - } - case FL_PASTE: - return 0; - case FL_SHORTCUT: - return input.handle(event); - } - -DEFAULT: - - int r = Fl_SliderX::handle(event, - sxx+Fl::box_dx(box()), - syy+Fl::box_dy(box()), - sww-Fl::box_dw(box()), - shh-Fl::box_dh(box())); - - if ( r ) - { - return r; - } - else - { - input.type(((step() - floor(step()))>0.0 || step() == 0.0) ? FL_FLOAT_INPUT : FL_INT_INPUT); - return input.handle(event); - } -} - diff --git a/FL/Fl_Value_SliderX.H b/FL/Fl_Value_SliderX.H deleted file mode 100644 index 39492b0..0000000 --- a/FL/Fl_Value_SliderX.H +++ /dev/null @@ -1,100 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2009 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#ifndef Fl_Value_SliderX_H -#define Fl_Value_SliderX_H - -#include "Fl_SliderX.H" -#include <FL/Fl_Input.H> - -/** - The Fl_Value_SliderX widget is a Fl_SliderX widget - with a box displaying the current value. - <P ALIGN=CENTER>\image html value_slider.png - \image latex value_slider.png "Fl_Value_SliderX" width=4cm -*/ -class FL_EXPORT Fl_Value_SliderX : public Fl_SliderX { - /* This is the encapsulated Fl_input attribute to which - this class delegates the value font, color and shortcut */ - Fl_Input input; - -private: - char soft_; - static void input_cb(Fl_Widget*,void*); - virtual void value_damage(); // cause damage() due to value() changing - -protected: - void draw(); -public: - int handle(int); - Fl_Value_SliderX(int x,int y,int w,int h, const char *l = 0); - virtual ~Fl_Value_SliderX ( ); - -/** See void Fl_Value_Input::soft(char s) */ - void soft(char s) {soft_ = s;} - /** - If "soft" is turned on, the user is allowed to drag - the value outside the range. If they drag the value to one of - the ends, let go, then grab again and continue to drag, they can - get to any value. The default is true. - */ - char soft() const {return soft_;} - /** - Returns the current shortcut key for the Input. - \see Fl_Value_Input::shortcut(int) - */ - int shortcut() const {return input.shortcut();} - /** - Sets the shortcut key to \p s. Setting this - overrides the use of '&' in the label(). The value is a bitwise - OR of a key and a set of shift flags, for example FL_ALT | 'a' - , FL_ALT | (FL_F + 10), or just 'a'. A value - of 0 disables the shortcut. - - The key can be any value returned by - Fl::event_key(), but will usually be an ASCII letter. Use - a lower-case letter unless you require the shift key to be held down. - - The shift flags can be any set of values accepted by - Fl::event_state(). If the bit is on that shift key must - be pushed. Meta, Alt, Ctrl, and Shift must be off if they are not in - the shift flags (zero for the other bits indicates a "don't care" - setting). - */ - void shortcut(int s) {input.shortcut(s);} - /** Gets the typeface of the text in the value box. */ - Fl_Font textfont() const {return input.textfont();} - /** Sets the typeface of the text in the value box. */ - void textfont(Fl_Font s) {input.textfont(s);} - /** Gets the size of the text in the value box. */ - Fl_Fontsize textsize() const {return input.textsize();} - /** Sets the size of the text in the value box. */ - void textsize(Fl_Fontsize s) {input.textsize(s);} - /** Gets the color of the text in the value box. */ - Fl_Color textcolor() const {return input.textcolor();} - /** Sets the color of the text in the value box.*/ - void textcolor(Fl_Color n) {input.textcolor(n);} - /** Gets the color of the text cursor. The text cursor is black by default. */ - Fl_Color cursor_color() const {return input.cursor_color();} - /** Sets the color of the text cursor. The text cursor is black by default. */ - void cursor_color(Fl_Color n) {input.cursor_color(n);} -}; - -#endif - diff --git a/FL/New_Project_Dialog.fl b/FL/New_Project_Dialog.fl deleted file mode 100644 index 14be033..0000000 --- a/FL/New_Project_Dialog.fl +++ /dev/null @@ -1,132 +0,0 @@ -# data file for the Fltk User Interface Designer (fluid) -version 1.0300 -header_name {.H} -code_name {.C} -comment {// -// Copyright (C) 2008 Jonathan Moore Liles -// -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -// -} {in_source in_header -} - -decl {\#include <stdlib.h>} {private local -} - -decl {\#include <string.h>} {private local -} - -decl {\#include <stdio.h>} {private local -} - -decl {\#include <FL/Fl_File_Chooser.H>} {private local -} - -class New_Project_Dialog {open -} { - Function {New_Project_Dialog()} {open - } { - code {_default_path = 0; -path = 0; -make_window();} {} - } - Function {run()} {open return_type void - } { - code {_directory->value( _default_path ); - -_window->show(); - -while ( _window->shown() ) - Fl::wait();} {} - } - Function {make_window()} {open - } { - Fl_Window _window { - label {New Project} open selected - xywh {743 696 550 105} type Double modal visible - } { - Fl_File_Input _name { - label {Named:} - xywh {75 55 375 35} - } - Fl_Button {} { - label Browse - callback {_directory->value( fl_dir_chooser( "Directory for new project", NULL, 0 ) );} - xywh {455 15 80 35} - } - Fl_Return_Button {} { - label Create - callback {if ( strlen( _directory->value() ) && strlen( _name->value() ) ) -{ - char pat[1024]; - - snprintf( pat, sizeof( pat ), "%s/%s", _directory->value(), _name->value() ); - - path = strdup( pat ); - - _default_path = _directory->value() ? strdup( _directory->value() ) : 0; - - //if ( ! Project::create( pat, _template->text( _template->value() ) ) ) - // fl_alert( "Error creating project!" ); - - _window->hide(); -}} - xywh {455 55 80 35} - } - Fl_File_Input _directory { - label {Where:} - callback {if ( ! fl_filename_isdir( o->value() ) ) -{ - fl_alert( "Must be a directory" ); - o->value( "" ); - return; -} - -// write_line( user_config_dir, "default_path", o->value() );} - xywh {75 15 375 35} - code0 {\#include <FL/filename.H>} - code1 {char *v = NULL;} - code2 {// read_line( user_config_dir, "default_path", &v );} - code3 {o->value( v );} - } - } - } - decl {char *path;} {public local - } - decl {char *_default_path} {private local - } - Function {default_path( char *s )} {open return_type void - } { - code {_default_path = s;} {} - } - Function {default_path()} {open return_type {char *} - } { - code {return _default_path;} {} - } -} - -Function {new_project_chooser( char **default_path)} {open C return_type {char*} -} { - code {New_Project_Dialog nsd; - -nsd.default_path( *default_path ); - -nsd.run(); - -if ( nsd.default_path() ) - *default_path = nsd.default_path(); - -return nsd.path;} {} -} diff --git a/FL/event_name.C b/FL/event_name.C deleted file mode 100644 index d53ab98..0000000 --- a/FL/event_name.C +++ /dev/null @@ -1,52 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -static const char *event_names[] = -{ - "FL_NO_EVENT", - "FL_PUSH", - "FL_RELEASE", - "FL_ENTER", - "FL_LEAVE", - "FL_DRAG", - "FL_FOCUS", - "FL_UNFOCUS", - "FL_KEYDOWN", - "FL_KEYUP", - "FL_CLOSE", - "FL_MOVE", - "FL_SHORTCUT", - "FL_DEACTIVATE", - "FL_ACTIVATE", - "FL_HIDE", - "FL_SHOW", - "FL_PASTE", - "FL_SELECTIONCLEAR", - "FL_MOUSEWHEEL", - "FL_DND_ENTER", - "FL_DND_DRAG", - "FL_DND_LEAVE", - "FL_DND_RELEASE", -}; - -const char * -event_name ( int m ) -{ - return event_names[ m ]; -} diff --git a/FL/event_name.H b/FL/event_name.H deleted file mode 100644 index 28d58d6..0000000 --- a/FL/event_name.H +++ /dev/null @@ -1,20 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -const char *event_name ( int m ); diff --git a/FL/focus_frame.C b/FL/focus_frame.C deleted file mode 100644 index 0cabb7e..0000000 --- a/FL/focus_frame.C +++ /dev/null @@ -1,103 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2012 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include <FL/Fl.H> -#include <FL/fl_draw.H> - -void -draw_focus_frame ( int x, int y, int w, int h, Fl_Color c ) -{ - fl_push_clip( x, y, w, h ); - -// fl_color( fl_color_average( FL_GRAY, c, 0.50 ) ); - - /* fl_color( fl_color_add_alpha( c, 100 ) ); */ - - /* fl_line_style( FL_DASH, 2 ); */ - - /* fl_rect( x, y, w, h ); */ - - fl_line_style( FL_SOLID, 3 ); - - fl_color( c ); - - int l = 15; - - fl_line( x, y, x + l, y ); - fl_line( x, y + l, x, y ); - - fl_line( x + w - 1, y, x + w - l - 1, y ); - fl_line( x + w - 1, y, x + w - 1, y + l - 1 ); - - fl_line( x, y + h - 1, x, y + h - l - 1); - fl_line( x, y + h - 1, x + l, y + h - 1 ); - - fl_line( x + w - 1, y + h - 1, x + w - 1, y + h - l - 1 ); - fl_line( x + w - 1, y + h - 1, x + w - l, y + h - 1 ); - - fl_line_style( FL_SOLID, 0 ); - - fl_pop_clip(); -} - -void -draw_selection_frame ( int x, int y, int w, int h, Fl_Color c ) -{ - fl_push_clip( x, y, w, h ); - - fl_color( fl_color_average( FL_GRAY, c, 0.50 ) ); - -/// fl_color( fl_color_add_alpha( c, 100 ) ); - - fl_line_style( FL_DASH, 2 ); - - fl_rect( x, y, w, h ); - - fl_line_style( FL_SOLID, 3 ); - - fl_color( c ); - - int l = 15; - - fl_line( x, y, x + l, y ); - fl_line( x, y + l, x, y ); - - fl_line( x + w - 1, y, x + w - l - 1, y ); - fl_line( x + w - 1, y, x + w - 1, y + l - 1 ); - - fl_line( x, y + h - 1, x, y + h - l - 1); - fl_line( x, y + h - 1, x + l, y + h - 1 ); - - fl_line( x + w - 1, y + h - 1, x + w - 1, y + h - l - 1 ); - fl_line( x + w - 1, y + h - 1, x + w - l, y + h - 1 ); - - fl_line_style( FL_SOLID, 0 ); - - fl_pop_clip(); -} - -bool -focused_r ( Fl_Widget *w ) -{ - for ( Fl_Widget *p = Fl::focus(); p; p = p->parent() ) - if ( p == w ) - return true; - - return false; -} diff --git a/FL/focus_frame.H b/FL/focus_frame.H deleted file mode 100644 index e48e540..0000000 --- a/FL/focus_frame.H +++ /dev/null @@ -1,22 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2012 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -void draw_focus_frame ( int x, int y, int w, int h, Fl_Color c ); -void draw_selection_frame ( int x, int y, int w, int h, Fl_Color c ); -bool focused_r ( Fl_Widget *w ); diff --git a/FL/img_io_input_connector_10x10_png.h b/FL/img_io_input_connector_10x10_png.h deleted file mode 100644 index c58f485..0000000 --- a/FL/img_io_input_connector_10x10_png.h +++ /dev/null @@ -1,61 +0,0 @@ -/*******************************************************************************/ -/* Copyright (C) 2013 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -static unsigned char img_io_input_connector_10x10_png[] = { - 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, - 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x0a, - 0x08, 0x06, 0x00, 0x00, 0x00, 0x8d, 0x32, 0xcf, 0xbd, 0x00, 0x00, 0x00, - 0x04, 0x73, 0x42, 0x49, 0x54, 0x08, 0x08, 0x08, 0x08, 0x7c, 0x08, 0x64, - 0x88, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x00, - 0x9e, 0x00, 0x00, 0x00, 0x9e, 0x01, 0x22, 0xcb, 0xc6, 0x03, 0x00, 0x00, - 0x00, 0x19, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, - 0x72, 0x65, 0x00, 0x77, 0x77, 0x77, 0x2e, 0x69, 0x6e, 0x6b, 0x73, 0x63, - 0x61, 0x70, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x9b, 0xee, 0x3c, 0x1a, 0x00, - 0x00, 0x01, 0x51, 0x49, 0x44, 0x41, 0x54, 0x18, 0x95, 0x3d, 0xd0, 0xb1, - 0x6a, 0xdb, 0x40, 0x1c, 0xc0, 0xe1, 0x9f, 0x72, 0x7f, 0xcc, 0x21, 0xbc, - 0xc5, 0x87, 0xb0, 0xb7, 0x18, 0x6c, 0xa8, 0x49, 0x37, 0x1b, 0x8c, 0x26, - 0xdb, 0x19, 0xfb, 0x0e, 0x7e, 0x82, 0xee, 0x21, 0x53, 0xe9, 0x14, 0x42, - 0x37, 0x37, 0x7b, 0x9e, 0xa2, 0x63, 0x07, 0x6b, 0xd6, 0xec, 0xc5, 0xe0, - 0x80, 0xc1, 0x08, 0xac, 0x66, 0xf0, 0xa0, 0xb3, 0x90, 0x4e, 0xa7, 0x4e, - 0xed, 0xf6, 0xcd, 0x5f, 0xd0, 0xb6, 0x2d, 0x00, 0xfb, 0xfd, 0xfe, 0x4b, - 0x59, 0x96, 0x8f, 0x4d, 0xd3, 0xdc, 0x01, 0x4e, 0x44, 0xf2, 0x30, 0x0c, - 0x9f, 0x86, 0xc3, 0xe1, 0x6f, 0x80, 0xa0, 0x6d, 0x5b, 0x76, 0xbb, 0xdd, - 0xb7, 0xf3, 0xf9, 0xfc, 0x35, 0x4d, 0xd3, 0x5e, 0x96, 0x65, 0x78, 0xef, - 0x19, 0x0c, 0x06, 0x4c, 0xa7, 0xd3, 0x8f, 0x28, 0x8a, 0x7e, 0x4e, 0x26, - 0x93, 0xef, 0x6a, 0xbd, 0x5e, 0x3f, 0x9c, 0x4e, 0xa7, 0x1f, 0x49, 0x92, - 0xf4, 0x2e, 0x97, 0x0b, 0xdb, 0xed, 0x96, 0xe3, 0xf1, 0x88, 0x31, 0x86, - 0x2c, 0xcb, 0x42, 0x63, 0xcc, 0x7d, 0x5d, 0xd7, 0xbb, 0x1b, 0x6b, 0xed, - 0x73, 0x9a, 0xa6, 0xb7, 0x00, 0x4a, 0x29, 0x44, 0x04, 0x11, 0x41, 0x29, - 0x05, 0x40, 0x9a, 0xa6, 0xbd, 0xb2, 0x2c, 0x1f, 0xc5, 0x39, 0x67, 0xac, - 0xb5, 0x78, 0xef, 0x09, 0x82, 0x80, 0xd5, 0x6a, 0x45, 0x10, 0x04, 0xb4, - 0x6d, 0x8b, 0x73, 0x8e, 0xa2, 0x28, 0x68, 0x9a, 0xe6, 0x4e, 0x00, 0xf1, - 0xde, 0x93, 0x24, 0x09, 0x45, 0x51, 0x10, 0xc7, 0x31, 0x22, 0x42, 0x92, - 0x24, 0x68, 0xad, 0x59, 0x2e, 0x97, 0x00, 0xee, 0x46, 0x29, 0xf5, 0xde, - 0xed, 0x76, 0xb9, 0x5e, 0xaf, 0x78, 0xef, 0xa9, 0xaa, 0x8a, 0xaa, 0xaa, - 0xfe, 0x5b, 0x6b, 0x8d, 0x88, 0xe4, 0xa2, 0xb5, 0x7e, 0x99, 0xcd, 0x66, - 0x9f, 0xf2, 0x3c, 0xef, 0x59, 0x6b, 0x31, 0xc6, 0x00, 0x10, 0xc7, 0x31, - 0x9d, 0x4e, 0x87, 0xf9, 0x7c, 0xfe, 0x11, 0x86, 0xe1, 0x93, 0xda, 0x6c, - 0x36, 0x7b, 0x6b, 0x6d, 0xd8, 0xef, 0xf7, 0x3f, 0x5b, 0x6b, 0xc3, 0xba, - 0xae, 0x01, 0x30, 0xc6, 0xb0, 0x58, 0x2c, 0xfe, 0x44, 0x51, 0xf4, 0x3a, - 0x1e, 0x8f, 0xdf, 0x82, 0x7f, 0xe1, 0x87, 0xc3, 0xe1, 0xc1, 0x5a, 0xfb, - 0xec, 0x9c, 0x33, 0x80, 0x28, 0xa5, 0xde, 0xb5, 0xd6, 0x2f, 0xa3, 0xd1, - 0xe8, 0x17, 0xc0, 0x5f, 0xd1, 0x17, 0xa6, 0x12, 0x83, 0xc3, 0x30, 0x9b, - 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82 - -}; -static unsigned int img_io_input_connector_10x10_png_len = 468; diff --git a/FL/img_io_output_connector_10x10_png.h b/FL/img_io_output_connector_10x10_png.h deleted file mode 100644 index 1a0503f..0000000 --- a/FL/img_io_output_connector_10x10_png.h +++ /dev/null @@ -1,63 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2013 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -static unsigned char img_io_output_connector_10x10_png[] = { -0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, - 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x00, 0x0a, - 0x08, 0x06, 0x00, 0x00, 0x00, 0x8d, 0x32, 0xcf, 0xbd, 0x00, 0x00, 0x00, - 0x04, 0x73, 0x42, 0x49, 0x54, 0x08, 0x08, 0x08, 0x08, 0x7c, 0x08, 0x64, - 0x88, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, 0x00, - 0x9e, 0x00, 0x00, 0x00, 0x9e, 0x01, 0x22, 0xcb, 0xc6, 0x03, 0x00, 0x00, - 0x00, 0x19, 0x74, 0x45, 0x58, 0x74, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, - 0x72, 0x65, 0x00, 0x77, 0x77, 0x77, 0x2e, 0x69, 0x6e, 0x6b, 0x73, 0x63, - 0x61, 0x70, 0x65, 0x2e, 0x6f, 0x72, 0x67, 0x9b, 0xee, 0x3c, 0x1a, 0x00, - 0x00, 0x01, 0x61, 0x49, 0x44, 0x41, 0x54, 0x18, 0x95, 0x35, 0xd0, 0xbf, - 0x6a, 0xc2, 0x40, 0x00, 0x07, 0xe0, 0xdf, 0xfd, 0x89, 0xe4, 0x32, 0xc4, - 0x40, 0xed, 0x22, 0x9c, 0x50, 0x24, 0x99, 0x1c, 0xdc, 0x33, 0x38, 0x64, - 0xec, 0x03, 0x14, 0x9c, 0xd4, 0xb9, 0x7b, 0xe9, 0x54, 0x3a, 0x95, 0xd2, - 0xb1, 0x1d, 0x74, 0xeb, 0xe4, 0xec, 0xd2, 0x31, 0x01, 0x9f, 0x40, 0x04, - 0xe9, 0x10, 0x85, 0x06, 0x1c, 0x6d, 0x40, 0x34, 0xe4, 0xd0, 0x0b, 0x5e, - 0xa7, 0x7e, 0x8f, 0xf0, 0x11, 0x63, 0x0c, 0x00, 0x60, 0xbd, 0x5e, 0xdf, - 0x96, 0x65, 0xf9, 0xa0, 0xb5, 0xbe, 0x21, 0x84, 0x54, 0x9c, 0xf3, 0x9d, - 0x10, 0xe2, 0x31, 0x08, 0x82, 0x18, 0x00, 0x88, 0x31, 0x06, 0xab, 0xd5, - 0xea, 0x69, 0xbb, 0xdd, 0xde, 0x27, 0x49, 0xd2, 0xb0, 0x6d, 0x1b, 0x8c, - 0x31, 0x14, 0x45, 0x81, 0x28, 0x8a, 0x72, 0x29, 0xe5, 0x7b, 0xa7, 0xd3, - 0x79, 0x66, 0xfd, 0x7e, 0x3f, 0xca, 0xb2, 0xec, 0x6d, 0x36, 0x9b, 0x35, - 0x84, 0x10, 0x18, 0x8d, 0x46, 0xe8, 0x76, 0xbb, 0x58, 0x2e, 0x97, 0x58, - 0x2c, 0x16, 0x4e, 0xb3, 0xd9, 0xec, 0x00, 0xf8, 0xa6, 0x4a, 0xa9, 0x97, - 0x38, 0x8e, 0xaf, 0x00, 0x40, 0x6b, 0x8d, 0xf3, 0xf9, 0x8c, 0xd3, 0xe9, - 0x04, 0xad, 0x35, 0x00, 0x20, 0x49, 0x92, 0x46, 0x59, 0x96, 0x0f, 0xbc, - 0xaa, 0xaa, 0xeb, 0xe3, 0xf1, 0x08, 0xc6, 0x18, 0x2e, 0x97, 0x0b, 0xc6, - 0xe3, 0x31, 0x8c, 0x31, 0xa0, 0x94, 0xa2, 0x56, 0xab, 0xe1, 0x70, 0x38, - 0x40, 0x6b, 0x7d, 0xc3, 0x8d, 0x31, 0x9c, 0x52, 0x8a, 0xe1, 0x70, 0x08, - 0xcf, 0xf3, 0x30, 0x9d, 0x4e, 0xa1, 0xb5, 0xc6, 0x60, 0x30, 0x40, 0x51, - 0x14, 0x98, 0x4c, 0x26, 0x20, 0x84, 0x54, 0xd4, 0xb2, 0xac, 0x1f, 0xd7, - 0x75, 0xe1, 0xba, 0x2e, 0x38, 0xe7, 0x70, 0x1c, 0x07, 0x42, 0x08, 0x30, - 0xc6, 0x60, 0xdb, 0x36, 0x3c, 0xcf, 0x03, 0xe7, 0x7c, 0x47, 0xd2, 0x34, - 0xbd, 0xdd, 0x6c, 0x36, 0x9f, 0xf3, 0xf9, 0xbc, 0x51, 0xaf, 0xd7, 0x91, - 0x65, 0x19, 0x00, 0xa0, 0xd5, 0x6a, 0x41, 0x29, 0x85, 0x30, 0x0c, 0xf3, - 0x76, 0xbb, 0x7d, 0x47, 0x7d, 0xdf, 0xff, 0x92, 0x52, 0x7e, 0xf4, 0x7a, - 0xbd, 0x3c, 0xcf, 0x73, 0xfc, 0xdb, 0xef, 0xf7, 0x08, 0xc3, 0xf0, 0x57, - 0x4a, 0xf9, 0x1e, 0x04, 0x41, 0x4c, 0xfe, 0xc3, 0xd3, 0x34, 0x8d, 0x94, - 0x52, 0x2f, 0x55, 0x55, 0x5d, 0x1b, 0x63, 0xb8, 0x65, 0x59, 0x3f, 0x8e, - 0xe3, 0xbc, 0xfa, 0xbe, 0xff, 0x05, 0x00, 0x7f, 0xb0, 0xa3, 0x9e, 0x20, - 0x9c, 0xde, 0x99, 0x8e, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, - 0xae, 0x42, 0x60, 0x82 -}; -static unsigned int img_io_output_connector_10x10_png_len = 484; diff --git a/FL/lib b/FL/lib deleted file mode 120000 index dc598c5..0000000 --- a/FL/lib +++ /dev/null @@ -1 +0,0 @@ -../lib \ No newline at end of file diff --git a/FL/menu_popup.C b/FL/menu_popup.C deleted file mode 100644 index afe3b95..0000000 --- a/FL/menu_popup.C +++ /dev/null @@ -1,61 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include <FL/Fl.H> -#include <FL/Fl_Menu_.H> -#include <FL/Fl_Menu_Item.H> - -/** popup menu and execute callback */ -bool -menu_popup ( Fl_Menu_ *m, int X, int Y ) -{ - const Fl_Menu_Item *r = m->menu()->popup( X, Y, m->label() ); - - if ( r ) - { - m->value( r ); - if ( r->callback() ) - r->do_callback( static_cast<Fl_Widget*>(m) ); - else if ( m->callback() ) - m->do_callback( static_cast<Fl_Widget*>(m), m->user_data() ); - - return true; - } - - return false; -} - -/** popup menu and execute callback */ -bool -menu_popup ( Fl_Menu_ *m ) -{ - return menu_popup( m, Fl::event_x(), Fl::event_y() ); -} - -/** set a single callback for all items in menu. */ -void -menu_set_callback( Fl_Menu_Item *menu, void (*callback)( Fl_Widget *, void * ), void *user_data ) -{ - for ( int i = menu->size(); i--; ) - if ( menu[i].label() && ! menu[i].submenu() ) - { - menu[i].callback( callback ); - menu[i].user_data( user_data ); - } -} diff --git a/FL/menu_popup.H b/FL/menu_popup.H deleted file mode 100644 index 67c5b78..0000000 --- a/FL/menu_popup.H +++ /dev/null @@ -1,26 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -class Fl_Menu_; -struct Fl_Menu_Item; -class Fl_Widget; - -bool menu_popup ( Fl_Menu_ *m, int X, int Y ); -bool menu_popup ( Fl_Menu_ *m ); -void menu_set_callback ( Fl_Menu_Item *menu, void (*callback)( Fl_Widget *, void * ), void *user_data ); diff --git a/FL/test_press.C b/FL/test_press.C deleted file mode 100644 index 0a79238..0000000 --- a/FL/test_press.C +++ /dev/null @@ -1,40 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -/* Fl::test_shortcut() is broken for use in FL_PUSH handlers etc, - * because it relies on Fl::event_text(), which isn't cleared as it - * should be--and there's no official way to clear it. Therefore, we - * provide a test_press() function instead, which, unlike - * test_shortcut(), does not treat a missing FL_SHIFT as "don't care". */ - -#include <FL/Fl.H> - -int -test_press ( unsigned long e ) -{ - if ( Fl::event_text()[0] ) - ((char *)Fl::event_text())[0] = '\0'; - - const int mod_mask = FL_SHIFT | FL_ALT | FL_CTRL; - - if ( ( e & mod_mask ) != ( Fl::event_state() & mod_mask ) ) - return false; - else - return Fl::test_shortcut( e ); -} diff --git a/FL/test_press.H b/FL/test_press.H deleted file mode 100644 index 3b0fe55..0000000 --- a/FL/test_press.H +++ /dev/null @@ -1,20 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -int test_press ( unsigned long e ); diff --git a/FL/util/ntk-perf.C b/FL/util/ntk-perf.C deleted file mode 100644 index ca32236..0000000 --- a/FL/util/ntk-perf.C +++ /dev/null @@ -1,163 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2012 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include <FL/Fl.H> -#include <FL/Fl_Double_Window.H> -#include <FL/Fl_Single_Window.H> -#include <FL/Fl_Pack.H> -#include <FL/Fl_Choice.H> -#include <FL/fl_draw.H> -#include <sys/time.h> -#include <stdio.h> - -static Fl_Boxtype boxtype = FL_UP_BOX; - -#include <unistd.h> - -unsigned long long tv_to_ts ( timeval *tv ) -{ - return tv->tv_sec * 1e6 + tv->tv_usec; -} - -unsigned long long get_ts ( void ) -{ - struct timeval then; - gettimeofday( &then, NULL ); - - return tv_to_ts( &then ); -} - -class PerfTest : public Fl_Widget -{ -public: - - PerfTest ( int X, int Y, int W, int H, const char *L=0 ) : Fl_Widget( X, Y, W, H, L ) - { - align(FL_ALIGN_TOP | FL_ALIGN_RIGHT |FL_ALIGN_INSIDE); - box(FL_UP_BOX); - labelcolor( FL_WHITE ); - use_cairo = false; - } - - - bool use_cairo; - - void draw ( void ) - { - if ( use_cairo ) - fl_push_use_cairo(true); - - fl_rectf( x(), y(), w(), h(), FL_BLACK ); - - unsigned long long then = get_ts(); - - fl_push_clip( x(), y(), w(), h() ); - - int count = 400; - - /* draw stuff */ - int i = 0; - for ( ; i < count; ++i ) - fl_draw_box( boxtype, x(), y(), w(), h(), fl_lighter( FL_BLACK ) ); - - fl_pop_clip(); - - unsigned long long now = get_ts(); - - double elapsedms = (now - then) / 1000.0; - - static char text[256]; - sprintf( text, "Drew %i boxes in in %fms", i, elapsedms ); - - fl_color( FL_RED ); - fl_draw( text, x(), y(), w(), h(), FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); - - draw_label(); - - if ( use_cairo ) - fl_pop_use_cairo(); - } -}; - - -void -boxtype_cb ( Fl_Widget *w, void *v ) -{ - const char *picked = ((Fl_Choice*)w)->mvalue()->label(); - - if ( !strcmp( picked, "UP_BOX" ) ) - boxtype = FL_UP_BOX; - else if ( !strcmp( picked, "FLAT_BOX" ) ) - boxtype = FL_FLAT_BOX; - else if ( !strcmp( picked, "ROUNDED_BOX" ) ) - boxtype = FL_ROUNDED_BOX; - else if ( !strcmp( picked, "OVAL_BOX" ) ) - boxtype = FL_OVAL_BOX; - - w->window()->redraw(); -} - -int -main ( int argc, char **argv ) -{ - { - Fl_Single_Window *w = new Fl_Single_Window( 800, 600 ); - - { Fl_Choice *o = new Fl_Choice( 0, 0, 200, 24, "Boxtype" ); - o->align( FL_ALIGN_RIGHT ); - - o->callback( boxtype_cb, NULL ); - - o->add( "UP_BOX" ); - o->add( "FLAT_BOX" ); - o->add( "ROUNDED_BOX" ); - o->add( "OVAL_BOX" ); - } - - { - Fl_Pack *o = new Fl_Pack( 0, 24, 800, 600 - 24 ); - o->type( 0 ); - - { - PerfTest *o = new PerfTest( 0,0, 800, 400, "Xlib" ); - } - - { - PerfTest *o = new PerfTest( 0,0, 800, 400, "Cairo" ); - o->use_cairo = true; - } - - o->end(); - } - - w->end(); - w->show(); - } - - /* { */ - /* Fl_Single_Window *w = new Fl_Single_Window( 800, 600 ); */ - - /* PerfTest *o = new PerfTest( 0,0, 800, 600 ); */ - - /* w->end(); */ - /* w->show(); */ - /* } */ - - Fl::run(); -} diff --git a/FL/wscript b/FL/wscript deleted file mode 100644 index a4056c9..0000000 --- a/FL/wscript +++ /dev/null @@ -1,29 +0,0 @@ -#!/usr/bin/env python - -def options(opt): - pass - -def configure(conf): - pass - -def build(bld): - bld.stlib( - source = -''' -About_Dialog.fl -Fl_Menu_Settings.C -Fl_Scalepack.C -Fl_Text_Edit_Window.fl -Fl_Value_SliderX.C -Fl_DialX.C -Fl_SliderX.C -New_Project_Dialog.fl -event_name.C -menu_popup.C -test_press.C -focus_frame.C -''', - includes = '.', - export_incdirs = [ '.' 'FL' ], - uselib = 'PTHREAD NTK', - target = 'fl_widgets') diff --git a/README.build b/README.md similarity index 100% rename from README.build rename to README.md diff --git a/mixer/doc/MANUAL.html b/mixer/doc/MANUAL.html deleted file mode 100644 index 1c554a4..0000000 --- a/mixer/doc/MANUAL.html +++ /dev/null @@ -1,515 +0,0 @@ -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html><head> -<meta name="generator" content="Generated by MUP v3.5"> -<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> -<link type="text/css" rel="stylesheet" href="mup.css"> -<title>Non Mixer User Manual - - - -
-

Non Mixer User Manual

-

-
-Jonathan Moore Liles <male@tuxfamily.org>
-
- -

-
- -

1. Non Mixer User Manual

-
- - - -
-Fig. 1.1. Mixer -
fig. 1.1
-

-The Non-Mixer is a stand-alone audio mixer, utilizing JACK as an audio subsystem. At the time of writing, the architecture of Non-Mixer is unique. By making the mixer stand-alone, concepts such as busses, sends, and inserts are eliminated, as the same goals can be achieved by simply adding more strips to the mixer. -

-

-Start by creating a new project (menu item Project/New). -

-
- - - -
-Fig. 1.2. New Project -
fig. 1.2
-

-After the project has been created. Hit a or choose Mixer/Add Strip from the menu to add a new strip to the mixer. -

-

1.1. Mixer Groups

-
- -
fig.
-

-Groups serve several purposes. Firstly, they allow for some organization of strips. Groups also allow parallel relationships of mixer strips to be made explicit. This has important performance implications in JACK2. Non Mixer supports an unlimited number of groups, each of which can contain an unlimited number of mixer strips. -

-

1.1.1. How to Choose Groupings

-

- All strips in a group should be completely parallel with no feedback loop connections. A typical group might be named 'Input' and contain all input strips (strips that accept input from Non Timeline and have outputs all connecting to some master bus). -

-

-To put it another way, if you have 100 inputs strips with identical output configurations (e.g. stereo or B-Format), that all connect to a master bus, then you have a candidate for a group. -

-

1.1.2. Considering JACK Overhead

-

-JACK provides immense flexibility. But, as in most situations, that flexibility comes with a cost. In JACK the cost is a context switch per client. This applies even for many clients which belong to the same process, as in Non Mixer. Various factors go into determining the price of a context switch on any given system. It's not very expensive, but it does add up. It becomes problematic in sessions involving many clients (think 100s), each of which having a small DSP load (often smaller than the cost of JACK's context context switch). JACK could be smart enough to recognize that some clients belong to the same process and could be executed serially without requiring a context switch, but at the time of writing neither JACK1 nor JACK2's scheduling is that smart. -

-

-If you're mixing a normal song (couple of dozen tracks) at low latency, this overhead will probably account for less than 1% of the total DSP load. If you're mixing an entire orchestra at ultra-low latency, then it might account for a quarter or more of the total DSP load. -

-

-Groups mitigate this cost by reducing the number of JACK clients required for a mix. Strips in a group will execute serially without context switches or thread synchronization--reducing the total JACK overhead. However, if you have several groups, then they may all by run in parallel by JACK2. -

-

-

-To illustrate this point here are some figures from an actual song session including the whole Non suite plus a sampler, a synth and an ambisonics convolution reverb with a total of 13 strips in 4 groups in different configurations on the same system. -

-

-JACK's DSP load figures are interpreted thus: if at a 2.7ms software latency setting the average time a proces cycle takes to complete is 2.7ms, then the DSP load is 100%. The usable ceiling on DSP load is 80%. This is true for both JACK1 and JACK2. The difference is that JACK2 may use all available CPU cores to execute the graph (if there are enough clients in parallel signal flow). -

-

-32-bit Intel Core2 Duo @1.6Ghz -r 48000 -p 256 -n 2 (5.3ms) -

-
- - - - - -
JACK VerGroupsDSP Load
JACK1N39%
JACK1Y27%
JACK2N24%
JACK2Y31%
-

-AMD FX-8350 @ 4.2Ghz 64-bit -r 48000 -p 256 -n 2 (5.3ms) -

-
- - - - - -
JACK VerGroupsDSP Load
JACK1N28%
JACK1Y12%
JACK2N12%
JACK2Y11%
-

-AMD FX-8350 @ 4.2Ghz 64-bit -r 48000 -p 128 -n 2 (2.7ms) -

-
- - - - - -
JACK VerGroupsDSP Load
JACK1N29%
JACK1Y17%
JACK2N17%
JACK2Y17%
-

-AMD FX-8350 @ 4.2Ghz 64-bit -r 48000 -p 32 -n 2 (0.7ms) -

-
- - - - - -
JACK VerGroupsDSP Load
JACK1Nx
JACK1Yx
JACK2N43%
JACK2Y41%
-

-As you can see, for multiprocessor systems, JACK2 clearly has an advantage even without grouping. -

-

-Of course, results will vary depending on the system and the mix. On the dual core system, performance actually degraded with JACK2 when using groups--this is because the number of parallel flows that JACK2 detected was reduced and the second core was being under utilized. Similarly, the performance of the 8-core AMD system doesn't seem that great even in the ungrouped mode--this is because the DSP load of each individual client is around the same as the cost of the context switching. It's a wash either way (if each strip had more or more complex modules on it, then the ungrouped mode would probably perform better). Since JACK1 cannot take advantage of more than 1 CPU core, there is no benefit to parallelism and grouped mode always outperforms ungrouped mode. -

-

-So, for maximum capacity the combination of a multicore CPU with JACK2 and mixer groups is best. -

-

1.1.3. Creating a New Group

-

-Groups can be created by selecting the group dropdown on any mixer strip and choosing 'New Group'. A window will popup asking for a group name. Group names must be unique. The group will then be created and the selected strip added to it. -

-

1.1.4. Adding a Strip to an Existing Group

-

-To add a strip to an existing group, simply select a group name from the group dropdown on the strip. -

-

1.1.5. Removing a Strip from a Group

-

- Select '---' from the group dropdown. The strip will be removed from the group and will run in an independent JACK client. -

-

1.1.6. Removing a Group

-

-Groups are destroyed automatically as soon as they contain zero strips. -

-

1.1.7. Monitoring Group DSP Load

-

-Above the grop dropdown on each strip is a DSP load meter for the selected group. For ungrouped strips or strips which are the only one in their group, this is simply the DSP load of the single strip. -

-

-If DSP usage goes up when strips are fed silence, then you're probably running a plugin which has denormal issues. -

-

1.2. Mixer Strips

-
- - - -
-Fig. 1.3. Mixer Strip -
fig. 1.3
-

-Each mixer strip has a name and color, each of which may be defined by the user. Names, but not colors, must be unique. In addition, each strip has controls to move it left or right (the arrows) in the display and to remove it entirely (the 'X'). -

-

-Strips start out in narrow mode, with the fader view enabled. Click the desired button to toggle the mode or view. -

-

-

-The fader view comprises a large gain control and digital peak meter indicator. These are automatically connected to the default gain and meter modules of the strip's signal chain. -

-

-To see how an audio signal traveling through this strip will be processed, switch to its signal view. -

-

1.2.1. Navigation

-

-A strip is focused when you click on it. Focus can be moved among strips with the Tab and Shift-Tab keys. -

-

1.2.2. Control

-

-The focused strip can be moved in the display order via the [ and ] keys. Delete removes a strip (with confirmation dialog). n and w set the focused strip's width to narrow or wide, respectively, and f and s switch between fader and signal views. The strip's context menu can be invoked without the mouse by hitting the Menu key (assuming your keyboard has one). -

-

1.2.3. Signal Chain

-

-The signal chain view of a mixer strip provides a way to view and manipulate the signal processing of a mixer strip. -

-

1.2.3.1. Modules

-
- - - -
-Fig. 1.4. Modules -
fig. 1.4
-

-All signal processing in Non Mixer occurs in Modules. Modules are signal processing abstractions providing ports for audio and control I/O and, in addition, some simple user interface. Sink and source modules carry audio out of and into JACK. -

-

-Modules are displayed as named blocks. Some modules (e.g. the Meter module) may have additional GUI components. -

-

-Each module has zero or more audio I/O ports and zero or more control ports. Audio routing between modules is handled automatically. Modules with mono audio configurations (one channel in, one channel out) can be automatically adjusted to support any number of discrete channels. Modules with more (related) channels, however, introduce restrictions on the order in which modules can be chained. -

-

-An indicator in the upper left-hand corner of each module block indicates whether the module has any parameters bound to controls. -

-

-Non Mixer has several built-in modules. They are: -

-
-
JACK
-
Performs JACK I/O
-
Gain
-
Applies gain in dB
-
Meter
-
Digital Peak Meter
-
Mono Pan
-
Performs intensity panning of a mono signal into a stereo signal.
-
Aux
-
Provides auxiliary outputs
-
Spatializer
-
Provides advanced Ambisonics spatialization with distance simulation.
-
Plugin
-
Hosts a LADSPA plugin
-
-
1.2.3.1.1. OSC Control
-

-The input parameters of all modules are controllable via OSC, regardless of whether the parameter is set as controllable. -

-

-The format of the automatically generated OSC path names is as follows: -

-
-
-/strip/[STRIP_NAME]/[MODULE_NAME]/[PARAMETER_NAME]
-
-

-The UDP port that the OSC server binds to can be set by providing the --osc-port command-line option. Without this option, a random port will be bound automatically (the exact OSC URL will always be printed to the console as a line beginning with "OSC: "). -

-

-The default path accepts a float value between 0.0 and 1.0 (a Control Voltage like signal) which will be automatically scaled to the allowable range of the control. -

-

-A path ending in /unscaled is also available, which accepts exact values, which will be clamped to the allowable range. For example: -

-
-
-/strip/[STRIP_NAME]/[MODULE_NAME]/[PARAMETER_NAME]/unscaled
-
-

-If same module/plugin is used twice in a signal chain (e.g. multiple Gain stages), then a position dependent sequence number will be appended to the module name. For example, a path might look like the following: -

-
-
-/strip/Foo/Gain.1/Gain_(dB)
-
-

-For the second instance of the Gain module on the strip named 'Foo'. -

-

-There's a possibility to get exact OSC path for module controls. For this you need to switch strip mode to 'Signl', right click a module, for example 'Gain', and open 'Edit parameters' dialog. OSC path will be shown in a statusbar of the main window when you hover a parameter. -

-

-Non-DAW accesses these same signals via a more advanced signal routing layer on top of OSC. Any module parameter is easily controlled via Control Sequences in Non-DAW without the need to specify an OSC URL. -

-
1.2.3.1.2. MIDI Control
-

-Automatic translation between MIDI and Non's OSC Signals can be achieved by adding the headless program non-midi-mapper (included in the Non-Mixer distribution) to an NSM session. -

-

-Non-MIDI-Mapper provides JACK MIDI input and output ports that can be connected to a suitable controller device. -

-

-In Non-Mixer, the Remote Control/Start Learning menu item enters learning mode in which Non Mixer can be taught which controls to associated with which MIDI messages by clicking a control in Non-Mixer and moving the desired control on the MIDI device. Remote Control/End Learning ends the learning session. -

-

-The mapping will be saved with the NSM session. -

-
1.2.3.1.3. Manipulation
-

-Left-clicking on a module brings up a Module Parameter Editor window for the selected module. -

-

-Right-clicking on a module brings up a context menu allowing you manipulate the module, as well as to pick a new module to insert before the selected one in the chain. -

-

-Middle-clicking on a module toggles its activation state (the audio signal will bypass inactive modules). -

-

-Control+Right-clicking on a module causes it to be removed from the chain (modules added by default cannot be removed). -

-

-The focused module may also be controlled via the keyboard. Menu brings up the context menu for the focused module. Space opens the module parameter editor, b toggles the bypassed state, and Delete removes the module from the chain (without confirmation!). Control-X, Control-C and Control-V, cut, copy, and paste modules, respectively. Modules may be copied within or across chain boundaries. The normal module I/O constraints also apply to pasted modules. -

-
1.2.3.1.4. Module Parameter Editor
-
- - - -
-Fig. 1.5. Module Parameter Editor -
fig. 1.5
-

-The Module Parameter Editor is used to alter the values of a module's parameters, and in addition, to bind its parameters to controls. A menu button in the upper left-hand corner allows you to select between knob, vertical slider and horizontal slider controls. -

-

-Underneath each control is a bind button. Clicking adds a new control to the chain's Controls view and binds it to the parameter in question. For simplicity, only one control at a time may be bound to a given parameter. -

-
1.2.3.1.5. Controls
-
- - - -
-Fig. 1.6. Control View -
fig. 1.6
-

-The control view of a chain groups together all of the controls bound to parameters of modules in that chain. The default mode of controls is Manual. Right click on a control to bring up a menu which will allow you to select one of the available control I/O methods to use. When Control Voltage (CV) is selected, a CV input port will be created on the containing mixer strip's JACK client. The control will now accept values from that input. A control bound and configured in this way can then be connected to the output of a Non-DAW control sequence using your favorite connection manager. -

-
- -
NOTE: -All knob and slider controls respond to mousewheel -events. Hold down the `Ctrl` key while scrolling the mousewheel to -achieve finer resolution. -
-
-
1.2.3.1.5.1. Control Voltages
-

-The control voltage concept should be familiar to anyone who has experience with analog modular synthesizers. MIDI, while having definite advantages in many respects, multiplexes control data in such a way as to make connecting one MIDI control to a parameter involve a significant inconvenience, usually requiring the adjustment of settings on both ends of the connection in order to separate the control data streams. -

-

-Control Voltages, on the other hand, provide a simple 1:1 source to sink relationship and offer much higher resolution, both in time and value, than can be natively expressed through MIDI. The chief advantage of CV in the context of Non-DAW is the ease with which an control sequence can be connected to a mixer module parameter. If you have a MIDI controller that you'd like to use to control parameters of Non-Mixer, consider jm2cv, a JACK MIDI to Control Voltage daemon which was written by Peter Nelson specifically for use with Non-Mixer. jm2cv can be acquired by: -

-
-
-git clone git://fuzzle.org/jm2cv.git
-
-
- -
NOTE: -The use of Control Signals (OSC) should be preferred for most types -of parameter automation, as LADSPA plugins are incapable of -processing Control Voltage signals at full audio resolution anyway. -
-
-
1.2.3.1.6. Spatialization
-
1.2.3.1.6.1. Spatializer Module
-
- -
fig.
-

-The Spatializer Module included with Non Mixer allows one to not only control the position of a sound source (angle and elevation), but also to control it's apparent distance from the listener. -

-

-Distance cues are based on physical properties--the speed of sound in air, the damping effect of humidity, the ratio of reverb early and late reflections, the volume of the sound. -

-

-In legacy mixers, all of these properties must be controlled individually by the engineer. This is nearly always a process of trial and error. Much of a studio engineers' skill lies in his ability to guess at these values and arrive at a reasonably realistic sounding result. -

-

-Non Mixer eliminates the guesswork and combines all of these controls into a single spatialization point encoding both a sound source's position relative to the listener and its distance. No matter where the point is placed, the result will be realistic. -

-

-Use of the Spatializer Modules eliminates much complexity from the mixing process. No more back and forth, no more guessing at values for reverb sends and predelay and EQ. The Spatializer does it all for you. -

-

-The B-Format outputs of the Spatializer Module are in the order standard order WXYZ. -

-

-All Spatializer Module instances will present controls and aziumuth, elevation, and radius. Additionally, a Highpass control is provided to compensate for the proximity effect in close-mic'd signals. The default cutoff is 200Hz. Adjust it according to the nature of the input signal. -

-

-A Spatializer Module fed stereo input will perform stereo encoding and will present a Width control. -

-1.2.3.1.6.1.1. Reverb Routing -

-The Spatializer module is intended to work with an external reverb engine having Ambisonics B-Format inputs for early reflections and a Mono input for reverb tail (and, of course, B-Format outputs). -

-
- -
fig.
-

-The Spatializer Module has two sets auxiliary outputs for reverb send. One, consisting of a single mono signal, is intended to be connected to the input of a reverb tail, otherwise known as a diffuse field. Another set of outputs in B-Format is indended to be connected to the B-Format inputs of an early reflection reverb engine. The output of the reverb engine should be 100% 'wet'. -

-

-I have crafted several jconvolver config files that meet these specifications. They can be found in ambiverb.tar.bz2 -

-

-The main outputs of the strip should go to a master bus, into which the output of the reverb engine is also fed. -

-
1.2.3.1.6.2. LADSPA Plugins
-

-There are several Ambisonics panners/encoders released as LADSPA plugins. When one of these plugins is added to a strip, Non Mixer will detect its parameter signature and create a Spatialization Control for it just as with the Spatializer Module. -

-
- - - -
-Fig. 1.7. Spatialization Control on a Strip -
fig. 1.7
-

-Whenever a module is added to a strip whose set of parameters include parameters named Azimuth and Elevation (and perhaps Radius), Non-Mixer will detect this and automatically attach a Spatializer control to these parameters. The Spatializer will be displayed at the bottom of the mixer strip. A larger version of the control may also be found in the Module Parameter Editor. -

-
- - - -
-Fig. 1.8. Spatialization Control in the Module Parameter Editor -
fig. 1.8
-

-The spatialization control may be visualized as moving the sound source across the surface of a hemispherical dome enclosing the listener. -

-

-The output of the spatializing plugin may be routed into a decoding plugin following it the same strip or, more usefully, the output of a number of Ambisonic panning plugins on different strips may be routed (through JACK) into a single master decoder instance on a final strip. -

-

1.3. Spatialization Console

-
- -
fig.
-

-The Spatialization Console allows the user to view and control all of the source positions in an Ambisonics mix at once. -

-

-The visibility of the Spatialization Console may be toggled with the F8 key. -

-

-The console will display a point for each Spatializer Module or other Ambisonics panner plugin contained in the mix. -

-

-There are two projections available, Planar and Spherical. The range of the view can be adjusted with the range dropdown in the lower lefthand corner. -

-

1.4. Projects

-

-A Non-Mixer project is a directory where Non-Mixer keeps the strip settings, project specific settings, and some meta-data. A project is completely self-contained. You can rename a project as simply as: -

-
-
-$ mv Project-A Project-B
-
-

1.4.1. JACK I/O

-

-Each mixer strip is presented as a separate JACK "client". This helps to avoid the necessity of internally duplicating JACK's routing logic and, with JACK2, permits the possibility of parallel execution of mixer strip signal chains. -

-

-The JACK client name of each strip will correspond to the name of the strip. -

-
- -
NOTE: -The JACK API makes implementing this far more difficult and kludgey than it should have to be. -Please petition your local JACK developer to accept jack_client_set_name() into the API. -
-
-
- - - -
-Fig. 1.9. Patchage -
fig. 1.9
-
- - diff --git a/mixer/doc/MANUAL.mu b/mixer/doc/MANUAL.mu deleted file mode 100644 index b4a6918..0000000 --- a/mixer/doc/MANUAL.mu +++ /dev/null @@ -1,544 +0,0 @@ - -! title Non Mixer User Manual -! author Jonathan Moore Liles #(email,male@tuxfamily.org) - --- Table Of Contents - -: Non Mixer User Manual - -/ Mixer -< non-mixer-complex.png - - The Non-Mixer is a stand-alone audio mixer, utilizing JACK as an - audio subsystem. At the time of writing, the architecture of - Non-Mixer is unique. By making the mixer stand-alone, concepts such - as busses, sends, and inserts are eliminated, as the same goals can - be achieved by simply adding more strips to the mixer. - - Start by creating a new project (menu item `Project\/New`). - -/ New Project -< new-project.png - - After the project has been created. Hit `a` or choose `Mixer\/Add - Strip` from the menu to add a new strip to the mixer. - -:: Mixer Groups - -< group-dropdown.png - - Groups serve several purposes. Firstly, they allow for some - organization of strips. Groups also allow parallel relationships of - mixer strips to be made explicit. This has important performance - implications in JACK2. Non Mixer supports an unlimited number of - groups, each of which can contain an unlimited number of mixer - strips. - -::: How to Choose Groupings - - All strips in a group should be completely parallel with no feedback - loop connections. A typical group might be named 'Input' and contain - all input strips (strips that accept input from Non Timeline and - have outputs all connecting to some master bus). - - To put it another way, if you have 100 inputs strips with identical - output configurations (e.g. stereo or B-Format), that all connect to - a master bus, then you have a candidate for a group. - -::: Considering JACK Overhead - - JACK provides immense flexibility. But, as in most situations, that - flexibility comes with a cost. In JACK the cost is a context switch - per client. This applies /even for many clients which belong to the - same process/, as in Non Mixer. Various factors go into determining - the price of a context switch on any given system. It's not very - expensive, but it does add up. It becomes problematic in sessions - involving many clients (think 100s), each of which having a small - DSP load (often smaller than the cost of JACK's context context - switch). JACK *could* be smart enough to recognize that some clients - belong to the same process and could be executed serially without - requiring a context switch, but at the time of writing neither JACK1 - nor JACK2's scheduling is that smart. - - If you're mixing a normal song (couple of dozen tracks) at low - latency, this overhead will probably account for less than 1% of the - total DSP load. If you're mixing an entire orchestra at ultra-low - latency, then it might account for a quarter or more of the total - DSP load. - - Groups mitigate this cost by reducing the number of JACK clients - required for a mix. Strips in a group will execute serially without - context switches or thread synchronization--reducing the total JACK - overhead. However, if you have several groups, then they may all by - run in parallel by JACK2. - - A mixer which uses a single JACK client (which is basically the way - everything other than Non Mixer has been designed) is not a viable - solution by this author's definition, because such a mixer cannot be - from/to any other JACK clients without introducing an extra period - of latency. - - To illustrate this point here are some figures from an actual song - session including the whole Non suite plus a sampler, a synth and an - ambisonics convolution reverb with a total of 13 strips in 4 groups - in different configurations on the same system. - - JACK's DSP load figures are interpreted thus: if at a 2.7ms software - latency setting the average time a proces cycle takes to complete is - 2.7ms, then the DSP load is 100%. The usable ceiling on DSP load is - 80%. This is true for both JACK1 and JACK2. The difference is that - JACK2 may use all available CPU cores to execute the graph (if - there are enough clients in parallel signal flow). - - 32-bit Intel Core2 Duo @1.6Ghz -r 48000 -p 256 -n 2 (5.3ms) - -[[ JACK Ver, Groups, DSP Load -[[ JACK1, N, 39% -[[ JACK1, Y, 27% -[[ JACK2, N, 24% -[[ JACK2, Y, 31% - - AMD FX-8350 @ 4.2Ghz 64-bit -r 48000 -p 256 -n 2 (5.3ms) - -[[ JACK Ver, Groups, DSP Load -[[ JACK1, N, 28% -[[ JACK1, Y, 12% -[[ JACK2, N, 12% -[[ JACK2, Y, 11% - - AMD FX-8350 @ 4.2Ghz 64-bit -r 48000 -p 128 -n 2 (2.7ms) - -[[ JACK Ver, Groups, DSP Load -[[ JACK1, N, 29% -[[ JACK1, Y, 17% -[[ JACK2, N, 17% -[[ JACK2, Y, 17% - - AMD FX-8350 @ 4.2Ghz 64-bit -r 48000 -p 32 -n 2 (0.7ms) - -[[ JACK Ver, Groups, DSP Load -[[ JACK1, N, x -[[ JACK1, Y, x -[[ JACK2, N, 43% -[[ JACK2, Y, 41% - - As you can see, for multiprocessor systems, JACK2 clearly has an - advantage even without grouping. - - Of course, results will vary depending on the system and the mix. On - the dual core system, performance actually degraded with JACK2 when - using groups--this is because the number of parallel flows that - JACK2 detected was reduced and the second core was being under - utilized. Similarly, the performance of the 8-core AMD system - doesn't seem that great even in the ungrouped mode--this is because - the DSP load of each individual client is around the same as the - cost of the context switching. It's a wash either way (if each strip - had more or more complex modules on it, then the ungrouped mode - would probably perform better). Since JACK1 cannot take advantage of - more than 1 CPU core, there is no benefit to parallelism and grouped - mode always outperforms ungrouped mode. - - So, for maximum capacity the combination of a multicore CPU with - JACK2 and mixer groups is best. - -# All strips in a group *MUST* have the same output configuration. All -# outputs will be mixed together by identity. That is, the 'AUX \(A\)' -# outputs of each strip will be mixed together into a single 'AUX \(A\)' -# output of the group. A strip within a group whose output -# configuration differs from the group configuration will be marked as -# invalid and will not be executed. - -::: Creating a New Group - - Groups can be created by selecting the group dropdown on any mixer - strip and choosing 'New Group'. A window will popup asking for a - group name. Group names must be unique. The group will then be - created and the selected strip added to it. - -::: Adding a Strip to an Existing Group - - To add a strip to an existing group, simply select a group name from - the group dropdown on the strip. - -::: Removing a Strip from a Group - - Select '---' from the group dropdown. The strip will be removed from - the group and will run in an independent JACK client. - -::: Removing a Group - - Groups are destroyed automatically as soon as they contain zero - strips. - -::: Monitoring Group DSP Load - - Above the grop dropdown on each strip is a DSP load meter for the - selected group. For ungrouped strips or strips which are the only - one in their group, this is simply the DSP load of the single strip. - - If DSP usage goes up when strips are fed silence, then you're - probably running a plugin which has denormal issues. - -:: Mixer Strips - -/ Mixer Strip -< single-strip.png - - Each mixer strip has a name and color, each of which may be defined - by the user. Names, but not colors, must be unique. In addition, - each strip has controls to move it left or right (the arrows) in the - display and to remove it entirely (the 'X'). - - Strips start out in /narrow/ mode, with the /fader/ view - enabled. Click the desired button to toggle the mode or view. - - Each strip has a context menu which lists the available options - and their associated key-bindings. To bring up the context menu, `Right - - The fader view comprises a large gain control and digital peak meter - indicator. These are automatically connected to the default gain and - meter modules of the strip's signal chain. - - To see how an audio signal traveling through this strip will be - processed, switch to its /signal/ view. - -::: Navigation - - A strip is focused when you click on it. Focus can be moved among - strips with the `Tab` and `Shift-Tab` keys. - -::: Control - - The focused strip can be moved in the display order via the `[` and - `]` keys. `Delete` removes a strip (with confirmation dialog). `n` - and `w` set the focused strip's width to /narrow/ or /wide/, - respectively, and `f` and `s` switch between /fader/ and /signal/ - views. The strip's context menu can be invoked without the mouse by - hitting the `Menu` key (assuming your keyboard has one). - -::: Signal Chain - - The signal chain view of a mixer strip provides a way to view and - manipulate the signal processing of a mixer strip. - -:::: Modules - -/ Modules -< modules.png - - All signal processing in Non Mixer occurs in /Modules/. Modules are - signal processing abstractions providing ports for audio and control - I\/O and, in addition, some simple user interface. Sink and source - modules carry audio out of and into JACK. - - Modules are displayed as named blocks. Some modules (e.g. the Meter - module) may have additional GUI components. - - Each module has zero or more audio I\/O ports and zero or more - control ports. Audio routing between modules is handled - automatically. Modules with mono audio configurations (one channel - in, one channel out) can be automatically adjusted to support any - number of discrete channels. Modules with more (related) channels, - however, introduce restrictions on the order in which modules can be - chained. - - An indicator in the upper left-hand corner of each module block - indicates whether the module has any parameters bound to controls. - - Non Mixer has several built-in modules. They are: - -= JACK - = Performs JACK I\/O -= Gain - = Applies gain in dB -= Meter - = Digital Peak Meter -= Mono Pan - = Performs intensity panning of a mono signal into a stereo signal. -= Aux - = Provides auxiliary outputs -= Spatializer - = Provides advanced Ambisonics spatialization with distance simulation. -= Plugin - = Hosts a LADSPA plugin - -::::: OSC Control - - The input parameters of all modules are controllable via OSC, - regardless of whether the parameter is set as controllable. - - The format of the automatically generated OSC path names is as follows: - -> /strip/[STRIP_NAME]/[MODULE_NAME]/[PARAMETER_NAME] - - The UDP port that the OSC server binds to can be set by providing - the `--osc-port` command-line option. Without this option, a random - port will be bound automatically (the exact OSC URL will always be - printed to the console as a line beginning with "OSC: "). - - The default path accepts a float value between 0.0 and 1.0 (a - Control Voltage like signal) which will be automatically scaled to - the allowable range of the control. - - A path ending in \/unscaled is also available, which accepts exact values, - which will be clamped to the allowable range. For example: - -> /strip/[STRIP_NAME]/[MODULE_NAME]/[PARAMETER_NAME]/unscaled - - If same module\/plugin is used twice in a signal chain - (e.g. multiple Gain stages), then a position dependent sequence - number will be appended to the module name. For example, a path - might look like the following: - -> /strip/Foo/Gain.1/Gain_(dB) - - For the second instance of the Gain module on the strip named 'Foo'. - - There's a possibility to get exact OSC path for module controls. - For this you need to switch strip mode to 'Signl', right click a - module, for example 'Gain', and open 'Edit parameters' dialog. OSC - path will be shown in a statusbar of the main window when you - hover a parameter. - - Non-DAW accesses these same signals via a more advanced signal - routing layer on top of OSC. Any module parameter is easily - controlled via Control Sequences in Non-DAW without the need to - specify an OSC URL. - - -::::: MIDI Control - - Automatic translation between MIDI and Non's OSC Signals can be - achieved by adding the headless program `non-midi-mapper` (included in the - Non-Mixer distribution) to an NSM session. - - Non-MIDI-Mapper provides JACK MIDI input and output ports that can be - connected to a suitable controller device. - - In Non-Mixer, the `Remote Control\/Start Learning` menu item enters learning - mode in which Non Mixer can be taught which controls to associated with which - MIDI messages by clicking a control in Non-Mixer and moving the desired control - on the MIDI device. `Remote Control\/End Learning` ends the learning session. - - The mapping will be saved with the NSM session. - -::::: Manipulation - - Left-clicking on a module brings up a Module Parameter Editor window - for the selected module. - - Right-clicking on a module brings up a context menu allowing you - manipulate the module, as well as to pick a new module to insert - before the selected one in the chain. - - Middle-clicking on a module toggles its activation state (the audio - signal will bypass inactive modules). - - Control+Right-clicking on a module causes it to be removed from the - chain (modules added by default cannot be removed). - - The focused module may also be controlled via the keyboard. `Menu` - brings up the context menu for the focused module. `Space` opens the - module parameter editor, `b` toggles the bypassed state, and - `Delete` removes the module from the chain (without confirmation!). - `Control-X`, `Control-C` and `Control-V`, cut, copy, and paste - modules, respectively. Modules may be copied within or across chain - boundaries. The normal module I\/O constraints also apply to pasted - modules. - -::::: Module Parameter Editor - -/ Module Parameter Editor -< module-parameter-editor.png - - The Module Parameter Editor is used to alter the values of a - module's parameters, and in addition, to bind its parameters to - controls. A menu button in the upper left-hand corner allows you to - select between knob, vertical slider and horizontal slider controls. - - Underneath each control is a bind button. Clicking adds a new - control to the chain's /Controls/ view and binds it to the parameter - in question. For simplicity, only one control at a time may be bound - to a given parameter. - -::::: Controls - -/ Control View -< controls.png - - The control view of a chain groups together all of the controls - bound to parameters of modules in that chain. The default mode of - controls is /Manual/. Right click on a control to bring up a menu - which will allow you to select one of the available control I\/O - methods to use. When /Control Voltage/ (CV) is selected, a CV input - port will be created on the containing mixer strip's JACK - client. The control will now accept values from that input. A - control bound and configured in this way can then be connected to - the output of a Non-DAW control sequence using your favorite - connection manager. - -{ NOTE: -{ All knob and slider controls respond to mousewheel -{ events. Hold down the `Ctrl` key while scrolling the mousewheel to -{ achieve finer resolution. - -:::::: Control Voltages - - The control voltage concept should be familiar to anyone who has - experience with analog modular synthesizers. MIDI, while having - definite advantages in many respects, multiplexes control data in - such a way as to make connecting one MIDI control to a parameter - involve a significant inconvenience, usually requiring the - adjustment of settings on both ends of the connection in order to - separate the control data streams. - - Control Voltages, on the other hand, provide a simple 1:1 source to - sink relationship and offer much higher resolution, both in time and - value, than can be natively expressed through MIDI. The chief - advantage of CV in the context of Non-DAW is the ease with which an - control sequence can be connected to a mixer module parameter. If - you have a MIDI controller that you'd like to use to control - parameters of Non-Mixer, consider /jm2cv/, a JACK MIDI to Control - Voltage daemon which was written by Peter Nelson specifically for - use with Non-Mixer. jm2cv can be acquired by: - -> git clone git://fuzzle.org/jm2cv.git - - -{ NOTE: -{ The use of Control Signals (OSC) should be preferred for most types -{ of parameter automation, as LADSPA plugins are incapable of -{ processing Control Voltage signals at full audio resolution anyway. - -::::: Spatialization - -:::::: Spatializer Module - -< spatializer-module.png - - The Spatializer Module included with Non Mixer allows one to not - only control the position of a sound source (angle and elevation), - but also to control it's apparent distance from the listener. - - Distance cues are based on physical properties--the speed of sound - in air, the damping effect of humidity, the ratio of reverb early and - late reflections, the volume of the sound. - - In legacy mixers, all of these properties must be controlled - individually by the engineer. This is nearly always a process of - trial and error. Much of a studio engineers' skill lies in his - ability to guess at these values and arrive at a reasonably - realistic sounding result. - - Non Mixer eliminates the guesswork and combines all of these - controls into a single spatialization point encoding both a sound - source's position relative to the listener and its distance. No - matter where the point is placed, the result will be realistic. - - Use of the Spatializer Modules eliminates much complexity from the - mixing process. No more back and forth, no more guessing at values - for reverb sends and predelay and EQ. The Spatializer does it all - for you. - - The B-Format outputs of the Spatializer Module are in the order - standard order WXYZ. - - All Spatializer Module instances will present controls and aziumuth, - elevation, and radius. Additionally, a /Highpass/ control is - provided to compensate for the proximity effect in close-mic'd - signals. The default cutoff is 200Hz. Adjust it according to the - nature of the input signal. - - A Spatializer Module fed stereo input will perform stereo encoding - and will present a /Width/ control. - -::::::: Reverb Routing - - The Spatializer module is intended to work with an external reverb - engine having Ambisonics B-Format inputs for early reflections and a - Mono input for reverb tail (and, of course, B-Format outputs). - -< reverb-routing.png - - The Spatializer Module has two sets auxiliary outputs for reverb - send. One, consisting of a single mono signal, is intended to be - connected to the input of a reverb tail, otherwise known as a - diffuse field. Another set of outputs in B-Format is indended to be - connected to the B-Format inputs of an early reflection reverb - engine. The output of the reverb engine should be 100% 'wet'. - - I have crafted several jconvolver config files that meet these - specifications. They can be found in #(url,http:\/\/non.tuxfamily.org\/ambiverb.tar.bz2,ambiverb.tar.bz2) - - The main outputs of the strip should go to a master bus, into which - the output of the reverb engine is also fed. - -:::::: LADSPA Plugins - - There are several Ambisonics panners\/encoders released as LADSPA - plugins. When one of these plugins is added to a strip, Non Mixer - will detect its parameter signature and create a Spatialization - Control for it just as with the Spatializer Module. - -/ Spatialization Control on a Strip -< spatialization-on-strip.png - - Whenever a module is added to a strip whose set of parameters - include parameters named Azimuth and Elevation (and perhaps Radius), - Non-Mixer will detect this and automatically attach a Spatializer - control to these parameters. The Spatializer will be displayed at - the bottom of the mixer strip. A larger version of the control may - also be found in the Module Parameter Editor. - -/ Spatialization Control in the Module Parameter Editor -< spatialization-in-mpe.png - - The spatialization control may be visualized as moving the sound - source across the surface of a hemispherical dome enclosing the - listener. - - The output of the spatializing plugin may be routed into a decoding - plugin following it the same strip or, more usefully, the output of - a number of Ambisonic panning plugins on different strips may be - routed (through JACK) into a single master decoder instance on a - final strip. - -:: Spatialization Console - -< spatialization-console.png - - The Spatialization Console allows the user to view and control all - of the source positions in an Ambisonics mix at once. - - The visibility of the Spatialization Console may be toggled with the `F8` key. - - The console will display a point for each Spatializer Module or - other Ambisonics panner plugin contained in the mix. - - There are two projections available, Planar and Spherical. The range - of the view can be adjusted with the range dropdown in the lower - lefthand corner. - -:: Projects - - A Non-Mixer project is a directory where Non-Mixer keeps the strip - settings, project specific settings, and some meta-data. A project - is completely self-contained. You can rename a project as simply as: - -> $ mv Project-A Project-B - -::: JACK I/O - - Each mixer strip is presented as a separate JACK "client". This - helps to avoid the necessity of internally duplicating JACK's - routing logic and, with JACK2, permits the possibility of parallel - execution of mixer strip signal chains. - - The JACK client name of each strip will correspond to the name of the strip. - -{ NOTE: -{ The JACK API makes implementing this far more difficult and kludgey than it should have to be. -{ Please petition your local JACK developer to accept jack_client_set_name() into the API. - -/ Patchage -< non-mixer-and-non-daw-in-patchage.png diff --git a/mixer/doc/Makefile b/mixer/doc/Makefile deleted file mode 100644 index d214bab..0000000 --- a/mixer/doc/Makefile +++ /dev/null @@ -1,23 +0,0 @@ - -SRCS=$(wildcard *.mu) - -OBJS=$(SRCS:.mu=.html) - -%.html: %.mu - @ echo Mupping $<... - @ mup.wrapper html $< - -.PHONY: all clean - -all: $(OBJS) - -upload: all - @ rsync -L mup.css MANUAL.html *.png ssh.tuxfamily.org:/home/non/non-mixer.tuxfamily.org-web/htdocs - -install: - @ install -d "$(DESTDIR)$(DOCUMENT_PATH)"/non-mixer - @ cp $(OBJS) *.png mup.css ../../COPYING "$(DESTDIR)$(DOCUMENT_PATH)"/non-mixer -# @ ln -sf $(PIXMAP_PATH)/logo.png $(DOCUMENT_PATH) - -clean: - rm -f $(OBJS) diff --git a/mixer/doc/controls.png b/mixer/doc/controls.png deleted file mode 100644 index aeaaa3688a23e706a64944c747ed54898707e464..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11634 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 NE2$(=_Rcu){{R{epFjWr diff --git a/mixer/doc/mup.css b/mixer/doc/mup.css deleted file mode 100644 index 10aceae..0000000 --- a/mixer/doc/mup.css +++ /dev/null @@ -1,461 +0,0 @@ - -/* Example CSS Style for MUP */ - -body -{ - font: normal normal 14pt "Helvetica", sans-serif; -/* background: url("http://non.tuxfamily.org/background-pattern.png") fixed; */ - background-color: #121212; color: lightgray; padding: 0; margin: 0; -} - -a:link { - color: white; -} -a:visited { - color: olive; -} -a:active { - color: white; -} -a:link:hover { - text-decoration: underline; -} - -/* #(url) */ -a.ext:link { - color: red; - text-decoration: none; - border-bottom: dashed silver 1; -} -a.ext:visited { - color: darkred; - border-bottom: dashed silver 1; - text-decoration: none; -} - -/* #(ref) */ -a.int:link { - border-bottom: dashed silver 0.15em; -} -a.int:link:hover { - text-decoration: none; - color: white; -} - -/* - a[href^="#"]:link { - border-bottom: dashed silver 0.15em; - } - a[href^="#"]:link:hover { - text-decoration: none; - color: white; - } - */ - -p:contains("Warning:") { - background: #d00; - color: white; - border: dotted gray 0.5em; - display: block; -} - -/* First letter of first paragraph of every chapter */ -/* - h1 + p:first-letter { - text-transform: uppercase; - float: left; - line-height: 0.8em; - font-size: 350%; - font-family: Serif; - letter-spacing: 0; - margin-right: 0.1em; - margin-top: 0.1em; - border: solid gray 1px; - padding: 1px; - color: #d00; - text-shadow: #666 3px 3px 3px; - } - */ -/* First paragraph of every chapter */ -/* - h1 + p { - text-indent: 0; - } - */ - -/* cover */ -#cover * { - background: transparent; -} -#cover { - position: relative; -/* background: #da0;*/ - background: #555; - color: #aaa; - text-align: center; - margin: 0; - padding: 0.5em; - border-top: 4px solid black; - border-bottom: 4px solid black; -} -#cover h1, #cover h3 { - text-shadow: #222 0.2em 0.2em 0.2em; - color: white; - border: none; - letter-spacing: 0.2em; - line-height: 0.8em; - margin-left: 2em; - margin-right: 2em; -} -#cover h1:before, #cover h1:after { -/* content: "::"; */ - font-size: 300%; - color: black; -} -#cover h1:before { - position: absolute; - top: 0.2em; - left: 0.1em; -} -#cover h1:after { - position: absolute; - top: 0.2em; - right: 0.1em; -} -#cover hr { - display: none; -} - -hr:first-child { - display: none; -} - -hr { - height: 0.2em; - background: #555; - color: #555; - margin-left: 0.5em; -} - -#cover a:visited { - color: black; -} - -/* endnote */ -#endnote { - color: black; -} - -/* TOC */ -#toc { - position: relative; -} -#toc hr { -} -#toc h1 { -} -#toc ul { - font-size: 125%; - font-weight: bold; - margin-bottom: 1em; -} -#toc ul ul { - font-size: 90%; - font-weight: normal; - margin-bottom: 0; -} -#toc li { - list-style: none; - -} -#toc a:link { - border-bottom: 0; -} - -/* */ -#body { - position: relative; - margin: 0 auto; - padding: 0.5em; - max-width: 900px; - background-color: #1c1c1c; -} -/* ;, : */ -h1 { - color: #fff; - border-bottom: solid #444 0.1em; - text-shadow: 1px 1px 2px #000; - -} -/* ::, :::, ::::, :::::, :::::: */ -h2, h3, h4, h5, h6 { - color: #fff; - text-shadow: 1px 1px 2px #000; - -} - -/* tables, figures */ -.fig caption { - color: gray; - text-align: center; - /* Required for Mozilla */ - margin: auto; -} -.fig table { - border: none; - margin: auto; -/* border-collapse: collapse; */ -} -/* / */ -.fig.table th { - border: none; - background: gray; - color: black; -} -/* [ */ -.fig.table td { - border: none; - background: silver; - color: black; - padding-left: 1em; - padding-right: 1em; - padding-top: 0.2em; - padding-bottom: 0.2em; -} -/* < */ - -.fig.image table { - border: none; - background: transparent; - max-width: 100%; -} -.fig.image tr, .fig.image td { - border: none; - background: transparent; - padding: 0; -} - -.fig.image img -{ - max-width: 900px; -} - -/* */ -p { - margin-right: 2%; - text-align: justify; - text-indent: 1em; -} -/* > */ -.example * -{ - background: transparent; -} -.example table -{ - margin: 0; - padding: 0; - table-layout: fixed; - width: 100%; - caption-side: top; - overflow: auto; -} -.example caption -{ - caption-side: top; - -} -.example { -} -.example p { - display: inline; - margin: 0; - padding: 0; - text-align: center; -} -.example pre { - margin-top: 0; - font-family: Monospace; - padding: 1em; - border: solid 1px black; - background: #222; - color: white; - display: block; - overflow: auto; - /* Every browser should support border radii */ -/* -moz-border-radius: 0.5em; - border-radius: 0.5em; */ -} -/* " */ -/* - .quote:before { - float: left; - font-size: 500%; - content: "\201C"; - } - */ -/* - blockquote:after { - content: "\201D"; - }*/ -.quote blockquote { - padding: 0.5em; - margin-left: 0.5em; - font-family: Serif; - border-left: solid 0.4em gray; - /* background: #333; */ - color: white; -} -/* ^ */ -small { -/* - color: silver; - font-size: 50%; - */ -} -.footnote p { - color: silver; - margin: 0; -} - -/* Popup footnotes */ -.footnote p { - display: none; -} -.footnote p:target { - display: block; - overflow: auto; - position: fixed; - left: auto; - bottom: 0; - right: 0; - max-width: 50%; - border: solid 0.3em white; - -moz-border-radius: 0.5em; - background: black; - padding: 0.2em; -} - -/* { */ -.admonition * { - background: transparent; - color: white; -} -.admonition dl -{ - display: table; - margin: 0; - padding: 0; - background: #333; - border: dotted black 0.3em; - width: 90% - margin-top: 0.5em; - margin-bottom: 0.5em; -} -.admonition dt -{ - display: table-cell; - vertical-align: center; - border-right: solid silver 0.4em; - font-weight: bold; - font-size: 115%; - font-family: Serif; - background: gray; - width: 0; - text-shadow: black 0.15em 0.15em 0.15em; -} -.admonition dd -{ - padding-left: 0.4em; - display: table-cell; - width: 100%; - text-align: justify; -} - -.admonition table -{ - margin: 0; - padding: 0; - background: #333; - border: dotted black 0.3em; - width: 90% - margin-top: 0.5em; - margin-bottom: 0.5em; -} -.admonition td { - width: 100%; - text-align: justify; -} -.admonition td:first-child:contains("Warning:") { - background: #900; -} -.admonition td:first-child:contains("Caution:") { - background: #960; -} -.admonition td:first-child:contains("Note:") { - background: #690; -} -.admonition td:first-child { - border-right: solid silver 0.4em; - font-weight: bold; - font-size: 115%; - font-family: Serif; - background: gray; - width: 0; - text-shadow: black 0.15em 0.15em 0.15em; -} - - -/* #(b) */ -/* b { color: olive; } */ -/* #(c) */ -tt { - color: #7f0; -} -/* ! keywords ... */ -p em { - color: gray; - font-style: normal; - font-weight: bold; -} - -/* *, + */ -/* Bullet, numbe */ -li { - color: #f0f; -} -/* Text */ -li span, li p { - color: white; -} -li p { - color: red; - display: block; -} -ul { - list-style-type: square; -} -dl { - margin-left: 2%; - margin-top: 1em; -} -/* = */ -dt { - background: #181818; - padding: 0.2em; - font-variant: small-caps; - font-weight: bold; - color: #f0f; -} -dd { - color: white; - text-align: justify; - margin-right: 5%; -} -dt a:link, dt a:visited { - color: #f0f; -} -dt a:link:hover { - color: silver; - text-decoration: underline; -} diff --git a/mixer/doc/new-project.png b/mixer/doc/new-project.png deleted file mode 100644 index 114fdffcda76d183480bb10ed6795c71e4aef40b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8382 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 diff --git a/mixer/doc/non-mixer-and-non-daw-in-patchage.png b/mixer/doc/non-mixer-and-non-daw-in-patchage.png deleted file mode 100644 index a2f6f32a98b3257c24e66114d8bf1c8d788175b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23977 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 diff --git a/mixer/doc/non-mixer-complex.png b/mixer/doc/non-mixer-complex.png deleted file mode 100644 index 081d5636e59a703175f4e2a7f7e60ed76011cbb3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 128705 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%0D4MiY#U{@ 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 diff --git a/mixer/doc/spatialization-console.png b/mixer/doc/spatialization-console.png deleted file mode 100644 index c7baf4e65cbc3eb6d0afe5b71f103c4d9595bcff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 447050 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

?y2gkYR{{bdkfp{8 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

v0FD{oA&2RlVKK{WEF+4sI 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 }AF;pX4}5e0Nj@pz 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

-!E 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 F{|C!E`6&PZ diff --git a/mixer/doc/spatialization-in-mpe.png b/mixer/doc/spatialization-in-mpe.png deleted file mode 100644 index ca6db1f42e4dc0e2fd9daf95921fc659fbc093ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 166575 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≷S^7hINVKko#u{HWub7EAu> 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�Md~FwVvhWYi$L>n+su^Sk^IGSiFy?YismuhoxuPvnk*3uEO+ zAC}g%6K#Ld$R^}_kgVPEUCUf4JWzLnUl#ccGqQ}At>u##Gp4WAiO5_N$J;Ek@o>+d zfgd*|s3zFznJX%KNB>L+;sRC!0dP5Qdo$wS6p1WAcN&_sql)#KcLAYoYklz{K%B{n(yP_`8Wq z1%)+Mm(0g^`h-eS-+y`U!MOkrZ$Fd!piD(V4!sG9fv$P0LODJ)(G>!k=&zCv)nX;A zuY(f8@YE_%jk95P5Z7sKP4?KmR24aiu1}YHuA_m?es-Q-0HGkuyfKuivi!pCqTF<; zpP5GQJvb+pZc>I=MoA#0#z$DHG?b1CQXw|xwKW7{Yy2}Pm6uv6agt}x>^~F&EK3lG zadZi`Y(9m^uTy**Dfj2UcV8`HsdE1c63%_Zal9N3GwodTa3xv~H7y^bxxm6P27$T_ z`6doH{`0OpL;YW^g}x4ep8tWipsz1bP_Q-+1&uj|*weYR5eO8VesRB_vr|7Q*6uHt z+%t89eJNE=>du&W3hM6f(?-(PA-=_S7y#fNHA!|u&mfjYxaV22G2$l8ch+0x>rwyK zy}CWzz#gUm9muNXN4bFnYaYO_2n`7~P9)g!A9hOsZUA}&A}(DdMGsPH2Fe+I)wzu* zSk2Si_Tk5mBJ=WB!HK5oFL986}9hk{U;r>gEj>9eG$gTvC%l<<&f67!y=V& zkjTVwliST#ESR$(3PMOpqDuh!k8hit-m*UfNhXn^VvR}hW)#IrM6?^l0Y7R3OH`q~ zj+!I&RPwT1CnbNkQ*Rw1UVivBBFb&(1jQ&_$y~;d7u`0+x&yA#`1&>{5B#PfTo8kkw3-iB2 zehWTB*cV8{%IUd)|CPWUgv0-yls@BIWE#n2wrJlQ%^5l={z}dP>hhuY2`@($zG&iZ zgg3-?*{;e9`>gtbM!UE*6|y>*+!MFJ_F{2d2}7EOndJYtR#2<3EYB^NjD9)`L;xQT zQF_gmu0~Y@rs;u0BR8c#hq63umh3^=0Au?BTa-moJXLmzc!P&VC+bbHCta$w58sAm zZ!g5|x$K9-#H(uJ0i`0ws@qb9P`wY?z3EpA5F0Ubzd^Q(B5`Q~KrgsY_P+n9vW(8A z&iIKbb7n(&t$(vrqN=Or9$$}(F`4OntO1!j22}NTC|O=lh6WZU-K4E?0!en`1QP(JQthInuEE*!G{yvw$XY-y@yGJTxS1_nF!ZJ*)UvRa~AOz3vABvFB?o zRzh^!X2UtLzq3RjpFq&lHqqVjn@58V=}`rWgxGx@=0QU0uDUB7=)(i^X75u=t0FQA~8V z4pg%pws@eMo9l`$zUn;&vH_FlHS`^rXfu|IQZQZy%l12>EWG9#p%i^Z=Sy}w=2ApM zarvqVLgNKLa;>6ZL`6c%{(1MWdC7MJ7e5Jvtq3MYFfJizXk}LFu|0O-a^^n@$u*W^ z!&2TkSxQ+T4NM{-XzLiq5|`-VGq$GKHeIE`>?yhImBxUqj35i3uO!ddpzy3ZPrwI~9Iogqp zp{ykJG1thWw$g~c_+trgi(s+rpZzhkgSB;U*HlRS1P!=ZvPm`sU>~$8z_UzXhO5SK zBb1fqr0Nb7XuP$#*H0F{%+hmicSDDp8ShtIpnC!S>qW|)&v=n zvIsKTT6~35xnoBo4tWZVZ$TD>Of&HjWGXK~AAq7f%<M*@QpKFDEiW<-%1nmg!_ zJnj4l<3RGpUCjAbydcRlG#Q@m=-JWPf2STdsWG0g=;#Y2ghO)6<3FTEPh9AuS&e6aMJP-L=v`Ady9C5-QgTQ zVqcj786%tbrd*tlolOYGfx?amR}+!%2_nECCUOac$N2@?2GJt2Zs5KaM-0_Sc(m`5 z2zv~}J+mX`7x!)6VAH34KrV2nb9qy(>CE`5Vg;+a?a=Wt_Qyfy;pkh0-U5~0H7Dbc zVdMW+#xL@3x!QO341jmL$h1n|_bp0D1{p@Usgq zxiU|XqN{`)6oR=icNval>VIP_g9 zAu4b;8nlJ3tdKD+1?DR2qIqY_(-Pj2vq`4SlET*!W*~e(^Kx*fYu4stzW4iy-ie-> zaTVYJ+3OUY(s&SxEk-ux{9^}CxbbJj4LwuQ@+R|9vEyXiulh9~NpyNPF?xgca0A2w z0Na+X*6PD_YWjSEj}#MQrc%n$DJUBz^B&q{tQcER6E}|woaw193*P3b<06vXN#0om z(cRJTz`qN3jaU8(>mRF5Q76QocbW!rKy2rQ{I!_|&_1TL^-Bib;XuJgC-`9`@b1sg zlWMweTddT>n&&Km-zb6}W0f+3zoR(px1^^4Dx)QjtD@kJZmd|N{zXc4Y#reh4Vy#a zB>bB0b+lS0cDyxTwZh@QM2%>@*X7;6FF(+UZRFBcTk$p(T+{!@U4Pr&P-$0^@iwmr z0KRk2_HmUQl@1SU`sPj(yeJ>tTpgU%9(U~z1S4QopPA`|)0kR0*$F92*K&H;{Q$3R zZ%dH}KH@K?-a7msTyv1}?Wx8n#$iKNXBWvEILd&#Ig$1cy@i>#Us~aYlcx-4MPm}l zmU8`MXzaVt* z=U=tY0I@}iv3hQ-SbAhfdP~RrXq3AB$w>K@u!fgytE#}J!qL&Wg@RwXIPVbf`=Rs= zkL8_Y#rR2?PDF__&(bajFL~a>R|}pW+o}$9W5}$p2;-Oobu3ZTCm_>4ko-n+{+#ch z|5nL9gaYg?D&hztW)$8##*u8U`lp0W@w5){R#qKh>`X5(nTm^W#O78>tzrWxZ#6HG zUcL8l>}I(oye4B_*>!!(u$e%<8U`pY4gyYA7<0S)kQeKARCfGxC* zW{0Zn_Ri{zgSd7OjC;Z}x(=vW_e==7JYsvu7y#ey5PJ&r2;KHbyTc^ASP*+adD~VhXT~^nc1!qr%kdgyrIynrcerl*d&RC;APa@vYl2~v zw7c8({30JNFw;90c|8l6ZabTn>I1o3$VW$brgJwkyMmzHHK+V9IJC=j)q-f$Q5(;T z+w6oI2!JI02VbdBbn%udqr9HME~>Dk3Qu}!q54VuCpE*<8`vr$lR=K)IH%kTs$)u} z3uqMd%QCXz(iwGlJz81uY1%pc!@Xqtc+v_a_hV+US#5KRmXmSi;@k6fqb8xvdmJfG z7BW=|_H|dA5k~JAd<0G0hIcowca$D4CrcI>`ZT?_N6dv;Jx8l=9?AADZ2^(0%s`z{2U^h{1 zmpggP#T^~X)`e;~9GfCri=WuZWqQ~$^Da9-&Qd{_&uY8lM5`uX|M;vmrSHyMt6J%I+Lovqcv_!$f|GsiFq>O~{OVLM~jX*hxB@&`P{ zU;Ju{Z#lQ_Hx0lWVr+Hw)(fv7_2Q|mw8bzBsO6AuuDCm`*Lv5X^Xh1MUjHeo<}LGF zT~WMPibp3cxF^2%a`J>7Q~~cP-}oyApxW1g`VzH^$sE5(Y_W%fD&+E#sZ}>iuge#` zi|eS3+!g4g7ate#k9P2v`hoflKgX{oFwzdMC*tR+9Z0CXvD8;+pB9 zOPsc*0P;Ns;uXvx_6n=_ga_|E;D%QBosN$$xz?1U#cjMYcioL!5qF#*z4aJ9lvQLt z?i%K1Mukxm++H--rusA(grzG;+Iov?t3u5L*ix3;sZ2t3G~8f6H_(r!MR#wE=H}Kd z&UnCGptyfz2#gvBy{H94LAw9$ z5VyFdrn+|Hbm|mFOO&;_2WF~Gg}SbpIzJP4Kb~4~<|9~`ii;^jsJ3TW7i_@9t6d%m z{JJ#3ZL;BH>?AE-PY9DB5$WcYn7iZ$b?r7{*ICoXrR{rY7h|D_>hUQ7U=wo1vtiXG zwKAyY@VJfm;OA34!gcJk#$LBu>09LTNfRzs%Vt|1vj9ALL_5f?Ho=H^?NJ)tu1kN<+xOS4wVvSqZBfPpsm z$o=~U?Eo3Wm?#()AH_NMI95S==ci?6sCUP~A^Ze;4j@CH(}|IX`XhEfKW&(WZJo4Q zwi*{-B zt*($z^wi#)!!D5?*UnDbntw!{?!eAh-d12*?LJ-38p2-^jnZd(OSqtkdOzTA-0ddn zF-)a~?=`W^`ngA$9rVl-nvU{v5%*0MY^-HxEkKalp2f~nY#5vwBgM|7!u>YyAbBaOQ46BN^tiXI>xdpd*4?e^(q2cOSj| zas7p_*hfofVMoQk_WfV#G%w0N{zC{{F!KrRyC_| z4$u}+Q%{r>2k_?`)QJc7uIJFq$5=^(tJA3-4AIH}*#xeN$|qi`nngIO&;kGwqUwd26%$)@>p^>e)Z^bM5Htnz%+ zJYdi7Eyf|vqi2ND8^-)Kn4-7s?of=vW~5zs$9F<}r_>u)?lF5!WV2CLlT)xY#lf}x zhK6mF!&`_l=So!EtKV(=hVhtp_evf#EXuRn=jG|k`WPWcj%eQ$Odt3Bv}r(X zp08`3n3GlL_`~d~s677ymK!#etL3o3!UxCQ;Mb~lKWAt3QNlhPhCGC+W&PO2RNjL# zla6ptC9u$3Js=4tJl7P|I4^%A86KMm@FSd10s_x3`$uK=%HoqW{V~zfy;nOt0?ooF zeRiF5k_!~Ea8!;;kJ7bXZd-is;ez$lCyLe$uH8Ro`EdLJfyqoeKAKVuOM~|2T)p*e zqHgBFpZ)d&Uf;Z^CsX!I!ZZPQkSL;B-&C3Scl}_Cd&HA4Ei;(6i?_h~r6?*A(^P7F zY7buo;KZ)3A)2VG`}jOlQ*BKR($(T7>iXRR70&kEW+;P8;{$QbRG+%S}u3@!9F2S zmj_Vzny7Q5s?q(op__mJ6*ti&+hk6*UG!MlF|ki5*VT`_X0-phe-(RVQNq_p*_f(0 z&e^)C?1Db?qwz-1G)0OSy100Fe^4>$zBeU<({LjERf4QZpuMJNX}s?K^a4VMZ8U1P zWeD}%I?=KM3o2>LK0rKG0Qn`K{iihp>1QU-t3Q_;T3t_45t@!vSqeN8{;Rd>Bkm%T z5Kre3%gjjkni@67EH6Jnoxu!xC#{j9VQ^K1Vh~I6HDc#)T2pb*p`zsti6ETq7w|8} z0en_SM&!Az1H1jXnMlkwnMF|a4+!bs5l{{;|00dee(i-06U7OHm)tnQg*QuyiT4ka z-Y)TLRmO*`W1s=pF2qjOl|Y$u zwYcX+E!8Iu4o%85)p-xs7O%gVXOcOR*N3q8bYqYC+i8kJp!o7=gT6>Ma;SzPXsYi0 zyL$gtEyAl4su+JpSqZORreE8D`;$fIe5*6kUWC^u-dDlUV*H{u>fRt?4iakiPUv3VSckYEiSfM`ZQZr}XUr+J2poYu zsaiz7o$alVI8ef=KU$)XTsEtLrW7u+Hd3DO<$ z?RtXWIRR&Q1&~@3d%FwH5elEbjd8ifpWMrN$3?)uLlX-sdj;2Z%@8`h8B*HeuZ_-r zqih&xgKyycVKe=+&~<{`*8saN?7@4pZ%Fq%l!YA$Q>!swG!W^cC*>8B+Xiw;`?W(^?PxgG`0`JPaQ?FNN>f0MIelUsCclvO& zUKr5?ixBA&1>2%^z@ad7{TWfnO|Z=mkH_P@Nr16@)%|>nX9@pu&T8qH+GW>6ZPH0i z#D9Aac4XZTI0q~eA+7`jRV3KO9rW&Ob#=f$5uoakJtt+V1b=7n6#AotGm!C0eYnG% z&$t>}GxSj(iDa{&xc7Vgn{CJcjS?SX6J1#7e~@eu6M5_1LHxnlZ3z(L#gAUh<39vu zr8Q;23_nhvbXG`_z}Z}IcRjD!Mmfph)M0=wl{Q?XN1OFQYBdgB2;ts6E+B|IkqN6!zq3rEoh3`THMt96 zuLK~L^XmWyiW+$1%swqx(+*(8-kpvFdmskXH|%%YXf?8#%ucG>+s0@(`Y0*gEBVK_ zTxCLtOulVgZVCbp=NdoUDlef*Sw~Ef_Ev4UOZ%D3Y>6k1;NKbahxrDLjGDiz@blTb zR4v0v#+E+IUr$1Zx?{`q|MgA1=iv_xG(;@zc*Mf#<{|bTEd_Mwkv$DJ_3Oyqt)xYD1pZ!kGkX81}| zXd=?5A}a+d?oOX33bcJs-JIX5*?;NjdGJOyrGzL^`wbtBFIm-PYQ0;dHU3lUigK{u zKU^O}Xq9C*_N2X8b3=uB4%rL1?g$OgSTfwGM@vcy+s%eX!HpG}d}|6K)a_EaSW87BNF}@HI_%vsWNz6n<5wMsU!^VD^(L_dNvVg5IHYoYkPwH>P6l>G zv(N|(AosN;C;5>uabGrwyhU;XUsPZU|Gw1S#bLAk^;KVRy}L8qaLPmX)vtMn ztMPH`2IT*IEF2=}V`y#H&K;r-!rtoovU)xGuKt4WU4r75>~3ZQlHNBQ{c2VZM*f6I zBpEi9kaNHjU=Q&IZZc%pJd0+Tr0kJ!effkH%SLR$j2!R-ExXau=<&d2q+Jnp^O!DU zB=^?rHVw#+M5XC?=Gg%J=x#Yg3xMF-%|Ib-Jex*rDu}`uK)$S%W9QVwRf@1b;<^GV zI>AeFA*V8XFfMMzd{Se4DIS*NIhQXHAK=X~7O@~>$VnkXJWVhzL~?| z`+o?@@IH={xXO+C&@F$PP1b2?1nrD+py4srQi2OL2+bhx>>G37<5N9-uMXrS4VacO z@?-b-5n(eJ9o%8jliI}8&}_#sF~cdGyE2FA<_#Mgw4)pR_Px*6x&V$CukNVH^=4vV z`8X}Je3{J}`?-SB#`AfYSlcybolGyb^*(bzx_wy%-XBiA8Qpy#09ou?<$V$ZQ!PiX zK34O{T3luYR*~g>2GYcc$wDKvLAr&5>pTaGFl)IvU;N5RS>)0yQU|me9bNV|X%lwI zljCBJuh1$QrE0#E3unP2FiQKR>DlYPg_gub)I<&u3)Czxh`*ggC*PS+fN;c(F(9WVXs;>b z&=sdAWa#O>xF4pAsVj4kHVuEU`E-Jcl{Q+@f^d##vAf097=_lywid^_HD&s_YcM`J zSPAd>VsQSEd~;9)64P>-v8l^ds9h%CP+RV0fw*gGJemM-FPgJn`e34Sc2aUGQ z8T=!(NtO{AGLw$4lsi15JR&R4&uvnvaNfw8_Q2rwI8`FnsdOC>%USC$W(_}#L9fxT zhI(DGJv)PVWkXUJ`bsbYYgpF#i3pT&QzaXo!n zeTJdXqd_jjZOwS!@4w3$N|=$uM%wA13QK7Ui7daCm;KPP-nB9SEOff=iuUK7!ft%i zljL?ZdcGO8q8;FA_H!_!8ZW8!7=yO{{i3UnsBdfaQ4DQUp#5pb? zNa(5QIMjd0ZJ6w1K{o4SS&iJNa;@-ww>4A5ALnl1~X%tQoiV;l?=$gEFmzU!)UI6ryyIt%EM!OQqo>}>tN zW@?s&9`5|#z~KbamLodw0&}t-c{O1)IH`w!BiR9I zQ5iNRM$Q&{^L9c)HAtr{(vs5(fG&2e;l!}jv8&xx{3gX!>YwjePJu!TU*Z&7RYxZo z_kA-QKY^1N8|dTj!quvScF}r)Qyijn7fT$xwJFM#s}BK;tu<`>Upld$V+(9zuO&yx z13kEJX$EnG=GzAZd`W&O|L?Y)3gWTA>40DM z89a{JM|*4xhd}%NT}6$xmSM_1ncL5hA3Y4%3+!?1$$tuK95G9K$o-njYB& zlJ&Zn=G5j}6`oGW^#Kbs?>qZ!a0Uc!1x5)P^Y-oRcdGAV3U&beYRlHrSy=3XeQeWUR7#@y7y4jd_u0&~QSoxO zf|2owa9PYVv*A%to9`xTVA-j@$EjX0+aah4D&BP`s?p5W6sMLd%IN*#?Aa*U{yBMN z878?##D|O91QiV}t0;&x?%GBGoaXoM4ZAwNDk+paRKAd<)h*hoa}brQ+KDLqEbVc> zYmE3VRVqwUx#5kVr9+!tIauT83=r zcNAAUJpY4nh~YT5em3{*>}2HF958UsJJHeFnbuoxPlKfExV>!>St@mQ3e)dWu>Fes7awmd7VHCCtTLlA~lQo2Qd-+H` zY_jh2A^j&w-Ou2|KpkKE>Bp%&Zmy9|&IsvGrQy2IX0-=xShj)}-9(f|m;pr?6r{7a z(Opo}rIa=2fP?Jd6EU9Kc2T5_GmQiXGSudQ&+W*j+D(@3tG)|2#GzsdcoH=2=QDo+ zZNB?`_TSUDVbXuc4%**KcVmx8IN)Xv)zsWP2l#E!M-B^G2*0kfhntP3)OD{JTPq@; zfDhW+qZ>PgL7Q-2kV1Xq%vu~OT}2tH_m)1S!cd6s-kt>C%Z!vQ3L~={SVz9&&Mu>_MPZXC95Yf)^IA@ zX4v2Hh}$D+5}|^p-hQ;?zfYFAyalVOy5wGDmxF~D@ob+795u>}NERAF1-C?%sR#23m zwW%O>A%08_SkE(wf3GXcF87*XmCcCrpjIVfBxP}6XCAZDBXzM{HuhXT9bwKU@MXPh z{bkFz+*GBp{dP+n;Q<$`Gs==Ys<*&?zXLv3x9&t4mHgb*z(Z3G@bKavx#>@YHU4X& zCMilrl9*+)^$WWa!ed>^=;vRc96az#NIoqpt|HaMsv5JdQ0A&K{wfI*i?mmsMohnh zw`Wsw53PA^J)s(M*N}Y9P=IGk%f|XQJ8C#Q_UyL|RU(ul(_s^4HZJxb*P!U`nYWsC zWr>~-17`rFQ~zZFe8$@ko=gn;z@JYGqGB`B5H^uVQ{dXSmnsS%@k*4yuAE&R6L;z$ z|5NUQSEbRzw*`{H_R?SOSquN&Us?0_=8%+P=FvN`;3{Q{IN<~*j;G|=PE;03s2c?7 z;4^)LMP@oJVC>tB^-#7ZsqOmc_+HMTh)Ixi-fz&_MxML{qKh`w*;>PB<1aMX=qm7 zP!vgM;W~N#O#rd?G1`lg`FUcD^XMaF{653c^Sa5ymo89>^5-rhEcXA#^+9)1x!#mA zE&`(mSsrSt{)2~PKSIPiBQtD;?RzLUeN-C}K>_lB(-Q{!%SeFys3;BtXsMKWya4ET z-L1BBtn63%GWt_WoE7F#rA}oYiSD8Od1Jch52vA9+|$Q>qy7 zGRKn~?5l9&KAwoSaF)>^i%$%H=J_A z*eL;Tsdyzp$4gpkl7U%mh9ia=;pWnxkUE?` zs<1?LMQEa3|9U0ZI8rUKZ;KBDp2F?~2OD|5MbPr_L1zqjp)reQqX! zz4fIWtUEb&YT}$xX%hymZE8+eBYi!#eMs1?zbv#p-}xzlk4Z@%%GuT=}F$=({8fPPs5M+}h6|^!A<@Zo&R0(I$hMbIAU`nEXEc zLh~`;mBG;cS5+PtIQ8RQ3BX4HwRm$0_+$+fC)kvq5!L6ZZZF2_g{Wwc^KPVtsft)S+vv^vdYPpR=Hb&RRrEf$z?gE%i+hxq+qpv_42 zCwPiFJDUps><7(F5Zn{c;^A?)3+Eq$RtTL=*KRE%&&1w?c)yWB+H~2tQWHwy8f=7R zd=i-t$!CSLF4dUjr=yR09@bW8fi5mD$Qau*j<}Ia*CXm!b#s{XKzNB&%Q^=r(SOkz zD%5Lr8}@ApHP;?>Yl`*Dz~GOV?!~r5M}J@LshmUOy#HycRETDqX#Rt>*t(c0p|$nX zvQ}uD`z8NAI9Bpd={ZfK0(5|O6hs+`moumoN7?GD*b)WTf_FJ^u!6K(03iY;9JUzN zEAjQ-9|+{=kL>*JBLaAViUp7br-oU6*7qHxNr$C@dZMJ<#U$}ky}Rsfl);o~@*R&t zj2oZ%5F7CF>-ZD1US7@aANt>>tZJ1jzf*S!jy>b2d4@gdb4I@8l+3D1q5Dguykkn@ zIOR1sWoD#~c3DOGj7t!_`e475T4Usl6kGC$l#V||1X<$*qfL#W!Zkc}?)!~C(HuDUp`o6^^H{twl<;EG-nK2cU1@a{^jLKv2?!c$xX0;vT7 za>3RmDC%i<#jJOSp(_Vnv`K^AY7B>W#w;igyUXMVsr=yYBY{DHBv*(UZNCRSFg!Bi z!w(HMCM-n~5nYpf6%KX{M`pH@WUf75rr6?i9d*4-na3fGi&ZD3v|{ z%womdG;QAtfJ(|D;MBtpi&jx#)KwTBySkdDe`kn2Sp;SF{!BNcoKGUQhE?9&4=g%r zrySOXFkEpMDJKyWxfsDYsnOrQCVTAW-fOQP!g${e{2(6x=zeepz;UUhHaHb)z` z>9MQ#a*ONCoWaU_!LScR#<=#L2Hu@_4F&j}wH2^E7^@c;gYHYq&iizN_u+Tkk+GzG z68BT|Mjp5H#fitM{EO4S3Pmx)iG7~C+iL4sZa+9#qHrhzzED#>ou>kQ-sGck=2<`= zOs|qBXb2YY$wyqmDb9Q;-(eR5QTmw@xLFya80|;Tf}mh=gEFteWXy%(*Ix;Vp!&c_ zH{w+T$&Y}dQaC-Hzfxq-U6oR#BAZiODe2O3Q;m8`ks~h@^m627Hs@2(7WJz!eeUP} z1uY4BDWeqI2#HjyJ_+6E(!$lGS2KJ;j_umVsu@tY;oegsGa;ECM+~R(cvE^Bbt`dR z8uC~C|5|`wolo!MU0NRvD$ySw-<#4h|D(^v=3IQ-R4{BwMs~f0E6H%Q)}|^S73rES}KEGYAS;N|DuzQ5ddX-n-$D%EB@dF=a_h7 z1H|Ffu+R87LjjiQKSu$eU^_-JsW7mw0_ZO4a6~Jq%K&ICB2+tO1_~@>0X}J#k?;Py ziE|2X)C?Z}mF$ZVph{b1owS^LqBfa$BN)~o%abrTdpEZve13Tk)s$0xQJ?)OubNUH zpU5!9lndHei18ru(K=Ed*4L5{M+%MJqF1gkqwQZQi8>Q>EU>vgbl1I{$0_gWbWY26 zeIGuVz(~Q6|L)s6i1e8?iDf}mik>{#uZBOpI2dqw@0q6b%&wkW;)0`4%|P*IcxTVU zvQd73hjr_zM^aYIt+;tM6tKUa^czc36F1>IIQBNEhBD#?VE;xFUuw9^t%3`H_Rt1! zfJHYfDguvDHtUg((C(0IKFR|;Q8pQrfcO$}tLX8Rjy2*X`M%%<$&INeUI}YVPs&$) zev!dbpFfyvC}*=B3P|P$p?$&((7tYl+Q+6)8+#~gOi|{NMVZW z_P@`K>4zIMu0NuDKZ+)?jDV?)O_14+OUE<>^T(XyX*>4S<3Z0@mJUAR5#3#TT(u|m znozEfJCgP!ooYK+xE7TdTi6SjUGH-n3VEOXzK zmeHL$Vs~Ja&Ep{fv%b&3%_!`y^|TLuonb~UX|p?@3Ojb2QwmHkQc?9hhYEcgv3X0E+ zw|aFi`~SoV3NHTE{L(~%swPsF^Xu#>a&t;urx{I8;aU`S)G8&zykk$n%vJheHbLdv z5&5O*3b9}Ob)h^s+n1W_-MG86$Y$SQ6usd_z9XWi&(l?AmQALszU-S9f_ z2Uo~{^C@Mf2z@8hK6`Mz@y~C{x8ErKkN+Q0Zy6P3xV;Zgz|bk(Al=<5B_J)`U4nEE zA>9ok-JQ}optN*Jcc*moa?bhv*ZY0eteNMz@4fcEYCFfBvXE*5JrYSWGrQ2aJ@Xaqr;eX+XBeTelE9i6CIo;L7+$SKmc4*5@3+LUC zW#Ct4TTEalydXd%DegO#vRhRKq_c6|Bp|qN+Bmz%*kaL4%n60LGz0#@1VBg}0LFwG zne}U@>ho%#apJZ;D<#57i~D|oe`l>i3D0ehaz$F%cp!C#C5}A`K1iY=U`|8%?svuu zVKOp6BV#V1=$}QiK72#nCs=%%74~QUExbtJ zcb1GF3qI4bHj0oVs23xpa6s2!{_lx9$iyJSvrnIDG=7-r7MN>~U;8Uy4Bfb8Ixk7I z;E`V1idX@FWzwph@8=aYwir)+=JKOClT#W{-X^2LR}1ys&Hs|NsH3@SzT9*I`hxIR zH7D;cq>~XyAN1iT8Y_feUx2SSR0lEq>6h@>tH7*qtc6>)6C*2J@)=DnaF^s9c1Xd3BOAv zNZi7<63=eA!`B<@jE(8Pm6O)``Hra5jjh1N5g}-jHC5Z5Z~r;!iNuZssBLKfCi;Si zA!TLfNSN0`pAg5p?m*D_9D5}FN-gcmw@2|60C^kKjlK~1dgv6;TJ?|*>XknSkNxiX z+GNNKdk)C0;690XUy({KE9Wz)9S zbFt5Zn!$o%ugbr9gywJuWYCNv+(1Q>;T5zj??chzu|46o@19;?xpM;((Z3Y$E=Se% z8qmpTNOK5M;q2oi5TE5PJtE2)KEeTesHFO$Z|D0$Cp7OaWg)Kz7GeIYdX+Ubj+axg zNax_`@SeAiE)B%7`-;Lz4%&D@+wJGr-9oCDvIN-LUOK&8W0vsQYTH+`1n9sgrh(U6 z6&~o@({J=Cd`;imK=(NG8LiC$p$oPN48Pv1-_YP=`96+7cH6V`nWwy5rn$S%&Eou0 zF-lCA&-&U#3)PjxYy%~i?5|F)Imm?KArVhs^LG(V+Xm)gvGn{&r;p-2j-Hdh9H5>4 zo!@(1zx>LV%*gC%ZkA9JnDHaEWVTp0E%DuI1yg*YfQMEja-6wlT%luWJPi_TCe7c(5)rUQ8%}IR@ie`SvL7OYw zLP2S8i$$R~%M#9VJP`-*hPzR98kBIcM}=7WuC_LZ(_^%e%FDm&iQy?neQ=0-I%j4v zDUKq267|{k0>@rWmR1 z%EFoLp2rq?(n0tq8X0z*%JX78Yixq(1Ap%Gd-_Wrzz@CBh5X4es{q4~%!F2Ehyna0 zyj{FHG5FC-q9o}e0px36mpb8>C^3@4t*VI+Ys6P9oUBhZFNkOTc9%>(Fxn@~+Ftkx zQS9V`qje}=+DQ=gJgGiujYO0CYOO3e6DwdQQgHEzV>1R&&jwuFq4On5*kdXB^sHDt z2$0o%V%Hg|)oc`E_iK8Glk(?a#>5v7M~Tp`4Fe&FZ@`Wf%1jZv@^AHfCL3wTR}n-} zVWmr6B>S-~*B?eUMsa=!Hhz7Worm6Cgj%Z!iv%$7`c~dKF6bKYv=!~eAhRQC9Yi_! z*l2b;W(oKYqiVfknnk|uM7!eV&?@QC{qF0**%{I3so)!AI350!0N%#)@L++jG*Lr)cf$<}W2`YhL5F1xP~^94@Qkn-akGEK39Mw^ zsHZ?)r<{`u%=q#l6*K%jAZawnr1@J@f5kYQzJ)~yID+;Rym|AR74H_#29TWQLiU|J zt-yb&_d2n?Prw!RiU_E0mFg24!t6grrJiEY{z*>N!kYH;li*mvOO9Zcc7I8ec3Qto zw$Ftiezu55MeMJWL6t z*CUNb5d2hx)xRdfUYe^k# z(I8keA#8kPoNgRPC9cOBy>JJRqqZQRG7~`R_|C!3wDLF+)yAugGna73dB>MWG0b!mT(ei#sGX^X1p;s}SMdp?YW@c}v^-4P-^eMiC`qGb5I_Ib{V|V2V%Q1Vs zpO`;zyULnK*2OEmh!iK6kSL=#EBL!dokI@-w~B*9;|D*;LNh7*?cpN7 zB7$>idT&!9-7E8VOI`lYSRP|58vZ$zgScyzXJ0pw}xu9WQ>5A|ZqmuN!sRmH8kELzXnjqO`?r z6``yO#1LO^_H9ufX)peJqo7NG@$>f|pvOGchzZpQV=?-~218a&%?o1&tsMoq<1<2j z{9ea>+{fCq&u^*{B2Fi}OL3zb+TaI9Cc&_8fTQQtl0ZM(y0|k6++Riv*ym?juoEs! zyDpMcn);SAk{c!fwp#LXu^;@E&>HVN?gm{3r2EACX&g$<``V2+h4%d8!0m|ZEAszl zF=ST@M6osQH|_{@ydKc$2JjEKiHQXmk-KX|CXi3ZVEhEZ#Xk&TbNnfSj7%IjiNX-3 zI0JExhv%2qI)68F>o9+=RM0%ZqC2h>W^D<(yVoYqRp0dZQqQ;(LFbnZ5xo8>5F)>R z`6PGEx_XdynXTI?5XKtDVzb7Y;dHS&WIVi1S zl{udy6y#JN_$z@9wx@E?X7LJU+xNg#y*rBx`%&0qBTA_;@M+w@{|x%JE-UPRmj>vV zK=d}3{Ohy`q5-m{Px=`7?irE4pQC=cNso#S_=B^)cZ>PdXVE(!CJ_>2jR5G<1VsXJ z-g{1Tt-c=?cVg(~NuJ_|J!WeH+cxMU(-#ocrb!bVKiey4DuAV8=+%cA94^l_@_ zcD!*h4JX_TmWJ^pD6*CzQ8LKALbj6{FA7DxGBTeXAZQuxlVoMpRsGcR2&b;<`5_Sr zR<)x1?aNCih1D1FoivWG$rYdM5ZPv9ANH-t*Lc(` zUd3!^|2q>P;9X~NKY6ttbBxRQ!C#=S)AXbm|^Lw9Uy_vLo0>HW;AZGXAqMNE_UqM@_F$f5an2vj|}TD%ZTx%k57 z7A&5<2c%W+NB|8;9*nhm;s13~6=5~^EWec~^IR#B-NC!qfxTkG#E`Zz0^h7?@G?P}aw}wc(QVW@Ix*>Cza6!&$r#;%GbXL~8yIn($+RAc2VoBhmUi||Tuc=^ zk^7JerzJM+!{Rn{Z>hqSvzi{!xql#+hQdEIbl$U2Ofh8gf8N2RfHf-zZtaGb%%a$Y9IK0=o1}$EXfUm0PPNMQl;J zAa~-K+e!3-Kp*9S9t?od%6$Dk!JTwKoJ~MZNfzjiC|t|7e*ASx1IRj@kxFPl6&t98 z_D3Gj{aZ2#y$Y$2VwWIhg^Bhpl+-mND_KMCc$eZq z`^C(+WO#x?EB7aOGxHE3*78Q72H@%cWM8CQLq*mXH zKYelMWwY~MOB;I<%IvYA6|bSt*}ZJ}cgCvwxJ@!#^g&gIE?~&K5qUpJiyv;E@0?Zm zn97y~Z9}#Kl4bF9*fj8>rsz@3m-^oebH;C=1@UjQ|2Nbt?R~ajZ<-V?NU7xIpo2ex ztA^55?3;*!#}b<(z&>VR=nTtfN2FA!n6`e5W-d3lp*M@#C(DYVT+sa zjq^=2CyZ+@{X0ylE10OricUEeHZ-s zu+!RArtnOR!#DUmJzRb;&#KsKf!=(%p<<~|?>PqH;dgYTK&3VTyXY6DCsY;(=B@7W zm;0}z|GgEfCgn(X&lWLpZ!+NRWmf=dF5)Rx)uqS?95!9OZ$Zf?_S0G>CFTclxbb_S z4)Z~Rk|q)R9;HxVgTDE#>#?7Ri|s^wkTrz%y%KeX>BjCn@2BNy3cW>%3pJ{*#hxU9 zyB?YkC1C;IGxr)oo<9d=X$GHyj^m23(&h1H)EO8Z_i%HUZXC9C51sElOE_>QFW?mnRQ zFqbD_^6t{+Q(l#;$VK^ZiyOdT;FVnO(qiY=gS9|`2r!%pWszKLHOdP03c$$bsSIbj zUhy`DV1I+1>-)Nr!#blw+d7&d~lezY6(GYW-sdSUBa6vM(OmxL%|<2J*!g z!tw1YuVuaii@aK(OJ5qso3$^fO4m+8slSy{!PrD(XdX-d%sPog{=u3Ku(=lr-G>G@>JIp0T5Y2WNPN;^~ z4c(@$*ErXIVcqh+@|;EXlAGPo z6eUFAC^MzNf;GhKMmoySMTCIAi*{$B#xr63!|$K{kC#}Bibd30!|^R{-cvKSdp*H-_9dd>fv z?T4Gl05R>^J9E{r_Y*s?3Nlpn`BJTs1fOVkAtYjZEIP8iv0rcaPAPuWZ{1Yz6T9jT zE5DSsSQ~_}z*Cx^1OA-GzFprK+L(3K!v>@<7(29$DmI`#DN4aJAWK+sMPYldfy*0L zofILZyyz`wFgzPjpu=3Z{003Ra2~yEDR5%8z^);xkKlJ1Io4FaI|V?)z~ph;DgGH# zMQUT!w6p)gHfdOZBPSJheDm-9j6GM6;w9;8#SfyTTUK(rkx`CJ@_cq!ij9XDM|fe`u4Ay1wQmT-pOX&(1r{pB#Srk20KJINd{zw) zL`=82rM&;Vw%ks?`*qv2wnMwBcF}=t7zMCI7x$(Ki@KO|i>aVfX5D?ZD6*~7ei{hF zGc8VEmE!zt(%lWeB#Clp;p|rwop%&R$Eu<+Tl*Z4cQ!Wu$>Gvy?fSi|I6(9ZW!KHv+_ZrtdMs3p{Whp+o@8n@ z-1*LQeF$l&V*-jz@o?Fvn65K@KN=q;XE*yPb}u~fH4Ky9lm>x`NgUsk7$Db#+v8vf zqHw=_*!vG+SH>dSCt_VhC~>5!`BYWC7RcI>RE`i zFj^j zweyCE823(`Xc!foJC(8o>-#rTeNGHT+4M5_R}jL{QqniX z!bOS23=K-STuz8P0c;~(-FYpbmKQS4ven$#=PC6wLywihjFFwo`#M%AEPR=355@FB zq5XEn%j{%C>Axu{NJOE)U+j?K63nF$354}3)~4={J%C{VIp8h&;y)b3mNZ%bhj#AP zzd)_d#{H@+;d6PgABsR_-yUhDhrvHLRWI)KQJ^1l4#!_gdTf=0h7`te1b}-uz^Gb1 zRcxC9XdOCkq&+vD3<1^tn`5nOyM~Hwx{clTpl_td;ZTtLT}R}*Unr{;*YOenL=LNp z4Z9%k0A4dGe>t)mfrQ73+5x@;V)nN#Hv6pLyARbTYWJ7Vcu5^$J&iuQm&T+|0vhSP0cf;cr8mZ_pOv{R@}Uj3!TgqZ_O^&Uo``tgpKZu zolhJdE33E&xe}eF>*Pl?DfEYoKo6;eUsik~={xD{i;v_T-?lvQZ$&6(0sHEe{(S&F z2`CJttI1;a!JyTQy^ENBeA-VAD&t{n2zQD8wR5x2AfmPrfZt%wZL>$fZcOtVP9w4R zIKRr~(PnkSg5}rtW+T&xA%bNWko%Ra$p5uxWV+vIr`hx^u>Xt>`8{NqFSY&l+~NRT zITG;8F8$;L;7e*L+W0Z+g>mXNsU<;nPRMl8zK9#123?u52|P_1!j#3eHi*V8Su;Eg zJ;gj5GD~#4f7aUJW!$6Y6b8#*77K~IUgvlnApx1bs1JRxe-M6C558xAjvcBYhdkpX z>l!~rqXYd|8GhEyaB7cP>=^57m5d%H>N^Ck67BCQ4|iHkp_O=ZRjlsIM>ew##rv>X zJjnF^ig8Iu{B?&-Si-xtYmZr7=8;yLG|6(Qtq z><_uCl0U%@=znrqzTI`H-lTV&C3OS;6B)N=H23D|;wZSx)fe|Z2Nr32Kmn=21{rTw zG<+Vw6AoaY8!6!IOb4Ux@*__e?*han4YXCH%wUxmZeqi1WC-bzo~whmFh@10M|uHh zH;1%OSr%QXzp<=n=4%QUfln@MD@oMw$sT{Kgoj-`%^0U!pcrW$cW3%-pYysg1e7+Q zf11VQeAd&WKe(!qtf@oY%UKz$6-Vafs~j;YSn`~70*zME`Y=SSa6+3wb~Fo85+Aq6 zvHz8xZeeEZ-R-yYe$0sl+&p!{j|;g$KaC^cGOPeh%wvL9$Xx zQO6?5W4~E-Cqx1956q9lYLpvh=NK30A(2U_L9%{#tr@Y9_fGW%)EMz8dDTGMx2?es zcj~6kY4pq&F3926CB^cT#ll$)F|i6&BLrE%+zaW|vLy-ha`eC>wed+`ncFdmBK|*1 z{{%^sK?s$<-}&Fl)i@`UC%sOo`mwI(y zYoF(&t}yDKpbR~>J0J|dq}^&Tb5%F&m=({6f-*M(TSTp>#Mt9;&!}e{Ut-Ul_kYT4 zlafxAdhgojzq$&d7}wf#F8eW~pD{M~j<5s#8XW!wX>djAyCTUUPKV`(Z9l90PoPBQ z2TQ}6?rc4JBb{X{@Xls6`2Vqoj^I=X(@`!Y$}xb;IBl$J;Zq1maQ~yfSh02{_;6r*{S=45ukq?3P`0wbrME>-XJ83>xX@~4xa(hwA@7%> z$5eG8pqW~bnS6b_%|-sc{CM*3P;g~ujv{Lut88kut4P0Dq-3^wfM2PjCql6WoxQ(l zXOMKx)}!hN{J5iS9Du+)HJe@uzF91R&$h^li!htTcyyM<7slSWIW#hjTjLv366kn` zy!Xdd4C((?{pRn8Fg|>quEt7LtfxFJ4*lY$)9qyKZ@IMKSh~eSB=(0|neK}zBdW~q zUEllJ-zm`8wAW`S57R2)I+Gy3+(S3xBg;iH?O`x}%q7rl%`|s?q$WX~)(EMZwBi@T zRe8Yk5yItH+8yX4>xmQkx|pk2s>hED&r;MZ(cL%fE(YHI*&W5Uj*N(U^_>Q?*~!Du7BZoE25qMg8OYsxoMss zG57p&OD-eH=l&M^FMlD<{`e(8lx}3BXbA5-K+t8L0cbO-*KEgtQQ;~82u!9C9beEF zvd}jyx4vL1ezf3<0>W*;;1lCoAvl>14uZmd| zxG>;2oUZ0`#^6}W74Y?Ed`rmt99DK#;BB32WSyicz^Np#VwMzicjvdQsE66 zOa3kyeRxVdi!1kRjAvteVaV;7&Zil${&s}@Yi%Q~u>M@_{tt#>DGH%{a$I>(w_h3Q z`nefa163NpaskzX(B2k-GUsH;JyWho zWBU`tZ7tXqxS6~JQkW1PT03YYVe38J+Ltu`(rB7&0+4LC`Hr*51*W~K zf%r;v&*Q$m2(w6RGtgsV=0lL-w?=Nsz!!}g!hGV&U|FO2e) zoTiNkn9LJu%IR>w4|7@$YLU}*;DQ%q^aiPuSheT?IfU43y2`#mN^xJXec|z*%mBq# zdILwSz;@$YD65P=E*Wi5+I*Ia^kMq^6hY*XL4-pCZxrjJk)b;v+ zE4MC~&@*X|ho%0|oi)6%_@R55#e{MaZ$?6gDf@gISy1g9RBa-Wac0kMd^{Iy_1loBR8} z=3W2-d^(lvtEKtwMrMny%;%dN;VuXc?^0a`-KQQlH&?;0v{E*H0=ruoBV3yizfJ|G z$N(~7R7DpJ@UvfTSv4;D)N|!5!A05Sn>?QVYxSHm6 zJb9}+vd3U)XX=Rt{%k^S^Ep=CgDRb7+NH zdjHSycZE0khG}fM1-V&F=yiHU{>sx57sQHDYTV)1k$26S+{U3z`Ge7&%=?t4q+4(v zAEF#87Lhn?VJ%1(IYt>^^uS_MRP<+GcM(FPBa?<5kTf(<0{$~4!Ed&ZmAmyTZp>q- z6=j7GrWCNxN3%YVZ0g8x*Ubj=H_UEO&U6liA;$0Ca;X@Q#q8Wl$ORI_&3~37=-bO7 zh%53KS`hE1AHNDwPo};3MuKkt$Hb+2FpB_rTV!m~4Vwg)gw)>ZP+8yiLj&nifS)w% zR+C5cO9i1+*9Ny(&RgJSZd*BKq1Y>v{!k*w=o7jUNhSns4!{WtlD z=;{X%?}vT1Y0m`aK_wMBK za)ze%;scF9=k~PHnb_iT{Tva>uMy~-Td^l2jwgl{R|Ag`e#QO2-P7tE_bU++hE7nZ z1~U4mjyMzl6(dt|Ziu)bP1KYV^?#0VPAD1Dx^ev$c}QWEZRCH5+k1Y>4KXj@k1bd| z@q%8pi*&F>2NrqedrjJhsW+4U+p(gmEt}vvpDpfv3mUF2pB{+iz%75XK(#%^3We-P z*WK_=wrg#@$wd=ZANM7F|1ESEyk#1{{=D7&*G!`U-S^NqfrhTR?scuWPJ<=6gHNA>Zg@fKD($k_xfaBxX9npvzVzcwRMk1!hK4S~`q*0b!8*vun z-;rSd@Fem-F+@*#?z*qW{8Btb1p;oIQm$A+ zEmDDuM9LZ+eF@OlYsiHnr*BuIEO}A9rg_IiXM?$Q3C-9^Hvg1OOUnj{2C%VvJ`ZAj z`D$Ya>7NPCl zQ^k;`=j(|=}vq3$VV^_X)mB*_H;qx;P&$%Mn-c`U24wkuPtvCUzS0h(FHa)jmy-|r58a4;Im z8;RSR>AW@OP5(n`2C_!aup%t@M^G?}o2mJ%q0WZ$evhl$X&bS48mVb4Q*mlU8xvz* z{dVx$!wwalOyJvPiBez&Ex=MzR1B;!{jix#weA(GHP22E=k&1Z^X-_Xk3#j2u$mQs zI1JsiiK{2|tma=_q?Pu*f`-NhY_fp=ZJ)Ds=doI=&>ePwVt+3OL6l{l<>4s@u$CV|%>@-!hG6TYS7U|qvuewuQ za(_C{8%`eoZ7UP(&E9KXACtNSN1eueXWEC&*$;r@R=iJ-SpE@~YQs*DXJcvoyfN@w!DD!c=-PDVGMSC*SHadU#yTIbyc{(0gG3F)o7ucG64uEw?xnuUw^8}r)r zHo{R9_$W?0@_$(3{XSZZo{Qq|dc@ohFUhfz>wKbg98gVD?A)~28?^2r|tuSjcj>|5fD4@X}Wp@QZ5r(#! zrUB8yAU$6;F%BdCq=#_G1H+H_U0>gveE?yDy(#L4JtSd^AcqUSZx z3R-z&cj-0_&c2W$gE6>9B?F}<3VYO-cr9Wqfu_5F^V?tfLz)IR@(&_wk1__?6$Cp^ z&J#I%DU8gF{gpO1`e%2BKlK=>-8un|k2t?|rrU5M$fRYA=7r63#wyd{`_?QYNUUcq z1CwP(P|cydERs;R!AZQ;lyy(7QjGW2DhwSp0mA9V~!p=syc(J%~#b5Xgne43=e#l8v*?6zG1ZG;s3XVX4zD zKa$m4$!+U$70n&PP4{7&%|;HxNw+zeO_$KP58IOLd)TNZXlnA>BL#`F`53&(h|RKA zNDFQ?64aKyv$dot0)3?G)t^M<#4%@uBJ2h&csVfn05_>HLIg`DZTV{e!)_xZdD%yT zoljV8Px3o#^<_khT{9ToXB3`fYg21r#WY=3v{Das$nC`!e7TI<68+FIpqD2i?dD9^csH1 z?I37;A{&0~$w5#ln#Gy%GJ?@T@)`E2aw>PuW1Ogov8vlme|hXCqk`;BdB-HTb3WP9K32 z`2D>Kl%kjxZ)TM1c`;5ups$t1P*324cxA^kHpQ61y~Up-Cqr~m)RGPFR=B@MAMK*Q zysO^hvLhU@i=wMytw*}0vblfEMX26JNKK{ims9W#Pjs2CYw^=JGtb9eLtEvrRr1@9 zRDla~a<+FRGk-_y!l{}IcmDItxxA`tzOk#w!g`@J-eI*zh}3S2WC5>7Q*BKR4*TYH z$GG6Lp_+qo4-KZOx8;g&-MVzuZBf*-eVeu((up1C&R^a%(4W0rmu`Rj4DN~U_y<~6 zE~o`%jikTwLRD9mU;n?A(ffU6@z#v{sKqdYflG$Q2&J?%i6J+&+t&934vL-RQ7^)| zuEr(=xbac8#avJhU}vr{q|~2n(&!V!{Z7T-V4IPdjF{ z@>qE{sAhd{-%u_e_(fU#y%~ysMPC4^Fb|ZEmTk*DXA-@5s^B$Sls-f zikmO@$zo_0W867BA~pg;3Z+vY1>8K&6x4B3rwBEWme_AQKpdjZevBKx{FSn1!|dl~ zuoCqqHjBQHNxzWuTE$Z}uw>S9vVvEc5e->3olB=iNwPDHeVVhM5s*$(Uw=P0vI2N9 zv}U7l6g%a|2bm^WMRm@fyyQkPY!$hxE}~2r;T+!%EzXl=LL;`|u5S)kRtwk-Eo}6z znE;x=Un0(F`uKsI6KBIX5-vHFNGZJJw<#DFUpAaYXkwyg1(bL9H{VScM~3Q8*In{_ zC9R7Al2oITiBzhHX)BfJO=17HTuEaaJ>g1zuNPgw+c006GEYQZ_r6cTg(+9J;zVSi zZ^9Md50@N+>Dvze0NZKc11_ZqLw?n}l4y{ow4^m;JZk+Qp{%!kNd{$kB|qMz zi3hYO9N38q*bej+D!~7^1#7mR->MXKwH+53rXioRG5#`)JOMvkq#*zYfexOs7ap#B zFM?341`oE=)RG#EQ>6XdAO2V}vDh$lu!nA+s6U+j6siO!m{ z?}a|e$GEk_-DBYCetUXrVJKzbtopibtxY7X`5l_jN^l;4ZRUOWQPHbkGJ=+^1LKmE zhQ{CR@3KHo55sD3zM%ue@oV1?;$6xKJ`-*qB@>EW?i?)RYtlBdBRQig{+Kt?>l=Re z#cL`Dfgmv=vwaP}$d95P1#v-Az>AoT(Q0+or*cs;@xsGe+3R+q$tS^z&)vsM6l&xA z=DwJf%*l>9Hbk<%>E!xDq6KzYk32;#9IF}l)zyX*_*J4`jTErsl5=?*WF#sR{;9}& zmy?>aJj0n*R+abn-lU^GP-#i98kx_waxTM>7@!V`)xe9>)x9L=Zir6memkhYt$z_M z*9yWSIVRb#9WE005wegtwh}&3*s3KA(K^j;c&-#3cuY^e(>V(c8 zrofBkF1iP>F~F}fr#2Dp^g*v{j-}6YdnkCb93%5A7QvN_MWv!Y|uyyQdy%7XvB%o*W(n z?-VMcS?aOUyvZzWItqJl@lXp2QaFqmVmXiB5gXMC3y8ezK4xrw|6`o*2@(`aQ?*;( z(1|0SZ}~d6=_2&A^)x}D?WzIpUO{(CG8{EvAevEM#Ift{-C2~_mgfX6<}*znvShr9 z&7>L_v9xGEBS*0~p#DmwVPAaZ9dcM{F3MEGP69*Gb-j(D0OBe5P9S`&$CX2jh8&1P zfQbs!;NMyae)nF|8ymBifY76>Nc(Oj9S&zvzNU1)$lg*U!FinlM$-@nLM>|BTca_u znsy3gg|A($X?*=QvLdN_=qu-s$Dtu1$264t(-2j9{R8k7K8)3%_9^j0ZowZZn(u=3 zNCfzpKLC!A%Oq@YxokE(-{(G9vuBH@;S6)ZEz7#)>GK^Pt1=P+k?*%&vG(_NtaEFa zChCQPc=}U8waQhR2bOx2>C}xi9wW9tS*EV) z1Jih3d$qIL%eFsXL?PsdD6kpqB^4!SC8vGLT9IR-OOLK>7SsVT<|}>Y8?vhcHb>8a zqx9vh8Ro=a(!2*F5>Bb*(z+9OJYwO8w+}T9mJ9!uwhf5j)=A^7XzP6mGB`a;J5@Fo zWAg`Xb0ebqpXN&dqp^&igX|VTpWmOfXLd17iCwsmy8A$Uik<;4Q8p`Q;JOFD+r`Y6 z;W7*T%Y9*?>t)nsAxn{5?(O8u+|r~%N`%jL$dFhm1qAU>SSUN!_L`d}a(imbdv+~x z?RS)RL1ZBmm4Y~nQV*DtRoLZEpwfsfo0h~+0e;St3OdJ(e$ z>-_t;oLJ9EY`Mc3-(+++KD-hM17d@EuvL82)9Zp$QQdV_*XhCE9}A+8jsyF8p8Ehd zMASCyxPUBxXsOh9usq7X%;j19RZcG_AncXo;3F+`*gkD!b^in4H6-A9CE(@s{wLnx zM18>3u$Zz!F!DbUU>kBKb6bk}`!K&GtD|Jdg$33iCS!%#N2Bu{ZV9Y3j#LzxFlTa$ zl^RY$1%S{v`LcViCMWX2rBi%8cLe8p_ny4XuY6$!L$aBpw(V-^$~$;F(SWz879BIm z76Hq-h7!?UJ7^%rE*i~bP7puK*h$vor#&ao(e|x$r^MD4i0$~) z%g3)wum9XGPP$8=^Abqszi_6hfeh2!!vzphp+>0qI0k%J9HVXgG{#R@Z-ge7;ASXl zCa?AnK$74+lN2+@Q>|98CniTE(cafErRpg z$@-u?wdDq(xYFH+JOx6u4zX5clKyu(qf*Qxftt`_IOAuCL4rb>UAQp}okCTGOB`oy zpv)tMnUItl=8&{@D(8Vt#N41o;4^i)t;tZ&Yx>p1DvQrw{P>1tFiu$Rs4)sKmzN{) zgkvXK_j7q~?gnz<>>FoJ9k%3~afD5B&tFvP}0$jKwUfJOsI9=(pSnN4$iw z{k3zU59s0SoWXT8ZwJPhKE3ioJC}IBDLWY*mX$nK;=@b1cR)EAb7nRdA!LhV@UOPt zDlZ&rA?w_%-8#_0f+e)TsYC>?sK;^t@z3V{<|Q?%>FV4bbn9TkTpJvyJ_Y*|-Gd;3C=E*C>zjX%J6UM@ee1m**`9vrF>=h86FQoX3 zyp=s>vbdq!`T|!rjnT*JOjO?`&Of*IJUr?CzgKFNjX z5ch-(*YHisBPyQ!QlR*&>T!{>M&$cja3Eq%6R-G9@ut@G)6^1)fUq}`vhu;bmSSeh zMwwv#($>-T>;C7 z=?yg;rTxD`#GOmdB9GlPI+_u4Y=z;X8FuFZxW|WPh@~+;p%smN51!$X^mVjH?muMR zzsJ6d8mzWqC;PS=?WF58bWdcbiV@bguLZ%HsnMC&G7!U6;3^-J~=XMQO0wqwkkWOBbWp{t%79LsOVbg zS8*}wztQ?mIyptPewmn_$Zq&d6_XrUbR75XX>|NJt*duKGpkf4AIO<-N1i!ynu!^A za7fsrq}!1vG|jaBd&WhzUM>-`)#wKK(e`1slXFSq|7ii^;2_0Il$LH*)mOuCv zVr^z-Hu=x^Z7|iwS|Iv)fZnpQ*Oa$R(u7cc7znQZ$$%QbrbE15Rw4OzS;7dDQaMcE z(n!%RuFFC=C5CcQ8WEk!C# z>ml;NU3u^?vN@{dv|LNhI&@9-gWJIdgeG{dYCw^K|9 zaM3l)T_uh^L$T-B`#@MLl*;0y3%|Yzf@p0yEwYCzb|$@g*|CB|R=Yqnec*1)ad~FT z!2960T(`SZ7PiIT&w%1;nB|90uH~^nA%tn1k&^Kk{|=ys0b9<`8vQ^x$wSSe(*Dpg z`xb1LT_81vCH5>g^8H2_n+isRV#o61pzu!L^-lhz-n4Y@`JY#zucNQO9$<;Zj4Bin z^X=DK3IbuI3Kb1S$)utTb6jb3otjEp+tke;mU+dOf=5TxLW};+^|zmBW8W4v2z!mC zE_>L#{#f=aU2Io*v!M@-GQ1og^Ny**Qz4rzXCHueKVO)U@cHX)|iv{V>T0bhj9pqu2hqEW)6~x{ocOCYDEjC}FNFlMmPi z7mZZP1m5bA9OKg9=THB1Y4KR?J9#(*yg&XhfMgSpC3`(|DJx#3%dYxy)9r(;jq((I zNEwrl*1<$Qc4m%?MHX?u9V(xW?naW4oxo|zegO*b*1@a@3{b=RM~)szHO^KrQ?nf7 z%xdYXN!J$8sBbM`FOmIWp_Tk+;b_^;UA5feBBpKl)ULklMOO!Yt&#WYMs}s?eemUU zaW{PQ+^U9BkRwY)s>H2b!N@71t_s@oWjsf~6EYRhxLaK#4xR(jwYy2saIRYWxh}E# zI&-jO-i9c4(vLuu1Iz0>V(9eVS77rYr1`M+7c4pROz`Q=m;F+J>Rkf?i~g}_!%EZ0 z_~?h!S(YRDC9TCd5GHhy?A%DAhIwBqonP2|NCZ3WM7KXn)&S3^)ez~DtTnZ`m7A5H z1igWHyHV^VVsQU!N61XQ*FpYux9X)xp2wyACgiHJPv+@MPvq$(UPzgPxR zA^cVrK&bcSEf{jCbo~RgDe|kFPV&t`*T}*DN7Gk_H5s;V4@S2lozfxQjZ%^ml78r>YG@PlklfwkRggyseQL4*(Zae_I&(G8MPV z3Z5Cb?Yk z8QPaU1!*+j3{~hJo+#X14Y)zr^A2Mt&Z$?)S6FIqdynfEF%$n_#y~hotn$`li z-ILzyq6V?Vv|;h8F4i|AZb_S$)gP4JE1YgvaxkUB{<>D`l2hqlCSHMbE&s?{7(gFL zi^rGk+h_bdA8Id#EAP2VYOhexmfnJ;ecMBG3;MnfxJjPGJrq<~#1f-Tw@0vgweDST zH#hhGqZ5!XrSOqA-nz_kb7nO)G@30cWFGzx4G?wrbuB}~(X6M%`Ms#t3UBG;UvxQj zv>DV-f5JFmgq>lzsM~kOEQ+oaJ^KLD=d+MjHMc|%&}@JbPaRFCZVMmJ+Z9*IEI&1A zzKXNkIg0P{vUl|WX;Ztivwu;Zvk3d^x4rdIES28TY@4f^~MW^w! zUpIeKb5492pjsQ0V{l_hJ2c=k)`c?7-&$&W3b+jk`6^_))q~JE$uFzP@!EXxHW?9l zCNNbKUNVjWDHiRDeK(!V#!XO};fGa$It%3xO!7WKDK@Lr@3V{~Im>Af4aba#!uOdf z4vQ52zY>wYD0C50yTfs}4a;@TcC3?6;E~?WSob#W5&eW%=U=J)Y*Q^x=_)X-DM}6S zB;9+h8TE8(6!mJk&^CHUEr=cSzEM6t^XIPpeC z4iDrOT|pnb1ut--g!$-YvVAwotUN$bz{mN^v*tBk@dT)@A!z%qKVno@>T%13Im*0x z-uW^upo^@CI>c=YzMl3fKAYNsL9puMYM2uCHJ1wNq}7!bWO%!o<|J3j`P$d0WNM+v zA)IUIfw?8x4hvJ3t{_$M?G4{4>~A~4tqaaofB z3pcOcCN;$X#dzbFz8QiDEG_BP&|R>CNK1Rk(c=dk#q+cg=w zHv#D*E9lSnPt**>>Ag9+le(a++&VvibRsG`62J%4?ELNo?2SQlAKst5IpT1Kbo8E0 z8K*GO-2I7?ZMa0%IPAgkryS;v6QhvJ^TOa-h0^;HC!D0`)IZMz-YlKU5lnZjIQzjH zOg`JRq4jgm8?ie&QB5D!wO)Sdj;9**M!2?3}3Zr?IUdJyfoILY| z#0Px0S^@GGmXS1&d^g?N*}7eN6RR;othk+Ix>JAg_eKiu1Fwosk-0`r2RuAY=bTC1J_fi#IoDuOOv7#o#RsQq`xVHYC!KEPdJi zBs^Aeg-Z-=u0f58-BAwCo%L7l)-mHv)824@;;JBn%^S-KjQCITsztjy%l6htmF!A= zqBopX3>i1s5R6f`OL5Z*zMc8p(~GXQgzdWMMX_mMRe{Yw=xYt&9z!R#k-asr;9v*;OQVGtY)n?HQ^M2n4lRe%t$Pc^=xT5+z9>oiA1y66+ zhvL{|lt4Ck{`U&UVfD<6nt_RAsWmK9=bR4kNl(RJWbSTIX0=!QdR;|uF>+?NqOxh|6Pp7vrTBJ};tnJzcoyR0JFOD@ z7gSW?P4L<`2p?T4>VAHH1G6u)%C8Go9pTy-wSLXsXeb<|pW9#oE6iMB*^c7C@OCG7 zo$4nTtA82zBoW_u(apSGBCV>k+RYr664U6?<%l8t_A{%T^90%EV??fn7FB3PB#E?F zkb8IN<2o~ROZNZPkl{lgC+KiNI5TG5`u?!zB?rNGeqWCKPtmdYz#r>mGTrGw^9i!| zV8`9Uv0AsWCyPe13oZA2w-n8#KJr(X19D>+lP9k`Ms?-_8X590k{hHT^asquHk((& zHAnt_8gohU?yh;9sAbeEgCbv~FeP(}vPFjWZ19Ot7~Qwjtvx)k@pz7tcdS+ewM?y6 zH@POh0x?}zpgW>IheX1{!hgED;=g|fE-x?l_*mls$O)86PsA19n-6-54@^!91I(@- zSv2yczt`JLK~7idMg4EzXyi&px1YD+mVok2WJf=3_~Pi{7|eZYjZHsmhf|RCc6HOM ztd4hkG`eXzZ)YZ9uRYhZ1)Dyp+)M|2v<&MYj5n-qvA5R8;b#B%()B0x0jpsxq`^46 z1mm%F&F`hcaC81`_)>OQXh5C8(K*>#pWzL9B^7gGLmcp8l0!y#lIAjCY}tOTg(2pw zy;@`oXCx?$K7q~Lz>8w4bKipL#ejI)U^_4O1MV-t@RhV9el?Yj=#m7v;ej$a9B29bFtM+FAvV5@XOs z&VeOrE9n)d*1L}?Hy?WW zlLfO(vB#ASluPovG2RzQ7RJb$DAh8I*4|XBVO}%$edMb_{mpEaKUP_jR(uZ*u{2)t z*ob<;w7Ai_V3jJJ;+fi zo@0+I%du|!Va`i##!HS0&{@){t*!mqADIBja;P4F4`L9|NyqJEn8vr2yTZWUJChP; zJ)2M9&8?=XK+^oDQyb|0nsdLS@Co{rFBl#)CbWV_3HB|lzY~o6#R)2_!bh=Wj680Q zQYpIP6-*1bZ09ew9=nk=Et`xD@iJDb>S%Ewa6Q2iEkaP}Vp5ZVr&Mo7NKh7b3q%|? zZ&)}@cVBgX;cBOq2)Xt}I`&U$ND@e^J9rV4u~+z(vrT3({|fF^J?Vy0>c#K9u2IP; z;;vi%@kCQ&jAnsm31+_4bgSl4d7W9x$xH=0+eAEkZo5@&TmIkv5r)-c-8dlBk0bP= z>5-*E@|D%)5PQh%<^X@iT>C?gnlPLa$4@^ho!Wx@zmXz{~ARRpZA?uy;^;6yJ-?#Ln{jqr#7l9v;LPXdYKp1ZO0svTgsq5;=Bua z$$j{V+hg6B>jRB91o_wrnuGQQTK0(ZdyKuo(d}n#xQ2#?9&3szjg21QOm%-P&piWu z{a)zKklW+snA={O?sgd{7^4eHhhQ{v8z5=9nv{Sx=OYB2yY5*6j%yG&!7%UO47L$p z!`+{$bs%q^{e&szMmC2(bhG!M6^GZKd@IUdY2jcS!oir^9s}>jxI0u!;%$q>(cv?B zH783-TA%w@e289o-^wr&OF8d_$hZtKeeUl5{9cCm_^#NYhfqGTYDkG)Ug_wiOknLY zuADC+#mukCsO(}w?H&yWw_UQTZV7vY>%ds5acRzlH#|!F&$yX z5xx0^?y7GME!7McIAG1Z#ZOmlGy5;CT^4D(QCa8j>@s5%a9tkl3jXs>T^u#ku}%Fe zNSQynWoPySQkncK{^Dix4_Ru~CF(>0YBN2)!SKImC1+wLqPLh6yNlj{=(U7&X0<4L zhIvGLmP#bpRTed@={tXgJv+sGXIPTnLEDu27>8s-BMxBLb4+72T+0kClU+U;)+#Ma z?eW*aJyC~U_vjRun+(w7M_CWO`aTJ5Un^v%>XY(exRi}7AQ_Z)O-kvZ$lZ_Or2T3m zdG+INyF?N_A-Ip&b${IM@rLyoC;xGm%jaQjBW6t+CN}Tya{Zw`$O z%x`Y=3z9d-^NvyRJ;x$C0K!f!)<6b>(?m$Z@b3B+kJTntVIp5-@Lv|0id_Kt3nxcM z$@SxoLS`;`B|7N)9BDV6VhIV4suD3i^3W};okk(#SAB%v+UMRnTo4lAL8DfC;s=+V z4IG_akp2#>Wwj3tacI*DVKajmNV#j|=S8M;J1CG4v(B}FW28`!{5#)&B&ze+m=G~% zVHzUy1ucHD5i_1hkE+TlbMb6*fB$wM=?#nFqz^B^flHWxZr~^dW+5DV!MH;B!B&FZ zUyv3Fk-MHR9r`HHYK=;T>8WCXiY* z0FCv$71v0%-R?2PXF~sm0{Q33E#1yeS6ur_Qj-jW8y~mN1Mcd^YCC;t6Z}stFB)tl zfuO+SkD7!ScgspLF$vFmrrYVD0MrtVT$Rfhyc@HS1>_zN-+1r}TvGYh=5;|t-gEzv z^I0?SukH7yrINg{0GF6?txtTa*J^1 zWAK$7p01AD<(Wj1wdyMOb1I^t$qlgHv@99C(cFGg<*rp#UwrFRLcBF?J><5(8s?^R;JV3LjX>+xbkB<2g*^5b@ftDJKdjkFB zq2K!>T@mwkf=W{&j?T|`~!buv8r!uS&{>yE9UA~FU>+Iy1jSmCYRT(y7% zm(j4gE5rfdNG<+thbkK)vA&?$daZk%x+v zQBo-udBR|6B??jk#cZA(Dw-n(scnn|!3N{UDtXVjS zk!vw9eGl%q*_>bKLHJhzQdoYUaSGZ(O_-0VA2KCay3 zlWaq9M_W^AE}Vb|!p#w7b z%DKlQ9~L0_?+DaS)4Ul^xZ%SneL0f=@yLI29Q_#?*GP_svCQ3axXYhvD{6v5zPz%L zlWod|Nru#^r;MOE&85z9#hldhslV0$xCSvAagLWO+pgwB+_+h6^ei!_cItaTTEm2)6v;$g@n z`k-TRyrBx)HHyy?61jq?yp4F2k5mkJk#cI@EPz#_3`B>w+xXicwl&jAOu0|m->W7( zUUM;`-)j}K^}Q8t@p4%uop4OgiC7y+7&hub_8r(s(>`^~!}OrK{Ih+YiduCizeMA} z#o@r4t&t)nfO5#mT!3y~Z&&*pPY8Kw!yNnS%BMyfvO`=RnyYT%-Q%-O4{ul9^==?r zB8YbP;T)sqPqii$FiV}6o~(3hZVexCcr85H)NXhc`TND^IrgkPZztN7@;=*+n12%< z{*wn2J-DM+0Z)O!LKZ!Pp)iJSC}WYG-qd9$6*u^~h5L^?T0aQat8O)CbE z&rIw^+SC)ry4%CQyPoeN+o0!Nkn0rK8|5$|y&)U#;kDrcAmlSj{-bY0X$M@)#Ou*L zV8A0U)FyZ(W2V-~jJ`Lc%v5{E4? z+}@`Q*9!`M?JL8Dg3L?Q28I|mOuRW6d6G4CVPQ_2gx4zP|1v;@zgyIyx8%z{D|L6L zU{5OgtGg?lx=%djJ=srFs!&>i^0_|Rkm9Fceqlm-z{sXHePtUD#E27nk<(LR-J;%Y zC&2-RVY>zxPgwxUI|QLU=ZQSU-Na4eD=kN90k_Yb6{!7>K6paE#O~1s#*)!cTJ}>qHpj73oHoRj)&0RXBg-Je zZx~2pMfHanoY=CV#>i0z##f-As!#ypP=*%rY)7U zaWRl3X9!k3o+Hk(iU|Jx>|xe8t7=#l1CcpE-WfGVqdE3VS}eCyD({4*i&8GJ#z{$bMXijLR!{L_pIwA<}yN zC6bTL1sF$Llq9c`)ts&F3oa>LhOy|oQ+Nyp8pEX)_1UHLDV=6m(@eZNa-1lts%8Z7 zqt-IHw_b>B;J#mSq8szn9bi^6Dh|Oq-RlZy9&7{NwDg8xF`mQkl}ei3=Jt!gAxKFl zQoxt|vaMSdX^+dOB82Xyq1d~3r3&yPC+VzUG*1`C^tLnO3m?6wMHmYDK7|U!p#jto zz>CpXOWq(bFMTQ(S}M4!@-_-~=9}>bMwuDwD1O_y;ptG0lC|=;N{1~m-*AI{C*vc* z^_~Gd*pCPEzRW%G%1w~IZ#vaF8b`fh+hIUn&ckK|^fqX${p&-W8fB{Ow65l{4Am$L zutHXPx_f(CY4_QK)zH24VT&;mI$QIM(E(B5>Ep`3Lqi<2Z-gfV?eF;T~e95KM~^3hDszSb4{g$1QrGC%5IWlUQ!WWN(8(L z(KyL0iIp|tlo;gHr|dCI`WAw%z3lkeHk&0HLYzuu#VrvPqp-_rmnO6ceEI;2ah61d zb6SGQ|KcNSid|vc%{Hliy1W$=AK+Qg;TFzi#>^L_TL3e2F|IcaNGAO8&28&gEDL_- zO{1;;xxqMdV65PGj6VJjf~Y^v_y!-Y8xNdm12aGB9b zYy;_fpkq8ks@({x3lEn&m%C|9nW)XD+)V<1lAN^pP(hQ*iR)urM#br5DW0%96Jn!$ zzSO+*HC-N#ps7YjZpB0uKppD@=pj5~<8?$>I9I2#@m_YCV<5KzxS8j2!^wzVW|6}E zA3Khmoe_o>I#bKGrnj2%=+1SjA)D?oSL|CO_hdIID#HW^5dQu5Qm){;N6<*UD#rhij;+B8B?%a?MoXGB6KeIbB%5BN6NJrwyE2a-RC*8ULLtP=Rg%E7#9|BuCvm0F(*szCY>K5ROIdSy(cOb-7=38Td`- zFZJKa0Si8dxgj3!e|7Yhx5qL+zq2zj)ZR$WMoTuKRkOgI8n|Yxs)bNXYGSwK2zaR zRVOH)=dgE`9TH9J=2Z=M7X!Sd45oLA*KAvt7K2cEFQo6)*S3x3EJp2Gu?cHe8T0CY zt{DsO$Cw7WuD#wXNoYY?GT3={(}d6AuCg1lZZ{s>F4XT2a@l$`u~<3#N?V=&_TSGveY~sHLR+C-YTt89kJHfzN8$`Y(k)23QFllIa!hq&p79+VzN-AW+ zbq5GxC4A&uxOce!`^rItW^&d+mfKt==?XtTY!nnCzTc*n!yd(>r>LE4{ljQ2!aXG0 zOYpmxegSGZryukX!WU` zI0Mj-koO~fK1yX}<+krLBx=$to{rfVFI9Ma(UAsJ}2&xs3y z@Ugdj^LrWLgy_zFIt0A_g*!~;Nj|i2-56P;AJLb@zFjp|8e1$O!jF{exEtUZ6bZZ% z*&(KT77e;u3L8j6gM;d|XWu`J7x-cQ- zXV@XRD9eu9*|bLfI5&V%`tDE8)sE5B?)2K5qtrxTYd}>c5mQTu*U|_{MvolIiF7lK zY_3LbgKGIH)^tq;N)%OM{?cR=_*LSb<5(BPxn?Ihu_THc5<|eJr@4H&t3l z!cJdN5`YHm=7qR7KEDZ@a13~da%AzMd6(hu{O(&0iXOf3;uN!1%V#=9_<>UJGZrND zX4TU7AMLK5DZ9(W?PT?I=)p(ImYWElB+`;tTAN@X7@}n_A(%>&^Fb}<75`VY~ zeRl%ZV#Ut&?81yeA2-{{V2fOYVAp^=2uiu4@D%TQDJ}#$> zu~=t}s@F&)8tDQ7)H)LljYgrq6RIIyw_oSQa!6tAoy5S|?20nUCSt1k{ zlL!{4aKigX7TAg-t7oMvhAgY;C$_MJ`LEjI%GoY|C%E9Gbz80IZd8?LhFq5QU(Rj* z%&O9`E3Uo}L+crW{wOmI4l$%Sc|~SDQZo|yngv1#a@pBeZ9st`cQl@~uNKP4 zlL@yKz(}N=Pw-W|B`kK|%!O~P|1;{U0Zp`6qkH5D4%=u+(@)*qTQod2Oz=^$(H|hp ziBQIAAOnj(7Vt=YZ9j6;oJ=BF5+$+i*h&^s<8koslf47DN#Lw_rUPze=U;trX}j_; z8*79n;;X|nYPu?;k}4;OagljalaG55jg`=a@C)b{dA6MY^8Nfi-et%z_@SA1W#wpI zKfhxYrbe2(bbxa9cy6H??M?TrYW|X_NWHRfO=1l>&z@MiU=q)Sj!w>7HYUgu%WifT zc2msSX`e)K*NM!lAXt+0hZ=_FgI_hK=|1~YQk9?nU7DPD35SzrxT}=E)}#pF(K-ky zswuQONb0(_$zu(KwN)61zkg>l{%LQ-q^P6Hm;!wNR>#qLeIf9z%v|m3%Ip@(k#aR- zjS8!&2QiXrR_@}Qjk&$3Z(iU(eOdZ_v$4u!i$=4_wDbne7`pgXtFCK=m{-c50tOnH zMIYU=c+_Zfipz!vy2)^Z0Ab~Lw=!YYj45h;oM*&Xd+sPb}O0iEpKJn!c=!NKhYPZ0;hZJaz-xBI9QFL<{KUY9~ zMkmpKS7ntjC5R3m$((Q-r=tkPcQBF}8#D{-QnHbp9NMH^>R?LFhD%!#L`3a04%D_4 zPIB3GH^f!fBaK1;)+! zzL!>kz$^K2a;MRc?n&(3W!U>XB=AZv?^dCkB^mLc7 zb7Xp{7BJ);NQO902W?Ndz|TcJ;Mec?_wu<$No9RA{uWsR`p~ZOi>g0%(7yP+zmmZk zTyp~}Lrqi8i#s2n_gzx0+h^6sg=8GC$r|$4Kbx*+F!|vVeaBPWJ0d3&4b)vWb+k@n zK5^6vk_3g#aEzgT<>L(twQ_ATAAgjb=Iz%?|9Y-z0hHu@jdEnd0$`?W1BdHD-PSz9K#QcgS8rRo zK`+pBG4z@z`AhE)R9mwWFuqeFyPm_1JR8CjzkW*yv=8LuQa-6u+3A+1H5q$5QfR=! z<>4HyJ{ykB_XXQRl-cQpf&7e~U_uk*9382)dQ<(`iqr(d^=4rS$!^v3JBklHY+TW< z@1S&jZd)7u3J80<-zHEK99*Djx;c7I%+PcGJ6$Y?6$L7_7Cjvz;OnxJggkxkPs}6`hZ%;WEu<-BxAKUobUbR zSG2+Tb0nkJAM+QDaVS^x3-Hd#9wcMP4)(mjQA}A`sbf+85!dZYeJJoRs-;oeS5`tM zKMiXGZbakg-dtr0yqwr?*o&ix2&sr5YP!! z9C?cYosXI7y)=pGrN%J)OMYi@LkVu#n5opitl3^vZF0%=Bw|T$VS1USiEC|U3xUV(2@(0$1 z#A_ij4M3b{iZ<$gQrppcru>G}Yd{q}k2gw?Xu#0#sDSz<1_-Ba(%*M2+2{g$FRV}3 zPa6DxY^umrR<5#Yq(wv{hZCsIrA9TU=3N=S8kTUqX z3x*MLK06egf4>Hbbf}I`{YLV=HT6y7s#+V}&#Cb4hfr>X*1n;>##kd<819o^O^Dm= z`CRZ7`(qEM>DM*qcKn)$mHYvGP+&~k$?S=?>=E&mPFFH4{WpnzY7_VkyypyYlcfSM zHO(g3`1@fLxqBdL{|jRgpf%{jo|zzp1l zx9?V900Z`}@*=6a?%0u~v2+M%J>cWPG-p8y@@(%S^JKSqz<_nsKvpsZf-5>tP# z=f`me)7W#whAzZ3aLD^-^@-~yyq@A^2CZ@Rc1Cb=hXZx~-t-4iLAz!c$ZDz#sMxxm zzPPIKsp4fCoG$5Wl6Rws>EpZ;>U%7WlsG4kuR)g*(jN5RPDG1`=9w=*gCizcWNkS9 z)Hd%VD2elZbv~14r>bFALU-a+zt-} zaZSYAm6d$t2oWxXp#ae02rK*bfV{l)X2=+BLC9bC6ocFKV6P9B4PB%d{s8Gz8{rr9 zxx>~L6xB7qCzU;!@gk7HZ&iqz_<_E)tMEy?5Wy2a7Bh5In%L&FQ z^iD4=0XME8X>ypqI=W83_P!&1g2E{=cHG=~&Lzf=kPSh<$MudTg_>Em)3+E}McN2a zTI@mm82q{E%BDIVp@ZV(jyZ=wcx#=;VuG8A7%{@mDtG>vYaX?9NDgmFx8El_eG?1{ zKlNzn!Vn-2!}a5Se`|Zc06_g?9*6tYfol+RDL0wk+SUFK)+7H4V95q!C&@+W7Gje7 zyiH73j>k=*!81x%@=13|35dsQ*(A`PlK05e0apro)%`r_{og~^^6L8ElIMMwKb@W5dtIY? z%|e=-+>kHHdcd6e9pt-+1^*8-;av0mwLp=?1$`RErL%vYF~wX?a(E*#f1P4;t8xQ7 zO90c8M(yXY2Jpxt!RpGHuc}!-MWzNa)>#k^@yM&`Hkq)BS+Q#S0A@|WMm$a-@OIMp zx(-Nc{@NgJ=USewnk|LDv(_AYGfRDGt!Qad4_(n%J=-30>6{X+aLB@{1>d|iGSGbc znuon?(#hF!wb1wKya*1co>F6-b0yN9luhtvHmRpU)=8V5pSW4gRgaCc$C0ihf%{*v z1%>!GMQo}94t)aNzNLoG8lfMrH}e}a)s5RR>HL!UXD=c5V_mU!W6K*}PYSzfz*!|GGaK3lk?F;3 zq%!d<@b2ZWkB_@ID2C#l)FBFk-{J=5^D!ty?%i#UL=Xxm`5SD-a}KjfzG2k#^vm`T z4a&)o*rt}o_n_p7Ia>e{0)RJnnP>}TH7T5|1=99#fbCY)^*9Gb6KiyAFKwxgUUqtW z@Uv*TUf%LW0fJ4g<4b$eP=ZVdE#Dw!njeWf?i@_xmOA%^TK4v{{Z6=iy)duZ!K_A4 znL`jHm7u7`N{s9_wG;V#(`>%8Y<)*4^L(|n+WpYv(qHy)cCvThg5*A*VF$tSWYTAD zEhp#Cw5B&-Od}6E4iz%bP9Y^GH{~0b&o>n&;Wkp|zL}?|kjU;UYf;}Ru*cj#hpEZ>xufBT^>4hR<6bKd|bqvHO(efY&HL-Bm@eB%O*Z|(+mKgk3E z55=HfNpqICKK%36k*&+RSgs`r-+FOuGjv)|&E(Ni0j^!jBz;;Gfj4}E-zpU(Vp%u% z$$Dy&S?NFx0W?lWEwwIxbcdYbMfQyH=#~GDZidqlnvmo2ywp zQCmlqgK!n!ZX-kiuQ{Ol3#QO0d&@8KFk;s&**55X6)HTfkvBqComit^sLM#~v`RQk zTTXP1HwgBZ;YMsANOpd&CF-3IXb(-iJevPm`75>c z`1*n{1$5BF=!jG6BH$P)0d;Sf0y=PQ%wH)?(TYwZmX1)<1k4rMi^()I} zGc4!eA0Rk67tf!y)j!RC@~F!+zEqj-Ub+STh3Xk?@}drj31U=t zTYoBu)Z`|x1`m*r+i`$YTS>{_@7%6QN4oeUba&cK;4eF#bI<=acbr-y+nRxWR+fUL z5DUmc8rFSce0P9U(}k}mAqK`w<3Zp6kGrQFvQ8`+Xy9h#)xo6smp~~aQ+-2R);<&H zu+p|Kk1uxD6*Euo!v>Tf;H3M$n&F%YytWbH@|1V}!*I|fx~DWSIDv}zA%DTy3CA=4 zBX-;-a^dk=fOWo{@;%et_BXl5SuW?`=xwD|_8FuVOO|2`M^Mft#VNA?6Fz?VtClgt zThsmAH#?5AC`vDNWKJZ{lW>@`T{k*M4ZMIGNSDa>!!j?A??dXnWH9CDlu&;>tYIap zkquY8Q6gWZB{ey2ej`7A?#Ro+fKGOa_lmP;VE3B>Bdv{TqIexLsM(u7<{xu(r~jwH zdy-ENafl>|i1_wgg!flG?k8RY>Y-}a`Mr?06s-y|po>!UOV?l4JjPAYw|5VfDDPFm z4mW;R-DT;LiT-u>FtNjb5{bW=ulrJYHShGBe+b+wi^liFegMTpnM;pNanG-jzGpu3 zty7k~l#J0(&JzaSwN_p>H#J2(-&xAU&-jGtcEclG^P4k0`Z&2SnA9FaLg*wf4)IQOhlrO8_GRd}0#$aMne2 zFqMbD6#NhL{0bC!TaN+&A(eX2S}GSbfgQQ?U>Rqh#rn21jza&@jG&`+et7A%(SZB$ z%QqWKofUn9>@hDJvLoRKpGo#!& z$}$Mf?Sa=pGfy^b!2T zvUDt%i$Dka0$|F464FN^VpG7Iboe%q=M0mt;AnTD5Jk@J*UZsA>BrIj$?7Iuk=)0w z7NtFRG)|jnG8=Q&C%V_Dk1wM}-mW7%wgTemWa9G!{+(R>hxS-P%!80yuj(E4(Vv)0 zf7-o}VymKg&nJ8l2wBjxu@6+{Y4ai*IV|Lposi)zxx2{cOVjP<&By(Xy8liy(}w|5 zwd$vvA({B+N8|+7HGPKf!Yhz?Ep!QqmjldpdQcqmq+;_Qsy6#bkU)HBMsiy_g=u>b5A#g4)2W(x&372Pb&8g&=4zC0wDXC00~IpSy&aq@ybr=rum6^EynHv zD)rHr-z@MW@I5$J^Uy08i<)FR^lM26&+7 zm>@FqcTgui@#v3Znr}vIrePfJCB&+0H`XaObyPj909}(WBthFHrlHUs8WO zrTF1t!}F?i&U6b9hfcEQB?2))tM=eOEiRl`C3SfWH|=Q;euhC)YJ9n>JC4gu!~~~# zMhfQ~rfoW>gsgwCrF5drdt{ZT_2c3eRlhnG``66dqXdsnCyCR__L@6bx^AZq@f?g= zn3(logD%0^FNdUzDrZOD^U?PW7Z!-NSO0+4$Qy8DuyRY_9c;91!P5TYx^iqsc3=wn zHHJxQsfu8OV{O>jC+4_`vyJ{N>kY>9C9UBLp?qb5>)_Civ6N#>EMq2hjM+ueLuk#2 zzIMgpGw~J#DT=Q4;L83(I`VsL_K38=H|5H?u6%pfK&1)teT)Fs*Aga6dIfwE@?W zghzw^2K(($9gM#AMS<)S24ekZ<#U7o#g=>;>&Bydj_qC+0t<9KjzKf%9wA*P+*a77 zel&XfSI59RIH2PCNh5gbw|B>r(_NY=A{e?O15IhUZ9CcTsGuGNcY+4H-f)s#?H&R{ zU!4gQZ>P^fLwV**HlH^hVlT(?6zFPvIn%OK7ViR#2&Smq)Rvrn0HLpp##*Z1m9V|B z|NmM5+v9tMK(ZxTF@T#Ro+1m934P=*F0cL2ei{YfYculPOlrMI3dQ*yYdaC#GQ%IX z{~wxIelUEYo#wo0&fBygqD5v7LRldDxg0FHuS zNNJEb4DZ!%NK!zNuVzcc6mH)G0{9X4Wu;_|N1&RMdaNGIkRg*`sh~ThV7%_T2oVTq z;~AmXBr{xLXK^^^8_Z|gJn>MPy035gv~ZVXdWYU|K^Kgh2VFnd?nX=#ZpY?9@gC1N zpPxj%21xE!gKwu?2N-Mmln|#=06@)i?q;t#9h}Iy`=4;Y=^z!f$@HG2<7z3GW-1UG z3q9}tx3&)-dhQtYzrD7jZaw7>SR#BPs`eeXyfA&W!1NzAT*7^ z+6&qX3m%gjLXSx0rG^0u@k05YHKBGcA{^TcipwQx;a8pe9bS%L>N!pO1pmFd3pMAp}-#9$W&|-)rn%d;_skc7Nq)^T6+M)cBgHSOHh0%9ImA#}$_ow*G=tsgASYbcz*t5+f09zbn$XDH1$m^)0EeOjol5m%$AvsUQw zFS#tW0JxJ{O$IS745Bc2Z4BJ~$y!ZZHm#BO39lq>FPzSG>V^>W!L=}tQOl%hCsf@AE8y7P|C-< zgf80P$2^#xwe|a1l)9s@2X;@T$Lq?DkJJ6dp|3CBINbfw31cAZvqLoCJ<)=8-|F}Z z8@{s_I<4a$o~w>No~Vd(yI|_|^jnTPS7FTDq-ONxC)YlBcZjJc1@oO6;55Cl4|s+J zh#c46>m%xD>?+AXndt;|otHv5N zwWhJMYAXsFS=C);x&IsakZn!^XsSa+|6pumAgU9gN}gfOQ8yY`td=p_aD2}Gf@QCG zt$Aa02=mq^cOz1fhEGS@|33qnKzk_M6VU@OQX|KZPa~BgM*ikU0(Y0glR=umlFTB#OIJ%}0aU%ug{)H8o3~lPPDGFP zv#;%wX>nm;Wr&Ktm8U_z7xvN#zH(T~q(&OT={ND*oHV9>XnRT>N4bN|ONupf$8E09 zU--uCepc$HVZ6A=lYuin=GQ#G2w3y(z{tNYWYuO`xUXEq*A6YhyK3!g@1-F} zl5{5S$sZFAsVuQ%lP5#M zoi8sIXMU+lY4Ff*N|LZ&DZA&lqLZ>Fm)8_lOKc|JlP|mo`8h-Sfe{2kaqjgFntIyZ z^uKcd5@`OFzTfx65h%VHh@jQR#KCtqYihpjOU@X^VCOFX+WoNtlVTQe8j$^>-y>N+ zkPLHK-v)xp&q(V^8>8bKUog-Jr9!JCNTC0jSwnpqkZjn^rSJF%Mut%UleEYK|Gad! zn&ed40m6RkCvpg_*=|%)=?JE+jUFgiFlxW?ErSZ3Exx+)VQ9BDZr~OpgnX%LmxWGA z^S#z`-(yny;={rFkqM>pUMYgmlC!U zUHI89E>{I;OJL-UPRXIrAy9^-WN>^wlQa*=1k#A35A`YoSd81ku0Wet15@wAyt`m} z$xy5F+b$d0eJhAFx5op&=RWsI(}^kgSic*e)bH8!E(72)be$vm09%!I$^u{@YDR$6dzgYE)Ei-U|o&53}Y|iq_A51pxHlL->r%y9Jg53_| zSG|BU-p{L6-#wYa?&8B1p0%00(eee^uKK?4WXf*06HLq3aBJK6-QdmU58^dzMDi^~ zb(xsB(tXb#Suv+Qhefb#mKg%dYq49&=6>rEKY)uyaS(od>UKL?hYURu_8R$GspLs= zhb)>R3Gt+e@Jc^tON;^h3lAp0Ol2~flvms&$j@>B*{XbzvEy_2{!;l%`%lNNgJp)+ z6%a^6vkhV0LX}zTbjOE0QnOun;&)|#e*1_m)pOBexA)>MT$N08gcPqlA=p%A$8ibW z7+7pYPT}<6*YJls8COxm)-(>=Dq1PS1fb733vycWIlXvd^G!EAZxcSKtR{I?gFtqjgnyy^x^Pm&J zzj;&H6BY~x2jMMc)U&!;@Az$(56I-^82KS^C)rqzp?jErHQz1=vkS)F2W;I4f*Fj> zw=AZIciR{@i3*V5w$X~ll2yU0{wj`$$JP;p=D$1TNdgyi@3pLqoRZ4e zOaB6@tIPo0Lui={ffL{7+4}?IF>?HV5$dkZE$X`d`=rH*Mu(Oe5QGuB!hkagDm@?; ze@AJyV>TNuFy{gMAY0RKSM&a|!8jTrwyl3j2E9{A)4pWN zN5DU@aTiXzy+;aS1oTFUTtft$LZN|^%OJrUD6kUfGvM5Vvh^PM8M4&eIwpkBs>e*; zkSl<3FGq2#&=SYxwH1>NETpygE=%C*J) z4CyDFY1Z9nG)dWyS8+hTL_E5vs(9nCHBXU1A%n^!cHg!iLBgm%7-H>o1cmon*lM%P zf1cDS7qje*YNnTjfccXkufR@?1Fpxo6iapBtN-lRtgS-K|K`~!xJvsoaA3#V%lY`h zUNitspzyNoBjgIHu zfjYsMsHos37@teQ9Kc>YIPc`VQhIHjCGk$w0b$b#QQgQHpD(;?U&@I7ywqCY1H zd2fbD-yjS+k4UI2KTb@@20Q{(7q)DK%1^u2^3DY-2?^!kCPb1rSh}K!PMJys7lTm2T6~jr_092A@?9?>7JNf|L5C=!ao@i~1?=?%Xua1| zSL+-+j(!KVub{~mBEWvf_%ig{&FNo?W%VZE*$Thv-*#8n>{8~d;@2k=wn3mp@k5SP zY>KD$7={^gQi>L`%pOB*Vl~Q(#6v^b8~E`0df1^hbBxA7I=9(g;c;D%U^DWqV zP1vf26Wo+Ai{j{uvy{1MtP+y?dN@^FUCp7s@7UBl2`R&VGc**n)pI>RcD(h!za}F_ z?S0~p5xTOtV&(4M;8zU(!V+ zjy-A}3`Eh(S-7FQ?a$D))@xxy#os4-9!ZfkeiZbkb?#HQK7l2`Oy^H8{O~#kjI}0GV4~aPZ)6RZA;yMuys|Gewva>k zB~jyqyi@L2zNkZZn=h#?+j#-+jJ-f>UlXGlXVq}oKS=ij?VEp;-+(gL5`2w`^bk_eLfkWXnNC5 z3L+1<0w<_h-|K_JTe==v*zijD)@#ouv>R8gC=~>!0N^L)3;UOT7yzkJy+u!Ys!LAB zWqfwJg3pc|1vQR}nt;2*Lpki7tH7Us+Qr<>(f~n5T=WM&!P+2cYQlp7w@?o~Mkdds!zY=FtF;PQ--BuX$CiIlO;@1eRaHwnk#;~)CpY|#e%Ml^H|_-4 z_lR9L-hR|&ntU-QG#4D8clr+F2;E;tx28CVF0Xd!3!$N~Mvy|8(x6t9=1cQ=gwB$; z8oGonq(eJL6gAL%oyBJDT|-w@gFOGHHp_dTEm~Pt8k5FT!+0M2>}fZ`oRk2pY>FIj ztAUtV2TtJZSGqSH9h{vAp3X6G4Am3|`43tH@7VVn=n+i`YRX1KID=l=(k=iUAGa%B zeR1_$?GXhdzmG~-57bt$Z-oY`&z54T0|n#4LVoj%p_jcYU0s}ygfeGw=Pnpf)aFSC zNB%eYj9UvM8Q&M+?ihE0w3fHlsxM#0Jt{_Jb18dVF*637eUQN$dcA=vaOG>QP}S)P zIL{#hN(+u&Q390&uX5%^qY2%kldNq(0N(bW0$JgEbvob9t}neip{!XA#B#0CCCD@$ zk}S#Ki7fC@8=)%NS&pw9HelI$^4^AP44st(Fd^N>j8-E7F5j@g-aA@Z9gvZr&Bwz- z1554YPFG1#%o7nh6<{DZD0k}G+2}R!d56?jSmZt}I8^j?PL%sJ>$mP}`<53B#Y&oY zi<2Z4r1S}Go$ z2`y3e(_F<2A_AmyP0tR^Zw=iu>iKAPPeq{qb~Mb9U2~|qV>)@lV=GWA%KvF`b_TLn zk5o33%@h7v*a-w~1%}=xFaR2ah8L^p)xNxiY4XjEh-kfAL7UWOM9Yt=FKLfMUoncX8V3$)l}aBb52T;w`WoXes^1~uU?mrhXTTWL>PD>iu7sy zYU$sbl&=kIRNK-BH;M>M+-F5<l1)%ex(ZBRc5 zN;UYg;bzSFZG}OUaF*NBKsW6L7xMepfGC7+NOk-g%06$?+-^cY8b|_06JF=_UbN3` zwC$|!7k!tVU1?5c)4<5vd28+hAuM^yT25vBow;wMyb>(j4_9%cjqZsTH96Cq0+t5U zbrb0|4VWIU0Xlks>_9_OjpR<7K@0_TO@D7i1U!!VM~HL|N@T!<%W%ORAqp-dj;2DxF zu!2*RaN6`L@9znIZ0`Wg*#>6E75e~a_v69>Q#X5C;T0j5vha3ru0=o)B{SQml3G+y{jFk zFFRo0GlOj8F$+O`rQ0s&4{+`va*i%d<{DzV(irqr2y{&8b649{j=|Gd?`TOZWm9iu z|7d2CVE8WBHqcr->JFnaMy@M#UDFoCsO+osdEfVtdyJ{DC6(0}6CWu1;MRSxv>Beo z>kK~KW4%oJA_5XO_dmo=A=UjxJJPjPg^kCWYy^&V!Zk*bozckG4%IByD$$OwDeEoR z7$LsPTATqdQ(yO&dltTNn>M|RY#Xc>^LoaK2i0^{-Ojx z@TIXK<7xHRq9>l83BaGA^^jmYHjr4Rh%mg%SH4C*c4Z39-yoASp0a_2-#bL;2ve{7 z4N4y3Iv+>VLjT0KatB;erbQS2L37j#z&#gVwV|wJmh=^V4TZY~S6WBqJ=c+P_Mbs{ zoB?p<4RDlbh`J?-7vFWjxOokODr8D?AQNs z(C2f8&tXF@HdCoPGZ&XRG8xy+#h2QP7GG7qo=Trhj;10Qu4sPrR9c=B)IJfUf2j`~ z!AaR;KA^i)%VvZwoJ|tmd0?Z29?5N~sLnu9qk<}#j{k%QwI=@KSKyJr`{S`}>Rj}H zk=GSk4!+fzEaEr4*cnQTz>3b6=L~h)Ho}10$!v37V-u6-X(o>GJml;&I8=${M2=lH zo&DLB7+EeSagqAIeKxjKBVPMgB=7*~!W;gdAR^t@)Gy>qtD{F(Mz!EFJRY9whuSyX z=b5E0)Q*mhxK|@bGbucsWxVjwuZrua87EStd@FrQc{a~9)R*1-!MXjQ^Dow$uZR^> z=U@!RCZ(FQaTRVKmz9aonJy{0JD3Ovcvym_&bkmN z5HK;N|r8j>(KEIv^_I+ zNK*H#6zgKG;vi=prcnteuZ#{hKgXB=E!<54S*vnE;RnkPD@O-Oop2QK1hm9v$!d`iNY+G-aXrUq=I>zu$)&R>mW7ZW=-}cMQGt7iexpw(xpX|;8 zmxOy34s8R;G{+X8U!Pfc5y}68J3iG0os3=Y)qeg4HpnvtWIZ`BeJ7j{zWH+5{;*I9 z`X@dtQYL>zS#$gC>N$~yY|IANSY1!&pAbYn)4;Eu57}#OL^HGxfJ883!> zD3b%bG!3+*jDJ-L=AkzkcGoEw2I-oPpM{o1{lAa@+W~Uysd5VlkDp0OR zDjS&DRm}`M0b@7bBF|(WAW2fYsU>kY%}o)e?{bq#+T%sj-o}Q%W-3^b$eFuavWYj7 zmbrcrq`Vvo1?r}DE)F9OjKwdgW+p+p_e3yA9?0mq)2SaBFa2Kd|lb{Fpdf1kTQ91%UeduGYC7t+h>lW?hD+bYhqr;oa=ak!^ySgcR?Xn0aKlK0Cv z*$q#QNUK3NzAx+-Pi2qTSK7fJnGc$)yKDZ8jiPOE14$tfM?%*Ck(YASf2<$ZEij7G2u{?*!ciwjOqgdatQKtl=#WLVA~Fg#T#8^g>%Isbm|zSMr`%P3ZaWu(chHM z+%0Ae<_|ig4gS(FZ~{sFu*Y>h-OS-LYWM={YHY}g5$*@@R6b9Qvn;{qCeNVU82AqL zHcl9X$m;*HM6R4z_D;@%Uv6yX;9H_nbKkM)?c|hGSigD;Kf1kq)*aWH65C=?N34=Z z)Y^G;yp;djotp$+FuSblr)xUn$^;EhEf#~w!ezOCV$Nm%5c|iWIq87^=kqW9J02C1I3lz)8t*%^-yR({oY)eZPN|{G z6U_pLu4%SUX_om&zVmI#7p|2rIoH#qU2wldZs9+6z$y8x9zR?w3ExkOfkDZssi0sp zpn)^8u--GzcKdXzbsR!_zohX_7W8V#k5cRgNj@gF#+7^BC;t|0Vz&-skk|54win2IFQ|9yPn7^x6RX-M@ zIBx)S9BW{p{T=I!oO_co7xvMHZy%${a1o=$elO5+mztHZvCQWV%labw$r*GR_c`Oc zrFF&A$t_;rGlisel{=!q`v0>4j@M20`kRjLvbEj^wzR3?8ZWg-9?T-Tj+cxT&Jt(- zkLgB)`d1&%O|Lc6`}L@#llooupC{JAu*Q!E#-R^!aV6!5^t#0v#Wt#EnagzUXcAxh@E_oLP9Ki(^t{qtZ9EMM`$?JY_48kI zU0~6YC-&3IgMCzEQ4~WCD3=L{!qH8nJqk1Rt#@A7jLN%4?2ne>4@wei^q1g#kY6U$>Htjwsfg zlsHdhnL-x>Rf|*?2LmCU-y+yb_{^>FH6L#Sqj-A{+!hji(I2Ak)}P2dukkH=zf}VY zTz>(o@&v#4+3+nE)Qz*WnOv26Z>NTPL8x4K*!u6n)1!!=237 zLD>F1AK2L(cC)Hr;q=At%Am&u^@NOxHoyww#3clLeC7`282ie%0UOUR`0cRYsqDc& z3!_B{@#=8x*eWd~UnI7K3sHT$*xLR4*x33f`T?x<5K$x#>04!pOsaF;I8iUx0HV@OLSs~&~ZQObmfh!Oyyh8g9gp7SR>Z>F$VbS=~gtP;FL%2=VMImu>a<}6PTeU z^jhU4Cjsz`Mo z`7m1SFqHB4EYDm=SHptzrLoL*)Hh@LO2`!Xf+_;rP*M zvrpTj(RC_O!k-lLt008VjZN;Q?9rl(YaUuNDD7la6cQUIra%nR_Vhsqj`LjhF%U9; z1m@NO2m3=s{J#iyO~wixLt(EoV}ti)$94~kFxylQYlOV1{*gWyc82u|1HxPxDH}oE zRt!sh=HmPTr4?i$4ln<#SrVevIGc@ItwfYo_dydtD3)Fg_WkXt zGbOHK6|-(lzxt(RyoWAE1yfKsNc~GdioJs73KwBglAQ_X85!%DVG|0Y?9AswUJv9| z&{D_s*5|pZr4ZaJ-EF@h`|ZD(%hZD^Wv3hQ z!|39-(P}>^+TXIrsa=fQ4F5{fGgnr=sh?o~dxIto5!1bj2NT*aaa`dcbX!fC=!->8 z0y$xK(0MO!M|)`Ch7=Ve_{qwA`E+jZ`6D#kKk9FE>eaP0ymCA#UNkfRVENjMdT*q0 z6liP0!wmQdutlP_f&k5IcA+xK(o|DHULqK3}j1!4StP5E7LER-%zuEMH82 zF6`esNjTTc6-ME1=pKSM7FBc49$#w03#`=w?wNpd~VA=uyD|i|N zBNutM<#{n%ptu(3F$_tdql9THgVNt$IEM}Xk_dMlV|!6?&EhIjhbSW;7yQH%Os_pZ z#rm2LFDxu6T6ZsmfE`I`@4LgyZN|67tYG52$5`v_4_Xm*yKAJ-Dk@76R&JIom%!Qc zv!w1@5Z^Y(tJjh+v0*ZrCyAqNdwyP-A){yb;~G;^?k^U9#$l9x;7=yYBs)W zk<(nK`ogp*;7`BudvAvbj7e{i7cbqykv%x!(W{vODDe%L{(s5lRm5Rh@S3XuVlnA< z-+$x$B2#F|C?=!K=yCm)nh?gf4N#onxb&3b6iw3VelBoZu0~V6F`7`(r$^BVh zN3l`0pEruYwpU z7p?pk&}#u3$U-sw)LS0f5i?q*^_Fue$Lc)k6}~%+K{bn)dCN0&FZ)}HN!xZc3b$pkhOP4O)ZF~*f>6bG|FveJ zEepBBy?TQ6z1$_L?Ie((DVn|BCpwX;ydOeRm;_kpR2w zW}dR{dsXMZ&qJOfO_J{({2+kgcS+dG)Q*gQxLm3kPOBkkl@il9o)|`1ijF15D7^SUiiIR!}OA@zhdn^lzx19Pe1+Acr{YxGxJQCu=en;&a%QKjHcwL+j=J z4nwPjQ4j3b8*V=m(>kGhK1z5^Kd=AJcppAwf4hSFJB!q4gi9fWwmMRy%mxs}_aHx4 z;k-Oaz6xaZoz<=~AW$>jlvS?{zt-TUPQo|B;1rygb_S?qf!@Ib=3v5kC@t_MEz9;l z1gqtcyJ4a@u!ZstV34)GlfWs9z#)=_Hr+((Ln|2?rC#d7$NNCAQ>BH==(-Ua=1x&r zYm)&J!h!RpjQbHel|Hq&ttGKcrQ6VwskMHNN&COYam-H32Y;jy8G3ls<#??oiPF-~ zm|tnE;WQjlVr-W4EZK2s7IyfDzLSQ*5cNtOQjq7o^GT9Ipz-9s_0KA^YgMb}g#}tb zjR&;LB7MZUOf@F z8A#?@`0ELDZcB!>J9h}##Do>(b6iU&%;$i00PJMWT?bpNBdJ7}f|r3OLDCcj=8m*f z+I0Y0glj~le24rxN-;oPGWX=B_V4@=K75?M!RJC5qXC+#8y~EgSR#5gjGI_b7Og%B67R%%x7hoY5k^ zh;9RxXfd4JitP_~WtH=Afbf{p3~dEx;cS|T(}4F~*7vXf$xC$|9Y|uRe>i6XICN_5 zIIX`WAG2ySY=QmmGMI)FilpH>rtc=ZDmaWABW68p_b=>Y#|5aTO5co5OGcGc#heX{IsTt1r*! z4HZR8wQeycV>a@;S#^Q8YYRbPr=w!Rlk!x>vN_YQEM&vlO+ewD@W!+HNyEth)X6$3 zrSwKLF0N+mHfGTX>icjkry-6u65}4HK~E%}t=@tf`io8#$cs+%{G$bFBx^LI8idHR z7S1lzTjA4{)IaKq_wxFbY6h@{H}Id^NImGzesftB_L?%hTp;W^jNm~0g31O(e(4jct#<^YxSqSV1tzwh^+y^%^wc>x<`R>+CKw5UYSTe?e8>;j2 zLW@?wk|cfk;DJcaFh>|_MFJ`-9g>7K$?<;p>+YRjn?)j=3ixk#$7YggO+0d7cQB#* z=blK-j>6$}b|}Qy_K8~=F&W^T>$f)jst*{cT#VCW`$^S^p05RKS@Na}Zr2AEBVS!FP8Vd-4O+QDUi=a+81KG+V|my?UcQbP zbF5FC>MjrY)hs#I#AQ?b4C=ypA}dC)qv!Sgvt(E8ObnJ9g89ywC&yrb^>u_+Bos~P zjZNgNL8P+%(C@JV4PIktC5gh2p98IZ(c9qp@k>*6y=R|+l?bZDrA8xP0Z-%0V{1N^ zd`h#C52&?ln2wtV8Tg$H1rDpM>uf*1k;Rkm<&lbZo;KotX<>2PP%-E#c37iTvon_7 zKY_T~+4+j@fo~61d`<67ZOx2FP(7R=( zow)I@B1zw$cY%0!Rp%`j);gl#vi~)ZJaT)2zo4^DhxY}XA2E>te0TpE7}^i`zzqmR zuEbt7^85;SAF*!B1FH2EESP2w-Q5-ly&}m`}Hqv63c`?GpUs2VTK^k za+s6rfz7gPvt=RuTSmUXX-Jag>2mu10%e6;Q`@5D-Gw}hZZ7(Np>X(%7?~2#av<`j zLhrq|@jvl{4@PGjZoBF(V%0pp*4dV;75JPG{Xl1UuizNNgTr-;eQ0$3MTHJ)>%&o1`zc)BRW0r8OjgXAFZ1E zSUmoz+GFyWq__VDewardJuhlolfa|%3E`G=w^^bSC-qvhG3$@O4M9MHzW=;sLR{Pu zj)+$n2Wz}}q8OWMYYy*J@O6aokCxBLE3&CO69H&4#%Pg0+8CLKnE6`^o{nmHI*dx+ zHbZs^mIEJ5Y{2;TcFfwtN^-f1QZ@^t$j?XF{(uXMVe;NAIghQ-WYswdvhT*1@BrW3 zy}p(n;=E57<729LEx*&u;{Cq|hO>18#Ay`Xn~ymAtjAM{A(cVp} z5BlG%gd@!ni&Jn-=mHPVZiLN~IldFSFYZ!2UCR7Vpo8QajcWlWLyD=bGB9_~%9L$` zwqc`ijHB){6~^?i)%0-n1u+W;JwY|iBbrzUVOyfz423z`N}#*;yq^SWg6O>3^+`2Q zO`Aj6?n0k1d2!%^j|+8I&0uhH?xm@jHonecVyJWPurn!qPhv?NT=u~9z3jxdxf8$ATdNNZk@lU_ zC_PMcmnK>mjCv)2j4k)iGDM0br;PM9qgm}ZckwuuCFX}BK7XU6{%>n`U|X5f(4YQ$ z{Xn%iG8BIBOj>H`&nWTZ^C^-!a_qN(R1O^Z#IO<9Osf6u^0z(x6<|GvWWU|jfTO3$ zQJ*j5P$p8D7sF$CA&dVmyd&)0Z)Y=PA^GKJWt%8ZnHxPMNj}#(wBmqMz&p_ z!_rS-A~zqPU08+8C-e(fW)rgr*fBKUFaiqRhOja#|`pnRVKj_~BAQ@*^2q*mb0pFHF_s zpo0gqfa00`zw5NRz6*$4%;iDI)JJ}Ij&$j|3a26t`BAVsqVfwvQsU14+mZZgg6mBU z7XpGi{v)@19a8MgSD8iE^G*rECH^CmamPa`o9<7)U8!)Xq*|0&WBQC!5F3qiY$)g9 zJP7Kc#3(OLcn{%6+1GCvMQf*b7>WYn|2CV38A0yQe)reg=fY`!efMCkqM}f$TjJu9 zO_NKuV|&ZQfSAaUk``+n0O&HJGN1C(loH}Zvsz8q~Tgv14LgYDb7W-g>)5rR;k6#=qX~i|K2WZW@tMTZzngcJ_QeM$!VS{q!JG6(ZK@mW*g3@S z<>c&pHm;kR=#tkKfFYQb#kamyd+Vi)=m?@BW5YwP^YVgfso7w=4UsZPTGYj z1sU}D6hzAU);ZM|B?7`YcXs5za|qDB>Hr)egZZA`$!h&=UF{X8XJF-@3Y+@om>r9- z3H!D}wBg@1l7Y8F|HP(d~CG zUCXkG^&;I0CHv0$FsdEC_05{yvWe!Z*f9h-Xfi}~232@u$XNKK1ud*O`dbH@Im^UB zr`Sk5?De)IiDWchJk&bZ9mtx%^TNx>Hc9cbv$Gk@Z4%*2nrn-Ym3wsQ-*5vMA*Hbz z0h>eck}}IvFjkQ15a~FxV#VmUnH0zL^4_K}3QHz*S1D3NLgF;gw@j7&bYV474f5cI zy!evpShI$uWoZkHc`pYJ{Y~8K+`n!>uI+oZ7xNWpinp9QXIhaHzt{ z6cPeN=3cGFD|V;f|Ngqxaa51zlQ#YBpd&Qg)MpYdG?j3q+gKh?peCE$i!YmdG_(R; z5nF>Y2YTAEiOmbzBfP25>HY!+ZLU+-YItFW_+ttH2%$wpT$UuBa>kpn>_y+fl^Rr+LRo0=gTw^5DuY3bf?%J(RuPpLJ9@L zw8#;Kn-D!20EkwflP^Y3prt)~<3|o9G&F*P`QSApFU^%Nlf@1=y+J2tGbyE&ABj{j zdqfQchz#u>A;ObSDm#jy=L0;RotaNqZhSk$rH`b+4AG&jn4ELJ_m zl#h#JF%LS1gj@|V0Y=^S(z)L;v@oL?gvzMSWA-(qA2BJ4gnn1TuT;gb$_Kq0+TFl- zx$E+RQ%#^$H&hmAJ_sm^*bJr5zz&U0`&aa+(42)>*CKF%lEW#AJ8c2)(#g!g_X3+- z{xe9Zzx{IUQ&+++wxYEf{2&6aBJwKr)2|9_0?}VI{{19h?^w#%Fa;3v(u^=0m zgfLq2v(8&Lx&H*ZXsT1qoE!Os&9CE9boZ>mFLZ2(8f02(T{%s-a*9K=eVS_nDYgb< z&_y;LKuz|oUKa!+4;rG??KlzKyI?JQxNFzOsEE**4l9Z3dBQk)xy z%d;>A=rTKIXNL6l3{e0Q-SS!-MHrnf#IMQbKZ%FvNC6Ob>E~s2;x-Z5w=NOvjrhB* zL;D>N|0zl4x@0ZeU!#m|`+CQybvLBHVNb2HTiP4P-E*VV3I9FaA%Kdf5skYigc9NI zkKplmF|ohNf=cTU5>R(NDou0#5cfAK6OYtr$PL&D+{p!70$xW2U&G~$ZBy_6=n#z~Xfg_(iVw64J>^%6(T`1BT@b~rfpGt5p2g1}-&B?MOmEIS( zF5_lowTF}x0{1jNSNqQ_HP_GWr>!`++$V$JzCTOfUxHRRQeO!Qi;*2)yrh|bPAtIr z?~*DFAkHtswL5e_D2Hp}?HMV4dSiI#w4UnO%obL!RPU$2D)5*ba6>SP4jqCF?i`>jVurXvX1|{o@Gne!Vo zf3ZPtZ%Ao#0jT7#v1MB{T}q`pm06K`Mnj3W2;AP!p_A>EMUS8W=D{tkNrq=D(>p`#g_B!0LNKeB?M!GX=SZJ^SDj`r=xIgJ zFDG&&P)V@uboPyz7=9eFybBHEO_~hQ`IH|;KqJ`a(eyN)`is2dZBHu8cHIE8z&yQu zSpi;nnCGI)wjPtAvO~p#rIxYEAj=uMO~+pn{%evbAN57>>hynmGMvGLq9JlCb8<#m zvjO|iW_F$9*)L7KjmnV76VZ3=FI^Bjy3Etm4s_i(RTmkCSx#$%b%wF#3#+p6*oUX1 z*}A{yGesV3RR;#Hf_-eKR;;=?v7260^nD1~^#Yv@&R9Kqm~(jQPbD0((?iv_7%>|% z%?454{tYf*tijgscu9|uS3uPm9GnP5BVi0iZGEzd9Gs}~*7$M{YIlRe30$(0BBni4 z+-JP!im#(l1f5A1Jcr{}H>};O$d-*WU(nI3TvD_l@^fY=^uPM9t6O5~>4Cms+-6#& zS>`;g2H=7OPG-!-WAVtT>9g(Xog&r4Mw*JMkiK~;R6GCCu;^JlhnzO0uUicl~t}k@-khSryHom1uJ|d8^ zUnwZ9(VYC+=!^!7@ax`JfuYHiz=9t^N1BJ@S3l~M_;EEK`T7O!h1~nD>117Bc!A;{ zPZAOIKo`tOy^Gr`ng7X%Fs3#HQYW`a4>C;(cnGF`?Jh-gG#gop75%=o3~AR$OW)$m zf6(#F-b0I2*SE|;54cVoSk=IMHSnr0;!@i?kXfQ<=U1R<#OO5Sf z0H5cbs2eWDtSgi)ago&*k2VsmRG8h0=dpR+XClt<%i&_iOxu*a@aMSJqQF!0lCDHD zAnR>sy53L)yCwe7Bwt* zq&46D4)#!&k;&~Zr|dTCYv>x`(&sm!AkCHLH;JeJ#?UYvNsv!>n1`4gp_ToEq?Bmt z`I>9I!}G;oJ#30lY}bs!KXr`wIkVwlIa%9T!guY-Z6uK3&gLo&ta`0;t<;&02s(1l zq(+^-{r-02POH|><5p{YRlkie1TxH%b{RiSex z$;Qd7$gjK0H-u8F6<3FSF*`=P8VW0+1eIKt^#+85hI=V~@hNUZm!`XoU6{gtLYLd~ zZj2M1=qba*xF;^mx`_`bh~`#@OY3E-q_%tt9?CuJUg7h${V!q1@W$hQdtp=(BT^>bYGvKL01rpg)QeLAodq zTCV0pYt5+!X*8JGHyBE7J?Xc(-rLT0Cc!f1B;jP&EJPF+b(r}1bwz5c1VCj1T(;g- zdntbjg)xok?XeJ&$JKG{sL=>HT6Bn;NGH9)>eNHp3J&Po`X-0OT?rVxuLVd#y?E1Q zG1fRk7HZ$$gWQCztCYJ9wKuqE8)w}N&;ekFry4`B&AQM{wEAt?Mc0MGeTT`+6MH;} zRdmajjKJ7{aiZTQ%}%Lq_j$G!WV&*NL@E5DY+QZ!po`A7<6*a6mP_-0&=8Hi{dP7S zSOw4;N(e#DAK@D|;j0?J(2}hsR2$qh3qCOk0b5CPKFX=6A95QRLazA?4A>GRy-#VJe^NhiPX$4H^;B zpYqP%IPMzDo3CT$+&tF5ic!6G=rph@p!}`Li7H{H$rN-JJDdPY{tI~3a1cEP*+JMU+Oq2f z5ND6pbGFjb3>D40=Co=%**{3|>biZf+o3NsCmCvOYFbGwbSwsJLb~NiM_T2PCp(H* zH(+3FA76<$+EWHsyq?L5-2NsT^$z2N@2XA4FMHz9j3^pyZR^FOGaKz~I)Z{`y9`KO6nSQ-fjAMfkp+qg@<`yIO($GQbP02&}dHdCE1xMo}P=b+x(? z@-J@N@4i*C&i$3=R>&Uho1K6sxyC+!Jri#j{i`Es-4eSnpAc zB1!{`G7@0Cg!8||*-TmZQx+6G|~>_0rxfFz}E;(g}zT4Jzs ziPZ32a$Mk0w-~|1+ZwJv(Y4#JMSULzd<%q5%o()tVht#zbM$Tp(JD5We!~rkspzzA zh};{ZViFJeI*^cU{~t}?935BNcOA8{Z8o-T+qP{xjT_r$gNbe1c4ND-zUlpZ?^^Tc ztU0p|uCssp+Q_F|nBbkMb$N65>E(g@Pqz@99+L#u3q#=uQa~K62rB{tZ|AK->fj&` zlQuNl+LGFiJt8{EI+(EX{tLJutx{<6i-ubuo`)^oSqGz@a>L>{82LohIhTt?z7@2M>Vw}u)KL3F!ap;rL^!WCqXUPj_W1B>fm!GL5k=mt)bJKn>l<9M_umN7+1yTK z45*l7{+LpQS}HEu3#fwnNURP~j!gQOSd}u1{xlCZPpeS9W^?k#-^WZ+b#=|%L8rE1 zU0rsE3bqXLmo04g}+-$1|17 zl+h!iXJ&kEl%Lnq^Qms$+de)%l)u0#D=VE&A;&MW9NGGlL1VA*kUaYDAD_JDvg7IX z!3=DVVZ?OQ0RxS^8R}AP!-M4#+-**m#s7^SyhO;PNY>tjc&b&!y1P^GQd6BYdg2rL zXv~C)9Ks6Zf`OC@vAp6#5_G)-58YKHZ0n*RNcTQESIYFnffH#A`#?&@%}WqSnCif5 z^JjW_ga)2^FOa$JYL}el>Bwx0hnc7&bb7(QT-aq!(BGuAculpjH6)}WfNG7f7ZcH=Glkdd!blIN7tLeZ$Hj(JdZPE; z@Lz))U-mNhd5`styQ1eGA^)4Agf-K2;Vol*;El-F7hrys(-WYQh|rO|A0GQsg)})z zDD-dC!g)*{Pv;CgoUdRiSW0QCe^6ffi;0GwrgcS$`{t&guQ+^UR(>_U+<2r^)3jSZ z+fj0)6AL^=?UBV`0}Og%U5=;eepJ(6A1f_%7pW&trub&5S0MA&>WnF^S(glw-@0$B z4!11WQ}+HLuWUX)C6N2e{!dj6qK9gnMSTJ`>YNC9tUv-avR+5&QcvX)y{15G`xFqB zZ-v1W&|juze?IZSZhYL3xxZ7z^mmbf98{Z6# zt}T!{V;;xV?_l9O$X@m+pz*zIXle?5cz7tUwKIg`5!QsL9#0kbB-RlB9sAWPGAIJu z+GPw4I_jrhf{DjGLPHD@a`d=p)@)+Iz#HI^m)nj1A3Fjni$zRqjlMZqRL%Iw>Ryf- zfs_$J`~-OW7Arx-PY=lo3$V}}MmaelTJy5PXbfzy#F3`{K zH#|QozJ|VDWHRRW zhb$G&Xsb!8Ofp<<;P^%=CCv_7qy{oPN2WGTw=!~Mz6+jsFHBn5ws^L^%SwLBKSf%w z8646`NsNv+!H6vTC3x9O%gVA&B&o|6)-{bELHEs(hH+%J{=m zQA{OQL9Jz-JTN)3nlA3Pktj7lr@ z6fC zk|)xTD;|z*@nWx*|9l2`pg2FvOo{3?JAN~DH;Aq6%k|a6$vJ11rcaxDcuvrNSL1j+ z(i2n#?o*WXdcg6M5{@8LYEAY7iP%VWUo1Q`=A?dG>Oih5+bXsCWy{X< z3bsW&d#-3TJ-xtnUUN zQimopCF0y3VJ<$|mW`YA9U1#^EYPlbHe{DRnd#iH#uG_(?HC+6<&r(%-D?5?32R@8 z7?${+nU@+lNU8Or@9;wGEN3>;gOeYePVqW=b+b4qq8FQEv~|Ax_|V`1|4e}>SdbpV znFNjKMGwmKFmIhAKI*jrX$rg?YrmfE*w?*VvWw-rHqmF{^*HaX8s8eTG}PRBz(a@r z3+;Lddtb7X-iCdG2fXHAy`r}5ChP3mX!z~-@h`Nw$0o0Ggp~BkxX#L&a}z_h1b5w} zECd@<9^`*_7$PG5rVj(VgYL-1%`A^&F%|JHG$*h(lBhSmmr<%OOvKjiS`aF* zL3_*qBoIkCK5|`OgYKRMWWNdC)GN%`1G5duP5iOf>xXw`=NzDyENh+J5F^X7;T?E7p}045GHZ4uK!*&tnX(nn4|hZTkfMb#|L0 z0i=%)=c)jdcY);~1ra`6tL zq7=vy8xw_D`>|RrEr0UH0YXH#`GOiac1Hc32GzC#wTzT?;Waio#^soihj;LEn}BG& zsU&2bmR1TSyUi851;F=9%6uv3^8&6n zBMP&wrzL7&OOLCK;hH5sw>3Efwb23<3>b`Yd4X-a)AHgVTOZ+{pV#)l_}{?TLg0rM4wRI`eAQ92^u-@SJChuQ3L*p*B8}GL z?K%G9ogoW4f(u0&l_tqc8RQ4b6JCTPq&Fy=fehHUdfTwVY$R2R@KmrWL41t_Up7u# zy`CVgRH0-i^hMELxw{{Cg}u99}<|^n>-T_F9^tmErwyVMvtEVoybhB*9Z3ILfjSkWa|w%KwH&Yg5; zy4~){@05qf_~@8bT>_%S?>Y;v>tB9>a2NLyvP9vbmkD9A6 zfmSD9+LUAGcFa zYZE`J2}K-l18%Y63balTwj!*dZaud5y&iryf82 zl9YfVhWoh__5pl5j_jX#D51e}K|m)|vqKRdk)QPLJr%46Ko6T7gv2M6{qxYK*2SYN*JtutMR42XZJ$^50&62>^cnOC1Ay=VD;py*;1_p%J@^sCs{ZxT$7`Cu25a|5F7GC< zXv<#9yldi{Isc;vbGHcT=aGJ92abA^%WyoM<>S)+GjX6w9f{Z756+zbIO2();WSW} z&XYpXO_-4cW$0n2!`Ym?yn~VrV**Oq@n^t*)Vso6z+$PDEUj&Q4Oc!)>8kkE#{Gkc z7ZRwo3u%*AH{BKfw{xM9BxnTg)dTRZ?2Fy)^sS=*XiiQr){vM1c@DVU=cAePTY0#v z;mE1SWsK$JW%+ij5rp|q&$W~6%+F)FFHtvLwF}*F9EJ5VYxiFk4;R{3XGz^yu4g~u6xi$z18t3yoUG=KfH4_eRA^i)c3qH)Y@iRx#h$FcB` zM_E0xGrna}xjA(*B=5;g-hMPB>e0<(w z*;amYOtVMUAx@kfdvBfRJ$$TR2nrlj8_lCq&ec!gv;)o_&085)*~qvCp|Rvd63cZNowpe_VH*^LH%{>uL*4eg5Sf>FBVsbwmDJ zE9aTbb`yik;ker$D)!60LXdH+OL&F<5{B^pYSO0Y+WWd4={>#EZhrflxvrAkCi<*= z-&OjNQ~tS2E{_L7i~ZKwW-9%&x@oG>o8L(9{VYYB!1&iy6py{KkM94rK!iNm!njvZ zGr3m?ZtSXSSm+SgauJ5#q98F^tygUrP0$Bh*H3Yt(#2p9_V{^zx7kbA9oN? zJn~gUb_ci^$#VG``99g*C$5hDWNwm_RQzFhOu>glbsb&Fu8--a?bhE(=2eRb4{^G~aFC4%5{ts`*vB zm|p?5&jD*FWYVB;p&p>(w^P`7HVCngHl+LBg;&xes%@ucm1N#0I&iGTVB*?(b^QCBqO7t zt?-!a5;c(xn?#)++8EpHrFy&VYBW75Pzt$}=4#rmHcp2Da8MxG<#)P&JxShxv{dZ; zUPtaoQ=tmym7CN(>z`r@$Yy0J$ou4}M@_R*b$*qo^{o`33Ns(rJz!59zXcDjA@RQ# zQz98W{T8@0;~HJ2eMbZ`(CO;jIUqao%`J!Nd!cmF4f(Sg7>#AX# zdo&r@rA^T`@%^dIri0lZY#33UHi5SHUVT{L3P%h)$9Rj%?u2b=*O?tteyEHpZ9~1- z;r2lH4?Mn6!AHz^Mxd#Lp_i`6U;M#$tu8U$ch2aSfd!7?k|{-p3ESx`qTF@%Wcaw9&&R zHY0zYrSu4CG>7`}FIbSI7`Eaf$2Dksls?XZ@fVhA@baG^H~&=oKGz+HAdK13jQTYb z+bQ01(*ROz1n%KPNt9TiNjN(sj)=nn9`8W^1E(sQNn7W)e}|;i=wI{03vSI!>5jYJ zJXl`2I`3|Nhy1Ck;bBL&pM7VdIvGso`BSVG5AWYSGrjX_W&!6jicmz@#hQE_SF{?E z9W{*FI(?32o1W&Nzt#Tak4KM~ZMV2z$p$kHKX#aM_718%VnwfLFl9%BfIMw^5Pm*7 ze3l}Yw*6F2^d{e7)01DVq#-UYA|}VZpJ=@urvARK#2Bq0G}xN#WLU-YJ5q?7z_{@! z)rsl8Y3vneKGs=y3@F_rw^$iK6{$ZnfXze*$BLHNesn6Sh${#lTRo}K+jh$(*W~di z{jr!6?!RvrM?kRI?S%S5YlFBNZwdBd8zw?$AFW7QXl*L6xgnvCmckXnizK5;mh0#<|`uC{+-iH3WB0fXP!azA>(K>~xf_-a4E_x&-!YW-Xq8sHOQa?IAg zX123NHk?%-_IA{^eDZd4eXhFNq=-O&e){)|fI*=3`!Gi!B~wYxhBH?nqaZ=CfPs!F z{CRo5!6F$|3I0?>$}3b*0#zbphDhj(hd>c0CPtOA597&kdEDM=+9q6D>Z)k32=|+A zYdd&+@}J)F@mSH_s_bsEUZTF(@rW{cvS#fch9DE&IIMXH4!2qHWxf3w+_DKw-)df7 z!B8konKEAuSg3BQm+COI!mBFyKP|w^X}FGnCzguRHGQ~&)J4y!dXW%jq|8dTGn;}u z5_GRC^H7kEy-RyF>!FP$9Imh3SKoS*G!>D$wxFWvBzD!Np*isQ6PwqswkAKvHyl(+*%bZ zMbp)2TKZ5lkp8jqS}-8_2So#w;YwnMBo7V7qgENvISG z!>*{sZY;(_TBju9PGrgIG;vS3&}+f*MY-Mh!w^+T&CFTKehE@tDW@zAWgxLIyj#Hn zGIdXA*+1!mm`m>8(rHpj+-|b{h?HIlXoq=vFCe78Ge1Ef<731YQ;{(^WJj=WDQc(KtM3H)#gc0^QzFmWV zhKnNNXQ~$#J8JoO*_&s>w_}Snb*){s?VJ~wjQaGxOE~-l=x*mzxb3>sv$1|t?C|(j z^wn`RaJ2R4yBNugeyRTiw$#LFZhY`PHicAlQOic6^sQ_u^+~wYc&GyhXGM6&4vUBG zW@D3D2Q9Ekm((GdXH((UjiOKR4iYXRs2w^)Bs0{}X(*GdzN9Ok;>9}T_j8n;{oVc$ ztH0dOj?*CvBJHQu;vz(2=T__fcK0jEpkOq16!y)W93co@pD8xZ)8ZsXoS4~Cx*h4o z1+zfcQznUZXO1>N(kb+`o)38zdpZ~h>OcmOPXPY~%gKzG2=3SVB&Y3m-CNU5Jzj$M z@LuQ_SXbYa-EzikIOErow!Rzkw_zaR5Gx896y( zt~GtRm7)0{W8-_@vc;ap2VvZzSO=l+SB~%C1GDkr>(VyVYXp*!v%`C1CD0%2N$7FV zcop0K-$e{;-8grmw3rN0=P2m^jtE~ao{dd!>d3q6y~4m)ZFQdpZepD%2j7qLR$#v){9fT!3#gnZBPb)75!@l% z?0x*zoxkK8-g86#o&m1#%kZd!My(RiJVZ_~Px5B+9{O&Cfbi}`V`H2ta<$=Qe66oI=Dlr}X>?`8xx?23RG6y_>O)(U)$(o+>O?uqgGUB2C|lHm3+N5^+0F9RQuD~;u=?i)-ivb#C=i%I`78iPeY`c z;?}}MH@3@O`tE78V|(940J&pK#qiDyCnH$TM94dR*;tZZsjlPb_Y=Dk_F5i{fOQg?peH=Nd~Z}+ws_-`@D zKPO6UaM}?Qt`Gf=O%Fr|zH*ey^p0Ly^bX@Y)l#maX?{jc-1c)3jcO2uGEUa?NInNs zo3{1)7j{UeEAya^Yb9xWpk+DV@#jW|Bz-8Wk)&7B#c02JDa4nK{Uq&g+9P&mOij;c zAG8{A`s3NZBnx1fPUrdkM!S>f*<@knW_-(5q_IHD_-XWrUt|q4(Lgj#!~DC1jK-uk7*B> z|1H)(L947{@UCFdQT&HBx@n?|ABDxT@v|6nm%GDzozo%)kVV!-z^u(V<+RT=+x?s* z#`XYq*1>G}g^NGvHk!XaOBi$UDvWY&Uq|FeQpH9&zml zddVk|BSN7Lkvs1|0{;fpmji(-F;|^uT}ldlyw?LAPZ6N6WySSR?i2$nRb3u})OG%n z1I6nSOVQ}+Y1v85Y0U1|3lM?q4um`1%W=5DD7Yt{b-C2@ZrA~w$eO;~N`565Z7E0c zG0gEIQ|3wZ2NT$r!)#iSAS+_MP#ljRZ)pWNzUJjaab~;BR$l}L0nu5lm8E%=6{)E- zv6RsiWC2cu@Ii>87bayBQN-%CjFAMh{Jo$td zhNZPj(bU(iWj24vBFcL*ZP)cmP(hOJhwoc4rIg>oeH(T?p@^kh1@zS5ZP=?+LZvPlnB|>wOW$i3j|JpkO z&STUE&_KW)QfD&Co3yH#%gh(xYwdk~@Nq*Nmr^gA=(Tw8-;9MO^S-z97Y ziTxfqIp2&zKs~8ks+HTgz7vmR)|=oR6D;hcLQpy&M)3HkZdvVPCBgA~?JCp5lDQuJ zr112vpv&jVQ2lyB)9ULZ%Ao(WOn}vsfxO&AyCFF`Lu@qMEw6yFvCTENpwR)*&b{@D zd7C5a&=%1s-Qv)YV6PqBbVn{}B1P1u8*yu#-JC|cnfisJnjH8C@Li*6{T5(UxhN6)h}N^aLUwlwOv#>a3V29 zTXJw!%W>+y87u}mlTtSF^Yf$cS!rsR`o63n##U!U{zyhv$1ux?HAbmsY|dj5=_Y7j zW&1y(F)^JSzwBa5owXF90us}-)O#S`o^4b@YBF9x@^AO-M)SdOTbe95NrSp9s(ag*Zea#dsSN<1j z>N#6=O4qaO0mLCuFv{pfId#D~Y0gKBM_oH#xIupcyN z$k4i;=U#DqoaS%C1kUx~738F8RC*7+qwsK{dJfCxbsD&)p2LD?77Cdq+h~gf77GfpYEu?R^KjLT;}ZSq-49Aw#?^k zX$wV6d6NkgJ!R|R;VzSz4u*zjc0Q-gS#+JpemqC!d1^8`2*d_x)QQ8;Z#fU2(NECJ zjEHrlsZr(6En*DeFAElLWhtf>UEJS%++0^+OnPZqzInb~o{v=BEg#<7*GQp)_RQF> zQ|_d6dd3c%j*L6>TUt(6vVue1W4!S(3|PD+__Lmpka|(QUdl^4{2%y zE_M+|FuR|{4!o8#%aS_OA_9dT^+;X#j?5-9e#@xUpIGV4HES$9w}wzo&=929+W6WkcD)@#S+a)X|QD{s`E_u;14DhzX8g0Y> zJ-(O}L@>84^Z8rFQxoEspXE=4WQpGpQkll=IU$9~hg;OoejT;75w`4ZP!5u$1`6SL zEO8mJZpj&h*g9K+_KqCt5r^-*%8?u2#>L;_7bUuC1vGbvL+-rA=`6 z8HE&o64rZh9tHVqGO74PFxRj~MvJB=Ws+kaP|m6;>!2-zWH8C7dt4NxRG79mg_fHA z@rR=nR%I9~?(gTVwmmGy{|J=YZ<;I7!PE0Lnnd8@>E`fNM2#2P@YZOW>+TZY9!c4W zQWbRC4vzD_J|twOoHh*tI*D{H_X9eRsWq;)D&dpyZ_LHSqV5xY7iohB`NLFEm02HV-*wQ3EHUmT-mZ{|DK{RW9n zW~wWfBLKfu=-$|J+}!SJ-K#WUGvZBLUry}{NmW)m4rhnN#y#adJEX8G4JIROkkOH%T?dy3rU z%~gAqCvQ(~P|8s94I?MblHv&CXP)$5c8)~4R|E^`B|3zlQ4bJC{WjuPO7#*Q#Ro=w zm?CM;XCVtY!>#lme5L~#cpaCR%_*t*X3?CwqxL)qtwRwO>n^H)-yMEXl_QI#d{!ap zYbQVIB9}Eb0Z#Bt^xg-_ui3t_A)g#x1~K0DBj3KvL0Yn*JXQ;W9GpBR;PrXrHl1Z! zFmW-CFwqGG#6)a5h}o|DrX#tIA=0$f+*mIk=?Rjd4nHXfV77VIxiOz~$$@x#`HNY9 zBD(DyCZ2cFQa4?B^k$kRi_G({2|;kc=ko~YS@W-z;&@8lL2(5!yFp}SEJ>`NJ#N?= zk*NVwg>EDZ^PiubXt+AE-NJK1_MSXfqfSuevZ3WrWc#MZC|HRp%ZnrJHTDDevs)71 zz9$M8_F@F~X->GEiiIh*f|5S{Pzh~@T{N!WN7B5`Z8d-|eh3yd)iem!m|*aXv2MO% z5_)MJ;X^?5IUv1_-T4BSC=!TU?*5&9Poy3;1@#fXyg|XnR5+h{&9Zp$zXMHft2lm95*7`|IevD;WFGYbD+~%G8T>WhEeJqX-E};`x&y1b{L7xD7W9t;tg6$?juAI@Q^E#hB(k zr{(>Wve=_@2nct2SR=kg(&E>i^=Ruj{ku_$8YA*N67UT9KDkezF;T`m=fw6*-t~ym zksI=7=o&$$id|%}WAFj8{De#`J_kz*=0OEDbM)H1cRbpQX$B_xojL9__G@y@!dOVH zlm|uNgGC_t-`#YqZw7WYBj--Rv}CD#q3P;1qSN%0BXiK))FYhV$*4SsmgVY1C;zR@ zoBRHCk$P&J7pf$3#;E$5b*9(dkmv=-2Z6E%`mw}F3E7(*5h$YprQi@NWMc9d@1Ve} zfel{n#W7dCjc#nZS0IUpuAv)LCh&3Uxej!quY4S3fw8}Cg=6-}>J&U&M)8yL44anh zwAK6P9KcLj(05}Ac<;RJ6(=dU-<3mk=LJN$&mIv+Fn+sgF|x0|MGkS8C!cG1=Q=wm zRq#i#JL1-P@SPF+dwCt3)J-IXxvnPc$8se_kr(~tn)mjnA@8HA?T=ck)i>I~-Ek=$ zB7NLuk<`YqKcA;fMZfjf!2=FCC@V>BB}J3>(^W00tb!E)g;AiBSbcoBp9jL=tyZN> zZKNEtc!&QnNjf2HQzbRNr&fafFH?f#lRo1~*1x^-71?F;;fS4W1^ir4YAEG#-PN?5yA$@JJK|(N5XA(7NS?DrrJwO5?Z?# z=D<_apKF41e&j55 z$3=GY2FQKhQ0Mfnx=5Vg9gi|B_KFB!pvZ@UER?4kulED zJPOg?5m*%%$2tg=+gPcTj4S(SnNv?ESgXe5RvQ%FTjPfPISySA}xw+|fKG4C5zN1Gymn@HNmyN>;&%)~nt`18&MIWs6 zM+$1C8vO&gIeUpR^nI`f&%&M0=rz6f`tN(|LWX^Ce2vJ-(jtvri@zBtCci~hA!csP zw}9`D@ZTZxp3TJ#-^Jn!vq+nDdTpA$lC>y zHi9Wsp5}$jftYri=QPxVQ9DZG= z?MfOqhzht0{N;0vz$tRBY4cg3CU`iJ*f$}3k+k`2dVDaYj3kt3I39fM{*7RHQagKg zUb>xt@Xgxin8w-O+{oG3=$dDos`W$SW|+IsS@!QpZv}o-l07zOHjBB$$NC(HQ3?e2J3#q?86y)aSZ%3b(^zv!Rq(i zS3hQVphnN@lIIpKLoZ9f;l(<1l|8}L6Cf#?Kb@nCA4fNgYqZLy(=e})M7m|$o2L6Y zl;IEXE)doJ+f-9l<4L2KwvDsh}zicH3s96#GxwGcHcBX?kmj8;42 zl0iEpesh*3PSB7w7uu|mCrhhe zabyKn^~xAFUc)#xo>HkjR{0dHz#1O8=S{$S*+Ragou(nd&#_y+wN$4euU%aYR_nmqmiGW_ z#(Gh6pG9dI=pUEI*+Z{c=$YG5hoo4p^mUS_}-On_?2y|e)6(ewPd{OFoQ?2l+? z+zV*t5cy1)fWeVQpbEVAvhN?^U*wq%S+>wy76@4ecFl6fk-%7I|GdtPy}{feq=L%o zaaUhx;k#w=Ci0@s7;6&2>DI$IgM#jqScs}A{sK;u?`pU@cQaV*Tkiku=d23jp+Fj| z2~*M5UoJWCYYIZ8;>bBm^`IrO1&u*%!?x?##K+ykxu^cwn3?fCV(~oJ+4<%1e&uts zO2PkIt7wOGz)ODlGPm`ufq{6McB*&q{ zwEedgeVx}?hdf@D#js8BoGB)&j-pe;tU}{T^%7sN{_X4bt)8cxvl$`up2T{8KTT06 zIY*fiwHG|qL3~Dix6IeA8ILZ`Ec5?=*g^Q1x$xDu^SsGS0Y3J&B(T9SGza!={~MN z2zgS@?5?f9SF^T>fCBCeYO_O|->>Gz#t@1eHw^y27K9K5Hw6kyztScLW@NnRjb+d- zoCs8My2Cd^>-p<%DWCBJi}(-^kvEccRH#{x3^e#(L^s-_?O*Q~lJn-tMiSrS3x67# z7EY;vw>qUF=DKOeZ_jjyK90tALJz6w#)XFTL9=7!or2oUQ>; zBH{#9Q9EVC9LEGZ*_SvP;UP4!-|+?kNa&ULU!x-+dLq28E4@X4H&C7 zK={dcU&f3$ua$Y%Hp_|)~#w2?#x`IyA@mmU%vta2`8^h{XSx|eu9m8QIbL}lsd3MMP8oKR}ZXn9tZT<&X0`)-juek>w4TBh(?mKiKvQX&Xd0#T% z_L8ZtP==YrbJROatT4nMwR-|=*>{x>u6IQ(r-70s2U49^<+v`8Q=(tpmquz}hqa%! z8@oxNe5;O$-3lW{?ylZKm1c}8#veC8@!dGS7|Q^-S$fZy>Ghk{yz*ikL0j-+r|COG z1Gs|jUDFXXHEkM6{)x~z`?fjmuQxa<*0QKo-GPPb&v(V$l-W_wQ z`z1ufS_AQZz{w1M1Vx@3MrvAGk=5m92X4_&=$|h3`P^bE^|&2aQFZ_I+C~@1RFCRK zfQMahj*o{4D*;EClfTN+*O+I>66&M)y$y?#)^;2C1dj)6YJyT8^)|S@7`HG3x3QX#+`X@avVv;I?9!x2mG$%Q8@uHz`RTo?M-7~$h_&hg* z6av@*FFl`=QWEH>tN0!6#zMR^05}`}V;7RD+*VAf%+{wOHm7rDeeJ>VtM=@Zbwr-W zi~jyQWzIawqLidtvc9wJeZgGjqA~o^K~FDe9`}($7gVUyEeY5J4?6MMsB5W2L$ewB zcukbL>onJGMf*kcQ{=$gJuu)|ux8F#^US2#AJB8FJEf&%AeK{M42-<;K+4K|za)e#lbT%(i#1U8h5p)kNR!^I!@=R9Tpt%tm9guqOp(w~;+~ z6?8GK%c2^9=bMIPV>j4_Rn0cKAR7z}GTlxRfVkibCSXv&cmWDB5-?@*6E9ZfB1+U1 zL!=VXsPT=swJ>+ja5%zlEqot7MTkf?FYP@Bj`^RsF1EXHpW0WtYCAilC+IuidR{Lq zb{D?h19bDIa=&kTND8bOld+QgQ^kW}f|YoL}UgHZv)=Aa6sRx_ZdneTW-a^=pS zHpqS;t7Z~qnGu1=1O?4j*KCwZafc~G-<^tEb-<~XlFtOp0k^E0V+B431ZV*bELap) zKXqAJXX{_=7F2ypP@*wY>$?4GOA_4}K~k`CvZuE^N@&ImbhZ0z+kZ!l_sxCY=T>FU%ok#o>tnm%WIM`cz4SL6=3Q%({lXK;hAcZHVje`Q$@pA% zWW%uA6&0lGm%cAt@#vUkliA#5C`$`b3FjV8kB8>uex3oN(0)K~zX|N9Xow@_56h$< zVc)GavU4Riulw^(^?nDZmdkJGv^{CIkmKi&;ucRVPM2S{cC(W$ip~pU!>q)b%JdDW zmnde`*By4TkY1;)%-baG2KyWiihQbWuyM1 ztCfl*dLDv%CIRhq?Ra3EwnIt1U|rBAM5NRX{pXmjd~7k3el55jWn2<#`NLrSuRHfgNrD>9Z5-ZwJ6~XP@Ay_gLV|OV|Ij zr1kb~XN2oGI~W`i;ZI={eSg;Hn?o9Sh@N$<)oFSV?ab`V&(@#II9|)LnweKtIZNc2 zdVQ0l7Uq9U7vszw;%fS`c_0i*Z~C5k2;;mbO&sUPDALTeQM^*qAP5~JwbJTm?zC#| zQeQx3+W^S#04LCUK4XI^zifUntgm%r>pC|4>p)>|M&KsMvar}i z@sD28OK3bg=wI6NN5}B`W4ty51xl0n%RCD&nm&h7e66d@(ophUVjo}9qQ;EP{ErOi zk}@}ap5j{B@GakxbJ-~AZVX~rFb9RXM+)|7&H>$68&xC^Fq3g(mkv$2zYE6I1;3ix zf3Q$YdW8C}#Qyk?UZH$NB;o?+m~xhN73&L5bap*lSZGcV8-6+7^jel2x>Zy}L-tUjqbl^oE zDN)Y|xw_rMD$KK+$K7?hhLmnFcnguNeijN=Q5f&z^$xIU{KlF>EXiksu$l2kn3Bx#vC&U4#u-7kvpN#E-!((94y_)pE} zd%$jQ5IDROc2WL2$`$6}gD^|ZH{ROD)P{YRhLnggAB?XN_NIR5Yryjm9yh0#PjGBj z&s*onc3wsD5Se_mh_pUKH_gN|-5MfwYiqhU>=0Ts?rD5g^3FsGI5X-`+%hiqSKIa< zT16(1{{TA?Sm_HyzfiT4MbvORscbK9Sfcn$tnkAU!`Yk!XS)nG#14h@9Sd)2_B zfbFQ09Kg`5sN0(r%@%8ib09z4wKHdGTxo3=v<>Vl+*xL8)6T~D)rkM7$QO$|=dI}b zfCRrb?D+`!o^!Alt;5Szh%Rk&3X^*P%Z!i4;P~M&UtE3R&b(fotzKOaD0Aof^UE5w@6)H3<%!%ROv=HpC{StyXF73_62W! zMVT!Aq-w=l839ZnG=7-MOz}on7i>mkVY2^)fiQNC=vG*+RQnlmB;$|i^%{S$K){W% zys2R|D)jFW@$bCYbg7M}G!c;s;mG^q&JOr|d7cgD4^dIz19q}!C`d^BXvr?!I<|TN zY%^yH&t-ds-x-E*gtY~iyqMW4Y$#w(*TY?ZbnOhd7lyi_6P-Dk>BSTc;Pj4-KqRvDF`EH41AsF?0t!% zS~^Idiwf9-kCG$3t@XJ8Q!R?3Dfr!%Pn!JyuxPjc;mXZl3w|2y;nL?@9Q$rD^nUQJ zxY>psbCl(N)yE_Ca?(SOLo#5`;LU9RBfkJSX zlRocv{^VD#D?2+YYwbDaJ;q#RXHsAHkVPx*+U$~CF7G*ono4xg#xa(;m_C{(z_Re`%YVOVu?p2>K z`=2~c3@ND%JxU^id9?@12*-^>yJ!_Xt{m%R2MDS9Jy5@T%(#4o=StcZ%T@i1*9M@} zDkymVO@9g6y71M%opGXI*cj<3YV$gFH_Y?bt0{X1h>o;8VqKGbyXw6+3@v!6EEs%$ zrWTzSJQq4d(~GMEOFRl=6fwljkO3Cq17Yi=E;f%>+pj-PUf&t1cdI`0FsOh%z z3EnhY_ggU`f|TObLTcZ0)k+E`rV%)IOdHYLd_l@b{(9$&kuD0p`ftmW%*&@|V@WBO zWiC{A25)UC?mnOb8jVL)pFpgJ5%e_5uWj9jlO{8z#nI3+|0!zgLAT&oP_o3&wdU+)ItC-;lvnA6uX2V=xvTPA!b0bSe!gsQ`a z;dL%%)}(^ER~JsFLA-q=-QAv-trzpNhGl-+{m?JJ{MZI#46oEm@(ZqgaP(z-yZ;V# zb>38dG;MuY*D3E^d#RJGLtopPW3{#|W(EJ~DJWww^xjgq=oNjDAQ95;Fmae?e15GG zLpx3dN)Ulmv#*Wwvz|vsOcouAddvU+P zNx!h^<~oOUy2&>EE9U`;4r!5ct5P%6|3nnxhB`t7*Ru!CjKL{UoGH-*wg}9SLk&45 z0)qi06@syry!eUujBuxSB3g}LXaPLtHX;n=c~TOp)z+=9;ua5whBM4Hc59_}8dJ|3 zO8-Okfihu4ZSZIcH&JVH8nas4; zj>!SXKL4j3@=};lM_Ptd=&2pq@ncc;lqPQe9OVUF*6js&g#no=N-ZmGf)cS~U4xJs zDljlJV4dji!!`O2i_tr*CGel$I?h`)s3fgRq9W?EuBbg}eZW4;;O(yo0PgemAOwwN z*rcO8D0?2$+vr=Lf;2*yX`K%;*0e*m*IifR+6LLvxNXF*_YS|6Jpa9Yo1XmkQ}>ZU z-$JI=I8#!eDXuS@`!HS~E(_|42Y5*657XY-zEY0o=8qUZC3@13=0T<@TKd`6b{y6W zE;)>*8g4-rMR6-oopsK*j~nbW?2DtU zqL@!vYI|5wc3}o+#*E5t+~z%30OPRySC)xxyFaiIB@qs$u;N5%LDusykGBnVzka|C zDlkc(cV^q9-k#VrH51;<3@#rsA=iiBv}S<%0!6oOXT7$&GkX5{f=PKVdGyyuJ?*IC ziW)>rbBJCu1>!fv9Pjj2a$l1por7V*BF{;~^Hb2H($a9d_Ydm(!<+(h%*wFkJEeK4 zumOIiRaq^BGH}s}@F%Qa~~e;H=bTjh6;19`2;O zlltD(Z<8E0oqHMOxsl&F7|_m8dQTJ2&mx6m$zhx(wF80KCcxaGrzg@530i!8ze?Vo*7BEHY(I?ykN;_20FZLyXde{?v zq9zG^LE^u*D!`gvCvQpkjUnLV=gDJ|G^e_CP4l}p#6bAZ6LVOk1NMs-KyVwFQ=_7! zr@!Gnsa_Cm(B-uU8~D;o#!21#RpYH~*u829fv?qsiSEVZ;6rN}NJ^le%DDW8ZyBJ7 zTkra|_c?+h+J4gR8>PlM`SoZPCy73rbMyuXsb<4OF*JjQc(!vYwM=(D_V?#c{JF%* zqN*?F|J%<)Nn#<5p{zPYU-__p@gWLZ(U<{a-G>?Aea&`SU|M*ovlRnPCzz3iU)A{) zz+m6gPWhXjoF!kd8%c@X!08Hevbk12M=ArlOUoDMZ7V%}Gl*b_dFo=l?-t~|H1|rP z+yi%hEPJfX|7uiqJ))NhkuoKcbw&9H`RD#m>1@#6{Wj%0(**&@ zTTkonJwi8=QP|FvcB1R^@vrA=!!qBerddP%nqSFsURp@c@$THev1J4X{ctO!{yRK~ z3j2H0b#lkrfH;Nt*mad0EdTycfn(&^-OaO*`BBi(&*WbpOtOJpH|WQsA!b^M>}X88 zz(OV-{R$neKti>1&0mESxJvnG3)R8!)|vb9uGX3I-7ehj;$JXot~IpP?3}$U;fh+c z1hmE3I_OcDg;f!vnb`Bc2;`DI$;Rz<_5I^z_GYb69%PeoAV`jy>m;#?(iUMUH4S4_ zxC2ZQL`!HSA(2P{er>#*-bDFoJ*5%-l`}fMK9?YjcQCji@Esa5cm%kY*7tV0;`ee{ z3nwqm5EkZ6ndymNa$I45@58Q)Uzlo}y8;1+8H0(~qBmJz6X_VFCxpszGu2}8@dg;7 z5w;@#l&mD}_}n6P;+)%F9na{rXkEo1kdgVWFe zECQx)m+7yh#ZR0xPZsA9&6GO5iKfXs{QH#_Wmi7waf?MsxiP@7Vyx z$^3Y`+9mg^Mtd2iJ&nRmi;c|6*-w?`xma^GH+PoxmAf(r0b}D{p}Vu8Wb?{&^hHRc_j7sv-I_0(2=!E@MQ8Y4))28^?{lyM`AcqxPJ~xCvQ} z5asV64fk)?EAO;M$Yy28(#LOMI>ETsA3yQx2JY@+FvH`0^E6Jk+8zq;w6?UCBEY7! zYJRDV8ESKdM~n?MnWr0!->l~MzraYeI0&+vLFR^y+H}<1SQznuhscVtmseO#dYlr{ z9apgfpLhq5;HP%UplbfE{c8rcw%(eWWib8BYr`t|$n|h8^v1vc?D~hNBR8NXN{vrjPws)huJKzwSaEgH&6Cn-2mn3YuaPXzq_$_GNO^_XG) z02Z}#_^7ZK~ z^>^GgPb!i&V?Nso`+FGRwn}-n(lgbK54_dD#LH`b4(;J@d55~1z@e_1BtvABcX-3g zNN?!&!*2qs_@?EVn2*nHb``dct_?`MPNGTVe^c2&=~1E1QQX7Ex(qN88hvznK!r@) zd_nEK-UORMwA7WrsamKL$h3_TO{}{#;jYA)vcm5pH~CB>)_wUMa0P-(1M$U>}n}Q>PVQ*#ZMEgz%{{LX-?IsV560 zxtSq!&zJb1j1SaxurgH_;!&8Ik{vZ8*$OPA8P*TKoKzeBiLUY+VXwkp@2#D^^BAkxR=zhV~UTuVR^103#*t#ZW zBxVTvWevSB;amQ+w40H`(K(hHYTn%tDwHFB+VD#$#nb;=#ru(u3N#KAh8ShZY4Wyx%0vvF*`cga!kzBGkEklz{ zCi9Y9Z)QVcWloZUX2&NiprOd%pf_goDtv!zqDXHp6hh1CTi4saVeT!eB2Ht-@NRjK(E$xa^FDjF4vHRi zYvT?1ZVWgJyK}4#FwoEPb?bw6(iUxdn{Iz;<2t80oG|CPCt5T(I<;N@q8qw67+E0L z?tUA^HVBPHJw?w2=;(b-+?doC`#6irkoG9^)ZO|~Du`e}E6h^<4j9N-{cARQLM_8z zN_(mE@4c6iHznjh>pXj103t{j$?&;i9m1snGC}sHxpg^9L>-Q-+>CA5PxR8);&uii ze1s9LRfsRFdoi8&XKv5k_r5YTD}IO)J~-Z6*98e9rL+)F-OCruw1E!;^=2nlc44k^jJFP%&m(%X&Y?OWu1tW;P9}w!Ay_fmbRCDV5 z;G-kafq$C+<*cQ)gr@ zpuOw`(*FmG6Y|Zv*4Q|tQz|4KH~K*rXzPU_5;$QC=q~Lf!LNmq{%3I6r>Qaq&&Mi7q_s@QH6^`ubzv?IGVz zZ+U(+y~yK4+%aD%Hl6e9xV3t=G!xNzJrPIfUpr1FBe!&uE@OHp4#{;l>^ZyT3CWD6 z;fre(KcaI#kou*b6F}X$n1uotcXMNCDLbkvO@9HQpnE?CQg0w@=5LyaGZV)u4xjw6yrgx!CgXZO}9&WTD}jw z`~NINmNj;xMY#&%dtCUZQvHb1$OVq$hxzagvz;v#Xs8!TfmbwNjvl-(kErd*iNe7S zMGivOQoJ8}S2^9oP}j6o_wH@F3nqe4Oa{uB7@>oL>@cMiPh+UQ- zkC-x|ha47vDH!a>S5yMIGBbk05f75?qCmKd!TK}A)Mxj$5+3}DTJ0$m_dxFFsw;=t zkuBl9#)Of*f(y8p!w*iwx+Y_rsX(c9XiL{YX?C!9fX7s*0?O*KmybZ>`HHc_z~BM% zmXchV@D*v!MXF6AB*ZI2dDxDz`k6WDnqf%O!kM;4G<@9du3rRe8CO%_VUjl0q>BGg zOa>@!p_`cf>}&T)Tb#TT;o4k*+F{rFts=K>k4ajob-}80%8gg z6C5qhv~m04V*(vcHCzb$IPE&o7yJp`qUi&t45*ba6LLdL&M9;LSx&M)mlV@p+_xRk zV!|#L5*-HOTB?aVhf_`bS`wMP{-tk__k1Bd*V1qf+&Y_Xr3rndSN$2>^Th@OvvscWwr_D z0K8iloy$8AIhJTB8>~@swv}-;l3>O*{{7uv8xJhqL3AjCiZOg9ZGXV-c}I9p@```rI_)| zc{uX53VX%#|Lzg|s1jFPEFlu3RyJM{w8Z4H{KD6$O2X#V-0(qa=+y?wv2@eId$_h2 z<)pqQF~c9{(Xfk=fJE!TiUM4GNY(yE&D_X$%fEajM7 zqs=Lgq1)x1xcWfhe6RBk?+XbstT;ECsALICsRP~hKJA&$*+?R)nWne7?Wrcf;6L}l zGuQu^zN36Mw6{Lc11iMhdE3fh(m&yI&?<9YhGoHw$IY`4t`BU# zLm1Nu^y~j>Ji_eYoF)?NnfN=hM3{x!Zmf_?Lsgs2Qu1PpE}^GQfP%%`KcDgACXb zP_^b5Dn(8*jFGPOl31A;JoI>yAdklH*{AiM%GnC7uJ2?dC~H(iZQJ)yn~p2fIzXll z;#i!^`m+Y5cWKWK?DK1!kjTJQ2n_k@MMajKN}!{>=#|tPb}M7lV<)Anu?akm;N8gP zUu@@Gh}GE<_{2-tbi6hZ%GF58Nbez#6X1}uxKCdFUj--wh2R!PY$agH%tNKoN%Z}v zKkYXz6&GlS*FEy3MJ(X&{Kvo`j1#iUTOR%c9#H`0jhVP$$qd5D)F>tAx8#iosf=mRXkwDrc6|?94edj)I45kgWp&tSK`*0x7diO)LHPMzWMpsS zGSa7e+8#yL=wbsvHg2`b znXea0aBWV6B-c~2`39+Ycapc9xslXUr$PyX@rLn`fXI>CVk+`(<01Ht_w}uRx?S3U#u{K03%L;5w&$8`Y`5 zUIfw?m?pI19!1|gmB_c)%tH~2tKr79c?x_O zqz4!AR#PzsbkO56G^zmhn>xOlPI_40ACQj!5Ko^Q6f(x>t}mrhI^wlA)tU8bO1Pe^ zStbO?3%R|&GKN}Kb|WEcd2loPSALUF>hsMsIvUu(k2k^y9Fo3mYx&YN3}QD~*CGOJHQ1Wj`{+X>#Vum+L#l|6fSYh9B0L3^(TTi^ZV2G};gaZwFJ@;~Xvori|C3LF8e_E-6 zS`JG6MxmcMtugn5Ca~zD@iaZuy1{I3D}DA?D2XK}8X~9u21;v@K~nSUhu^Jx91q8> z*uy7pbNL>4fJ?%;{>SM$Xg*YO&Gui<3ggQ! zMucGK*ee=^m-~W3Tkeb8Ut}%AihD>C@Iogo{$5klS#R<5_2CRqZU96dUe&Q0#6$oE zFhOd_N4?u0yl)7twwEEIgMQ$q$7}c4%^xJ<`CJ!_{M%Lfq#hL?(aUq5EF3v*ooP8j zJn?Y_oti^6=?*3a&5!Q^&?mQuQ_iU{kW3>TYp#y|dQ&XSiV^%JGNMvJY%=7~(Xwaer25eSPKt z$5k`vTl9k4<0FnIIKXe|Vyk2O%AWQ*If|GxoJYS6MQijTY-8Q0$fb%Xdp$ri-ZM-_ zQC$VD$dKaa5mFDqoi5fh9O3!IkE8mxtDdBnZ#njoSIF-#X>r7aBM@i;z;QUopU-~vb z)~|Cl$x`7;x3G$8&rs)vF=kra_RkqlL8ea(;jW#5}4MbTJyP zjXae~#a)C=+d;jehq;X49EIj>GJ?@+kF8=qkGk3JXJf$sZXTRnMqv9-&k_ytbEI!E zzZ6&eyZk;3#uD0fu)bm`6rEcaA!_Qo)=#jzI8c1a57k4%*he>}>D9Wo!$$0brihBA z#bn(Gu2~Y|aVM>Ry;9xQW!{{m8NYG(7$4BPOmSB&AX(;Ez=jm0pq<@1j5dK?Vj2*D z>eRa($M1Xrwe^zDX9m6;lbPBK6*opNy z{4iGF46}8U&bN2B?lhFc>P@}0yqwpvK1qoL7@wYtFnG*~5{VmedFU&?;Cn2w_9`dz zMR>VdIYmB~1ZlB`&f9c4fx}uJD1ES+?lVMd8C0Y?shP@V@4W%N`q%U@cV4Tk8k;GX z>QwBo5v|g*bv_kL1t*Wo=)0UmfeH^iT>ol8-ozKB|8z%^FCB2E!3(^nY0RC z-&36|v9PwVEfrDXdRv}>+1Lyl2f~3iOaAo$?dIH-VA;lCwh~HoN?wdrZk#H0m`UhV zzVaEiArBh)BIBaJGLrFk95}$gu*me{6|zM}qd&Lp3*r(5#A?tE7**4EHt`K3=M4Qh zw(e%VcHhc{p$Z@9X0yM2RU|Tf{biA?kv8?43V|A&wDc=nRUj@)KJU-H4S7Fxug2@* zlgudQ4*5m@!o||RDY9?B%P;c1dQg1GY>zKOmm{3+zWObNk!0Jbztg#rGX`38n!RC0 z#hpRBZb;g`K8xt^9xq#*c?ONsKDfF1V#VRlOfcTt;3$005vEvTb#2H{=~|vasSqwoN?XEO zJZH{-rdJJF@SY^%*u2=2s=U63Q479;NP9E}MO)i&(4NyHXY`qDX!6_u3f2c=V4PQ# z3(52I{4!&C0QCo5m9iN+h1JBw2VqnpCezVAb=kv(Z{K4`#m{0{nH?(6j$Xe4P2`u{ zJkIi_H+Eh33upIBT0IQ(!xCTb4p!(-qomovD=f%ojaxPw8@8P{zG-hZQ1fg zsRQUkM+*HlNHE1THQV)#J{vOmJT@*z+s|q2gfUeOlKc5UX85wmxNILY_eod;1Vv^Fk?T&KHL8>&q@;zI(VAXb!E5Eupf|0 zqphnGo^PQlslD8}f}=OmdRQ(}Ne_dEhsQw_S7_Bdug@uUAkL*}d6oWY5V*wUZ)Fx< z>7A+N35K!Dw^LM>p{_aK`abcb`%lp$;QrSeNStZ9!;Yr0mvt6QJpXp_)i zEM+ROQ<9&$!$q8q`0BcO2NoekOZWIy2l`@m1`zt`^Oy<3n$T3ys@mz@;AhIrqUMlo zln}-V0Jh1(XBjezKLR;JA+n)q_h(iRaa(LP$M)-{*}hJAy*@y|@HIN)zb-%EwY7d| za#EhVZsELR{Tv{igD9e^SQQQD5xPA#HPAXCMgB*qAckApyjjOVoDq`>OqdhbK3%pc zvEP1|3s-lbbFO&8{I^6EaK6!jUGMiweDU-B#pq%(qZh}h2uNPyW ze79`2S^Apfy)(5#_w>r=mgk`;DjC&k$hj_0#EV|lG=at%V;=%Ic;!t z7Vwf_kziE!dkZ84KlO6r(1~|F&`FJNaiU3wp}(7@i*YQDw+*66^w`S$>oPc)bSmwEbPGx=`MhC45 z5;!gfi`tkw4?b_+Bzgs*E1`&4uA17~oqtBia|o}o<8vfJ4tkso+%C&;tQtwd=FK}g zIEk=#dNx=)ewu>|?$?z#B5dJ}puTM!vYPqjRf|&PS&$%PzCh@WW&u^)AbfY_NZok_ z$hWveiVkQa{I7`?0x3p~UQe`KcGf}RLlNj%6uJ^tZyfdmsN=k4A#^&oS zE3&KwgwJ)swMg-~u1oZ2b;7>C&PU+1ElILT7PHH|w_d$!qr9h@_M1PFWa+0t$n_NB zf*|H)X+o?|)v>2#RsiR^YA>a6nMxk7J9V8aX2$yKkLF7DyjQgaZHHqysx8~zNwe%)NF;W>6v3S{kk6# zJfId&{^VR#I@LOw!PWr>dfr;}KAtiPUNq=(KEO3%DL^Xt9fssDq@u%1Wp+}cWAUVGAHSN+G&}Ni;P|b8p1dV^u0_ygq4eu_FY3@fj#nP zf|frL@>mT^XcGxakO`e5bb4Qxeo9{?Z%f!y(6cF7Y#fY1!TWFb6Zv?#31#?AlUc#EBm48(q4QXNs0NW zgj8q}=Vf1q$dDJk&V_xf&lidcNry*oK#LjsGT}dt@eCWDZw>-~dMNriK+%X{W`yY3 zy1%FdPPBESN!*|xS;7`?uv;kkLGiC;+d9{tkj;}lABy%O#VOHi@agqwuS%TF8WMQ> zeEaUjQkCOWNaCtajJ@2FP5D5HI0A)VQ9UDbsIuj8T`b_FkXd4rsx%cy_V+b$YV>n3 z(-obUxEvJg^Hs*>)wN-)y0X9rC%>bxha|tvYD1uP6tx4TZ=J53sUlcRD@)G<%hkxb zKT#u8&M($HTx<)}0}gQNKFh=3-A_>&otpFGVC}n^zcQ>Opn$Jf<0f3wWeCgd zm^7=})SmTY&hNk&$S`4oITN1xoi{9NI%|Gaf9|sPNZ2GqxzNn|dWaW#nz5aHooG{> zn)O!MoW8Bqw|NB38(?}QvYj0oKJAVevVAn@kD(#L2T)3TXekpaMX@f|r+aNdEQj9U zpW@iGt^eH8WA^kb`hUKOQfVJz%QvF_t*;?_3&YIR=|l#MJZnUwo;VjuZX1|iW59}O zqg!Z-OJtrka4d919T^l*C1NF^0YHWXl@^PviccA&HMw|Z3j7W$j4H%!L_?eNpxZ0gaj8Y5#usQBkO3OcNWfA;mKZr>=~; z16a%vdH|g@?>gzGTQDG;(uA>cKVlK5Ac0+I=- zAA)x&wUC;GUg~(1sM=ueC>qXw@5Ao+R)|;USov^d0edj(JSrSsK`1dX-m`4)ocWIs z07?b)4)DK#1&^6?BB>}YwCMLVR%|s_k@UigE-fc-tGIigXe9U1FoZ@b+!WKW^*hVLd{CQHJN zdEZ=%Ad!@gZLMXzYL{k8KHNbP9Rdczw^uw7d`o;A;;B-&)%0!5cl%x+24xAec)x|_ zG?N&K=<_YEGDlW;AI7u%5dDuy53UrR&duc5JCO@Voss>t&s89A^stC~zmVG43!Ty3 z;E5rWx=#D8u|zl2wdFI$_izH$m*N>*&GM^B_BW_KyZmU9DYd6;((K~Ru2IA!Y&~h- zs+p!u18jKL`HMd6XxbyON`EX0dYN-?iM*4#)x|_u)6i$N!(Z@x7%23y;C*gGho`$f+>#mJ|O!K^HKH*!lZ z0>!KWT{D>m@y?MYtud%HsxgXaoeM>_ zr&{(W#l}+$Z88zd*pLe&HEBuwcdFSRNx$rbL&5?>g zG*iZ>7*n+RcuwO>4w}Jq3k*SwK4N6mfT$X>8u>X=W>{-Bmvm}nP;@$6*@S7PH?H z8qL5a<>o<6I%wJC-}X>xl2jK!QdLIi2I0fc4jvS0qs;6;EBStdJh$<@^*ZEG2!E)|yY0^^2@|iTBJ&;nDk4{P>8w2gyW`+137 z9Lp;kF}Oyqa=mJksg=%%Ca)(6$nOu!N^brR4&k>B1a5Ka5pZMKUU~ohc7ljR{ekw= z4P|k>6MU^) zm8YE_w<53>^)2~l=s3fKw-mgH$)$r9DT`sK{mPvKC;Ej7UK}K9$HD&!u)d%JcS zIV1W|4Wmv72tg!RFdKs^^O^#7l8ZH{iu6Fz&Bg^u^gX68((8Rd3KB}=ymdV{0(w7- zD5hUt^DbJ%%|Sqhksnc9!n#o=bIH z#To5;LA3uJhb>~a|I61M@U**vHe(8$|1@w}43}L^Yb8~sugt4Aw9)q?=tqMIXqP#p zk>W{!_=iO+L%KgE;wSFOJNCMt7YsbVlyrT+3LW`vNQT9J%eXdfUKcWruwA@rnVLr} z2GUqCGPK0p;VAVf<1}4F@Pzsd}3#G;PiRkq`w45Kyp5JC3R+aK>ye^IW4ZEWtXaFGms*!HJA} z4aSn8L)n)d-?2&7Sp8niG*U!Y{v{y~BsC!CvhQWf#dool$VMgN(S6q8@YZFC7hPHU z%Ns)rK*bxL$C{Hbb`p*H_)9dED;;|f@zd)PSF8bmoxI6MbGYf|0F23pxAS_MUb4;w z^AZ(Wgn z84Wmf-|;MpAYS^fey{R(t10WAdJ+DiJyJgu-ilz*>ez(pZ*}=sjUv}*_TwWM}x}`jbxPM>CCCn0p$mrH()5ECA@D6g1gWCNLd3$sJYk zSvaj~pno*QC+(c4QiLBmj4o3@7+kKImL)cCxY$Q-Em3KJ{uq`pl5#&8+~9ml@8CfS zql;z5IB_CNsLqtq7ek?g7|L<03YBD5ycxzqaXJK0^#uB5%JEb|GFeW$%=4xPoO$UT6?Y>pV__ zBTcX|NEU;!w#fjM8U07}KB3=R%JAZTgsh7u+j4j4%c(h?REIYtWB^M(3m2ygVT7+B z#o?shah%-~=Bphra)Z-?O3qj_eTwI@E?%dc6^=@HgRE6ylg_#tA`hZxKjtq(-+0P7I&T-&AC=O$L} z1QsQc+PXS2q_Be^Xi;xfhAaEdv+sfO{VFxg+i!xSsv7o&#ltHsM*^Jit^{l}A1T<- zP))%=OC0*cZzeG*V*}eK01h8^7pB3+5=0b9S?sV}tm!5j!m$#ITWjYlD;LnA&5-6! zbquGn4+w2mQni?)X%!B`(4S(Gl2sGb0oYvnwFt8`q(D>5(XzBHE z(fa;w0p84EnTUJtH~LXEyVu)Uek5gUo%Mr7feIHbidxFL$MaK(b`QzctKxIi9lA^n zpY@cX3tx+_&aOm>rEGLURuX^ivCp0Reb0TaFVq{XEJae-=cA2vaQ)y3>cHM7+ecwf2n?;A}U!Ust-k((7k=~C2UlQ8Aj?fs1 zt~*cQSf3jVnK|4I;6zgHldqaEx51y(cQY0@nT_+}T%HbE=PT=NXc-Y6KYj|xG=7&p zgMHN03|0*5wc|RF2Fd{SfD$48>2i!}x#z=P5}~$@!x*FO49;x0u#y0phmzCjjMIrb zSCg&>K9t|qVn3zeguBbLeC^#ye+5$lw8W7r#+~@gO>4d-yRN$tkMRS1U_n* z*s*k)^h5Ov1lpc$3$>?yV|w3&^@D%(w^oD6hct!?!9Mh=tu%u+>d%yF zP#PgxBJE7j01zu7)dJ_>+&m4)_`nwLPZw{Hf01@%Q>h@;Yqw6L97y6R|5u%D`WC%m zkpB#I*@whH(^w$Q=T8Upi{w7ef*zlt%xw838VvB~$;o~qG%S>cd;yS)y~%3FYeW5i z7JvZ@RF73#6BtX2j7bg(o>ig4CVElhCM%~Zni2DlJ$*}UXr;Jbu zSo_WPfAdQ$xXWNZB)%)u_k@c+?TL<(L#Vsm9-|kS_eWw-|NDJLVAR8Bl%ZBM5`uIAQ<`1Pw`T z;&-9I>t@tmuV17$`UV-6iJ}XNToxLO3hrlgC^p`oT&%ly`k^i4LPh;d;_7Q`Tb7FW zczo@Cp$UJ+7ZY+#EU38|%uaw>i~Ay~jgDgg^|rGX1ouENtkB<6W1GuD^l_87S^-A8 zzn)cgdr}NU5NKP2y7VREGJ)<~weR8P6Zwp5+}Rx`l`E2GsraC=v>}(tf-{>07GsP^ zdB$PNh-)0+kI6GDth{ceu|+u&b{fJXTovQTq3t1O+f^weS%HVAqNya^)k&=q8#yo} zb%+6%F@2$d&(D1c?~kAtmG;L$l!rs3mk)1Ke7(U1?=MFw7Pj(r9^F13?&3Fa#{iw0 z_+PCVQWDZg4W6u0Z-O_80Wu{P-B|jFp`C|`^{k9g z_Yp3Lb3a_wdDuPT9Q}0Czjm{m8Tn80qQdTpK~YU&Xb zM<86sRE2ZEnfWnCH6Ye~ejgjdf2aVxf7CMh-isFCi%6(mq*M2TJb4uP-x|TbnPdwj z^b&c(*z`O_c!r&9zi?{RH4E?!5hM@rSJi>JSeM~36m@K%=&wm=B!$m4GL&xEAMl4d zyy(yQqJiFa=hyY~*Gx`(;62%sNhF0Rv>&2zLD!o$Kl9QU|L4!*fk$S61knwnhfB|J z`5o~C&|`eFKfQ!mSy``oF`;_Q3CT&s(gtQSj0W-&L?l7?QqI}X&za{II;5l~jrzOi zd4k1pb$h|HBj5WU+|!BK`a)(7KCps8b7=O2%SWR4;SDr_pvo#2-_s8pj}Ivr40IW3 zTAwo$zNy74&#AKDwLf3V0MwhACiIi($KU2-R&tGuyHe{!R2 zcpuaH-@N(lj6b^=6qSz#AZ|b0;FMK4gPZ5JbAfkcO%d^o-|GX;svm|RW}=s+zPIJ} zfM?#fXQOv7|9e5u$huQc8uXFc3>sR@2-X*4NX9boaxuf@eb%7Gfp|)}2P_%N_C8s^4Fo&`FZ}xM{k$L3GA_@+Z=`SQ1@HLX zkE1ye9z;+QkQn@%QB;0Am%99An=D%N!5E_#TFBRyxDodZPn*X&&y_&%1YfJ1xdwzT zUSggDUZTA7C!q@5Ltq`dZ?HP+Ml4p03UP}+UZ_R)oNpV)4%B8C4!^2^3&GEb#%#3` zb{xq@nsLQ@*vttD7poEE4_;rlfX0oUKfXkzIsG}V#s3LpX~V~-;4{Fd9}|PUu)^N( zf3)y_+Cdo9WC*t1j7Yt7)g~t`(&6Us^FxQX!FFxgMJXifR1O`5bL@3S**wI`$Wh2e z7fE$sCJzn(u%{z=@Oi{75L>ms{N?Hwz}%$2pQ#ro=R}8p9y_JxPWuw*5?p$@{a(Hf z4eADtJfdyPQXfH9%izK5HUB87xX>^gp2CJVYkuNT7n_Y|D+wv6DDAv}vC7O>cP z6Krg-h$c@()z4O9lB5Bu(1_IDw|QEru8n>IrwMdcC@cc29WjGwxYUa<;689&K|4pU zu~k#Aj*%U`ZNIq>xDi+wWr4N`bCLd11pbAu&sP#M*uonc-VW$%tVX#PYF!=y6*lpJ z2K25bAY0y7R+@78n@A zx8;qkX<+8&!%?N+wvcWK(@_YZf$@Uo6~t$jY#Pn1ntvzH2`A@%ZQ`W-)E<(S&W+pfziV@~Js3r=fcs9{tI2RTWy>C<51*+=_)N-NRs!}zv% zJ>p6^D(n+JK;z>*^oe#2tMI;l0Xy`V#jeYYYG^ZS0s5Bz|E4HeCjCy}f0czN2?2mV z^a8qrDjDtJBeu|7qH@3V!ovKyuXnr|@j`NL9x2##D=9U6I<+fwgx$V|B(XxFqa`rq zACA@un#BMdTj7ncm(_LEgb;(M#WmUd`w$wmVV)paA@VSz#?)HyqsCG&=beV84X`z5 z^t{)H#G+8KK%!jvCh_(+nTLz%^y%F~XgI;DplFi!NGkjb9 zUVYc3{*WxTK?I-^EMg&}efMIW_$6TuRJ2$pJ`Z9V(mi0#z7DLg;9c-CKT#jV$9(f4 z$Y`?q0QBLar%P!s5Lch5^#h44g^`o3k|V9i%iinO;4cCa1x`&=PR(B)X2V8M{#ZWd z#4-giG^cminAr{B$g$rz0*GHK<-`mi88EzXUYR$7x8FBvruz$?o49ybpU7U>&5zjs zq&Ri3!atHk$v|Rh_OE*?C^ja>jrLk537F%)>@gF;cJ~}#g3cYCkD#>j5NJ8!J$izg zn^oQvxn@Gg(65l*jBDPVPZ6z@;^JCYZpik%W=UJ1mpfas+VF$&2RdS_Ub>;Jw(h3N$sdQqhGD#VqI5sLIrON2e z2H7OCT|0N71}!9CQJ?JfvIP52U?b*0HyHWp}Q7M$ocvX!~0{?p;cw8mO z0LYNO$|I)@4Tqkm$XPn=W7oOmUG38YnNac&R}a87dR<$-U<>$qmTnA z%xeokEc*U9cR6sj{_l7?hd7-JX_jFh>FMdcZx^*L|2-8iL-JYsuF~qa3j!afybsc} zF1Gx@JM^M&9B*%sTZ|s~@c(E!%c!=ZrSB)WySuv-cc-|!JH_2SKq;j_ad$5icXv;5 zTAZN8iaP{&x%WQrhpeoX4=3xKz0aPR|NLe~2D-E1XWfycyQK5un4|{q*ahlgaB#TG zq4tBoPBl5`NfoK32S?}|@szRearOv2@1@Q#6_lTxxB?C=@W+=V4a=L-geJ1xKKKC6 z(D?&YA$Azw6+p&30iE8-T$a&0C*>ckj!Orr`Y6k1kY+_sI!7~l zZ|I@d@7~#e*Q#a7Z0M)?1B_Y7t*(KS$Mc;_Fmz77-S3>@Y@;W(%kO*#3KbpAbXy}h z^*u>r1^6B|7;rQgumJ#ec6Ne7LIX!f%+s#x{qJ9{Jr6Wy0sHtw*6#0@Sr2^+f$k9Y z^&7u8?a<-fJ03IxkV(E44j2-?+ zd|iw`=-#5BhA&bX7d{uFawNdOMJ5CHH(YhSovy}=BlE|u%@A~pQJk_1@>~r5!Ttqs z&<$S?V-czHB>>Ps?u<^m*PqFF_boz;X3r|C<#)bp=MAu+aS^xZt7O@}aXR~HWSm~3 zv#{EqK*Nuqtt2mBOuW8%xS5yY5qAtjlYir^-bj&%9KTXp{8BC%Rqil;Yz@u}D^C)D zJ%(&e#RJtEGt-|G(uMGD4syiCB$ei8@83J^w_Uz7lDj!!mxL=V3k%xaSI0lweNG6} z)YUx#eZMp{@%-l(L2+?}EmJ1~uq~RzVXjQqMzKpz&U@7jWeAjOGw_6cy~_`?AovQ| zweKy|qf8Rg#hg4Nhx{wu9;%X7cP~X-&D4izB=?pl`+^q__sg0xbIH{P)ERaW;wW3} zO`CMC8iO-SQIWPfc#e_~Eu4@lbv<>xkEk@kpEfypH6JhExel<64X&b{0e5?wNjgu{ z1OH0FyPqAsTFf<`zsZsZbCE_Wh{Na7x2-m;Y0~gTb#%@QokEsV}G*VSx+=XOArK{X+G&EcF+- zNnl1;8Vx`^8Oi15Rz2@P6{f_vG0b>FnV{j1lpl(E=m!3sepa3zh$3Zt<=xfNeH}fg z^pOSGuaW@@Oz565qLXUOl*4?|+2drB1tggsftz2r(g2On)TUZzL@G%neD0XL4-KdW zyC&-oV_521tKOOX;TioUuJd@H92#`VyQfUTW4NuF`}?!)3dF_755ZUWElqH03q8Vd zZrJrz=WySGyd6u?lirb(H#G0d{J$Nl_5I-IqBO3&^mh9P(X;4Eli)B` zF0*)gCQ_JEV>LFJ-A39(Hi;ojT2FVK9Me;t<}Md*b-3wN*x*wu*atE0gUEP}Z#b#o zJ1)$2WPQ3xfpa+_{5s9&&&HVG-~EsR%%Iq|))(6NSc#O1|9ZjNay35w733GJU=(zC z34g}$w%FGkx=$<)Q+5J5*hok}6ks%Aq*LMVeAFZTkV^ygvBN-wxdWN3kA#pnKKOQVh1xTwF~4Wpqn2(?}xPU?|igpP8giKM#mhFc-G%DlpSq*DSu zu{60E)8f2FCPWoDNl(zQACI zs80Zjf{+nTvHQ(rN_A`YMdko`Nj6XWrQGWE;e+=0)H1?nu|Md7lM8ep^}eCZ@qJn1 zQ<<5Bfsw67+?eav8#+~)z>hJzJGgeGi>?1aY?nck-_*Bs%_FEKzC*RwcCY%~8+gQs zrl`Wov+}tc0pf>jXBZfqx|aPu6U93)TiG;1{Skm&q;!+GuKcY`eF6kJ&?Iiz=XH8k z(KoU!flil+t#+k!(gS~(t008E;XzjhJymII4K;UQ4ek|sOO`HIIzFkEOtJ5Fl23f~ zG#vv(Wq+%?Qd(MgUd*u9)W!^^ah_hzj2RfD>Y1GW6Yq&mcY{MsV5hTpbQoYJ2bS!f z;W*n?IAf1thG>(^X+;KYq@Uo7yp0|OCX5z&=W!c-M|52PIvg3Teiqi^z)rP$NE47j z(oDlK%y@0Dof9bvwL51@yFSyZFvXU!~^`28JP@tmYBR_Dr_G0Zm{#X=T#N9`>IHw}Usn8fwCYA~Zlp7|tQ zcu#5vTrKZ-zHkiRl?QXHMBP7yx4$a<@E<}7v{gvm0GpVl$}_9I-6h_@dW;5sd5KFz zsYCtJ5Gn_Kb47Q|xV0Yx)L1lB)a1Ft)aFikbyTRseC#FN=Fs5y{1oX;EmGyA@Y3gB zKSENk#_zdcmy5aR9yOoH3kaikyl4XULqsY}j8IJs z2sh04^3f0;JiEvB$eGK$-X0%6P728=x}EdD5^W-RGGUp15B{qe}#bVa(@qLPsNiZHTN_RyZ&I}#o7a}%+1egD3u1VdDk zBHrr3D3wBTYJrC9Oe84WbnDe)K9#7^+=n7W-JzJPOR|j34cNR5>NHx{uC#EX*NF6+ z<|$h|7PjqWo;7!b?Q@~8H)G*UTYq4S2l3eM%Qq(2j6as~{~b)tE%HPS%vZm|zwfJ7 zj|?hAyXXkxtRDI(Xqoe}b=^yPecc%U92xKzJ8-c{s3Dr_O1Jkxmbv#e%ID$8xBszw z`>x^t%uty~FjZp};gMU94Kh!J)IwTNJKO!_3M~9V+zL{XAsbUcft zfvA1Lu`UV|milxoRsB4}O(!Tjvs?-HZ&v4HG&K{@O!M&*6b!7NshrmfOe58RpZ zy$$4A;Fc}Ddil}~X1$5K3g~6{hYKx14h6ox!X|yjqcTLa+;c-ST|-U$o~$-G+Q#8S z)~bbaG5PvkypLcT$C*d+<#9=HF>FV*xm4N}y%lROoy&*-%{d3F_<(%CP6!U*LQQ1L zS3o7-mV067|4fb2AEE9Z@(WHqzTV~^n(%LT{)b<$ll%Y_^)GR?j25p`*zR#D+sxX$ zWUN=$=5fBed&8Ohca3G=tUKgw`vWA-f+8UgZTxg>gPT<|o`xAFevR}VN%CimOoleJq3Zn09QRB}EVEaj6ANc9VV#X7(_-Bd=ZucK5U6U$e67TWNUv0RG zZQ?`r9R!uEvB3(`14@n#!{iCeYJ>D+vClV6P6}rmb3Snb{m1<2n|3%^0g)Bc#HLM& ztT*c_C0FU2P0XQM{KyyKdkpjfGslP6(J!?{UlZpl+?eEzD7w$l7>QeA3P~q1R+mp($2^KhK$YU7vp`^TNmjJfi}c ziuu5gG2ia7Y^X@bR}V}R27T~ZIGeCykSDJkVMots=j|YFUs-vL?qb0qX5nxK2FQhl z_!DVJ=!JMtqVP}b1*ycmy#n){0Z8qB7fHIEARCs3PR;CSm-;JQP*hPpvdMVNP=9Ym z+Heo^fmNvXl}cLDEd`8h1*oJ{rut8pe}=#Pd=Z}C5L0Lz}pykoaVVS@M91&JYk|<&{xQlxA8={ zsrQ3u(z}mI>Fw)gu%1Q1@jshxbxeNo{&dYv`5uZdrtU*ey1BT`vHnDgged{W(>?T% z{F9UZ(EExtC{X=j*(CW~!TVMt?b&jaE3+2#llu9ezNNHpD%+E2cpShC`7}n+046jq zk5LWz&RU2rECdsa$(Rd(XTLX*iqE7;t!~kc7$HFBglg%Fl$j_P4kMmNupPvqT$yK` z$n|y+az-fdkyE2NE8W2U`^F^7Bm|d)2j6}k*F{;T| z?cn$=;%CVT>X)ai#$I|Gjsz3R8Q9gY+vi1&DKw!8kKSu6O!4@@`{plLlT0dEz6=Ru5A{{qM|CD^OPYkdQ}yPDvD?lI))%6+1U-jy^Ap4 z@6X7Vb8H$($e;plWkSwt(kTHQouxFlprSB^)R|Rk3%Lc}A1t&Cvrso)A!TJsP2Y$r zeWFo7^gb26vaYUuHbb-SUEZqz0xZJk5v!QaDvLok)4>7QXJub7_K$e9r~@Ao=gCkw zm=Dbuq$i+GxfUV`9(sW1d|SyYYR3>^9CV=a(qT4ThPL3N3BCDzl- zFG3buz=h28^ZjWxD4eIca?bPghaO(7IQ!>Hatn^%NrxQVM?t#wJ&|c`7zavFtaJC6 zuXS~!J~n;bmD-$nY#*V+-}yB6*)JYq*IPFjP5$T)pXAqIVDoxE0m&QeQePH~73mr2 z87Rix|H%?Rv)WSW-B%)wdu*SLFsc(k8G9wlKcU*|*=@|0jkI%%0@Id~_F4GiY3vk) z*##_jZS2^uYBu1ota1z+g(2pCmrR#xpAF0YC%D(BCs-bzpfl-eTl)lhpLPJ0jNSbv9jHBz6WNcKQkCWS3Tl;r@lcw4Z&SDw**haL&S`d7A%*n7$xa zM={NuqDE6dQE`^wMbmh%fJ;zVOe_84jxlbI_i6KP1yA^UJ$0mHC;yDJ|#@O zMBC=M8Ab50O%=+?LP`Xm$NdX}G+pUF%#bIsN!WXA6AEpV_`^8%1Lb^`x)8F+r&lo+ zl`jl;2s7mv^T{V9DmWxCu4=A2jw>^2B`uhmG>Te(hQ+aKDJ`rQS zU2#)W(~68^c@~OI6@qD7RMS!{eE%8QQc2!6emMlsASU@jqXkfh-hL$mmxl9Le$aa|{Pu+ir~WzbP0+ zo^uj;;9=N26ATqJ?C%+@nY~fIg!MbxOT>?fZ=9wx?0?ikCcRIfqxL2Lp9KJw8(P(i z{rfO{mFz!gN-X`6*Ht2F`OPrMRL^V)T%fB9J6d>dWIrEGo)(-Z6uveuLMdQ8c69Li zYd%hDfo;x(Q{E@RhME40V!=iRixT**%m2cz$-weZ1kLyB>Bjbe77o>V^v^!Gck!6k zg6Zb@jHCxNYVsylrxI1=I@^-dkGo>0M|l}Uwz&`bP7c^~mq_;z-~-=ES(8B);5B_U zNMig>vA&&_%$`qM5j|;ARF-}Rh{GOj$z-x}yk?Q+LUN5fU1+b)v$=jB<|`MX#yxYw zm}4)RAFzkpb{so=o#lcd%3BorpOmv635f#BMr1ju0r%2EdII|G-2(-?{k z(w=RWCF)Q4{UXM<#1D+{Up0ozoyIFThnlWRRHNVSo8lAN^#rK654+fFWiYubNUSvk zl$VRv3Lb@uR~X+TUIu$dnXMx4je+ru7GjGd@(Z=KU4bWrI{sAw$TRo#7dFOMK^+Fn zVLg>^WRu)a<-+2hz>)NKDXnUO(FasXj8Onln7`;08a`P zPSxJxt&e4BCOiPEvd@j3Sz%iIdwWxTA=$dmK&JGxM;0yzW%ns6{YhFUTBW>xxpSQi zSo~sIAgCX&K?%WV9qE8f*xyO)9DZEbxJ3l^`Rw9A_ukYwPT>R=%hr87DJ^$rzyWQR z9_iP^IXxk8_RIv=mYh45t+vo6^~ps^aZVAVazp#K2c-|jp>rT+NAU^hS!X?7*p|&& zi-RLCk{Y9rm=1MUzS0f3gC?7KJ?e)9&aW#u|ANuzb$WoY<8!SpkDd||fZ0+x$D!gW zZ4j)=BGINdqkV9DheGI8$@qU`paf|4n%?)fn5VdUm}`DQ$3GwZ))L&K`d9%Zjs(HA)GVt(Nnf0>&B1%<~}yD{)?8(zyKl z(5@YxRFDG2Xc{=4nAV#Ufee!-|O7dvTotPc?mOpzRG{^E2_v-+xVT`CP6U-5jR+JI^R#RE7d*hfmZIf7)4O7ob(c z8iaWmt4V0SUM(KP!iY*v@?{gfsDT;WyU0ST6&me9$9ETX$d8NvN|^;90vwpS(|t{Q zEKJv=cfYrYx2qE^Muipnz6nbO5=+QNUw#>n-oBBXi+qW?)RgSjjV+E+f$>X}P^U_W z&eMoi_ri8}j4g$=GN&)(koM%>Vmdkal}G#MI4{xr^G!RjJ!BHGssh- z@BWaXsZVD>en~#TJ)+G*g~Ap+$Q|O2VSMmh8BO`K>f5t_b-U#Ckii5~RQ29#{4>y- zB4gE+%e6#8RqQfDv*5w(6Km%9hJQQy%28{Mt9Pf%k!jA++<(Jvhlp{pj*z20w5?IS zX!W4jg0I@{PD&M942jtVosJ-)P*pW?55r6>%<(JSy0)wdZX^`I^FfBRqmmyL74U_u zw6xMJ;u7rwF(+3CKy>k8>zw?ZmC`XG_`HS6!YD&%dyfKYR8XoMXGOw)FxgD4fEi}) zdHg%5!~}qgK>tRVlJfW&Z32k0{hf;v>-YLA%_RJzX%oEy6{W*9)&oJ$o157z zAY?*U5yo+10n7GWl3y+g_`%EzPbNA3^`rvDzx|9jH#$P)C=@Qazbut1MHrO4F=Y#~r70G-3sQt#tG+{vwZf>1gBaQ?WL7{jA?)bDWBi!sPECA)x1+lat^iCh zUn&kxdJ#L5(KMP?Poamubb3x2miUj@x{2TD(i#M%(1GkRmxk$QGkGTtXC1T~^5hUR zr6ow6^re}}!oPCh>9jZEjXM$BmNYcvI}N?*(2stZD>2zct1x7z{aRm@xgtps@+}5| zX_!&}5B^9qi14>b>cHmnNyZb7+onw(tL@#cHid8PaR}-Df3b_@uBgMNeJIc`_TQ=V zN^r;-vBq=c`Dl9RV(nb>|BY2W>5Ul-*K>}L0&JC}(UAnX4pHi%2!-PUu{W`7sM_j6nP zS2ntQ1!CA85Kq7(9U%zeNsW&C;_q)jz75^@tpYvdbGGWIpmkr-oMvqO2o8shJw=Vq zyLz@pa!t0qIln+K0XN~A4czz-NiK@!bw(f5-AErT^oq*88#-W+DZLd!}VZsjo!BTJH zl3?AtNH1JPw(R%WZ8$Qkg%1QEo;J9?ec{R#lamt>HMiY1lxX0Fd_jjFF>FshH22o` z=`NGSL^_`}o$v72Bf}1sY&Z1A$8giNuTn1vj3;-MKEt-6e40>ffSDzV#ri`1C(UMB z3btVS*xQsNis$z9)6ZZOW0vbNep%aZR-`?~saM;aH(6(W(TZ7+XPFEE#`;O0i}n&=?;CjpmO|F&-{P^Gl%s8XN(XP&BQ}yxy_n6% zK@(T*dBWyL9f_{O$yfM^iTX9t`yaIm6h9`PsD|Eu4Z)UisS3g8?q*n$QTP)SaK7n; z2z6d~=HdAixbr`IhEVC(pF_yryR741#J|E|g6PIfN~DOeBemYyEQO|>cOz{PP zf*6mEc4aE8ELm$Z+ykfZlYthMw=LmHQP`^zOVT_APF&mK%2Kt>LwA=t;>C1{@91T{m6g&7PzLJ(Qa^%3|$fU^rd0g+VriTibgeFI98QehqKD=n22ftr|kr2cLBZMhSVHP=|5f}FI~AqFpxWQxTwzyN z3G?{n*RptzmVuOB02~$ znp?=G0PdxGP(usOfM2ViK^*>~J?%=8W~E%^`$bPTG3Ur!M#ZX}ILH26PA>Danq~k? z5_ZlDokJnhTF6%%ck+4hUziJN@(XxQ8-GJ=$514-rZLjq5{3QJgy>#`Z+=wYJuj=V zq;E%T%HtNulSBp?a)>oCs|A%4DYE+9!F>HqFd^7IthUH(iU71hlmR|=)hhOBbNB2; zQZDEMkuN%aQO|id3O9XMEs)z!dO5w1WMb`Qa%Ji`E#+<9spwG-zWDtzurn2lasOon z_syaBe>PPKqaSetMCk?v8giF17+>!r7$aL{m9AmX*sBS3^GN_aEMGi6V@0qR4Diin z2=RXXJ|ZnW_oNcgYbt4;?)5J99LIx?s8vs3w74esP?s>!X$DR?RU=nySZvtCD{$Pi zcl>@kEtN$dP4evY?5_46W58EpqS8vxREwEHXsg``Pd1iD^?f8x8Z2|w0X8FQPsdL1 zAfb~drO5!~tuaqT02C(;FEV7(-4PaCXv2IlDW10;n;5E`)jUXTTDYt#|2?e%A{(&c z=G=2&fpG4O2(?*wu5afN^=NicO-oN zdyZyP^*kPtpi$HxTJE2tV}ymx?YuJ&i4ed@Bv&-WF9sB)BvufwJ6M6zQzo<7`9y($ zRv-yh@_O?tO)0}$WiVEX7uFYn^t7w99Y#ho1lH(81k}>^;h`Z{RBRod^_cai$#h+< zy8&xUB*IKf;v^XYL96LX;szUCo4Ue#>X5ORzMp?W694H3{E-WJbbofy7l~bpsVy5n z4SpLqSEw!yHf@i4uM-(9o7JZU)%B``Unc*WF!<2xWJpJ)yHtDm@yc>(#5DB5gH5k- zlDTBDFMv0XcRE3>wX8t|3(&CgrwhcJnBx+(e)i>MW)Ne4hbqvb=1vMM5yabd^6Q}}JW!gR3{IRsiYNSlCdP3Fu`L%l!o}JoMG_#1 zga_STk{slqe=s<&9TI=w`22v{x4&)3@NlCaOP{@u;&;9o^XR{ugIaNNhpV zk@2vLBIk58mgCA@d$~sbSs7PXu;-TMEcA)%Um^oK;c+%6qjq~fHfLKB6c!oE!+almwJf6YSBU7w+uIZ6fQ@5jrVh>= z+9lWixC3r~J{lu>YCSAxIQebi-C$zr(LDMhQV_l~QPYeY{V{41$SB}id@kZVeO}?T zopVEqcr%$HV~aNJx;Z?u5#;VmM9h>6>!^g?X!8Q7H=(p{Fx%d&D6j$fXY5c1?LXY0 zg)9|qIA8gyE;6Q7R#mzCUVjX}JCX;r9BmK)^3>=5{0swFb{G}aIyq0zY@2ciK<~0x zb-&=lMwoAi3H5}Bc1g8ul&3fi1&xnVstHIZaRaie1~2DOUiQlnpT1m#3T&NHxa;zu zGexS%GupiuK|K43$2_xOP*3~%p1?a#bI!Hqu=Y8rHVq%4wp~n|nwu1DHL3s40~^qxUVL|DG>ig_e#Y9iQy_-yR2NvR zPQm}19a?Svm}Z+gE2ItB!q4h;+Fl17eEBug$4eQ9hX&a2jqG)?JWVwH9e~*Ge}TFr z)?d`q{h2h7ib+or<6^(uU-KH zApt9Oj*S1h2-cK2gW!JCmx@tKwrxDbU*9>tAoy#v^@v8FcICZH12iRYLzW^qfEg2N zDO<6!hW+6tLImaspHPg!<#T+GBaS*hS6Vtv75oxJKGlUa&z z#UNdB#zYxAJu9Db$_7SCh}O&eA^Of@rPl zd8sujy@;sN(uZ~Lfw0EW(y8Ryk>iEuYe~6if!@aDe|0xVpAiCRBC8Aw-2~vx67r8f z5d$H+;xZLgq=5cezl1g`fDOw#f8V<%z8N@V*YhqT8ws`r#fiXaoHp*HJitPEelMZ| z9OB;nQ?H>|hY73c+Xj5$kU+`K27&{AOhKy3Dn}yifhs?js-7~4+TzsJA(Z|t2&<@y z&^<(Crwfc}eg}Kae}O&M4l=n+?0x9g2ZJ=0_{I$rTdW1h>6WIHUTR|oCtCX_u~@J| z-B-5j&Ri~6!h0Wdbt!f!5R6O}u-$2cMxHJ7SxgcT^9+4&=~BZfV4CY^5-SxYlhUiY%}XY5;1eqLmj zfX;90;02Th{;XE%9L=%W_aB->2wMV)j||(PPOtOQQi``nKXNi|EkFSZ@tqD z_69jy@4MArH{$*B*$2T2mm?n3`(9?RE|Z%60paG=FI#f2R8B!V6pmY=J4Bo>29<(4 zUeS2>A(3Mok_mXyfo6kC!0sWuYSsbED4gM6*7x*bp6E%!BgtzqmSCScqM^F|Q$BnC zI&{DWXbP*MI;v{;qbb)CCE_XUeaiU&T_1OQf}K8@K^;^TcS-4}%p;P=uELBp%Wt9? za|;aVqH+AFpCR2L*gESi3dNRqly^|sZqSA4m}hQnbYm?QlDy&o20w}zUL%Wv-V-(c zeWVOCHSCqO-@1uah`8l)h1!fqs9xvPa3{i@Bnm3J+#B zRksiB(P1=a1zI{Fld^X$SQ3Pw|KT%OMwBfF^-i%RKJ{nP#d63?xuSO~b1N8DfHDg% zLQ0dkXC<(@O|e1Z%=L9K173>2#Bcp{rX|?gw+fPPyjYce9$y?{?{o*mC^HF{Dat=+ zy?!Sh$b!%!JIkLNw>MNrmCYn0%CYGxK@6bu59Oyz{5yQi9itlK#uEV`$_5 zg4}6)_x}XBo9E7-Vk*att#;_XHLj_VK%+iV2+ba-pK8%uD~Hl=W)s@>MYbsJk^cU; z}% zsul$Ip)_Vl+l~eroW-179Hpi$S(lR)?4ReBg&oC)u!<9Joy=x&yP>tAIUH*01;da? z3$FaxKA$lT{$oD$<*i*{eY~o`U`jpxe;b)P1P4mbSu-?&CP57awa4uiAUnn@4s`a1!+%93GK8@~w0Pi#On0jaCS z;cCY-I-$q1DyQjMFtUF&cpSsuB6pUe2dv9a=4$O~Q~j!-yysWCt^DW7F%FaR;vtl7 z>%XnBSsS`G^{Fstf=mg?4gDq}>cIcB0V~n@I@#hubiHFVm{!7(zBr;@E1;v$xuumT z?a2XxV6&PUq#xTgk08H=fVR91?|l61|8VI? z>LBedgEELYx7J3>MV;`h7XyTi1wOnbd}l zic)niia}WO5^weZ*}smG52zKf;Y3>XPfFzQlqs9Qp(z3yFo zm1gqrt-H}LeKaRcai5;@5(SGx*jkhE#3ri_^+GWuPzc9;iPR-)N2F#{7Vb5RQat|U zVr7GQv?HUi=R@dHDx$7}kCyks_HT%AaOf=h!|TV`Dct7q8E?M--C#v?%PZY_LMISE z0-w^s{a|1-+Hws@Btuag+{nF?o%_U1PZc@($T$p_qWTHm@T=VwOdSqY1|4G{j9f5x zp*p;fZrLwuM=ywM1C4pQZs&>$$8GG47A4RzD%`u^)XQe_M40Yib2e9hi*F%RxLE?T zhqJ5pc}6rNrAv`DM$=M3>6Enz>YD{xY?VhcdGGz(yy-Lw;bY_UiJ^ z4D|-xL|S;Vtw!=D)Ls??o#|%SNQ*&^TSWT2{93mmuaVLZHpFmDyp9wdjh7SIdz6(t zTINhA7crssfcwIMk(CvT>TDnm3#T(A$bFL|Sq>6W6t^Y;H#A=smxg0e^_Z-5(%b0UoLtzs; zJo!wZ^|};xiNMDUM%?cMm`U;!1hkC#^KvFVxw+2`;FwU74^I7D2v5iN;gS+yN{)-* zj8&zqL0a34eR?bfs>14eGMJl|pSsB2BmCHv{O0KYlvgl1Lidq^n80t{3nljVx{s=- zmO?s0nZIzkJr0+(jQ5`tdt{1V=Yzx%AfZw5MB`^cZy#SSUoagIVS|&*U>+LH$E=6^ z*{1kct6qs7x3x*ye5zx*`|wh%pN8#&(r8~&59NmfxNmd0!Zg6waItA}(61+}HFaa43tr(dmnAXkpEi_tb}6)lSUt&(@ThmP zH|1`LlT}dvb_Ie+ciZw4^cjaJ@XwKEn;qeK7#h=MqC zzo4SuFhAaotxn?lPnesVai;x2Y_kdez4wFBX^QcZQ)L~#-}qZLt)g4^Z={Un3!93`&?%-r}IB(j}BEknI%S~ z4g0P$l@$XNG(ARNlJjhGCRFD#Wh6y;8!(`oEu|~4H8z-rEMR!Zil^CzP$P`a1?PfsC72R!9B@stO$0Hz|v^LeONia zhzu78>+9drA?@59ogj-Q)=Au9#y^R4Y{WemS5-w?rz@KQEYLKvSirpScglQ3))p%3 z6#llehFO=_flQZOt*9pFFl(}}`RB=AOXlQHFNypaHUfW-cj1^ zf~dQ{CmIA&qG78L?JAw;+~_X>mOvV$kxJdEt7(iu=87HX*c!jnh_s;@z_Q&flsU)o zew`z+K9>HvxCs;Ic2QD!Iz?1*ZQH5`S7nJ{=8}IR0nw~7B|+joVOGRSlhIrVe44F7 z0-bI+mQvy-e@|We%^_}=m0!!Rd8eHam*P))oMwdotMf7(jw-il@ZGjd^8ch)GwTj` z_uHq{>V?HS^$ckSSHPTui@U(nGmFcOYXVANnX5k8Rf~^+Axz6S3$(kAOA^ckE&TRo%p&66A^RNZw$w#mMcx8k+@ha*XDkGGRL`hq8U9@*~U z-UC%sp=<@`hV*aVXC8#)QwIWcH8*m8wNx9Uf;@`=PrS#;?tqm`F}mV8qKdR}(;4+9 zqn*7d(h|SoRDr7*8;KFC9*T+XB^1m$o&5FAqcpVd$46v=zEB7)*s5cAZe^tfAPyAl z^!PRsnAW0bbg{2AVqcI_>Hai`PGrph?1ekh@|EfLY#Dyqv$q+^ur9^$ilfQ_x_dXv zZTMTm)onHAsEhvoWAy%Z4+Whj`czc1=Jr5$TEg#+ACTmuJa#mM11=e|e_t8d{wyDj zXZ?;l1FH+(zX}VRmwuP<78EvGF4u% z!+z<_`Smj>HKQ3BbczUZ8!*q`p9Xz{sZVxxoAV>jZE2V`9d=a*SmepHIfSf;!TWR} zgPJfxmMrT-0F)e)6$2e!yP+p->|bhU{6F2QLhou(F+$c#&eu}yVE(;#JUPAVW9`CA zC~7+FBA8z3dE^svnseoMU-D+IkNgPnT?$=VJtb(B=yv`?fq3I0@zQ+){r06+2I33y z-_(A*dP%s5E!c3AAuBq>G|fpup2}eWiLGaF1lHq z-dgRC`MJDz;^EL}n;2_n)%0Jg?)mg+ms)FAp6gIP1H6@yXn5!<$i0R=@|jqzj5-*y zUj_o7a#o!Yyx=I+}tqI1GzfB&ooqSmVf(IBtvd22KMN+`@=xz(yS4 zXcX-Ma-oKPHItJFD>^dzmTs`NPP}0+5Csrx$vQZkmD0nA?{pOIWJ6|+qd`!k>5|09St%f2t?w5{{{U3XjP&#$Cr!1u_ozcKB#kw0yzw~u zA=lJQK1-Ja885Z!O}1uoX(fpXUq38UYa5i((CRCg`o@nDBR1NC3Ro46{^3?q3E5ea zEq&y=kXGH4c#90}CnaP*BaD-s?#S~3i+lbV6a&4DFB17_Y)lvRm3v;YE&QwHSx`y2 z*;BjoA~OC*7_N+HhTV082fdb|2zYWC;h?;T@r0QQzF{sf zSooZw4xK;GU+~AxqH~zbNTD0PcgCTc;E_5u=yiv^p*uD)l$+Mb_RlKC^z0P0#MjlA zb1CpQXbfe$_!YX~`os8Y235iJk`CMlK|Hr49`XPi7>83QpN(6geRBXTA_7G6Qy#oz*QbgnT$9~)6bZb67(NVHQj+uhA!K@X}m5d>97qwKox`&$G z4$+fmi}yH8q&KED#~L%SicvDt58e02j*tr9sbx-@9l@-B6u;!&LfC(J?mw^mkg@Zl=lA zMR1aFM>xza&|?b-(mprw?j!z;8e0@`f^kW$=_$;nohuS!k$as^oAINhoK70bQegSv z4%pker49@hI+Kn3BI3MXCtHoAIBULI3ieb2xouf*!Ah!57i8i1zb?E>H5_a5fmQ4Y z9_ruXc-+<9qh1wfo&TdZRwUNKiq^{Xz`pa3m#%BppzESVv?$w6Zv~VO-v?7{R2f;z zwFwvKm>I=8&9DZwjq8->GBh=F?8QNCzgUo@jJ z@ZZQu&{NzU#LXp&V=1kA7ZEHDRL~}8yIzjqy#82bRr-SvehQ3AoC_i2ffo~Jg@*MiDS-X z3CUSwPF}co6eK;a-)RD15HJiF+{{naW@7GS>At_1F6k}WUWF*t7WsxG-w-a3*`t1Fl)g{+$*jZyb9}p^Ml;*G<99_j4HUJ| z!x!C^d>Vgv^N`U}<{LDRs5J>g`Do@y=YVC)8Kf82*~6phzWkL{m$v;S4J0+?d$Bz7 zy|1I{yKw7qpVIDFdw>&!W98@lUkp%sE+%)^KrP_fhSC6w`)~}zn~|VG4yi~$hW}g< z=Voa|rDkDx{2&IU3Q=7>M7*zVq<{{JP}7)*O9_c8qfg7#CBL%2_*+TvyzH{g}Z|5f(v>d-Va*Ur0$~MTCAUVEh=L^!xkM&Bm)4MrE`BRRn$^ z++wC?o8g)d7Y~iz=MK@5A$HN+aK@eNl?UsU%TZRgLB`l~x1;LRqN-ofv|tSdo>`|< z(yGh%TSYkFkm0FPYM3MWQW@bdd|ku|jSds!Z{3&Q5Q|@9bsJH^kByF}s@VwDfzdS| z7O#__?~_Y)^GEkOuXx?i%AJ1@mt|$TPPuCr4kQ)LzxJ3Xe15Jr&l$7tgHZIU9v36j zf(6J4>=g%9;|R&V`@n)IKLs4f(S3y>OU0$bNrN5gBoK>h4s`FX zjFWG+h2T26diXdbnA(^9So!__-3*q2Is3Io{;hSlj*38k_hx?I`jc8mK2nNqpEm~T zFF7{LLl|*bW$U>~>QJ;4k($51|GG0V#Zapk@%60a6XTJL5lWE{1bTd#f(RcSDoR~8 z-LMrp(EMQqsY0PNvKF_0`%10jorI+9{nhAMWsSvO{xSErQhEYX`>dtpTTmEEyz_ha z*|h7{{n=>Ynuo4>mhLNHxHD5Ho94bdvzl(LKd|muvo6cyp}~jEF4Jux{Jy8g$Cc6c zkKCTZ+sB1unq`c*Ol&>@h2v@4Sra6l3^Ur)x;J^<-%00vWs#CC z#^B@H;DJL7#rq0EF7gV>8b&>#mE%HssG>Vc?6Ewz&(*?dS7?g7!(Ne8xeQX&WSGO8 zs}WJ&c3;wiE}JG)a`eKg_80hVmpADKF-BMAuXFn}c}e2GZl{T0>M#gFfL2Y-HpxmW zY3WLTlg}sE&56Ez>ebJVh^-Ep{u`xr_Qu2*`DP6-IT<`jjh#(v5?5dUBS9T@yw^Xw zU$KgTvcy!^Imo1ggRcKKFDf+j1rS7TP2A?^cnYQ#l?Q2KJ0RDMEgZc-PHE;ob(t(W0o1 zgWXRwbB*d{x#LK*f=s2A!gEGT06U&KGY9+jA9J9F;VC^{>fR9VG03M{2-~7f%D~qZ zgsTOQ9=c@MGP|-kF@J><{uH00PsGDhtcKXxU%QEMd+eiP@+X^NG z?1u~K2fUUwTL}1MV?030=&Gf1f4w4BS`t8f%O`n{^I3;OJ;l&3&>bC3TAL?z!89N? z{iefo;L6zc_bX-~81TLt3OjkNiEMdpM}9l>9N?o&XX-QCR5do1qT|967wy>YoUS3S z2atvE>-Z)J2iDRni~12df&`%t@sLnqR7{knL_vsfb&#(vKqO#jP3SxS@G&wgDG2>C z_32+YVTLyYu}#cDxQKbxPA!|I0$Ym${n)Saa?>g*-scJ@wVjeM(D@tYt(ZL{K!Akd z&R2rfaM2Xa9%{=bqp-0}6&e7$$+uFcs>9^%EEWTwg>hDY&!S_H2c$N@COZdDeSQ=} zp^)tef`hrfVj59jDu!8c|AiO?dFk%PkYFQ|M;}nm|1tmq_~+gdI3Y{b14sKGbEy7Y zMu?(l)GUJ3+fpFU`CX+vi*CZtosqHv<|mc>u9mm^{D|^OkWVQ=M7j!Cy^&S(`yljt z4qQB!l^<>+qD{QjEcHL6E?w7Q4|B)TprQcx{<>xrYw(&Ymix8&*9DPseB8H z2BUhdTaR1o>4^`D7;Hr$xeaG(tvVwr+XU2vQ}At9zjoCCqIP6W6*AUfPj9|6>1fm^ zFR*mAJ0sNXZ_T_Gtc_{OF>CR!FTT2mB74-dK;<)Y!Jq}FXhdF!T2C>&-8t^WPn+mM zO1Ktyab?rCEpc79Hm^*Qo6>a96$hUITLlf4fm0x?)>ci0YE2w2G}Z4F?4=ulSreET zq|_~+81-E(GCq}-J8&0yEPP!pRp^>{EdI^?x6&L)B1s4LUf5KhhN#JcoOIi{Tif%yK^Fb=-o9l@@^Ht6q{^ z)|s(yzs zTxZj4YgAMV^u3JzU9E@@z2*+J9qP0XP2tfZW6;};04{Os+0uW&NujnN$Zycri6)3D ztJSHgYik{TAS9HTFhal>Z0)(({sY-}dJM0-_Az-zmvpb9&c1kNth4@pZuKeG@!t-W z-1O5OjIG~70Gh+(hx?`hz$dEOwni27ft3JT`M~zq^xIKkv5(Qp5JK2H7u8RnEYxJ_ zV`FOD_=W%wTWtijrATiF^@9a0B&q%ay+frONL_@}^w^~#kk$A80>Sxrd5eLZ<)1;3 z2A`;nYx%VDFQ6>GyuA<&S!I!-|m)_V9Rn%B5DNr=F+Ipe!mEYT&*|e z{bAQ__MZMd+cp(f)dsIU+HkzdIG))oZdP;OjhBW;j<1x}MlBf=W$4UPIz~lu3&vu9af6Ik}<4+;?)L1+~<#fagVD1W(a8wZot4T%2qeWeBJR;pvjSFdQh&OtkOjGXIzgsG*b#rZLIY6$8QYKOhBjgY-M zS~9(bGUTjDtq)+ze91xbPtpv5BQO@jdb) zth?O}JdZ(?liQ1q4H_pkFmurjZGhY9bVC}^&&>(siQI5=_TH&?hUi%t;I^xVZ*T8T znYrheC+hH~$R!f+Sw6JI!!t8D|J+~u>ABszAM!_i<@%?MayZuhjpThlWB~qJuNHns zJvz`8_I+sp&(Cc&KnRD=*d#a*aAIek>qRe$yL))+WJQ88M7P{@%dw)}y;cS*QD7*gn$>Qc}UB$+nP-ynOk@KiT3 zEF3;C>G9U!6o=d%7}~cktI^!B24+(03KH_aop^;}h=Si%3&_8kunbGq3+NB?qW3yY z-$d?Hm~Mn`dShsqT?tjB7I}D@_R>#WihWi_8(9t|>PX5&9IoPj{njIoj=A7siRRFz za16<6e1==13Sq~B)>@q?i2tKTyQ*vp?m}+iOK$O>bP=(~#E0!E2T6pRiC4L2#OX_bMPf9)E%PG>Mx+8-2<)ExCIEiO_gfN;1GRW~ zcy^zl!5&9fOH9pRmm|YHS+TpE`qKiKFwM_IFrJ34H2nTyYyD&2x{AUQsLM4*b@e)m z^phUNHC_t88J6D4jG1TqGA4_kjLZ!&-T&Rw@L*f$W-#9^l!j7hR&+$F-#U#^#3-zv zC?kdm3Ldjd=LBb#|hu2I|PC&o|tkPrpwCS>8Hp zKdv5KaMQ{0KYY*0Qm*iQhzPEr;gemNtM;4vnojMxDI2KI=Qph9&E1?un>cH)F&s`j z8V>h9>-o~Z@SzphZ2G|i{GLJGou8lo7s}cgA{QCu-KR6Cm}pCHr7;`5@sXpeD*N+a z*E+ev`pcq$dZX>Cqcpq3n=v^l`%)~vrvyPglANaz(o$yfheVdgQl}I#HP+-Vh=ak5 zgNBJ6#elOUSSWo)800>axUOwi6Mv#$&5_E9E!f2POFi%L^ZJL=vkcnJXB86HI%jNcJ2y)BS=st!TSv+AsDnbqr3+)v6N_TTwGV_hF zD&=H&taFl9lBDQPfR*GvKdu_0^_r-YIXo#7OnL&mZ#5G9q?p&5E4!k^wW;(_XpD$O z$rz7zHM=uT;0>sDMITWUn=6+@e_IE>)LuRXc42S})W^0PIpxf689(Wft+XsACPaen zePo}(ntk3gxtV2Hcv@mq=&W;-*j1Aw>2w3k z0ljpNX=$|U^>!-H6Fsih?6q|ulNix3k&g&cW3hvP`b?1D9{=0Xguh?M>dup#Z1T4` zLD0;7=bhKP1;xjX*^zfZdhy}i&1VO1F(EP12LOIo8qY6Ip##LCyU+lHQpqe6LV8I7 z7Kh1>{T!r!caaqYH|KecEL#7jg>2+@SfA?p;aq)3|f6|K;lswIu%y{xjzF=#X$w_QE^UCL!HN~fi3Hp+c zot{gOIkPvN;T_0gbBNG|_8!x>O3C63zMTjo)a}mhW=q(bo^~+zKw(O>ucCk3 zJNe9y?gsyOX-hHN()jb`!;lX)IRJ`ctZIoLiZ zO;w@lBx**2=cZK6jt3DJd%nH(qyQftH1(Q6x}2^y=A{G@@q5-sC0MD6AuEM44k$bF zXPCg;bp91dFgt11cnpEm6KZe1%Y8HB>6zz`_nOgKu0?G@^@nPhcaAc3xd_M~mpgwt zGkyfg*uN0;V%IeDiE_pizC=g3v5%T-30N1hp8?O#xFoO62;RicekJejgglR*8r`Vc4~}@WgM}rS6(zfh?Mdk z$z=Zcl1Sap$Um2ZPPYeE$Mj#4nWtIG_^?_OwaeeS?B)lJ`f{x6e;rtR45iRaz0Ehk zJvo+-*i*H&%_f*_s4RJXyJFiS4=A$dh97B^0GNT3`KaIYgz!;ROqVjgyzqpzP`&&# zJ;fEi-d=O@Eieoa8ox&hX-wn;D;6{!_ex%Ehtl)xX!v#!UbUq1zWBPgynv9mZ2sF5 zY*TeV^ONQg`ZOgo?z+dqQwaOoWDq7=Lhh-d5BtwdLKX?Q=PwbU@i>gY-r5SxP7K za{`8|3PN8OHKCT#k&h+bO*Phzl3~_-sfavBS4n8I(~mWK#2+H=F>JL zESy>n9mpS~#Q~|s3e;my%2KC!-KBr~q8{@+M$a8!GgQfkcELoo>J{;YQ279fdf`w< z;Pop#@7@A-LHB(W2CFCyZE8~`Yo4qXS@l$lP3p=g+{j5ey}}19>piKb*$@;}*QR+= zZ(`N}tv-QSCaL|fQO6=4R-yy$j&Bk@wtJPpPjX+6iWp^GKj!njr2*M<7onz3`u3Tp z+a)l9O`7+KK$490Of?J(@i5$;K?UrKSzQKipseTQ{#KNtB0foY5A{uUd~`_J-_l_u zvB%cGO?g2!qUrp2J|=-o-y;2*@UJ;jwS79A6O(K4@$g3MEi61N`69W~iM4_RdFsNC zQD+KcMZv)rZ}iJW|sq zdy_5F$EfzIbWVuku6nP+yZPiM)pEY&-DPiiTb)KeAG$y%YZYWu#?K%5oinDb%X*i0 zse8S|`37IYLrtuUj8)M&Qei}&bQFI`x}M{rn*!V<{3nS>8QvE!^Q{C4sk9F2z@q_O z$TD*>vW68Jb1Ho`XV!#B=!%!jh3e(iA>XWrqA_&5#n*+y!>J{F$Yh{ z6sIQ|dXaF}Mr1{Z>bAFCoh^rweNHa1XT!@?hhMW+?8-bOF;)|h;ud%%b*g~yzJ4Ui z_qwXBCF^te)B5$S`LH%kK;q z4H#iiS!vRq!%UZAJBl+IR>1E-Oc$$0z*?;bxy z3C|>%opx|SDdPvjO#A@sK+qQY&dKq0|Cz)U{zGB>OGrpa4RZGe_qm?U4i0z^1E1{) zo(K?sIW15?>_%C@u&ORGT&4hnBSGqpzB`^a1(R6BLrHVNGLe&FwrN{UR)TL3Yo#zA!3T%3Q}*(M20MEUU1j@!6!tk)m|kGTRW-F zS2bUdznWH1rdSbv6!ymxO{!xmdYDuui703GYA6_rxyp%`!9F?|N>$BU66eJXE7eVh ze>&EwF(!C}>obyM`D8XqsD?STzTi*cyx!r(TWRCBl|_GYs%cq*>3-O@26l45|0+W4 zUD|xz&Mqm)HHxR(=Lk6917n2C-);NxaJ}4qWS(8Pt5(g(-v7KN`k}0{51H>hEvw%b zM^F4f)0~8WbENIanLS{2^Y_L<)WznjV{N5ZM?WKdMcB9XqV9*Gcc5PRMZm*MgaO=z5SlIiky|MPnB&O#Q3r zVYuf*+}Y80S?#;=n4_x~2UWqMc2y9s%$LqBZ-s+ONLnc3A@womn<)LVhL&>Tkt2N! zAAtOhkrBtehyihQp%@dJs4BPKE%Ntg{5YJXCZcxBzz$ z3TpgsYX?}}t1vQMR3i59gn`sDv;CT*kd9dX%)cTdon00wbm@M6Q6%KUUPZXTgL+CN zGRHpJDVA9=E-jg8P-`Z`gvrv)D%1y+DO><55Q3t(JBOO=$z%k>$DnA7a{hJ#W%>Y#@Kg1&g>Yp0}?Zi`p3x>Ml@> zyYTDJlJ3f>iIGR#r^Ljc9GmVZIC0Tox;}1yo$b(ksfjw?;TKoMu5N+Cwo&si#K()* z?qs&8?>A&B%Ba3xhX`EWAD@aK0Dtw%jq@wSNfw6a!Rvb*;Eu}Q??rv4xfjGXX)lnv z%I>v)QnrcFIX``w5xqORS9G;q+S!2v5?{dZaPtnV3czMm)q@v;eg%l zE?f3==U$y}ewW^8$jJ6&@UZ=M&<{h8;0}<(o`=rXU|;l}<2?cd>!6`d4BonWHd0Sd z?b>FiJ;ZpFqf09RL6;K|YE^GgOf8uVU2BA-coDCbwe_$OK`7h9$g@}&=SkVE&agMC zTUVaUDl1O=4?qb^oxNa;0Z?UQJZpb|A=g@IVEn3Z>^_dYBPKwZoayBz4{CY~J#Z{b%-S4-c2 z_t&mrPOT<^8I=tleC`^|hI@EF_(pcGKmJfB(cl3&!e>{{#T4k2ViT^y0&6(vP2L`F z|HGQOgll0EjXA?*Tk~SGV8c9tqdmxFZ;vCTN3lL*L%;x)6OM6jA@puT3hV4}lsXu} z<8rTj$%>wA$@!+T>}dcH^KA^GbL%qLIrtAX(R zAbWMOT9ch2;gQ>i{a#KXbNGKM;XSL+TpNk?C}SR=doVNB-gg4s+!bTKhfWFDP4B4w z%hoQ)R>Sv(=5=?Eh?t9K+kY!YM2E@#w!JVX66>K?w2-Hr13+cKP7DP&-?_(=G3-)z zTNj5Dy7eJS7U*b*MC1ya9Vh=Q_2Abrxr{(7-(^M-wgl9H$T`0c1)rmFe%X|E(=TCk z4=N8gj9KMGZghofNw5^ufuTAN>nO8Uy(S4%-VS($nu%~h=?^r>gk!JaRtx4ty+U&E-j zCTJj8@^g8C8S`gYjYK+=?NQz$cFdh>Ufof>yl@OgQnnSD3d1c?3@T<^z=#!=S0AW3 zk~N+^lnw>N*#iz5^j&1u<{Z^_&mX>b;X+HB&$|R-1-deh5IxZ6k+xKC)91R|5iGr_ zxZKPrhid1^ek{)4!lA=%!KPG&IF+emxEkKLSNqXO9+w z4bRrCSU}6V*^ez)Anvw1-HgTDM`B68-3-yIzQMbp3_|MhksF$X@NIYfNHyM0JEjoL zNW0@qX^HZ1{PFc8gnBvnR4oa^w<)q(~KnQobKeb;bRNp zPkENm$4B_%DpT;JBc(rgLqub}2n3Z&L+;U-TN)$?qj0^+q1BGtmXx zaIfYjmM~1bbAjv<9*e-LTX*^Rt$*IUWZ*6hx6|jGC+at?*lhGb$M-iYIM}NrYPw2f z!_cHVmi=ydm`v#W(2lRcore%>24N6i9KKa_;*ppPh95K-l5BQNhaj{Yd)_}Q5QO>i zV5e99CZjQBd6J=I>F2IZ5!&{!A&SC3aE zTuKT$aN96nyuna3m6Cd1`AK6&w<{1i>yb_l=7AGH+w*{z@yi|YmAmq5z`t(!$lF<3 zYnUQYE@ERni%D_-i~0&%JDitYf4Z6eso`oNp#QXB!ibML=>z;W^yFZ#7I4%C3Armj z?k(bEADMBQ?t22?Bzff-zznmsC_kI*&?r}BWb%8Gg-=Uj^RHb8Gf`{|rB<2KIvFmB z5w~Wl>*GTr8I1LO>l@1{6h^y1^k)gbPBs&%hmda0cZr7oUY;wq8G$b~$m^$0sVUW5 zqJ$B;j^LX9CzaBve55G$$2o^2aoPJ;$QqQdYvfQIsDJcgMe=mHp9H1c@0cS%XK2*} zu|en5>>E7j$705)6!~kc(_==h^%or`Sjvm=^?@(n!7PO+G_rnHn)1vsv~ChLR9TIn zva0pz4nFgoZR`5#rJovPU?ZXVfOi;#%@PVuEmA2LBy`^f!fSn|7JY9bAJ0YL-mB7N z^1Avv5bK{zU!$+HjQ}D6e&HEnFPYF=1J^wg6Y^a^#yw>8_DJ}O89eToqvjrmZKLs+ zK;zvaY=q-LYF~G~z`%ktWz=C>z+}&h(19_E7It?-+g7i+3r*#DpKpql#CMQ`o61b0 zX+~~R$9Q2rYwIn2Anmy*Y{u00Lzsr#7(aF z&0qPKn^;3bd+gx6qZRY|bzC|a-p=xqhhpbQ&i__Um(7ir79Y+QTsT3DPQFm1fQcf@ z704@M`DqgNw<7j?K{)gGc_>ZCI>rpI$zpblJyesd zlsF1u%kyil`*WBPdGW=geO|mzq|v$d4V*`OZ?ZKvqEhcR{Cb-;oKv`;pDhNMlSJ{A zWS?Ev?w75@M@hLTwp=&tnPC^)JN;O0p(x#VbQHSGoU)@ONn{n-+7{24#?f8=zKSGq zCa_>g={fYdtd}7txKi|Oa(|Qu^h($kgCd-a$K2<7!GM~ zo?)?$+;J7v{AuChNl?8zmnTKCy#D@Yy%V2+ue_~Muomla+sa;0rSsf$3Yo!tD*U-@acgLtOFTUoLR+<( z0vvxQyW)YOb`82*^?sRCg|B_JvbpQpITQYuOM?RGrob(>!$KNp7dTB^bhk5rr!{I^AKh*ogh@iv~6XDeXQQIT9k&Hd{Fhk z+Y8+fQE=&d^?D-Oh)#d;%*{7mB( zbWQi#(rtapDtXEClAM3!sT2Dn4$IQ=%0Vua=>5nTvh#vdO4H6(eTO7IpO9AI_X8P{ z#Cq42keRBw5XCQM8+)(Z49=pScmUl}Gi^}kfnY-~zndv0AmXj@EvLL0F;HRWmR6qf zE`DF%b1=3V?&a7kw1OPF&B`K8^q=2vPlD4r73aSMJJi!{2Ya4&ojc|2(|B6j4D-+v zcD0*4&dZ(Yj+OZpvaP5iS=?VAY4PCP()gDRXAFf!6W_{H=J8`wj&jG72vMU6jmM-a zBC8%CJ^7<+8AS&fxr2@rMZlRS-KM^;n@I3TMjknKtvvC0t}lGp#7H(5@dic$t=g&HB$6``Ym<+p%@}^2 zhZ2B4N-~rvCW+A8btLf4z5m&g_!aPa!zmZo#Q6%^Rn7YcDtzjQ6oe04dK5j!0S}n{ z9b|nQ`*cOEi_NF&$ri`P7GoSSvMS3UMjSCrHs)R`Rf4O3F++BhRLmS=gl27Y2AO~$ zIpzc9h&5#_?GGu(GuopQ5C^h8x+a0$iBRJ*nF$we*(SsCr>Q~xc~=}o&?yP!n+Tcr zz*;aA55bZFW67dAnoc4SDzG^EyDj?eYx6hIV(Z_hq8^%|ikb7RAcZ!@FWDgXprmJnn+eBSN)G zR+4(OW&A`9s)`QADM;^B6CcD51NKRm&{(Q%f1PvFkF>=R!Wr!0Vyj6n>>)S$Napc(&4L8_n2giNUq4B!HXyL?`z&!i0QlR?m{v9g z=+W^y^AcV*mbwMh|6Bwft0B{)KR3pXrsuZRg}F%B*F*>4iIdQtc%}PjA0K@?p5b4D zh5Y;|yU`_pA`}y>bk*@PBYYFyqfCH$z+yB!zxn)UiiPlyO}A7Yqa2~@Q!R@lrZz

6eZmoAJzYKEC*MDhj2l^F+050EKcLn4U{}r(UPnJgCWTZVe1|ULgOMIfs zxJiUDPOUSTY(qp%>1lkq#^YYPxC{pB(O_2-m7m=E4KjXizefl5OGDg^NSaHz9O;U- z+1QJs*Vaw^SQh=_vY{jIow2L z*5$s?WvVbb=sxL>vn}~H?blINN8wqLAYNVx3l_cRnxStO77E>}%4lMyZ6bDs$XKrH zS~<`(ulxt&+}UJc!r;bqQaFLDvFv{R?&a;dY*~~KBBvhk?;hEt>2Qeh`$N<-4xUSl zGh+RDd3DMGpYHw_gBV`Pgr9(Kk5rCuX#Ht)jTj{TkWJq$?6sCTjABx(15w)fBy_T% zur}|W@T$tM^g|9K9v`)`z+{l@H@d0`Z@fWS-iWVF#Uy8Lu^{BPgWoWWAC~47LCHtM zd-K~P!qEe((4Xh_hLD`_2DHqa@aw9>cXabj30qS5YbQhpE4x)w*>cI*3&}zXrT)N> zon_!>cEuzL{LJBuAY6jgc=g=1m89zUGhT!`3gSRdaP+-+71NJhK0J3z`b$v$%3Ww+ zXGmuYKg>@ZsdQkRH{y8u0&>+(z?&mUd`*JR4K%E~C(4Z_dapJ0;Q@b;NGdLl0 zUa({9eK0>98MHCOIv2r03p-X00?{6GXWXWku2$6W2k$OWv(zpc5e$*NcYRH$*XqK6ZyV=9b0eut6Z(n`xtG?E8+@icIR)4V1& zYX?2_E-x?d_^=J754b+)bqy$z=`Mk%q znQ!-xNN5oo8+Z(QKBa%ASM9a@S1)oOUB~XB(Oe>FQA|v0=-GfinO@ z$ws7zi}}Eejh0Oj#S~{yD~sRv*H}$XueUy$t|uje=Uh$c&lm?MU&u9ghpC+1q#y97 zrbUimmDI?GqSVNtSV!lEUb}YWs&dCME@#3G!P-;r4=@Vgdz{CF?9149zNQ3?5nSTd zW2H{zPU-8EI{)T5lBy;GfEjcI{9-mHkbk-*3QTn_rsGz04Gk2AeuOPG62KH43ZcX2 zi;6V3Fjo>ubo~h17r^)S0N3jE0M))>*K8;3Usf7%Kk{voh`&!gH@YpV85KM1&w3Cx zDzSgMqqAolmt8r$^^F0>PN%(}|B*tDLFHi1;Ex6O;Xb>bkr9N&66%k&==qOKYpv65 ze=l~fg~m=J^WHHr(vg!*o&H!uqMp(Uf{WeiU${Nmw$LzxCRs|v8*zSmzG@?RgAB1RM5no!9fhCGoxTM52(wEWfRxfUzZUo-p{{f?~G? z9&t9?c;C8MCMTI{wLl(k3v;~hU0?i%h<(G(Dr9Y{t1qwYj6A-pZG8TRB`XL%Lv1c` zk34{oVHt_|12tVe-b_8zfKKNSSKxkB2WQXV3p3{y5Z*s}Hc4V1|0&$L2GG zi_h&B6N&&h1#~#3H9}!Ajohpc(<^ynP6z=l&6fkuSV7*CTB^Pn(cjsmX7jklzP1WG z_k3QdQpK@insDVju39YNX3MImK!QP!4L+`gnrP_GKb1Wikuz<9<5o&2Nfg@nh=Xnr zxKaIBv6bTH1&#%5F9HikeejTdNKwX&(tpY;kg+yu=5?#QY+5pHGE_{<%7e-Upa4^HSfRQaT6 z1hHWlBK7z~QY#3OqIo0K>WY)^xwoSWb`V{CXan)5NLW51iPi1s9>7fHbrb8|Qn^%u zGqh8h?!P_KGLz`%?ovS{_RFw^zq~8DfpaLEGtw6j=*U$KY{8sJ{D*@aW!(&HB9Hsr z#eRpV1xdNY5-e<6~gntx9)%Y~~!QSb}_1<6=M000-$ z+sgfnL<%=*I-9}&lF^eULv2r{oruJ@T8ILp8BLY9*>=uQEEU5IckJkrP1!e|!N-bL z^H>b>z;W#mLOYS_&ew%vo-NQMqMS+ONTio;j-HDaI~6+8-(_Il_XBURXYO)8X|4SIE3zGtsv>>>t7t<*7Yo@B47>$| zeR*9#$vw|vxzoSgaEQ7U>nD^>2)N?Cb^>CdPV0UdNbx9hKb6e^wP602x?y@;^1WSK zg_acdck^oQJX=R@qJ^*>jH7ib$ECm&B)Pn7|i_s_P~ybSCZEu{xVSoi4zR$e(ff5Eb;7 zKYjor>!1eu%#l{#6b#3qs2wN@?nJ$HTJwpKitSMi3NG~yPy$f{>n~M4b^U0fj~?Px zGHn5^TsIMJlU_z7mBM%OPo7php2Wmi6%-L?hV{)1At;%8>fIK=$yI92h%Bx#bN+l(dJ(jpetB?|=SmSp)BO^h*s zt$dU}bpDk4#$p2X8^`0gZoV{^P$cZ=`U4pw)YuWyPZ&YHKV;FTKib-o(jsli;0j@l zvTH)o44`Q#m>?Vu_}m1>8&^CO5Fo47Bjher`%_r%$+S&hb*BD0>qrIc`i@XhT#RTO zc)0XbT^c96=k%2?WRv=Ec)Y|`Fnow{jJRfv-=YWjyR%hVF45t!F;1Ofm*5wfV~Y z1@Kc|Q*#uDW=xUn7OlRb>4j_oy+(ixmsC?4Tl1+8-s`otF3Aba@)O!Yk0wbh=^{DI zjRArN#<#MccjH585GOrBvr#b0@ZYhV`i0ma`s&7o$C4;qOMQ-(bE7J9(Bsa&pxUPR zTkYm{l$B>W_yhP1?2eg4@k^hc%WGYJ$ch2v+kPPCen@m2mtN<48xwt#)w}H6W42`v z@n$-)B}CS{Zlj`e=iX!=GU@Nrd7CrF&sI`JGBCz8#=U{m6(CyUg2l~9;h%AS`|BV= znkobD1Dy9;ub%D?wlMlgR@5!7DsGX;8slQUDSkTED(fsq&Ott0MA2+Ye>p~nWXJ~ zKM*MokN6XPv@t!QPSTs;Rz#~eZkx+G4jHo8nOffVb7PcbSEdC)*phY_u*sY+Y=}}U z&6v1=9rcfQQTiv6@vmGCR+7VNaWslNZqd6q$=3$)YjOU=-zQHZddkB`?#si?$U+w$ zH3-(A?lkVV05l`l8?{X0X0*!p`O=Lqx;zREds!=3jN-|AomS>{HvT!n8H-HCT*dA_ zx#rn%xv8>8a{&6+ktW!i1~uYTJAJP-Jp8r-(u_t{?C%6Iq&W-)E5_1VFB;8-=bfmz z2>4TA6P)XY57lQUZk_E-RtP8Be}TAnK=P?~Zgs);=>}dMmC*SJdfr1q526GdhX!jJ z^$;t59>rw&PByBgLPa>UuFbx|WO*zT>$i9on&uCY9X=H1u8VH>aepmk8NvlC->0Dc zSyD6rw?l&ej;Ag=d0Z*u={=F95)(7QWF9tK(|%EmF) zlkvX%A#5r97o*EANA6^gE!f#Wp#MW^*vq<`-m=~j1{_zJH)WHw>dMMgk(ss2^u4c> zK0Yl^XR%2wGd#?DFk*vw)1WTKCEjXb&Y)(zcah`I47urN|Af0KTzFmAgt^hCqI*!p zwlWo1ABpI{-kJZAT+ZAT?0>=?dl;M^#3As~ggSM}OrApxYJ#vEN*d7H zGGV?Zrbb~f;V9-4-3edo(70#jBpLjOYRH7e#ECArjjHxwi(>ECPv5NHn!mz1;9rXL zeS59J*`({YHO^R@YB{fIiGS-U9?}KQCRD8sr>9I1+3*upNn$$@3sn43;=rwH`$6)w zBhcaU;kT*eT^H|?TQLcW_bz`|w5u7fPmD#T0ovj##3=@}2sEX4f_R)`Ovd90zz|mz z6JdTI4aD1vFuBAdwvL_uI6VHRp`H@v=SlU#A^n`Ht7*JSxho;rpVdbsb<$;Qg};Wr zBpmYlpe7JI4zi|hdXqlW=lF^Hh}YQfaY$;K>w7;~v(W8l`{SJBg$=E?`lgF!|YDhMq&h_@l=ET zgkww>f`7vxQi{dQ%+_Z1NUy8ZVY2JvHEs4-s6;V#*`R~IL1Oh)#`a1;yBbN+u;^mg zJW{6@d3A3WuZSNO6cFW>6R3qE0LdH)4<%!jvv4FPCFo!9i5Lk3RTlx0!C|x zOp%HVEagwx-Dz?N8OL%0zq5eIXPOX?KriW(<8rv#kQ)_zCC(R-(fIj99x$jG#%z^M ztdU58Jpx9vr;RM(7(_TuBo8vnR}B~+=HfTERN{)U^aboweF>NgJz97}h*x7q50gj^ zXN3qIc49-(6l{3NvF28MbuWt*HDTj2@Y7X;uhe-5T%5e!dotXg-R3-NO_IUrfXeyb zpE~f^1^D#{J?NBbuw$49HL%0iN{5P(WiI4u=Il-}?e96{E}O1361|xlokIvLgZiS9 z$?lEB@F6y?!7FsEU|d#5qMn4zdzaOO*aNq@?@Ia2P7jantv#5KPEg4Hx+~*97srs zWu!voOYTz|>VRG4G12xI(4eFw`yE@W#*g_PGoegCDN@04ik;g(R0k&8pN13l`N*IYK*4whcH*2<&Q9oU`gll6DdbFdpS)VIXaHMPT=FYI}2m4 zH>*0m8U#^UxFBhuCBDv?Bn)|BK?h?T#0f2SH*)d3N}pn zi3wrHwWZd1q_4<^E+{WnygQWut1A~ZUQcd!SB!-qhzC|0LQyGk=J8ZN?HgLn2a{Xs z59YKUBD#+=7{QH?{J z(D!n;hfo65v$J}Lxt$GBCYUB>ZPs)k3P9C=JT>U8+ZPlFdyo?tfqM8#Bzp6Ya-&y& zp&-lUp-#&ai!zm(}8DHBqUa0MQpRX90 zs;6&9$sxxKR-4eAH_ucwV8~)Fgx^>jkLKe%lfxArYeC_Dz1g!)}+6FE~+&O(;4Z&6z&{t*wdA;PXT&9@8b1q#FY^H3x6_KWRc z#v6AYcH^82<)6%N>XjZ= zl_OqGkD5Iclah;0!aUzlJnS!(-7a?JMFX5V{ZjF8WbuOViT#bj&AL3TFpSNCSpfH08T*h90SATyQ*dX-ov~+w$+O2YI1i|C` z>43ZD?|$9^7rR$>&5O>}SauOOH`*&$x7#+giPvAX5Zxax_0xkP%c;<*XuC}?&lD-w zGP$SjEO^#!&oX<)`elLDL<8&h^V~(YsKe|PE zIm~yEZS~-l{Vh8zy?5-4pwT)~y=tR~>?EDP3YScEl58vr7Os5+)nBVfwPr;#2*N4dy zoS3|>_>gI54Lg@>tAPx_I`b34)<5O1$b_vlCGzAhbZh5_a$Kj|=(3Jo10k2Jm$phy zK9BjI9 zMkp=6&;z95-HfKl*RsJKg(5F^ ztl`EilKHp=Jauh=Z>gsYRgMm$Z!PTw_A>Lx_AY>FKojk zSAa_KWD(kd<7See_QSfRca-nsz%K{}#M>@UR4XW^mJjyP=qu=xRiv>LJMQ;UVHnbQaV)i@_9GhpePgrTaDPZ&x6W+ zYkthXuJ$Se$2ab`qsV>MsemQSNJ%U~?~jSZLD7GGZBuMvZpgjxxEb_1BL~g3wBtL%ckd1iV z_OEOK{eI@U$BnwGJrDWX8={~Jw|UO^re{2zE_CK^n#~HO&q|AQ{GnHdH$waN={I>- z+F2=#EV9M$n;DDaP#Rb>Ucs(l7(o!N^pGrn2eXm0d&< z&2XI2+I6tOGJ_;peRh1K5@1&8xx8)n3Xt-d79?09Fo_TSMdtYc1(voGbRx3I3I$k5s_XyJ7js^$mqrW_F@0-qP|iS!f5<_ zytz3`b8*vtUy=Ji4g|&~;F@;lXr>+g@|6TKfGC9NF%}N3{qULnfJ`t147AfnT?j~l z;d8x)r=|)H&8K&N!q1qMx}bQjwz#yA45Qj8Tqa#NlcoI7XFg4j9*bdYs5gjm_}hU1 z_x&d@sK4G|%6JSX9+z6=OCAFn4t(}t`M^gNH!yencd{3Ixq6b=9SNY`9IoyxCQvbF zLjZ;qDXv;r8GB)SUCeuyaqLgp=cnd z{oeO)@N#@E$$Sz6+88y5874v>{yj?aKZ4Vg6o@g{2a>kPlb=Q>51g z=6@AChYB9I(e~phF2PI7zZ-j^Hx`rZYS=S87DB#9wB^|gF;#ztUCf$nhaJgE&ykgQ z{umJn<%KM|@d(?vIxMEYw-N4~G%~Xesng=sB59FJsNR>soA=Y#M|T;*X>{Ob68CPkr&#vJ78-2;jyGX~?}%m<;nHUVX)IU}LaB{wp^q z+Z@epZ}S7e`*MpN1_J*IHZN}%rDINJ!lz%{pKeTDqW*W=hRUu7i#VwO3AQL=K$fd# zW8=eL(3EmaYea<9ttd6|m26mqB;PY}K}69#5{!tHj7I3hWVVva!0V1UIJV}8&egBb z_f-E|{KbjgIlQu6AtMRj*!KHW*`LJ74je``WaJXCgBr-iYr^r*RdQ0=!XfowfeCj- zz9OZK(i+A437|UpOK`$wu;zD1t#vA;N)|T8e7@%SxFLFU?|HYM z6?F6)9;B|FjbpT1EeL7lQPU%3-4Wg7V0+;OOhmqYR*PK&EJcFJUre}f(u(Dn_R)V^ z;Vrs8{k3Bg!+F<@e$o0_)VX{%svLn$zTKz_3SlwI#BmMdW#`)h3sSV{^qLW>aON9Als5cL*2)CM6mnN?80t)2i3N zxWK3OAwb-ed^1SW+mA(EcmGbtcrg$XKD>Xmj-yEb+_F?5WpBjF@Zq0y zX56~Z1~LTgPD>r(=D)stnfk|iCJ4QkcE8!;hCSzR{c@RJ-V4YGe0efm_){b#0#9;x zwexx)l%aE*7VcPpHud@1FwgQAf;G~a_?t(F3rR@OM>1n@tUU#L1<~#t2G3PR9JO&+ zA3Zr56y3Q(VPwGGF}hRXHKBrWRavO27?MELxmmOq<4r2Xe7$ha==>oN@kc{-*Gixx zdm#{aux?5y=DRpnH@2lDC4!Hk6;fVuX9X1r(?R~!>*VRNmQ~@)4usN5 za@G3na1R-TUq6k4|7P&^-REn^{T;_}W#v2gVBzFGh88d(B^Y2i`QT~$Fl^Gr{GFoV zr_!RLes3;%+CJ;$pT3Z{t*RJ>EYexsZaNf)C)<3X&d1AZu6m1j4I02N> zIPSvZ7f1I_xDu;u4*z1Lcz=d`#ro;?v7fHRf+L_<(sQ~sIydHe;!wQKnlF#DE7a9a z?!KkQg87G!x&dm_(bt0h1W;_5lKo z&38oj^K&_{hI{MXdwlnwp$3eF8gC+$^wkuKyJ8>li%2@g*#*T+qFnrQfx*3M6 zA6ZoMU9HQCupfXn)|%9V;cJBssrgYmUA8|??V$?J89CjLnkf$S0PSTIl&tMgI|Bw) zA$8j1*bla|1^^+X7-K~;2-ll77r{(idsdyCdl9%YM6Cf&pmyl-0VqqeQ%r9jR>^;5 z%$^%A7y&(}>B0ItiSIOj1ko-DA6q$rIrKF{8$N|oqKA8o>M);Iq(a#zVKfp&+anu= zJr;9btR3O@*ZD}tOiY(iD_UXV^T=Oki*~R3HDz)zQDC(e)MD1vG0RS}R`8~kBp(sK z?mJHfggnXgU*EZ~h{?FXo7Qj;VE4fbbSZg?MsoK(?p3HnGJ2*KooZM3{tOW_Gk+77 z?KIpRrFlj0>Vg9MtvFZ^e!-pP`1`Ozu-|*4aEu;K7-fK_J3?_ z>}`RP0TAf=91`#@6yDAFSAA{~VE((6sY|&3)dfL8$pJ8zV{Uw{R}bS8+j)uo*%|8p zPInj0q&McDaFGGg>3Dt#CCX#Y_`~GDYy~`z?RAKN#f$ijp%~Fvf+c9$5QtEUhr9LT z4w>vWV+9wcODPE}lv0$2TauZx)Y*bSBEHShNc#(n#xmN}n8n;^T-K}cSdTORMDzCp z{&V-@k~rAW>LbIl_BW@^RJ>%<9O_pkkqNK$hKWBEgS;#(?gON?Qa|66NR+MpsaKUc z8(q(ld#M-L*j{_wRVmz04BLO*?#bZfMw-4@aBem71_Q(Yjsgf$10%nKU4M-8}n>v7Zeh@ONG z2Hm0w9`SnG0PQM1I7-4X!0+&rk6_MG;d(hFUE88fXbJra>FIjm1Y8Dx=l&s) z&nyF{1xvmkGEFdYO;(J{GY%xjqv;{q>k|aM+dcpDBz?^{UHZ8&=FqsfA9I zfSG=IO&VaL$lh3_zUNQBu~%rH>zCb3gPMfw`s-x)UTkIlmhxlLIBkToSU=14y!UM+ zCd9D)N?)S5cBgvMNwl*d_HVSL9<52NQtkIUSs|Thl~g8Ya_D1`3#!TX9JW9Av)$YO z*bSQzt`~SwM`nH`6N95K1A*NnuLQx#uaUfO;9uUGfCJ78;|<0e>hqjCIoG6UE@$bx zO~$F-VD!y;Lu)fG1QKr$`qk|)E`%rbK+d19s=n#qWgj*h?!fna9cm?jko(j7VWW|y z1#@vSn~M1&ryU!U*yjOS*YobvE*G)3nzx6-#Dtx_w{KClk9$!^pftZLh;?B7clzlm z?;Pr&b$S2u<{N^7!272QCc|j2?2ODDL5Al(f(fKbLfoLW zz5NW@UQSl%kzujlgb%v(ukQz|;%tIYiNz43hculD`A%MkzigdhJROeVI$PYaP zAzo#UkVZ9U>0=CWlR}{rcSe_<(nqwO=U>L&gUgo_LHJH2$& zzry8U`^wwr1&>or?O0=Wul&B|P@*Th1F(C0M#!8cKx@KCy#kgBVAnw7&&bMz9$Nx_ z$F@h8ARkdOBmi-0RD-8IHhcENO)q!3Qh)u8#P&i#(OU-}Em~Uby3H!3tLR2*MUO*q z@pnSKgy>^?13X5|`Nds)c72&8q5(i6?`9|0lb({+0X)8^EiK9Sfy^ub1WXJn0(d&l z*{t<~Hz3MGqC0}cWi*i2Gy3ITt-@ADtHWl|;o;E}F{FX*4x6xB?db1Ni;Kxix;j5< z;qNb|o#-KSF@C=1ozcryhr!Loo8V}@7BuE8Pq#zx7bw2BEv=^JwgKnX=Gkwi0jB5M zjRIY`ozHi^pF8pY3&zt~2P^A}t@ZWS#{o@<<<`2hhta0#<%Z#sbyTU3z2CaCOM+yp z*4>dR|M$gY$-DLw4_DCkz}19PD2n_fv#o=dTSDW|3fjV#Gv`*`#gD&dYmrfU(ROXY zPhy{>CY^cpQ{lQ&bGGI|j2i%a&!y!U_H2Wy(&|eik$3HrNtoeiU59$27+lhBN1_Y| zVNMdnDqThC&Hl1CX#IPmdR@cX=HV6(ZYJ3B4p&Wak6i=N2-{9}s6*{EFTK5F_LxYR z*o&jm)$9xdLg&i~@oT}m2g|A_JroE6!gA&uzboB;-?p#ng$~EEVLwR|>>?bZ<`r#+ zS3`J`)Y2@_tr>1TZ`j!Ub)d9Vz}E&l zxcG#&F+^0eH1u*2n*M1+2|<9+*X+11_Frot;Fv3D3oz~02n)f+@+P*Py`cPs^^*-!_MdZ0& zgcl^{)(}7dA7XM#UJU$*T|2mu(cck>pkMD#o5kSJ!ha4IX0CF!gi1C7E@+*rJTGK{>H+ zKO3j-CJ@}ca$~eQmAzOnR9DI)P=7okP9RhG(%gNN`px?J4l3W=S+LjNapSeeHD^lt zcvzx4p*i<)_@*tn-4v^|@iVbid+>+`^7(p&=?@;oSj=K;nGwc+H7OfR7vX~alHJ6H zN>sVFuj-)A5k;c*J;Vs_r?r1VQ5F)T07l#W&a{H22U416FGL~4cSqd08u@VN+*jFv z*4iKf6zyH~`yX3ensBGY%GKO;2&skl#lrG36MF!{r`c?XkX*>O`kIC5=YR|npo(M4 zau(|)HO)aB5EdTbhF3liuMm0jLd?IV39ZM&4B@ecTB-`x?^z*r(}%$WL~;1r72N92<4?l~b`*zDb=3ClL&QGqTQcH<*KW&o7Th^#6;JGqf{42(6> zAId~UtF*Vskunogty-cBVyJ3w)G(WvJARQVrVm(Gk|i2h9!f{fng=GH(^R&TgEQF# z0@k!f(mbg34t*7ZF*`e!w;|pOyE>#`VBiYGr~>_eD1nL@!@H9&W?Mxz8XDmG_a+)K zN!(yCeYi~}$_5BUen?M_rtLXSWJYpE*K!TI%eN=2CbodJ>9!^;A&3SOa5aEDiA~h5 z8;Fa*j)fLMfE%*90!#jN=<0)pd~UNAo+|bE_ZnfP-85VNM7e?#pdv~ZE7hicQjRr) zsMH-+-ZYb{zY+<} z^(3dN9)x-|Y1VLko)Z|p%mXoMG|>@irHHeAGV#mej)uUnMOK%ikVX7fol(2@iLJK{ zM$m~?`TrL1uz)2mx?L!IMED8=&=BFoWfS{@v*}g4(@^94(icaus!vBrhI&xFEJ~X4 znGk%|U*0!mb#M2u=jOyWgGd~~M>g^=Zs^D!FLp2KE_8#Q<0r@GLh>*n{I7q0uwo2~ zBjB_D9c#;b{yyR=wQ9~y^e2hzI28f4edi?K`&ZG$SB!Tyk1?Z8&n?-B`o#|FyL|?K zHq9Nx*eCg6dnL{U+(^0!!DQ&>9pB{TKe;3c#Ls8TMGx&9Tt@9tih{;wwHL?BOo^t^OsbAPe6eb5D6>YH9| zk8Hh8?2IYR$g(?7KKQoDR9Pn@_{0dA;Y-Lph)ZwNz_%kcGuFLScM=lBtQrP*XYMAP zYBN{l^LN!-eT~^Hlf$JjjPv&%IPG9&=$Lz$Jxli%mWy|`h$<(*X%PwATcByX3Zh<> z=QsD4@9yV5otD0JsHp#^So*T@LF&(i^5NC#c}Vd0{B6%lcGo$4GY zbthSkqg=^s0~M>ObLHC;QxQ;Z+2C)|?$(iP0mO}uxf}>IM$}|B0tyJ12wiSL&|fpZ zQ}t4?4DZQRW}a(f8C9e_s2mDLbMFf2;aHm6cxjjv!>u<&kATR_r(ppfibDMsykq9_ zuk`wRv)k_2g97rKJ{d|!%Lr&;rK->rnCd|NVV@^g6-o#X)&JB6j)+-&3%qgN;S*Tq z_WaJ(W{aX$U=4&!2krmCPTP#WQU;W$hah;|>kBP^&>c}nJ==rz=C*|0VFz;G=;znZ(M9^!IW(>SwW;v8kKNb7KH=!15+z8l?i?O?=H+*Jq+ zE3pXy3%_@x6GX(~ z`WAM*^3TL7_uhed4U|ioXZoIL`D8`L4%p;~aGt)h>Lt2pz>TyCyTugjU=eVIJ(hM9BBv6S|fgiBN7?==Tsz zZgH?sJYwJ)*$Rgz-)}7;7dGyPo_Rv@gFrz>wypy1p4>re_mesZSwQ0Fpdilwaym!b zK8DC^539F5dl!bSKB_myJ|Dy|1V-lJek8YuwEPFMBCCJsRstL)>jV$=&FZRqAuee0$K3<2U$G83G>~N>2WfU_~;{`^Z0`*7zDI6`04@%GrLn+NwN9v z+M(gT$Nsjz{1YFyOKSFHT))1zE_r+oA5+ipxh_D$BZM)xP|!e6Plf(Q)9hHP;?#1y z<3!h|a_~=%nvaf{cnWSfRps;h=0-F8@J}81cNfsP8))J}x~2@Clv2MdZg~k-n~N;; zoG!fwfnJCvqtE#zEOHzis20bzb5lgg_tN}=Pgb>0ntI8G@gg)pO5lsyU?=;*xonBl z7fSs1Mwx0WZ!7QQ#RSPZe`V%!=5eCBC0A!j`FiH@>fuD@g~J5D*G04Ulbjn+jH

zU8ifyX7kLK@<_EPYS<*>Z7#H^*(Pvz&!Rp-5HNlHBLOO9q=71B5BVbb`KRNBw7LQ* z^GMai3w7ZiGL3P{padeLbADmlj1i{hU*-ad0vr?8jdk75MB0KX+N}?bSQRc;*LVKX z0$buai3?l}I?8b~=}@l9kxy;UVH9Omb>NC~u5Z}B_MPi3MferqWPgB!3W4?@t=c8x zN+M@|NgVf;gU4coJ+=37i!U}nSE`gRc!TEL=d1i9`$q*n6_)SaeY8jD-l!g{Wbi0P z;b$Yb%YZ6;2f{E$I==F6nx~gM6L^I1Jp#m449Keumf)XezZ#VAfIS-)c!st*jmPcZ zxsePRr29Q-mNhLCl$M;&yFwYw@Dw%^ad##O)}`OsTWu7H zb&U{n3EPH&7af+*S6(W>$`c(&6>cdC7MDr7ypAF=l8~S?{*agp9(Tawc137i>JX91 zZ;^6zVQ;dr`P<<#c~YQG6GuQ~*;@WRi2DZD)^=0(3}Zr+FOd=}nw5u3%!NmXI9rwI zRmCRlYzePm+F-S&p4D;k*zl-JcnxDfFi938RD!lG3E0XgR8kpyc7zvbRk8majm4t% z6UwLf^#~9VS;6Pph{Dy$eNc6qnNRY9anXFS=F)MCp21JWFstuc@;8VRBu#oz*@qzR z_j=YlBRXO0H6WMu-Q&A+^GY;$R6R(YuKU4uK!LWT?R<{=cgYE$GM(v43ih{lj^dsB zxm_eel#KJ&;Yee zA7{-D4t3=yx|3r?$4eCqfk|bx!~;qrzb&vPO@6hEBgr z7i4T%mxbEXf9uZ4jyPHK0=B6qE8oqPUEKr?nE9w}Jk@2T#bwPG|MH|sjvLqeg%ouvLYbATJ`@xtwYX_{J`)y| z9&x;8IS{57@lBLR9y^kXW^YjRbm+-0dkkj|^07)r{ERjWixcO<>mGmBPGXm5d!W71 z2ImHcX{-M*3z_QKOq~4DZwhv`n&9BF!SA%CX;#X}Ni&8>fpRD!g2S3b3DJMig*Sg2 zPK4kUYPGncb%yvZ$i>JtWjC1#*xbGw;PC>m7L2rW(JrE%S#y3ik7zxG+r7v}p44Yv ziKzza(k|)FY0^i4_Q0BH#CfCpJgtm@f#ikl8QukLk&O)dPu71A)#0dkbQ+b+C3X|H z>Pp*IM<|6J6`y=IxCvfs3DY^TV zd>3Acy+%iwN%l*7K(bMauO*Tenz$mr36_>$&LLrPvxFJQJm9`-FvPyMM?c+z5cb+^iM}6iuL|3nfPt5I*A|D{B;t;N%-&)t}p!u zgx6nA%-XcvT66qKRO*Y{R3DkudAH_tsOJ%xBb^gb_f(zAkBvw}&eW1yRFLZKb8n)w zGzgJPOnR_XR)=|*4Bwb)xCf1gobjr4q@zav?lLA2IlbtZtmB+6l%52XEaLC8F-F^b zX&Omi8xOI9+UJnnPg`))B9w6{JYR{3^zdl-qija_2@_WT!woLe-ZH<(!vPHXW!G-> z&GIO-pg|2E3Vh^aH^fIV4P)0-bBx)!)8@a8m2{qLok;qw;I@bB02)vQb} zqn$J|Z|{J29tFrT#be7h?%1Z4+RM&>uX%|I-j5}}wC(QZgMTqu9IRO>+{Vkd5=#P`Gc80_td3m&#ZaX{PK;K% zBH7yE@1E@+vm5)4KAVBC7mK>C*;KyHp}hw;>Olnwdp_2Y#tBb zb+lO%fnT@a*Pf?DJ>Aw@u00}e$FASJ7s>!6n!2UC%FMiHO{xxJR>Hxgv5?8q&;IL# zZ}w(OB6_9v4@#`Ur*GQcH-XkT+sU*D2j@HD{|u_gI;C>Gv3;U@VvRVv&8lpl#** z=SpqvXnzD_545`GY$$#_;T#rqp&`gdyvH3W;oWGLO0j?DMhtLR3?N?pN@IxpU2 zuM>7j?a4M!hC>xFJzU@t8meX1ylb(t!a?1bz)S_V5gbRPojqg`1gv4o zEq-!2@a^UNs!fp!!_55p_$I&}k=Nx+&&@}0u|lJ_GTS>XaFBR3n#4QBX59&Q0MA;z zGs}o=xRkkbjHKgvJ;P}LA4=P6-6_L%26Dm>7d9Q)qk-OdzrQvDcXe#MEM>e_8%-5@ z7o!0!2@n&j7=IWTZHM_^giDP!J**VHy?gfD2V-8?MOofoqJbM@Ulq7=Uc9F|UHK*$ zEf=rjB}w*s(0x*rHy`C8*UV)3>B7}m5+iCf^1yB?qn7L4e)8iqy3f!Z=f==fj;NR+ ztH88@O1W+^pu^&`ZBxSYHm8V<%E*M-FQaC&RwK_t!G~$->0e4Ttzy#6cs`42Hf&Ic zyW$J25fZzZ^ab?cit*mX3X69cmtrwr_Q1JkV;rNYi`}v1KA;T)E#?zlB+8~3hs`Ukp#Egbv&OZ&y!h1C*-xUuL3sGY2k38m z3QeB#B{jM$wm0M2oz9Gq>_V9;d;P9jc_5hW9#-%*Yv{8YV4TY5PEE*A2cha@#Ztq0 zg!U8C$BU+YoVTNPQ2BIpvsDuP`y}qenxvqgQb|skNdt^#%IcD$fHMg6Geg&VA_Qp-LE<>iAZERlI&?5;oNpvr4DM6`Ckdp#-eCo-4ojz28n z4d4mbZ3iYuQ%!hIdOX|~B-e~6B>t4XQpkSi8^9xeTAqAZ&~dqX`%I6=W&7K*q9trM znPEHQW&&o5ALJuAtP&RezMLI$lH)}LtK`q0tj z%$VJFlp8cC;P@^9Nz4MB?-R3+oj%Wvp4V|Q)VIty(GKr<(f_+vRySX$9S+BLuN8dU zXLg|ss__6#*V0e|Zo^c3Z$lJoHO@e-Y~%5}#oB|X(_XZ|OI{%-j+J|gg@$vsrTn;G zcew!D9~S3}UTTg6zm!cN8>nLHU~X;k|B%vJ(Q1+|zbUH+_m%$q%qU(kX2weMQ|k_Y zz$!V;#~Z$~M6SwQo$3SnZq%&pRp|npA#K>Kx*|=$Zpv;HMXW3v7mH$E@&pf9`%Eb` zTE`ap-{i9Je6b5-nx!$@kQ(Iy(lBN9m>?9;PRy#cnauj~>e}<;YvQKId)Q|=<8L)Y zQ!R|HFR_y9o;`?=RLXO}tUUw?k(#%{bf_wF%!=j{Iw)e-7rXDkH3T6A0EthB!N*vs z0MPqwk>_betLDO?i~?UZLp;z+0tyOI|A&~cO6xQip5eosI7v?f(ZoZZU|Ds%KBgAS zw}07z;9u(TdF)2FpQ$lkYtn}SuQ?N3iTRaQGzU21~G*PDOO9^maCc)iWGz}@VpFGAp8NH0-r8VO(GMP(X)$`3vf z@3yCUhiuOb=}hyLcioKkQ?bH!i*=-~=2KE*)xKKi2R+cmx}%c|C!Zt*kqhLwm%+|g ztx>O3SyhTv=sIKMH{*4lf3JhF%+bQHSzGX%&%{u?x~@5%V-;$;+mO=?v(;>x)on+3 z{W#KrT7Gh4@g-7}FII29elhmqxVuJHbd`+IyKfjb0OQ}_YWX~C{ktBXOvVikWtgub zE4>rhC-~yS(;0?PRqsJ-)&4FS-aG`L)@bo?+~m*C_rO(k*RyKR?GgHR_a3A$@yeiE zNNj&8T&$BWDGfh+;ELL{eQMqKR-7|*XwP@OC2F;)s-@M@;lI4v#0_v2w+eU8dlZChuj1atds4|2xih09H5E6C)c%?))?``fJDq|N%sGQC<- z-bEMetGXP0&F{1lmhu%pPKX=GXj%z}rW&uX%7%M0bb zOmi0vTI-#jOoQFN&=nnLY`W{s@f#fi*3Hk>3+uL`v%4qUAW@Q?vqXB@y&K3Ky=!+g zlHBKysKk?SBd@mfcd3r2Yxvq|EO|Al+jc$_qggqL2i@L??BeXp(bg+{9+N!bkPS7W zD=sc-9JJ)viNH$-<87zW?V0T~ilfsxOU0#e|rdD3pbA6G%9K?w;v@+X~a`L1RG5z(U0 ziMi)XZT9wc=i6y7c`H#=LX>4c4o&%EyRrgf(MZS77^x1@F{ppD9K&dCV`a3@%gdo? zCdJaxab()y#)w}j=gz@bKT<;714i{OL9c!KwTFJ@2}iXrot&QfHIY5^%#|KNlGeiobkNivetdlH)hj`pmXkofKHCeKotIiI7iC=}F<`et z$Qu4|`!aG}JnSxa+Pu%9@}LYuT0!jyp3rAt7c0)x)_J$CA;-+U;@ZtiRjg6g;a_qN z)poYJ7ATw@OBd{H<4)e%ZefD>u)lhMlQ@0N11}s&0!5-cE5?sHkyp&HikSu^B}LEo z@D=h|lKRyPAIY0cYM|qEAZSXUy?CK>m27}YOLD9z3~FOrwzM+`v81IO6R*JIm7ElK zf|^%Ax;k^s5ztW0uro|)n2MsGWKSKx-h@TGRsr>Xz5`(;>7I`-^> zn)myHt&e|kNI#aCft`dTT0J8HX{_{5y2O=MU9X7mj(20^?4DKH1%*V*)9NUO8b*Vb zgK}2Fh99(8Y`4B?qon5ere4gPhUK3kh+xb1{fUrR28v0%NPk{2D+>`WF41vY;RlG8 zD+>t(CMy=)Q@D+of!r5?Nqkq8E{6DZXx!E`fCg)3B>Xi?O+)dr7);rBUBeTPa(vZ3 z5dxweUhr)ITHe=^fpsTB6|%9rlgQSEFJJqb(yyC>=j<^3dk|g5&BQ4UVi%Db&ubKs zfMXn>Z~mt|2_knoY87B-`=e5;aPuiJV#A+p+E2$CwZq1P!=|<8ck7)SEi>j4K|!Lh zY@dcJnCe&~(9jzh3I4QJ2EVvQiG&RQqQojFZLB)oSN`vN9u!EL{{QXQ5%18N3pv6Ys|L(akjD>kd9ex+J-`14o`K$q diff --git a/mixer/doc/spatialization-on-strip.png b/mixer/doc/spatialization-on-strip.png deleted file mode 100644 index 4c79d1160d654cfb7b9b967230ddd78741b965b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18010 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�&<3idU%XlLL!UhA47cd41u&36uJ=2QUqNa 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 O0000gNB32C*jkBfoT56C8aQ#J#rh#Kg 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 Y6Yhb<_Ob2npB+GQQp%E*;>Lmh1yrf{S^xk5 diff --git a/mixer/icons/hicolor/128x128/apps/non-mixer.png b/mixer/icons/hicolor/128x128/apps/non-mixer.png deleted file mode 100644 index 1965a23aea9d01398b92c609891a4bb43e6fc44b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10270 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 Y%!KXV5DlefPa^{4KPpR?Ng4$H4>&PBivR!s diff --git a/mixer/icons/hicolor/16x16/apps/non-mixer.png b/mixer/icons/hicolor/16x16/apps/non-mixer.png deleted file mode 100644 index 80c147f9c40a0712304aa2970dcdf6d9e9ddedbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1327 zcmeAS@N?(olHy`uVBq!ia0vp^0w65F1SAhIZYc#)Ea{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ua371Hn({-St3*m`TddJ+#5}k;du^k=y$u>q;6j(za);n0!{_bcgVF#bYykPHrnX8N>00ePh_A zyc2CVCa$?+uy6{m#+sQv>U>^~GXgTcf2)1}mHo(;$e0U9K0kgk@A)&k^Lx+lWM>Qz z`P1*{F19l@TCM2x3#otACA>vS>_vLl^iA}y1+U#BwkmXm*b|Pc3m8;2oKpFjzbXq9k&HeV(6+5BD3{i$0v z-;GPi-z08fJm>1U9;LF~3p;ebWSO+arLVgD!e{II4fWag7w!(8vv&7p(NFz(t#NOv z7K*zUx!r75(Gc_epu_hdvZh=5;Pwe3s*0LI%8EjdBW>E#Kld)D6OgVYg4E~u~Pb-hI zJ^lGQ?0EO}wKiSqOOGwgZceXn_bT_vzkJWF>YnG4&XN!JpQ*CN&fVv0eQWE<;F}BE z4mwVIJ54Y3wAOd&-ubJIy01T3+T8eyLo3W>Z~v;+>!F_>J=x>qz3BFZ3av@PrE+PJ zujje{U;ljRymz-%d6)ICJ^S=;`1+Y_f-Q}VWtFq}4IQ4p;96}K+*aNH&z#h$UibUsVWTAlF&|c)ox8Qo+l;}1q1r@!R@w9u`76HV?fUj(^NTb5Z_1Bv z3OAYZ*nnr>)2%#4ij}UDZN7?D-rTM$B=xj*f4xt&{l8Jrw<_qx$r$hYaPrC3qrruunv)*|#z+0XYrjg=N_q0sNkLPtZ!j~AS|EBLT#B#N#d z>n~MhH8uJe+;q)G;rk+%Kg$`_u1>sA!*pOyyWK zxOo1i)gHS2jO>g1?@ON%^;yby(S7-M-}7fne$8)9Z#lF=ZpF6t!>{l6v^eG8&F9~L zn&(&jvp7c4U%ZzT7`HjdSRR-nY`9d+w)4~u??x6Khxs30PmtfHC~qU19G$#`ze8`C z-IM1ooJ;;o@^#B-XML*g+RtzxVZ|+n4vlVLHdifijVMV;EJ?LWE=mPb3`Pcq#<~VT zWD;U%Vr67%Wo)2pU}0ro;PsvNDvE~O{FKbJO57T(S8dG%YH$PDP+XR7m6TYVs#{u= z$&i+rlWL`}ub+{ho2s9in3JksP?VpppO>Gfo03?rpPN~cTBM(uoS#<=CUuK}YI5{| UM(Fn|f=p!aboFyt=akR{0M1-Dw*UYD diff --git a/mixer/icons/hicolor/192x192/apps/non-mixer.png b/mixer/icons/hicolor/192x192/apps/non-mixer.png deleted file mode 100644 index e2105b19a88ba724cd83c21e346b7b759dfd4e4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17794 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 L^>bP0l+XkKGydow diff --git a/mixer/icons/hicolor/256x256/apps/non-mixer.png b/mixer/icons/hicolor/256x256/apps/non-mixer.png deleted file mode 100644 index 5803329502dcd3adb950f5ad36c1cdad6be56d32..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20201 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 CxO!*+ diff --git a/mixer/icons/hicolor/32x32/apps/non-mixer.png b/mixer/icons/hicolor/32x32/apps/non-mixer.png deleted file mode 100644 index b8e44b388dad278bc643da5a0dbaded7147bae1b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2333 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 diff --git a/mixer/icons/hicolor/36x36/apps/non-mixer.png b/mixer/icons/hicolor/36x36/apps/non-mixer.png deleted file mode 100644 index 0a1dac891cefb70db67487a8e883793656db7803..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3080 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 H*hl;a1e~Xf diff --git a/mixer/icons/hicolor/48x48/apps/non-mixer.png b/mixer/icons/hicolor/48x48/apps/non-mixer.png deleted file mode 100644 index 6230c1f91476d723f68456e0a5cc6f3c6d2ce745..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4176 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 IbxsLQ0C+i_@% diff --git a/mixer/icons/hicolor/64x64/apps/non-mixer.png b/mixer/icons/hicolor/64x64/apps/non-mixer.png deleted file mode 100644 index 24ec27d07ab264853db48f1d7999db0bc5a385da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5137 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 diff --git a/mixer/icons/hicolor/72x72/apps/non-mixer.png b/mixer/icons/hicolor/72x72/apps/non-mixer.png deleted file mode 100644 index 11c6e3c7597bf2690d3cf8f08ff7d342355cf7ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6609 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 diff --git a/mixer/icons/hicolor/96x96/apps/non-mixer.png b/mixer/icons/hicolor/96x96/apps/non-mixer.png deleted file mode 100644 index 2b7a8db0c54ef23b10ff2c76f5d5c003442a2a5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8588 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 - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/mixer/icons/icon-16x16.xpm b/mixer/icons/icon-16x16.xpm deleted file mode 100644 index 9062fa1..0000000 --- a/mixer/icons/icon-16x16.xpm +++ /dev/null @@ -1,774 +0,0 @@ -/* XPM */ -static char *icon_16x16[] = { -/* columns rows colors chars-per-pixel */ -"512 512 256 2 ", -" c #000201B10001", -". c #05970A5D04FE", -"X c #08080B610707", -"o c #09F70C1F09F7", -"O c #05E1106A044B", -"+ c #08271144066D", -"@ c #08B31B1B05B0", -"# c #0CEC119F0C59", -"$ c #0C651B8009E8", -"% c #105919620E7C", -"& c #12E714E912E7", -"* c #169019791650", -"= c #18181D1D1717", -"- c #1B061D321AF0", -"; c #0D4623CE09A6", -": c #11B324240E88", -"> c #11832BD60D46", -", c #0E6432DD0934", -"< c #12EA32D40DAF", -"1 c #132F3E260C6C", -"2 c #17172704144E", -"3 c #1E4C22501DCB", -"4 c #173D37C611F5", -"5 c #1A5C3D4F14A3", -"6 c #1E543E2318F0", -"7 c #20A129FF1E49", -"8 c #20A137571C9C", -"9 c #21B523D621A5", -"0 c #24C229EF239A", -"q c #2B8A2D8C2B8A", -"w c #295C38D225F3", -"e c #2E2A30642E0E", -"r c #30B13ABB2E2E", -"t c #327E34A63258", -"y c #372E393E3729", -"u c #3ABB3BF33ABB", -"i c #157545C60DCE", -"p c #187F59590EA8", -"a c #1B824832142A", -"s c #1BE555301301", -"d c #224A48481BCD", -"f c #255E5A131CD6", -"g c #1E5E62621394", -"h c #1D4B6CBE1150", -"j c #1F1F75751212", -"k c #2558688D1A8F", -"l c #25D469BB1AE1", -"z c #23687EC3157C", -"x c #26B57A1B19BB", -"c c #2A9C467F257B", -"v c #318742982D83", -"b c #2A185874222B", -"n c #378D42423434", -"m c #3F2B404E3F0E", -"M c #3A65555534DF", -"N c #2C9364312309", -"B c #2BD66ACE21BE", -"V c #331969D02976", -"C c #369D76762BF9", -"Z c #395977772ECF", -"A c #41A853863CD6", -"S c #434368BE3B91", -"D c #443A453B443A", -"F c #479D4AF54545", -"G c #4C2D4D334C25", -"H c #494954AA45F0", -"J c #525255554F4F", -"K c #543155325431", -"L c #572C592E5681", -"P c #5B655C665B65", -"I c #4A4A6666446F", -"U c #515171C74A75", -"Y c #5AD165795743", -"T c #59DA777752D2", -"R c #616177775ADB", -"E c #61AA62AB61AA", -"W c #676768686767", -"Q c #6B786C796B78", -"! c #6AA576ED6603", -"~ c #732D742E732D", -"^ c #777778787777", -"/ c #7B207C217B20", -"( c #2B3C8BF21C61", -") c #287E95EB176D", -"_ c #2B8F93BE1B9C", -"` c #30309D9D1F1F", -"' c #2E6EA7D71BAC", -"] c #3123ABAB1E3B", -"[ c #32B3BB3B1D1D", -"{ c #36B786DC298D", -"} c #336293AA23DE", -"| c #345F9C0D23CE", -" . c #3A9E93A12C1E", -".. c #3B9890792DB9", -"X. c #39709A192A18", -"o. c #36B7A7EC249C", -"O. c #34F5AD8D226D", -"+. c #3C9BA4CD2BDB", -"@. c #3CD8AD762AC6", -"#. c #3AB1B7F226EC", -"$. c #4225876A3619", -"%. c #45459A9A36D2", -"&. c #40A0ACAC2F0F", -"*. c #4096B7612D83", -"=. c #4406A2F0340D", -"-. c #44AEAE53336F", -";. c #4747A4A43838", -":. c #4B5AA4493C00", -">. c #4BE9AD513B70", -",. c #47D1B82E35BF", -"<. c #34DFC51A1EC9", -"1. c #22C0FBFB02B4", -"2. c #2727FBFB0808", -"3. c #2B2BFBFB0C45", -"4. c #2EAFFBFB1090", -"5. c #3252FBFB1454", -"6. c #35F6FBFB18D9", -"7. c #3A5AFBFB1CBD", -"8. c #3A69C8992481", -"9. c #3B89D4162424", -"0. c #3EBFD6152767", -"q. c #3E0BE84E248B", -"w. c #3E3EFBFB2121", -"e. c #42E6D43A2C36", -"r. c #449ADD322C82", -"t. c #4A1FC6303621", -"y. c #4A03D44533D0", -"u. c #4B34D6323506", -"i. c #5252D4693D3D", -"p. c #4242F47326A7", -"a. c #4174FBFB24CD", -"s. c #45C5FBFA29A9", -"d. c #4915FBFA2DC6", -"f. c #4B26E60A32A0", -"g. c #4CC3E94B340C", -"h. c #4C19F58E3198", -"j. c #4DADFBFA32B2", -"k. c #5191FBFB36B6", -"l. c #5353F3B33939", -"z. c #55B5FBFB3AFA", -"x. c #58D8FBFB3EBE", -"c. c #4E4A9791413F", -"v. c #4EE899CC420F", -"b. c #552A91BC499F", -"n. c #5D7D888854B4", -"m. c #63A390105A5A", -"M. c #5401A30946B7", -"N. c #5322AD994374", -"B. c #5535AC0B4686", -"V. c #5833ABBD49DC", -"C. c #593EB7304920", -"Z. c #66CDA9425A5A", -"A. c #6CED878765A5", -"S. c #718892636923", -"D. c #7DD3852F7A24", -"F. c #7B3B98987373", -"G. c #7733AE5D6BE5", -"H. c #57E3C80D44E8", -"J. c #5AA6D4CC467B", -"K. c #6161D38A4DE0", -"L. c #6819CF095656", -"P. c #68A2D4FD561C", -"I. c #5ABAE70643E4", -"U. c #5E08F59F459B", -"Y. c #5C8DFBFB4300", -"T. c #6060FBFB4747", -"R. c #63B9F4F44BF6", -"E. c #6449FBFB4BCA", -"W. c #6A25EAEA5499", -"Q. c #6A95F2F2537E", -"!. c #6BCDFBFB53B5", -"~. c #73DAF55B5D5D", -"^. c #7308FBFB5BA3", -"/. c #7E7EC3C37070", -"(. c #774FE836639E", -"). c #7A7AF4F4653A", -"_. c #7777FBFA60B6", -"`. c #7AFDFBFA64E7", -"'. c #7EBEFBFA696A", -"]. c #848498987D7D", -"[. c #8517AFAF7B7B", -"{. c #8767CACA7999", -"}. c #83AFFBFB6DF6", -"|. c #8F8FE4637DFE", -" X c #86C6FBFB71B1", -".X c #8A8AFBFB7575", -"XX c #8DF4FC2E79E0", -"oX c #91BCFCFC7DFE", -"OX c #83B084B183B0", -"+X c #878788888787", -"@X c #8B198C1A8B19", -"#X c #8D5A93C68ABD", -"$X c #909098988A8A", -"%X c #94A495A594A4", -"&X c #9B5D9C5E9B5D", -"*X c #9292B1A189A9", -"=X c #9D1DA5249999", -"-X c #A2A2B2329B5B", -";X c #A3C1A4C2A3C1", -":X c #A7A7A8A8A7A7", -">X c #AC53ACD4AC53", -",X c #AE6EBABAA767", -"XbXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXD.+ W bXKXKXnX~ # %XnXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXcX:X~ y . y / >XbXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX+Xo L cXKXKXnXOX+ X OXnXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXbX>X^ y . . . . . ", -" . . & / bXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX:X. #XKXKXKXKXKXKX#X % xXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxXP O # ~ cXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXX ;XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXX. . . . . ", -" . . @XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXu & nXKXKXKXKXKXKXbX& G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXP . ^ KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJ # cXKXKXKXKXKXKXKX9 u KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXQ W KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXW . xXKXKXKXKXKXKXKXt 0 KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXOX . . . ", -" . D KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXOX G KXKXKXKXKXKXF @XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXbX- r KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX%X u nXKXKXKXKXKXL ^ KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXnX0 9 nXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX:X e bXKXKXKXKXKXW E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy . . . ", -" . . # cXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXnXxX:XJ t ;XnXnX;Xq P 1XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX;X O xXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxX>XP q &XnXnX:Xy G XD m >XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxX. . ", -" . . . . Q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXbXOXD - X & 0 L &XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXr L KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXnX+XG - . . * 9 J %XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXG D KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX#XG 9 & 9 G @XnXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXP . . ", -". . cXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX%X# . . 3 :XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX;X 1XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX;X= = &XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX>X9 . & +XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxX . . ", -" . . . G KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX~ . . @XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX- t KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX+X . . ^ KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXt 0 KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX%X. . W KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXF ", -" . . . %XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX&X . O X. ;XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX~ E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX1X# @XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX+X . . ", -" . xXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX3 q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX&X X =XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXD . o nXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxX . . . ", -" . . . . = KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX:X . X . . %XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX& KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX% >XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX0 . . . . . ", -" . . . cXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX=X . . . ;XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX>X nXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX0 . % nXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXbX >XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxX ~ KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXcX . . ", -" . . . . &XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXW . . E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX~ ;XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX&X . #XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX;X ~ KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX#X . y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX&X . ", -" . . . Y KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq . . . q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXy ! KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE E KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE r KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXK . # nXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXP . . ", -" . . . . X nXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX>X . >XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX1X - KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX/ O Q KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX= . X . . ", -" . . . . . 3 cXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX1X# 3 cXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX>X D KXKXKXKXKXKXKXKXW +XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXcX3 X 1XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXcX* . @XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXbX- ", -" . . . e nXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxX* . & xXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxX- 0 cXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXbX Q KXKXKXKXKXKXKXKX%X X& . . % Xt . 3 +XnXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXbX3 . 1XKXKXKXKXKXKX>X. 3 nXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXbX~ & . r :XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX1Xm . . - @XnXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxXF . . . ", -" . . t D.xXKXKXKXKXKXKXKXKXKXnX>X~ 9 . . . 3 Q XnXKXKXKXKXKXKXKXKXKX1X+Xy . . ", -" . & y K E Q Q P G 9 . . . . # t G E Q Q E G q . . . e D P W Q Q Q Q Q Q Q Q Q Q Q Q ! Q Q Q Q Q Q Q Q Q Q Q Q Q Q W D X y E E 0 # D W Q Q Q Q Q Q Q Q Q Q Q Q Q Q W Q Q Q Q Q ! Q Q Q Q Q Q Q L F r # t G E Q Q E G q X . . . # 0 F P Q W W J e o . . . . . ", -" . . . . . . . . ", -" . . . . . . . . . ", -" . . . . . . . . . . . . ", -" . . . . . . . . . . . . . . . . . . ", -" . . . . . . . . . . . . . . . . . . ", -" . . . . . . . . . . . . . . . . . . . . ", -" . . . . . . . . . . . . . . . . . . ", -" . . . . . . . . . . . . . . . . . . . . . ", -" . . . . . . . . . . . . . . ", -" . . . . . . . . . . . . . . . ", -" . . . . . . . . . . . . . . . . . . . . . . ", -" . . . . . . . . . . . . . . . . . . . . . . . . . ", -" . . . . . . . . . . . . . . . . ", -" . . . . . . . . . . . . . . . . . ", -" . . . . . . . . . . . . . ", -"H . . . . . . . . . . . . . . . . H ", -"UXvXK . . . . . . . . . . . . . . . . . . . . . . . . J vXUX", -"UXUXUXxXH . . . . . . . . . . . . . . . . . H xXUXUXUX", -"UXUXIXIXUX1Xn . . . . . . . . . . . . . . . . . . m 1XUXUXUXUXUX", -"UXUXUXUXUXUXUX,Xt . . . . . . . . . . . . . . . . . t ,XUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUX,Xr . . . . . . . . . . . . . . . . e ,XUXUXUXUXUXUXUXUXUX", -"UXUXUXUXIXUXUXUXUXUXIX=X0 . . . . . . . . . . . . . . . . . . w -XIXIXIXUXUXUXUXIXUXIXIX", -"UXIXIXIXIXUXIXIXIXUXIXIXIX=X9 . . . . . . . . . . . . . . . . . 9 =XPXUXIXIXIXUXUXIXIXIXIXUXIX", -"IXIXIXIXIXIXIXIXIXIXIXIXIXIXPX$X3 . . . . . . . . . . . . . . . . . = $XLXIXIXIXIXIXIXIXIXIXIXIXIXIXIX", -"IXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXPX$X= . . . . . . . . . . * $XPXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIX", -"PXIXPXIXIXIXIXIXIXPXIXIXPXIXIXPXPXIXDXD.% . . . . . . . . . . . . . . . . . . . . . . . % D.DXIXPXIXIXIXIXPXIXIXIXPXIXIXIXPXIXIXIX", -"IXPXIXPXIXJXIXIXIXPXPXPXIXPXIXPXPXIXIXPXDX].o . . . . . . . . . . . . . . . . . # D.DXIXIXIXPXIXPXPXPXIXPXPXPXPXPXPXIXPXIXPXPX", -"JXPXIXPXPXPXPXPXPXPXPXIXPXPXPXPXPXPXPXPXPXIXAX! + . . . . . . . . . . . . . . . . . . X ~ AXLXLXPXPXPXIXIXPXPXPXPXPXPXPXPXIXPXPXPXPXPXPX", -"PXPXPXJXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXLXLXPXAX! O . . . . . . . . . . . . X ! AXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX", -"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXvXY . . . . . . . . . . . . . . . . . . . . . . Y vXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPX", -"PXPXJXPXPXPXJXPXPXPXJXPXPXPXJXPXPXPXJXPXPXPXPXPXPXPXPXPXvXL . . . . . . . . . . . . . R vXPXJXPXPXJXPXPXPXJXPXPXPXJXPXJXPXPXPXPXJXPXJXPXPXJXPXPXPX", -"JXJXPXPXJXJXJXPXJXJXPXPXJXJXJXPXJXJXPXJXJXPXJXJXJXPXJXPXJXPXgXH . . . . . . . . . . . J gXPXJXJXPXPXJXJXPXPXJXPXJXPXJXJXJXPXJXPXJXPXPXPXJXPXPXJXJXPXJX", -"JXJXJXJXPXJXPXJXJXJXJXJXPXJXPXJXJXPXJXJXJXPXJXPXJXJXJXJXJXJXJXPXuXD . . . . . . . . . . . . . . . . . . . F 1XJXJXJXPXJXJXJXJXJXJXJXJXJXJXJXJXJXPXJXJXJXJXJXJXJXJXJXJXJXPXJXJX", -"PXJXJXJXJXJXJXJXPXJXJXJXJXJXJXJXJXJXPXJXJXJXJXJXPXJXJXJXPXJXJXJXPXJXuXn . . . . . . . . . . . . . . m uXJXJXJXJXJXJXJXJXPXJXJXJXPXJXPXJXJXJXJXJXPXJXPXJXJXJXJXJXJXJXJXJXJXPX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX,Xr . . . . . . . . . . . . . . . . . . r ,XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"HXJXJXJXJXJXJXJXJXJXHXPXJXJXHXJXJXJXHXJXJXHXJXJXJXHXJXJXJXJXJXJXPXHXJXJXJXHX,Xq . . . . . . . . . . . . . . e ,XHXJXJXJXJXJXJXHXJXJXJXJXJXHXHXJXHXPXJXJXJXJXJXJXHXJXJXJXHXJXJXHXJXJXJXJXHXJX", -"HXJXHXHXHXHXHXJXHXHXJXHXHXHXJXJXHXJXJXHXJXHXHXJXHXJXHXJXHXHXHXHXHXJXHXJXHXJXJXHX=X7 . . . . . . . . . . . . . . . . . . 7 -XHXHXHXHXJXHXHXHXHXJXHXHXHXJXHXJXJXJXHXHXHXHXHXHXHXJXJXHXJXHXJXHXHXJXHXJXHXJXJXHX", -"JXHXHXJXJXHXHXHXJXHXPXHXHXJXJXHXHXJXHXJXJXJXJXHXJXJXHXHXJXJXJXHXJXHXHXPXJXJXHXHXHXHX-X3 . . . . . . . . . . . . . . 3 -XGXHXHXPXHXJXHXJXJXJXJXHXHXJXHXJXHXHXHXJXPXHXHXJXHXHXHXJXHXJXHXJXHXHXJXJXHXHXJXHXHXJX", -"JXHXHXJXHXHXHXHXJXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXJXHXHXHXHXHXHXHXHXHXHXHXJXHXHXHXSX#X3 . . . . . . . . . . . . 2 $XSXJXHXHXJXHXHXHXHXHXHXHXHXHXHXJXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXJXHXHXHXHXHXHXJXHXJXHXHX", -"HXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXFX#X* . . . . . . . . . . . . . . . * #XFXHXHXHXHXHXHXHXHXHXHXHXHXHXJXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXJXHXHXHXHXHXHXHXHXHXHXHXHXHXHX", -"HXHXHXHXHXHXHXHXHXHXFXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXFXHXHXFXHXHXHXHXHXHXHXHXHXHXAXF.# . . . . . . . . . . . . . . . # D.AXHXHXFXGXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHX", -"HXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXAXD.# . . . . . . . . . . . . . . . . . # D.AXHXFXFXHXHXFXHXHXHXHXHXHXHXHXHXHXFXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXFXHXHXHXHXHXHXHXHXHXHXFX", -"HXHXHXHXHXHXHXFXHXHXFXHXHXFXHXFXHXHXHXFXHXFXFXHXFXHXHXFXFXHXFXHXHXFXHXFXHXFXFXHXHXHXGXHXFXHXFXFXSXHXFXmX! + . . . . . . . . . . . . # ! mXFXFXHXFXHXHXFXHXHXHXHXFXHXFXHXFXFXHXHXHXHXHXHXHXHXHXFXHXHXFXHXHXFXHXHXFXHXFXHXHXFXHXHXHXFXHXHXFXHXFXHX", -"HXFXHXFXHXHXFXHXFXFXFXFXHXFXHXHXFXHXHXHXHXFXFXHXHXFXHXFXHXFXHXFXHXFXHXHXFXHXFXHXHXHXHXFXFXHXHXFXHXHXHXHXHXmX! . . . . . . . . . . . . . X ! mXSXHXHXFXHXHXHXFXHXHXFXHXHXFXFXHXFXFXHXFXFXFXHXFXHXHXHXFXHXFXHXFXHXHXFXHXFXFXHXHXHXHXFXFXFXFXHXHXFXHXHXFXHX", -"FXFXFXHXFXFXFXFXFXFXFXHXHXFXFXFXFXFXFXFXFXHXFXFXFXFXFXHXFXFXHXFXFXFXFXFXFXFXHXFXFXFXFXHXFXFXFXFXFXFXSXHXSXHXGXhXY . . . . . . . . . . . . . . . . . Y gXHXFXHXFXHXFXFXFXFXFXFXFXFXFXFXFXHXFXFXHXFXFXHXFXFXHXFXFXFXFXFXHXFXFXFXFXFXFXHXFXFXFXFXFXHXFXFXFXFXFXHXFXFXFXFX", -"FXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXHXSXHXSXFXgXP o . . . . . . . . . . . . . . . . . . . X Y gXFXSXHXSXHXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFX", -"FXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXSXHXSXHXFXFXHXuXJ . . . . . . . . . . . H uXHXSXHXHXSXHXSXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFX", -"FXFXSXFXFXFXFXFXFXFXSXFXFXFXSXFXFXFXFXFXFXFXFXFXSXFXFXFXFXFXSXFXFXSXFXFXFXFXSXFXSXFXFXFXFXFXFXFXFXFXFXSXFXHXSXFXFXFXFXFXSXuXD o . . . . . . . . . . . . . . I uXHXSXHXFXSXSXFXHXSXFXFXFXSXFXFXFXFXSXFXFXFXFXFXFXSXFXFXFXSXSXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXSXFXFXFXFXFXFXFXFXFXSX", -"SXSXFXFXFXSXFXSXFXSXFXSXSXSXFXFXFXSXSXSXSXFXSXSXFXFXSXFXSXFXSXFXFXFXSXFXSXSXFXFXFXSXFXSXSXFXSXFXSXFXSXHXSXSXFXSXSXFXSXFXSXFXSX,Xn . . . . . . . . . . . . n ,XFXSXHXSXSXSXHXSXSXSXSXSXSXFXFXSXSXFXSXFXSXSXFXSXFXFXFXFXSXFXSXFXFXSXFXFXSXSXSXFXSXSXSXSXSXSXFXFXSXFXSXFXFXSXFXSXFXSXSXSXFXSXFX", -"SXSXFXSXSXFXSXSXSXFXSXSXSXFXFXSXFXSXSXFXSXSXSXFXSXSXSXSXSXFXSXSXSXSXSXFXSXFXFXSXSXSXSXSXSXSXFXSXSXSXSXSXSXHXSXSXFXSXSXSXSXSXSXSXSX-Xr . . . . . . . . . . . . . . . . e -XFXSXFXSXSXSXSXFXSXSXSXSXSXSXSXFXSXSXSXFXFXSXSXSXSXSXSXFXSXSXFXSXFXSXSXSXSXSXSXSXSXSXFXSXSXFXSXFXSXFXSXSXSXSXSXSXSXSXSXSXFXFXSXSXFX", -"FXSXSXSXSXSXSXSXSXFXSXFXSXSXSXSXSXSXSXSXFXSXSXSXSXSXFXSXSXSXSXFXSXFXSXSXSXSXSXSXFXFXSXSXFXSXSXSXSXFXSXSXSXSXSXSXSXSXFXSXFXSXSXSXSXFXSX4Xw . . . . . . . . . . r 4XSXSXSXSXSXSXSXSXSXSXSXFXSXSXHXFXSXSXSXFXSXSXSXSXFXSXFXFXSXSXSXSXSXSXSXSXSXSXSXFXSXSXFXSXSXFXFXSXSXSXSXSXSXFXSXFXSXSXFXSXSXSXSXSXSXSXSX", -"SXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSX*X7 . . . . . . . . . . . . 9 *XAXFXZXZXFXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXZXSXSXSXZXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSX", -"SXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXZXSXSXZXSXSXSXSXSXSXZXSXSXSXSXSXSXSXSXSXSXSXSXSXZXSXSXSXSXSXSXSXSXSXSXSXSXSXZXZXSXSXSXSXSXSXSXSXSXZX*X7 . . . . . . . . . . . . . . . 7 *XZXSXSXZXFXSXFXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXZXSXSXSXSXZXSXSXSXSXSXZXSXSXSXSXZXSXSXSXSXSXSXSXSX", -"ZXSXZXSXZXSXSXSXZXSXZXSXZXSXZXSXZXSXZXSXSXSXSXSXSXSXSXZXZXSXSXZXSXZXZXSXZXSXSXSXZXSXSXSXZXSXSXZXSXZXZXSXZXSXSXSXSXZXSXSXSXSXSXSXSXZXSXSXSXZXSXSXVX].* . . . . . . . . . . . * ].ZXZXFXSXZXSXZXZXZXSXZXSXZXZXSXSXZXZXSXSXSXZXSXSXSXZXSXSXZXSXSXSXSXSXSXSXSXZXSXZXSXSXSXSXSXSXCXSXSXZXSXSXZXSXSXZXSXZXSXSXZXSXSXZXSXSXSXZXZXSXSXZXSX", -"SXSXZXSXSXZXSXSXSXZXSXZXSXZXSXZXSXSXSXSXSXZXZXSXZXZXSXSXSXSXZXSXZXSXSXZXSXSXZXSXSXZXZXSXSXSXZXSXZXSXSXSXSXZXSXZXSXSXSXZXZXSXZXZXSXSXSXZXSXSXZXZXSXSXVX].= . . . . . . . . . . . . . = ].CXSXSXZXFXZXSXZXFXSXSXZXSXZXSXSXZXSXZXSXZXZXSXSXZXZXSXSXZXSXZXSXZXZXSXSXZXZXSXSXZXSXSXSXZXSXZXSXSXSXZXSXZXSXSXZXSXSXZXSXZXSXSXZXSXSXSXZXSXSXSXZXZXSXZX", -"ZXSXSXSXCXSXSXCXSXZXSXZXZXSXZXSXZXZXSXZXZXSXZXZXZXSXZXZXSXZXZXSXSXZXZXSXZXSXZXZXZXZXZXZXZXSXZXZXZXZXSXZXZXSXZXZXZXZXSXZXZXSXZXSXZXZXSXZXZXSXZXSXZXSXZXZXVXA.& . . . . . . . . . . . . # A.VXZXSXZXSXZXZXZXSXSXZXZXZXSXZXSXZXZXSXZXSXZXSXZXSXZXSXZXSXZXSXZXSXZXSXZXSXZXSXZXSXZXZXSXZXSXZXSXSXSXCXSXSXSXZXZXSXZXSXZXSXZXSXZXZXSXZXSXZXZXSXSXZXZXZXZXSX", -"SXCXCXSXSXCXSXCXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXSXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXmXA.o . . . . . . . . . o S.mXSXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXCXSXCXCXCXSXSXCXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXSXZXZX", -"CXCXSXZXCXZXCXSXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXSXZXhX! + . . . . . . . . . . # ! hXZXZXCXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXCXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXCXZXZXZXZXZXZXZXZXZXZXZXCXSXZXCXCXCXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXCXZXZXZXZX", -"CXSXCXZXSXCXSXCXZXZXCXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXhX! + . . . . . . . . . . . . . . . . . O R hXCXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXCXZXZXCXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXCXZXSXCXZXSXCXSXZXCXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZX", -"CXZXCXZXCXZXZXZXCXZXZXCXZXZXZXCXZXZXCXZXCXZXZXZXCXZXCXZXCXZXCXZXZXCXZXZXZXZXZXCXZXZXZXCXZXCXZXZXCXZXZXZXCXZXZXZXZXZXCXZXZXZXZXZXZXZXZXCXCXZXCXZXZXZXCXZXZXZXCXZXZXCXZXZXhXI . . . . . . . . . . . . . o o U gXZXZXZXZXZXZXZXCXZXCXZXZXZXZXZXCXZXCXZXZXCXZXZXZXCXZXCXZXZXCXZXZXZXCXZXZXZXCXZXCXZXZXZXCXZXZXZXZXCXZXZXCXZXSXCXCXZXCXZXZXZXZXZXCXZXCXZXZXCXZXCXZXCXZXCXCXCXZXZXZXCXZXCXZX", -"ZXCXZXZXZXCXCXCXCXCXCXZXCXCXZXCXCXCXCXZXCXCXCXZXZXZXCXZXZXCXZXZXCXZXCXCXCXCXCXCXCXCXCXZXCXZXCXCXCXCXCXCXZXCXCXZXCXCXCXZXCXCXCXCXCXCXCXZXCXZXCXZXCXCXZXCXCXCXCXCXZXCXCXCXZXZXgXI . . . . . . . . . . . . . . . L gXCXZXCXCXCXCXCXCXZXCXCXCXCXCXCXCXZXCXCXCXCXCXCXCXCXZXCXZXCXCXCXZXCXCXZXCXCXCXCXZXZXCXCXCXZXCXCXCXCXCXCXCXZXCXCXCXCXCXCXZXCXCXCXCXCXCXCXZXCXCXZXZXCXZXZXZXCXCXZXCXCXZXZXCXCXCX", -"CXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXZXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXZXCXCXCXuXH . . . . . . . . . H uXBXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCX", -"CXCXCXCXCXCXCXCXCXZXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXZXCXCXCXCXCXCXCXCXCXCXZXCXCXCXCXCXCXCXCXCXuXH . . . . . . . H uXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXZXCXCXCXCXCXZXCXCXCXCXCXCXCXCXCXCXCXZXCXCXCXCXCXCXCXCXCXCXCXZXCXCXZXCXCXCXCXCXZXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCX", -"CXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXBXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCX4Xy . . . . . . . . . . . . . . n 4XCXCXCXCXCXCXCXCXCXCXBXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXBXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXBXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXCXBXCXCXCXCXCX", -"CXBXBXCXCXCXCXBXCXBXCXCXCXCXBXCXCXCXBXCXBXCXCXCXCXBXBXCXBXCXCXBXCXCXCXBXCXCXCXCXCXBXCXCXCXCXBXCXCXCXCXCXCXBXCXCXCXCXBXCXCXCXCXCXCXCXCXBXBXCXCXBXCXCXBXCXCXCXCXCXBXCXCXBXCXBXCXCXCXCXBXCXBXCX-Xw . . . . . . . . . . . r 4XCXCXBXCXBXCXCXBXCXCXCXCXCXCXCXCXCXCXCXBXCXCXCXCXBXCXCXCXCXCXCXCXBXCXCXCXCXCXCXCXBXCXCXCXCXCXCXCXBXCXCXCXCXBXCXCXCXBXBXCXCXCXCXCXBXCXCXCXBXCXCXCXBXCXCXCXCXCXCXBXBXCXBXCXCXCXBXCXCXCXCXCXCXCX", -"CXBXCXBXCXBXBXCXBXCXCXBXCXBXCXBXBXCXBXCXCXBXCXBXCXBXCXBXBXCXBXCXCXCXBXCXCXBXBXCXBXCXCXBXCXBXCXBXCXBXBXCXBXBXCXBXCXBXCXBXCXBXBXCXBXCXBXCXBXCXBXCXBXBXCXCXCXCXBXCXBXCXBXCXBXCXBXCXBXCXCXBXBXCXBXCX2Xq . . . . . . . . . . . . . . w 2XCXCXCXBXCXBXCXCXCXCXBXCXCXBXBXCXBXCXCXCXBXCXBXCXBXCXCXCXBXBXCXCXBXCXBXCXBXCXBXBXCXBXBXCXBXCXCXBXBXBXCXBXBXCXBXCXCXBXBXCXCXBXBXCXBXCXBXCXBXBXCXCXBXCXCXCXBXCXBXBXBXCXCXBXCXCXCXBXBXCXBXCXBXCXBXBX", -"BXCXBXBXBXCXBXBXBXBXBXBXBXCXBXBXCXBXBXBXCXBXBXBXBXCXBXBXCXBXBXBXBXBXBXBXBXBXCXBXBXBXBXBXBXCXBXBXBXCXBXBXBXCXBXBXBXCXBXBXBXCXBXBXCXBXBXBXCXBXBXBXCXBXBXBXBXBXBXBXCXBXBXBXBXBXCXBXBXCXBXBXCXBXBXBXCXMX*X8 . . . . . . . . . . . 7 *XBXCXBXBXBXBXCXBXBXBXBXBXBXBXBXCXBXBXBXBXBXBXCXBXBXBXBXBXBXBXBXCXBXBXBXBXCXBXBXBXCXBXBXBXCXBXBXBXBXBXCXBXBXBXCXBXBXBXBXCXBXBXCXBXCXBXBXBXCXBXBXCXBXBXBXBXBXBXBXBXCXBXBXBXCXBXBXBXBXCXBXBXCXBXBXBXCXBX", -"BXBXBXBXBXBXBXBXBXBXCXBXBXBXBXCXBXBXBXBXCXBXBXCXBXBXCXBXBXBXBXCXBXBXBXBXCXBXBXCXBXBXBXBXCXBXBXBXBXCXBXBXBXCXBXBXCXBXBXBXCXBXCXBXBXBXBXBXCXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXCXBXBXCXBXBXBXBXCXBXCXBXBX*X3 . . . . . . . . . . . . . . . 3 *XMXBXBXCXBXBXBXBXBXBXBXBXBXBXBXBXBXBXCXBXBXCXBXBXBXBXCXBXCXBXBXBXBXCXBXBXBXCXBXBXBXCXBXBXCXBXCXBXBXCXBXBXBXBXCXBXBXBXBXCXBXBXBXCXBXBXCXBXCXBXBXBXBXBXCXBXCXBXBXBXBXCXBXBXCXBXBXCXBXBXBXCXBXBXBXBXBXCXBXBX", -"BXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXkXF.= . . . . . . . . . * ].zXBXMXCXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBX", -"BXBXBXBXBXBXBXBXBXBXBXBXBXBXNXBXBXBXBXBXBXBXBXNXBXBXBXBXBXBXNXBXBXBXNXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXNXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXNXBXBXBXBXBXBXBXBXMXF.* . . . . . . . % F.zXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXNXBXNXBXBXBXBXBXBXNXBXBXBXBXNXBXBXBXBXBXBXNXBXBXBXBXBXBXBXBXBXNXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXNXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBXBX", -"BXBXBXBXNXBXBXBXNXBXNXBXBXBXBXNXBXNXBXNXNXBXNXBXNXBXNXBXBXBXBXNXBXBXBXNXNXNXBXNXBXNXBXNXBXNXNXBXNXBXNXBXBXBXBXNXBXzXBXNXNXBXzXBXBXNXNXBXNXBXNXBXBXNXNXBXBXBXBXNXBXBXNXBXNXBXNXBXNXBXNXBXBXBXBXNXMXBXMXNXNXMXBXBXBXMXA.# . . . . . . . . . . . & A.kXBXBXzXBXBXNXNXBXNXBXzXBXBXBXBXBXBXzXBXBXBXNXBXNXBXBXNXNXBXNXBXBXBXNXBXBXNXBXNXNXBXBXBXNXBXBXBXBXzXNXBXzXBXBXBXBXNXBXBXzXBXBXBXBXNXNXBXBXzXNXBXNXBXBXNXNXBXNXBXBXNXNXNXBXNXBXNXNXBXNXBXNXNXBXNXNXBXBXNXNXBXNXBXNXBX", -"NXBXNXBXBXBXBXNXBXNXBXBXBXBXBXBXBXNXBXNXBXBXBXNXBXNXBXNXBXBXBXBXBXBXNXBXBXBXNXBXBXBXNXBXBXNXNXBXNXBXBXBXNXBXNXBXNXBXBXBXBXzXzXBXBXNXBXNXBXBXBXNXNXBXNXBXNXBXBXBXNXBXBXNXNXBXBXNXBXNXBXBXBXBXBXBXBXBXzXBXBXBXNXBXNXBXBXhXA.# . . . . . . . . . . . . + A.kXBXBXBXNXBXNXBXBXBXBXzXzXBXBXBXBXBXBXBXBXBXzXBXBXBXBXNXNXBXNXBXNXBXNXNXBXBXBXNXBXBXNXBXNXBXBXBXNXBXBXBXNXBXBXBXzXBXzXBXBXNXBXBXzXBXBXBXBXBXNXBXBXNXBXNXNXBXBXNXBXNXBXBXBXBXNXBXNXBXNXNXBXNXBXBXNXBXBXNXBXBXNXBXNXBXNXBX", -"NXBXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXBXNXNXNXNXNXNXNXNXNXBXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXBXNXNXBXNXNXNXNXBXNXNXBXNXzXBXBXBXBXBXNXBXNXBXzXBXBXNXBXNXNXNXNXNXNXNXNXNXNXBXNXNXNXNXNXNXNXNXNXNXNXNXzXNXBXBXNXNXNXNXNXBXNXNXBXhXR o . . . . # n.hXNXNXMXzXBXNXBXNXNXzXBXBXBXBXBXBXzXzXBXzXBXzXBXBXBXBXzXNXBXBXNXNXNXBXNXNXBXNXNXNXBXNXNXNXNXNXNXBXzXBXzXNXBXBXNXNXNXBXBXzXBXNXBXzXBXBXBXzXBXBXzXBXNXBXNXNXBXNXNXBXNXNXBXNXNXNXNXNXNXBXNXNXBXNXNXNXNXNXNXNXNXNXNXNXNXNXBXNXNX", -"NXNXNXNXNXNXNXBXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXBXNXNXNXNXNXNXNXNXNXNXBXNXNXNXNXNXBXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXBXNXzXBXzXBXzXBXNXNXNXNXNXNXzXBXNXNXNXBXNXNXNXNXBXNXNXNXNXNXBXNXNXNXNXNXNXNXNXNXBXzXBXNXBXNXNXNXNXNXNXNXNXNXNXiXR . . . . . . . . . R iXMXBXNXBXBXzXBXNXNXNXNXNXBXzXBXBXzXzXBXBXzXBXzXBXBXBXBXzXBXNXNXNXNXNXNXNXNXNXNXNXNXNXNXBXNXNXNXNXNXNXBXNXNXBXNXNXNXNXNXNXNXBXNXNXNXzXBXzXBXBXzXzXBXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXBXNXNXNXNXNXNXNXBXNXNXNXNXNXBXNXNXNXBXNXNXNXNX", -"NXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXzXBXzXBXzXBXzXNXNXNXNXNXNXNXzXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXzXBXzXBXzXNXNXNXNXNXNXNXNXNXNXNXzXiXU . . . . . . . . . . . . . . . . . I iXNXBXMXzXBXzXNXBXzXNXNXNXNXNXNXNXzXBXzXBXBXzXBXBXzXzXzXzXzXBXzXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXzXNXNXNXNXNXNXzXBXzXNXNXNXNXNXNXBXzXNXBXzXBXzXBXzXBXzXBXzXNXNXzXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNX", -"NXNXNXNXNXNXNXNXNXNXNXNXNXNXNXzXNXNXNXzXBXNXNXNXNXBXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXzXNXNXNXNXNXBXzXBXzXzXBXzXBXzXBXzXBXNXNXNXNXzXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXBXNXNXNXNXBXNXNXNXNXNXzXBXNXNXNXNXNXNXNXNXNXzXNXNXNXNXNXMXNXNXuXU . . . . . . . . . . I uXNXNXNXzXNXNXNXzXNXNXNXNXNXBXNXNXNXNXNXBXzXBXzXBXzXzXBXzXBXzXBXBXBXBXBXNXNXBXNXNXNXNXNXNXNXNXNXzXBXNXNXNXNXNXNXNXzXNXNXNXNXNXNXNXBXNXNXBXzXBXzXBXzXzXBXNXzXNXBXzXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXBXzXNXNXNXNXNXNXNXNXNXNXNXNX", -"NXNXNXNXNXNXNXzXNXNXNXzXNXNXNXNXNXNXNXNXzXNXzXNXNXzXNXzXNXNXzXNXNXzXNXNXNXzXNXNXzXNXzXNXNXNXNXNXzXNXNXNXzXBXzXBXBXzXBXzXBXzXBXzXNXzXNXNXNXNXNXNXzXNXNXNXNXNXzXNXNXNXNXzXzXNXzXNXNXzXNXzXNXNXNXNXzXNXBXzXNXNXzXNXNXNXNXNXNXNXNXzXMXMXNXzXNX4XH . . . . . . . . . H uXNXNXNXNXNXNXNXNXNXNXNXNXNXzXNXzXNXzXNXBXzXzXBXzXBXzXBXBXzXBXzXBXzXzXzXzXzXNXNXzXNXzXNXzXNXzXNXNXNXNXzXNXNXzXNXNXNXNXNXNXNXNXzXzXBXNXzXNXzXzXBXzXBXzXBXBXzXNXBXzXzXNXBXzXNXNXNXNXNXzXNXzXNXzXNXNXNXNXzXNXNXNXNXzXBXNXzXNXNXNXNXNXNXNXNXNXlX", -"NXNXlXNXNXzXzXNXNXzXzXNXNXzXNXNXNXNXNXzXNXNXNXzXBXzXzXNXzXNXNXNXzXNXzXNXNXNXNXNXzXNXNXzXNXNXzXNXzXNXzXzXzXzXzXBXzXzXzXzXzXBXBXzXNXNXzXNXNXNXzXNXzXNXzXNXNXzXNXlXNXzXzXNXNXNXNXzXzXBXzXNXNXzXNXNXzXBXzXzXzXNXNXNXNXNXzXNXNXzXzXNXNXzXzXNXzXNXNX5XA . . . . . . . I 4XNXzXNXNXNXNXNXNXzXNXzXNXzXNXzXNXNXzXNXzXBXzXzXzXzXzXzXzXBXzXBXzXzXzXBXzXzXBXzXzXNXNXNXzXNXNXzXNXNXzXzXNXNXNXNXNXzXNXzXNXzXNXNXzXzXNXNXzXBXzXNXBXzXzXBXzXBXzXBXzXNXBXzXzXNXBXzXzXzXNXNXzXNXNXzXNXNXzXNXNXNXzXzXzXzXNXzXzXNXzXNXNXNXNXNXlXNXNXNX", -"zXlXNXzXzXNXzXzXzXNXzXzXNXzXzXzXzXzXNXzXzXzXzXzXzXNXzXzXNXzXzXzXzXNXzXzXzXzXzXzXzXzXNXzXzXzXNXzXzXzXNXzXzXBXzXzXzXBXzXzXzXzXzXzXzXzXzXzXzXNXzXNXzXNXzXzXNXlXNXNXzXNXzXzXzXzXzXzXzXzXzXzXNXzXzXzXzXzXNXzXNXzXzXzXzXzXNXzXzXNXzXzXzXNXzXzXNXzXNXNXzX4Xn . . . . . . . . . . n 2XzXzXzXNXzXNXlXNXfXlXNXNXzXzXNXNXzXzXzXNXzXzXzXNXzXBXzXzXzXzXzXzXzXzXzXzXzXBXzXzXzXzXzXzXzXzXzXNXzXzXNXzXzXzXzXzXzXNXzXzXzXNXzXzXzXzXNXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXNXzXzXzXzXzXNXzXzXzXzXNXzXzXzXNXzXzXzXzXNXzXNXzXNXzXzXNXzXNXlXNXlXNXNXNXlX", -"zXzXzXzXNXzXzXzXzXNXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXNXzXzXzXNXzXzXzXNXzXzXzXzXzXzXzXNXzXzXzXzXzXzXzXBXzXzXzXzXzXzXzXzXzXzXzXzXNXzXzXNXzXNXNXlXNXlXNXzXNXzXzXzXzXzXzXzXNXzXzXzXzXzXzXzXzXzXzXzXNXzXNXzXzXNXlXNXNXzXNXNXzXzXNXzXNXNXzXNXzXzX2Xn . . . . . . r 4XzXzXMXzXzXzXNXzXNXzXNXNXNXlXNXzXNXzXNXzXMXzXzXzXzXBXzXzXzXzXzXzXzXzXzXzXBXzXzXzXzXzXzXzXzXzXzXBXzXzXzXzXzXzXzXzXzXzXzXzXNXzXzXzXzXzXNXzXzXzXzXzXBXzXzXzXzXzXzXzXzXzXzXzXBXzXzXzXzXzXzXzXzXzXzXNXzXzXBXzXzXzXNXzXzXzXzXzXBXzXzXzXzXzXzXzXNXzXzXlXNXlXNX", -"zXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXlXNXNXlXNXlXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXNXzXNXlXNXfXNXlXzXzXzXzXzXzXzXzXzXzXzXzXNX*Xw . . . . . . . . 0 2XzXlXzXzXzXzXzXzXzXzXzXzXzXlXNXNXlXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXNXlXNXlX", -"zXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXlXlXNXNXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXlXzXzXNXNXNXfXNXzXzXzXzXzXzXzXzXzXzXzXzXzXzXlX[.7 . . . . . . . . . 0 *XlXzXzXzXzXzXzXzXzXzXzXzXzXNXlXlXNXfXNXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXlXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXlXzX", -"zXzXlXzXzXzXzXlXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXlXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXlXzXzXlXlXlXNXfXNXzXzXlXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXlXzXlXzXlXzXfXNXNXlXzXzXlXzXzXlXzXlXzXzXlXzXzXzXzXlXlX[.7 . . . . . . . . . . . . . . . 3 [.lXzXlXzXlXzXzXlXzXlXzXzXlXzXlXzXlXlXNXfXNXzXlXzXlXzXzXlXzXlXzXzXzXzXzXzXzXzXzXzXlXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXlXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXzXlXzXlXzXzXzXzXzXzXzXzXzXlXzXzXzXzXzXzXzXzXzXzXzXlXzXlXzXzXzXzXzXlXzXzXlX", -"lXlXlXlXlXNXlXlXNXlXlXNXlXlXlXNXlXlXlXlXlXlXlXNXlXlXNXlXlXNXlXlXlXlXNXlXlXNXlXlXlXNXlXlXlXlXlXlXNXlXlXlXlXlXlXlXlXlXlXlXNXlXlXlXlXlXNXlXlXzXzXlXNXlXlXlXlXlXlXlXlXlXlXlXlXNXlXlXNXlXlXNXlXlXlXlXzXlXzXlXzXlXzXlXlXzXlXzXlXzXlXzXlXlXzXlXzXlXzXlXlXzXlXzXlXzXlXlXzXlXjXF.= . . . . . . . : F.jXlXzXlXlXlXzXlXlXzXlXlXzXlXlXzXlXlXlXzXlXlXzXzXlXlXzXlXlXlXzXlXlXzXlXlXlXNXlXlXNXNXlXlXlXNXlXlXlXlXlXlXlXNXlXlXNXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXNXlXlXNXlXlXlXlXNXlXlXNXlXlXNXlXlXlXlXlXlXlXlXlXNXlXlXNXlXlXlXlXlXlXlXlXNXlXlXlXNXNXlXlXNXlXlXlXlXlXlXlXlXlXlXlXlXlXlX", -"lXlXNXlXlXlXlXNXlXlXlXlXNXlXlXlXlXNXlXlXNXlXlXlXNXlXlXlXlXlXlXlXNXlXlXlXlXlXlXlXlXlXlXNXlXlXNXlXlXlXlXNXlXlXNXlXlXlXNXlXlXlXlXlXNXlXlXlXzXlXlXlXlXlXlXNXlXlXNXlXlXlXNXlXlXlXlXlXlXlXlXlXlXNXlXlXlXzXlXzXlXzXlXlXlXlXzXlXzXlXzXlXzXzXlXzXlXzXlXlXlXlXzXlXzXlXzXlXlXzXlXlXjXF.% . . . . . . . . . . * F.kXlXlXzXlXlXzXlXzXzXlXlXzXlXzXzXlXzXlXzXlXlXzXzXlXlXzXzXlXlXzXzXlXlXzXzXlXlXlXlXlXlXlXlXlXlXlXlXlXNXlXlXNXNXlXlXlXlXlXlXlXlXlXlXNXNXlXlXlXNXlXlXNXlXlXlXlXlXlXNXlXlXlXlXlXlXlXlXlXlXlXlXNXlXNXNXlXlXlXlXlXlXlXNXlXlXNXNXlXlXlXlXlXlXlXlXlXlXlXlXlXlXNXNXlXNXlXNXlXlXNXlXlX", -"lXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXzXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXdXA.# . . . . . # A.dXlXlXlXlXlXlXlXlXlXlXlXlXlXlXzXlXzXzXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXjXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXjXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlX", -"lXlXlXlXlXlXlXlXjXlXlXlXlXjXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXjXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXdXA.# . . . . . . . . . # A.dXjXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXzXfXzXlXlXlXlXlXlXlXlXzXzXfXzXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXjXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXjXlXlXlXlXlXlXlX", -"lXlXlXjXlXlXjXjXlXlXlXjXlXjXlXlXlXjXlXlXjXlXlXjXlXlXlXjXlXlXjXjXjXjXlXlXjXlXlXlXlXlXjXlXjXlXlXlXlXlXlXjXlXlXjXlXlXlXlXlXlXlXjXjXlXlXjXlXjXlXlXlXlXlXlXjXlXlXjXlXlXlXlXlXlXjXlXlXlXlXjXlXlXjXlXlXlXlXlXjXlXjXlXlXjXjXlXlXlXlXjXjXlXlXlXjXjXlXlXlXlXjXlXlXjXlXlXlXlXlXlXjXlXlXjXjXjXlXiXT . . . . . . + T iXjXlXlXjXlXlXjXlXlXlXjXlXlXlXlXlXlXjXzXlXfXfXfXlXlXlXjXlXlXfXlXlXfXzXfXlXlXzXlXlXjXlXlXjXlXlXlXlXfXlXlXlXlXlXjXlXlXjXlXlXlXjXlXjXlXjXjXlXlXlXlXjXjXlXlXlXlXjXlXlXlXlXlXlXlXjXlXjXlXlXlXjXlXlXlXlXlXjXlXjXjXlXlXjXlXjXjXlXlXlXlXlXlXjXlXlXjXjXlXjXjXlXlXlXjXlXlXjXlXjXlXlXlXjXlXjXlXlX", -"lXjXlXlXjXlXlXlXlXjXlXlXlXjXlXjXlXlXlXjXlXlXjXlXlXjXlXlXjXlXlXlXlXlXlXjXlXlXjXlXjXlXlXjXlXlXjXlXlXjXjXlXjXlXlXjXlXlXjXlXlXjXlXlXjXlXjXlXlXlXjXlXlXjXlXlXjXlXlXjXlXlXlXjXlXjXlXjXjXlXjXlXlXjXlXjXlXjXlXlXlXjXlXjXlXlXlXjXjXlXlXlXlXjXjXlXlXlXjXlXlXlXlXjXlXlXjXlXlXjXjXlXjXlXlXlXlXjXjXlXiXT . . . . . . . . . . . + R iXjXlXlXlXjXlXjXlXjXlXjXlXlXlXjXlXlXjXlXlXfXzXzXlXzXzXfXlXjXlXlXlXlXlXlXlXzXzXfXfXjXlXjXlXjXlXlXjXjXlXlXlXlXlXjXlXjXlXlXlXjXjXlXlXlXlXlXlXlXlXjXlXlXlXlXlXjXlXlXlXlXjXjXlXjXjXlXlXlXlXlXjXlXlXlXjXjXjXlXlXlXlXlXlXlXlXlXlXlXlXjXjXlXjXlXlXjXlXlXlXlXlXlXlXlXlXlXlXlXlXlXjXjXjXlXlXlXlXlXjX", -"jXlXjXlXjXlXjXlXlXjXjXjXlXlXjXjXlXjXjXjXlXjXlXjXlXjXjXjXjXlXjXlXjXlXjXlXlXjXlXlXjXlXjXlXlXjXjXlXjXlXlXjXjXlXjXlXjXlXlXjXjXlXjXlXlXjXlXjXlXjXlXlXjXlXjXjXjXlXjXjXjXlXjXlXjXlXjXlXlXjXlXjXlXlXjXlXjXlXjXjXlXlXjXlXjXlXjXlXjXlXlXjXjXlXlXjXlXjXjXlXjXlXjXlXlXjXjXlXjXlXlXjXjXlXjXlXjXlXlXjXlXjXwXI . . . . . . O I uXjXlXlXjXjXjXlXjXlXlXlXjXlXlXjXlXlXjXlXjXjXjXzXfXlXlXfXlXfXlXlXlXfXlXfXlXlXzXfXlXlXlXlXlXlXjXjXlXjXlXlXjXlXlXjXlXjXlXjXjXlXjXjXlXjXlXjXlXjXjXlXjXjXlXjXjXlXjXlXjXlXjXjXlXjXlXjXlXjXlXjXlXjXlXlXjXlXjXlXjXjXlXjXlXjXjXjXlXjXjXjXlXlXlXlXjXjXjXlXjXlXjXjXjXlXjXjXjXlXjXjXjXlXlXlXjXjXlXjXlXjXlX", -"jXjXjXjXjXlXjXjXjXjXlXjXjXjXjXjXjXjXlXjXjXjXjXjXjXjXlXjXjXlXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXlXjXjXjXjXjXjXlXjXjXjXjXlXjXjXjXjXjXjXjXjXjXjXjXlXjXjXjXjXjXjXlXjXjXjXjXlXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXlXjXjXjXjXjXjXjXjXlXzXjXwXI . . . . . . . . . . . . I wXlXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXlXfXjXjXjXlXjXjXfXlXfXfXzXfXlXlXfXlXlXfXlXfXfXfXzXfXfXlXfXjXlXfXjXlXjXjXjXjXfXjXjXjXjXjXjXlXjXjXjXjXlXjXjXjXlXjXjXjXjXjXlXjXjXjXjXjXjXjXjXjXjXjXjXjXlXjXjXjXjXjXjXjXjXlXjXjXjXjXjXjXjXlXjXjXjXlXjXjXjXjXjXjXlXjXjXjXjXjXlXjXjXjXjXlXjXjXjXjXjXjXjXjXlXjXjXjXjXjX", -"jXjXjXjXjXjXjXjXjXjXjXjXfXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXfXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXfXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXfXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXfXjXjXjXjXjXjXjXjXjXjXjXjXjXjX5XM . . . . . A 5XjXjXjXjXjXfXjXjXjXjXjXfXjXjXjXjXjXjXfXfXfXlXjXjXjXjXjXfXlXfXfXlXfXfXfXzXzXfXfXzXlXfXfXfXfXfXzXfXzXfXlXfXfXlXfXlXjXjXlXfXfXlXlXfXlXfXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjX", -"jXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXfXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXfXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjX4XM . . . . . . . . . . . M 5XjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXfXjXjXlXlXfXjXjXjXjXfXlXlXfXjXjXlXfXfXfXfXfXfXfXfXlXfXlXlXfXfXfXzXfXfXlXlXfXlXfXjXjXfXlXfXlXfXlXfXfXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjX", -"jXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXfXjXjXjXjXjXjXjXfXjXjXjXfXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXfXjXjXjXjXjXjXjXfXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXfXjXfXjXjXjXjXjXjXjXjXjXfXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXfXjXjXjXjXjXjXfXjXjXjXjXjXjXjX2Xv . . . . . . n 2XjXjXjXjXfXjXjXjXfXjXjXjXjXjXjXjXjXjXjXjXjXjXfXlXfXfXjXjXjXjXfXlXfXlXjXjXjXfXfXzXfXlXzXfXfXfXfXfXlXlXfXfXfXfXlXfXlXfXjXjXjXjXlXjXfXfXfXlXfXlXfXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXfXjXjXjXjXjXjXjXjXjXjXjXjXjXjXfXjXjXjXjXjXjXjXjXfXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXjXfXjXfXjXjXjXjXjXjXfXjXjXjXjXjXjXjXjX", -"jXfXfXjXfXjXfXfXfXjXfXjXfXjXfXjXfXjXfXjXjXfXjXfXfXjXfXjXfXjXjXfXjXjXjXfXfXfXjXfXjXsXjXjXfXjXsXjXjXjXfXjXfXjXfXfXjXfXfXjXfXfXfXjXfXjXjXfXfXfXjXfXjXfXjXjXjXfXfXjXjXfXjXfXfXjXjXfXfXjXfXjXfXfXjXfXjXjXfXjXjXfXjXfXjXfXjXjXjXfXfXjXjXjXfXjXfXjXfXjXjXfXfXjXfXfXjXfXjXjXfXjXfXjXfXjXjXfXfXjXfXjXjXfXjXjXfXjXjXjXjXjX2Xv . . . . . v 2XjXjXjXjXfXjXfXjXjXfXjXjXfXjXfXjXjXfXjXfXjXfXjXjXfXfXfXlXfXjXfXjXfXfXfXfXjXjXfXlXfXfXlXfXfXfXlXfXlXfXfXfXfXzXfXfXfXfXfXfXjXfXfXjXfXjXlXfXfXfXlXfXjXjXfXjXfXjXfXjXfXfXjXfXjXfXfXjXjXfXfXjXfXjXfXjXjXfXfXjXfXjXfXfXfXjXfXjXjXfXjXfXfXfXfXjXfXjXjXfXjXjXjXsXfXjXfXfXfXfXjXfXjXfXjXjXfXjXjXfXjXfXjXjXjXfXfXjXfXfXjXfX", -"fXfXfXfXfXjXfXfXfXjXfXjXjXfXfXfXfXfXfXfXfXjXfXfXfXfXjXfXfXfXfXfXfXfXfXfXfXfXfXjXjXfXfXjXjXfXfXfXfXfXfXjXfXfXjXfXjXfXfXfXfXjXfXjXjXfXjXfXfXfXfXjXjXfXfXfXfXjXjXfXjXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXjXfXjXfXfXfXfXfXfXfXfXjXjXfXfXfXjXfXfXfXfXfXfXfXfXfXfXjXfXjXfXfXjXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXjXfX*Xw . . . . . . . 0 *XsXfXfXjXjXfXfXfXfXjXfXfXjXjXjXfXfXfXfXfXfXfXjXfXfXfXfXfXfXfXfXfXfXfXfXjXfXfXjXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXjXfXfXfXfXjXfXfXfXjXfXfXfXfXjXfXfXfXfXfXfXfXfXfXfXjXfXfXfXjXfXfXfXjXjXfXfXfXfXjXfXjXfXjXsXjXfXfXjXfXfXjXfXjXfXjXfXfXjXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfX", -"fXjXfXfXfXfXjXfXfXfXfXfXfXfXjXfXjXjXfXfXfXfXjXfXfXfXfXfXjXfXjXfXjXfXjXfXjXfXfXfXfXjXjXsXfXfXjXjXfXjXfXfXjXfXfXfXfXfXfXjXfXfXfXfXfXfXfXfXjXfXfXfXfXfXfXjXfXfXfXfXfXfXjXfXfXjXfXjXfXfXfXjXfXsXfXfXfXjXfXfXfXfXjXfXfXfXfXjXfXjXfXfXfXfXfXfXjXfXfXfXjXfXjXfXfXjXfXfXfXfXfXfXjXfXfXfXfXfXjXfXjXjXfXfXfXjXfXfXfXjXfXjXfXfXsXfX[.7 . . . . . . 8 [.fXfXfXfXfXfXfXfXjXfXfXfXfXfXfXfXfXfXjXfXfXjXfXjXfXfXjXfXjXfXfXfXfXjXfXfXfXfXfXfXfXfXfXfXfXfXfXlXfXfXfXfXlXfXfXfXlXfXfXfXfXfXjXfXjXfXjXfXfXjXfXjXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXjXfXfXfXfXfXfXfXjXfXfXfXjXfXfXfXfXjXfXfXfXfXfXfXfXjXfXjXjXfXfXfXjXfXfXfXjXjXfXfXfXfXjXfXjXfXfXjXfXjXfXjXfXfXjXfXjX", -"fXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXsXjXfXfXfXfXfXfXfXjXfXfXjXfXfXfXfXfXjXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXdX[.2 . . . . . . . . . . . 3 G.fXjXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXsXjXfXsXfXfXfXfXfXjXfXfXfXfXfXjXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfX", -"fXfXfXfXfXsXfXfXfXsXfXfXfXfXfXsXfXfXfXfXsXfXfXfXfXfXfXsXfXfXfXfXfXfXfXsXfXfXfXfXfXsXfXfXfXsXfXsXfXfXfXfXsXsXfXfXsXfXfXfXsXfXsXjXfXfXfXsXfXfXfXfXsXfXfXfXfXfXsXfXfXfXfXsXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXsXfXfXfXfXsXfXfXfXfXfXfXfXfXsXfXfXfXfXfXsXfXfXfXfXfXfXfXfXfXsXfXfXfXfXfXfXfXfXfXsXfXfXfXfXfXfXfXsXfXfXfXfXsXfXfXfXsXfXsXS.: . . . . . : S.sXfXfXfXfXsXfXfXfXfXsXfXfXfXfXfXfXfXsXfXfXfXfXsXfXfXfXfXsXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXsXfXfXfXfXsXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXfXsXfXfXfXfXsXfXfXfXfXfXfXfXsXfXfXsXsXjXsXjXsXfXsXfXsXfXsXfXfXsXsXfXfXfXfXfXfXsXfXfXfXfXsXfXfXfX", -"fXfXsXfXsXfXfXfXsXfXsXfXsXsXfXsXfXfXsXfXfXsXfXsXfXfXfXsXfXsXfXfXsXsXfXsXfXsXfXfXfXsXfXsXfXfXfXsXfXsXfXfXsXfXfXsXfXjXsXsXsXfXsXsXsXsXfXsXsXfXsXsXfXsXfXfXsXsXfXsXfXsXfXfXfXsXfXsXfXfXsXfXfXsXfXfXfXfXsXfXfXsXfXfXfXsXfXsXfXfXsXfXsXfXfXfXsXfXfXsXfXfXsXfXfXsXfXfXfXfXsXfXfXsXfXfXsXfXfXsXfXsXfXsXfXfXsXsXfXfXsXfXsXfXsXfXsXfXsXfXfXsXS.% . . . . . . . X % S.sXsXfXfXfXsXfXfXfXsXfXsXfXfXsXfXsXfXfXsXfXsXfXsXfXsXfXfXsXsXfXsXfXsXfXsXsXfXsXfXfXfXsXfXfXfXfXsXsXfXfXfXsXfXfXsXfXfXsXfXfXsXfXfXfXsXfXfXsXsXfXfXsXfXsXfXsXfXfXfXsXsXsXfXfXfXsXfXfXfXfXfXfXfXsXfXsXfXfXfXfXfXsXfXfXsXfXsXfXjXsXsXfXsXfXfXsXfXsXfXsXfXsXfXsXsXfXsXfXfXsXfXsXfXfXsXfXsXfXsXsXfXfXsXsXsXfXfXfXsXfXfXsXfXsXfXfXsXfXfXsXfX", -"sXsXsXsXsXsXsXsXsXsXfXsXsXfXfXsXsXsXsXsXfXsXsXfXsXsXsXfXsXsXsXsXsXfXsXfXfXsXsXsXfXsXsXfXsXsXsXfXfXsXsXsXsXsXsXfXsXsXsXsXfXsXsXfXsXfXsXfXfXsXsXfXfXsXsXfXsXfXsXfXsXsXsXsXfXsXsXfXsXsXsXsXfXsXsXsXsXsXsXsXfXsXsXsXfXsXsXsXsXsXsXsXfXsXsXsXsXsXsXfXsXsXsXsXsXfXsXsXsXsXsXsXsXsXsXsXsXsXsXfXsXfXsXfXsXsXsXfXsXsXfXsXfXsXsXsXfXsXfXsXfXsXsXpXm.+ . . . . . # n.pXfXsXsXsXsXsXfXsXsXfXsXsXfXsXsXsXsXfXsXfXsXsXfXsXfXsXfXsXsXsXfXsXfXsXfXsXfXsXfXfXsXsXsXfXsXsXsXsXfXsXsXsXsXsXsXsXsXsXsXsXsXsXfXsXsXfXsXsXsXsXfXsXsXfXsXfXsXsXsXsXsXsXfXfXsXsXsXsXsXsXsXsXsXsXsXsXsXfXsXfXsXsXsXsXsXsXsXsXsXsXsXsXsXsXfXsXsXfXsXfXsXsXsXfXsXsXfXfXsXsXsXsXsXfXsXsXfXsXsXsXfXsXsXsXfXsXsXsXsXfXsXsXsXfXsXsXsXfXsXsXsXfXsX", -"fXsXfXsXsXsXsXsXfXsXfXsXsXfXsXsXsXsXsXsXsXsXfXsXsXsXsXfXsXsXsXsXfXsXsXfXsXsXsXsXsXsXfXsXfXsXsXfXsXsXsXsXfXsXsXsXsXfXfXsXsXsXsXsXfXsXsXfXsXsXfXsXsXfXsXsXsXsXsXfXsXsXsXsXsXsXfXsXsXsXsXfXfXsXsXfXsXsXsXfXsXsXsXsXsXsXsXfXsXfXfXsXsXsXsXsXfXsXfXsXsXsXsXfXsXsXsXsXfXsXsXfXsXfXfXsXsXfXsXsXfXsXsXfXsXsXsXsXsXfXsXfXsXfXsXsXsXsXsXsXsXsXfXsXsXiXm.& . . . . . & A.pXfXfXsXsXsXsXsXfXsXsXsXsXsXfXsXsXsXsXfXsXsXsXfXsXsXfXsXsXfXsXfXsXsXsXfXsXsXsXfXsXsXsXsXsXsXsXsXfXsXsXfXsXsXfXsXsXsXsXfXfXsXsXfXsXsXfXsXsXsXsXsXsXsXsXfXsXfXsXfXfXsXsXfXsXsXsXsXsXsXsXfXsXsXsXsXsXsXsXfXsXsXsXsXsXfXsXsXfXsXsXsXsXsXjXsXsXsXsXfXsXfXsXfXfXsXfXsXsXsXsXsXfXsXsXfXfXsXsXsXsXsXsXfXfXsXsXsXsXsXsXfXsXsXsXfXsXsXfXsXfXsXsXfXsXsX", -"sXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXfXfXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXfXsXsXwXT . . . . . . . X T wXsXsXsXsXsXsXsXsXsXsXsXsXfXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXfXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXfXsXsXsXsXsXsXsXsXsXsXfXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsX", -"sXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXfXwXT + . . . . . . X T wXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXfXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXaXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsX", -"sXsXsXaXsXsXsXsXsXsXaXsXsXsXsXsXsXsXaXsXsXaXsXsXsXsXaXsXsXsXsXsXaXsXsXsXsXaXsXsXsXsXsXsXaXsXsXsXaXsXsXsXsXsXsXsXsXsXsXsXsXaXsXaXsXsXsXsXsXaXsXsXaXsXsXsXsXsXsXsXsXsXsXsXaXsXsXsXsXsXsXsXaXsXsXsXsXsXsXsXsXaXsXsXsXsXaXsXsXsXsXsXsXaXsXsXsXsXsXaXsXsXsXsXaXsXsXsXsXsXsXsXsXaXsXsXsXsXaXsXsXsXaXsXsXsXsXsXsXsXaXsXsXsXsXsXsXsXsXsXsXsXaXsXsXsXaXsXsXaXsX5XI . . . . . X I 5XaXsXsXsXsXsXsXaXsXsXsXaXsXsXsXsXsXsXsXaXsXsXsXaXsXsXsXsXsXsXaXaXsXsXsXsXsXaXsXsXsXaXsXsXaXsXsXsXsXsXaXsXsXsXaXsXaXsXsXsXsXsXsXsXaXsXaXsXsXsXaXsXsXaXsXsXaXsXsXaXsXsXsXsXsXsXsXsXsXsXaXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXaXsXsXsXsXsXaXsXsXaXsXsXsXsXsXsXsXsXsXaXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXaXsXsXsXaXsXaXsXsXsXsXaXsX", -"sXsXaXsXaXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXaXsXsXaXsXsXaXsXsXsXsXsXaXsXsXsXsXsXsXsXsXaXsXsXsXsXsXsXsXsXsXsXsXaXsXaXsXsXaXsXaXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXaXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXaXsXsXsXsXsXsXsXaXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXaXsXsXsXsXsXsXsXsXaXsX5XI O . . . . . . . . . I 5XsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXaXsXaXsXsXsXsXsXsXsXsXsXaXsXsXsXsXsXsXaXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXaXsXsXsXsXsXsXsXsXsXsXsXsXsXaXsXsXsXsXaXsXaXsXaXsXsXsXaXsXsXsXsXsXsXsXsXaXsXsXsXaXsXaXaXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXaXsXsXsXsXsXsXsXaXsXsXsXsXsXsXsXsXsXsXsXsXsXaXsXsXsXsXsXsXaXsXaXsXsXsXsXsXsXsXsXsX", -"sXsXsXsXsXsXaXsXsXaXsXaXsXaXsXsXsXaXsXsXaXsXaXsXsXsXaXsXaXsXaXsXsXsXaXsXsXaXsXaXsXsXaXsXsXsXsXsXsXaXsXaXsXsXaXsXsXsXaXsXsXsXsXsXaXsXsXaXsXaXsXaXaXsXsXsXsXsXsXsXsXsXaXsXaXsXaXsXaXsXsXaXsXaXsXaXsXsXsXaXsXaXsXaXsXaXsXaXsXsXaXsXsXaXsXaXsXsXsXsXsXsXsXaXsXaXsXaXsXaXsXaXsXaXsXaXsXsXsXaXsXaXsXsXsXsXaXsXsXaXsXsXaXsXaXsXaXsXaXsXsXsXsXsXaXsXaXsXsXaXsXsXaXsXsX3XA . . . . . M 3XsXaXsXsXaXsXaXsXsXaXsXsXaXsXsXsXaXaXsXaXsXsXaXsXsXaXsXaXsXsXsXsXsXsXsXaXsXsXaXaXsXsXsXsXaXsXsXsXaXsXsXsXaXsXsXaXsXaXsXsXsXaXsXsXaXsXaXsXaXsXsXsXsXsXaXsXaXsXsXsXsXaXsXaXsXsXsXsXaXsXaXsXsXsXsXsXsXsXaXsXsXaXsXaXsXsXaXsXsXaXsXsXsXsXsXsXsXsXaXsXsXaXsXsXaXsXaXsXaXaXsXsXaXsXsXaXsXaXsXsXaXsXsXsXsXaXsXsXaXsXaXsXsXaXsXsXsXaXsXsXaXsXsXsXsXsXsXsXaXsXaXsXaXsXsX", -"sXaXsXaXsXaXsXaXaXsXaXsXaXsXsXaXaXsXaXsXsXaXaXsXsXaXsXaXsXaXsXaXsXsXsXsXaXsXaXsXaXsXsXaXsXaXsXaXsXsXaXsXaXsXsXsXaXsXaXsXsXaXsXaXaXsXaXsXaXsXaXsXsXaXsXaXsXsXsXaXsXaXsXsXaXsXaXsXsXaXsXaXsXaXsXaXaXsXaXsXsXaXsXaXaXsXsXsXaXsXaXsXaXsXsXsXsXaXsXaXsXaXsXaXsXsXsXsXsXsXaXsXaXsXaXsXaXsXsXaXsXaXsXaXsXaXsXaXsXaXsXaXsXaXsXaXaXsXaXsXsXsXsXsXaXsXaXsXaXsXaXsXsXsXsXaXsX2XM . . . . . M 2XaXsXaXsXaXsXaXsXaXsXsXaXsXaXsXsXaXsXsXsXaXsXaXsXsXsXsXsXaXaXsXsXsXaXsXaXsXaXsXsXsXsXaXsXaXsXaXsXaXaXsXaXsXsXsXaXsXaXsXaXsXaXsXaXsXsXsXsXsXsXsXsXsXaXsXaXsXaXsXsXaXsXsXaXsXaXsXaXsXsXaXsXaXaXsXaXsXaXsXaXsXsXsXsXaXsXaXsXaXsXaXsXaXaXaXsXsXaXsXaXsXsXsXsXaXsXsXaXsXaXsXaXsXsXsXaXsXaXsXaXsXaXsXsXsXaXsXsXaXsXaXsXaXsXaXsXsXaXsXaXsXsXaXsXaXaXsXsXaXaXsXaXsXaXsXaXsX", -"aXsXaXsXaXsXaXsXsXaXsXaXsXaXsXaXsXaXsXaXsXaXsXaXaXsXaXsXaXsXaXsXaXaXaXaXsXaXsXaXaXaXaXsXaXsXaXsXaXaXsXaXaXaXaXaXsXaXsXsXaXsXaXsXsXaXsXaXsXaXsXaXaXsXsXaXaXaXaXsXaXsXaXsXaXaXsXaXaXsXaXsXaXsXaXsXsXaXsXsXaXsXaXsXsXaXaXsXaXsXaXaXsXaXaXaXaXsXaXsXaXsXaXsXaXaXaXaXaXaXsXaXsXsXaXsXaXaXaXsXaXsXaXsXaXsXaXsXaXsXsXaXaXsXaXsXaXsXaXsXaXaXaXaXsXaXsXsXsXaXsXaXaXaXaXsXaXsXsX{.v . . . . . . . . v {.sXsXsXaXsXaXsXaXsXaXsXaXaXsXaXsXaXsXaXaXaXsXaXsXaXaXaXaXaXaXsXsXaXaXaXaXsXaXaXsXaXaXaXaXsXaXsXsXaXaXsXsXaXsXaXaXaXsXaXsXaXsXaXsXaXsXaXaXaXaXaXaXaXaXaXaXaXsXaXsXaXsXaXaXsXsXaXsXaXsXaXaXsXaXsXaXsXaXsXsXaXsXaXaXaXaXsXsXaXaXsXaXsXaXsXaXsXaXaXsXaXsXaXaXaXaXsXaXaXsXaXsXaXsXaXaXaXsXaXsXaXsXaXsXaXaXaXaXaXaXsXaXsXaXsXaXsXaXsXsXaXsXaXaXsXaXsXaXsXaXsXsXaXsXaXsXaXsXaX", -"aXsXsXaXsXaXsXaXaXsXsXsXsXaXaXsXaXsXsXaXaXaXsXsXsXaXsXaXsXaXsXaXaXsXaXsXaXsXaXsXsXsXaXaXsXaXsXaXaXsXsXaXsXsXaXsXaXaXsXaXsXaXsXaXaXaXaXsXaXsXaXsXaXaXsXsXaXsXsXaXsXaXaXsXsXsXaXsXsXaXsXaXsXaXsXaXaXsXsXaXsXaXsXaXaXsXaXaXaXsXsXaXaXsXsXaXaXsXaXaXsXaXsXaXaXsXaXsXaXsXaXsXaXaXsXaXsXsXaXaXsXaXsXaXsXaXaXsXsXsXaXsXsXaXsXaXsXaXaXaXaXsXaXsXaXsXsXaXaXaXsXsXsXaXsXaXsXaXaXsXsX{.r . . . r {.sXsXsXsXaXsXsXaXaXsXaXsXaXaXsXsXaXaXaXsXsXaXsXaXsXsXaXaXsXsXaXsXaXaXsXaXsXaXsXsXaXaXsXsXaXaXsXsXaXsXaXaXsXaXaXsXsXaXsXaXsXaXsXaXsXaXaXsXsXaXsXaXsXaXsXsXaXsXsXsXsXsXaXaXsXsXaXsXaXaXaXsXsXsXaXsXaXsXaXsXaXaXaXsXsXsXaXaXsXaXsXaXsXsXsXaXaXaXsXsXaXaXsXsXaXsXaXsXaXaXsXsXaXsXaXaXsXsXsXsXaXaXsXaXsXaXsXaXsXsXsXaXaXsXaXsXaXsXaXaXaXaXaXsXsXsXaXsXaXsXaXsXaXaXaXsXsXsXaXaXsX", -"aXaXaXaXsXaXaXaXaXaXaXaXaXsXaXaXsXaXaXsXaXsXaXaXsXaXaXaXsXaXaXaXaXaXaXsXaXaXsXaXaXaXaXsXaXaXsXaXsXaXaXsXaXaXsXaXaXsXaXaXsXaXaXsXaXsXsXaXaXaXsXaXsXaXaXaXaXaXsXaXaXaXsXaXaXaXsXaXsXaXaXaXsXaXaXsXaXaXaXaXsXaXaXaXaXaXsXaXaXaXsXaXsXaXaXsXsXaXaXsXsXaXaXsXaXaXsXaXaXaXsXaXaXsXaXaXaXaXaXsXaXaXsXaXaXaXsXaXaXaXaXaXsXaXaXaXsXaXsXaXaXaXsXaXaXaXaXaXaXsXaXaXaXsXaXaXaXaXsXaXaXsXaX[.w . . . . w [.aXsXaXaXsXaXsXaXaXaXsXaXaXsXaXsXaXaXsXaXsXaXaXsXaXaXaXaXsXaXaXaXaXsXaXsXaXaXsXaXaXsXaXsXaXaXsXaXaXsXaXaXsXaXaXaXsXaXaXsXaXaXaXaXsXaXaXaXsXaXaXaXaXaXsXaXaXaXsXaXaXaXaXaXsXaXaXaXaXaXsXaXsXaXaXsXaXaXaXaXsXaXaXaXsXaXaXaXsXaXaXaXsXaXaXaXaXaXsXaXaXsXaXsXaXaXsXaXsXaXaXsXaXaXsXaXsXaXaXaXaXaXsXaXaXaXaXaXsXaXaXaXaXaXsXaXaXsXaXaXaXsXsXaXsXaXaXsXaXaXaXaXsXaXsXaXsXaXaXaXsXaXaX", -"aXsXaXaXaXaXaXsXaXaXsXaXaXaXaXsXsXaXaXaXaXsXaXaXaXaXaXaXaXaXaXsXaXsXaXaXaXaXsXaXaXaXaXsXaXaXsXaXaXaXaXaXaXaXsXaXaXaXaXsXaXaXaXaXaXaXaXsXaXaXsXaXaXaXaXsXaXaXsXaXaXsXaXaXsXaXaXaXaXaXaXaXsXaXaXaXaXaXsXaXaXaXaXsXaXaXaXsXaXsXaXaXsXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXsXaXaXsXaXaXaXsXaXaXsXaXaXaXsXaXaXaXaXaXaXaXaXsXaXsXaXaXaXaXaXaXsXaXaXaXsXaXaXsXaXaXaXsXaXaXaXaXaXpX[.8 . . . . 8 [.aXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXsXaXaXaXsXaXaXaXaXaXaXsXaXaXaXaXaXaXaXsXaXaXaXaXaXaXsXaXaXsXsXaXaXaXaXaXaXaXaXaXaXsXaXaXaXsXaXsXaXaXsXaXaXaXaXaXsXaXaXaXaXsXaXsXaXaXaXsXaXaXaXaXaXaXaXaXaXsXaXaXaXsXaXaXsXaXaXaXaXsXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXsXaXaXaXaXsXaXaXaXaXaXsXaXaXsXaXaXsXaXaXaXsXaXaXaXaXsXsXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXsX", -"aXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXpXG.2 X . . 2 G.aXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaX", -"aXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXpXm.% X . . . . . . 2 S.pXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaX", -"aXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXS.: . . . . . . : S.yXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXsXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaX", -"aXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaXyXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaXaXyXaXaXaXeXn.# . . & n.wXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXyXaXaXaXyXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaX", -"aXaXaXaXyXaXaXaXyXaXaXaXaXyXaXaXaXaXyXaXaXaXaXyXaXaXaXyXaXaXaXyXaXyXaXaXaXyXaXaXaXaXaXyXaXaXaXyXaXaXaXyXaXaXaXaXaXaXaXyXaXaXaXaXaXaXyXaXaXaXaXyXaXaXaXaXaXyXaXaXyXaXyXaXaXyXaXaXaXaXyXaXaXaXaXyXaXaXyXaXyXaXaXaXyXaXyXaXaXyXaXyXaXaXaXyXaXaXaXyXaXaXyXaXaXyXaXaXaXaXaXaXyXaXyXaXaXaXyXaXaXaXaXyXaXaXaXaXaXaXaXaXaXyXaXaXaXaXaXyXaXaXyXaXyXaXaXaXyXaXaXyXaXaXaXyXaXaXaXyXaXaXaXaXaXyXaXaXaXaXyXaXaXaXeXn.+ . . . . . + n.eXaXaXaXaXyXaXyXaXaXaXyXaXaXaXyXaXaXaXaXyXaXaXaXaXaXyXaXaXyXaXyXaXaXaXaXaXyXaXaXaXyXaXaXaXyXaXaXyXaXaXaXyXaXaXyXaXaXaXyXaXaXaXyXaXaXyXaXaXaXyXaXaXaXyXaXaXaXyXaXaXaXaXaXaXyXaXaXaXaXyXaXaXaXaXaXaXaXaXaXyXaXaXyXaXaXaXaXyXaXaXaXaXaXyXyXaXaXaXaXyXaXaXyXaXyXaXaXaXaXaXaXaXyXaXaXyXaXaXaXaXyXaXaXyXaXaXyXaXaXyXaXaXyXaXaXaXyXaXyXaXaXaXaXaXaXaXyXaXyXaXaXaXyXaXyXaXaXaXyXaXaXaXyXaXaXaXaXyXaXaXaXaXaXyX", -"aXaXaXaXaXaXyXaXaXaXyXaXaXaXaXaXaXaXaXaXaXyXaXaXaXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXyXaXaXaXaXyXaXaXyXaXyXaXaXaXaXyXaXyXaXaXyXaXyXyXaXaXaXaXyXaXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaXaXyXaXaXyXaXyXaXaXaXaXyXaXaXyXaXaXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXyXaXaXaXaXyXaXaXyXaXyXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXwXU # . . . + T wXaXaXaXaXaXaXyXaXaXaXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaXyXaXaXaXaXyXaXaXaXaXyXaXaXyXaXyXaXaXaXaXaXaXyXaXaXyXaXyXaXaXaXaXyXaXaXyXaXaXaXaXyXaXaXaXyXaXaXaXaXyXaXaXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXyXaXaXyXaXaXaXaXyXaXaXyXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaXyXaXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXyXaXaXaXaXaXaXaXaXaXaXaXaXaX", -"aXyXaXyXyXaXyXaXyXaXaXaXyXaXyXaXyXaXyXaXaXaXyXaXyXaXyXaXaXaXaXyXaXyXaXyXyXaXyXaXaXaXaXyXaXaXyXaXaXaXaXaXyXyXaXaXaXyXaXyXaXaXaXaXyXaXyXaXaXaXaXyXyXaXaXaXaXyXaXyXyXaXyXaXaXyXaXaXyXaXyXaXaXaXaXyXaXaXyXaXaXyXaXyXyXaXyXaXaXyXaXyXyXaXyXaXaXaXaXyXyXaXyXaXaXyXyXaXaXyXaXyXaXaXaXyXaXaXyXaXaXaXaXaXaXyXaXaXyXaXaXaXaXyXyXaXaXaXaXyXyXaXyXaXaXyXaXyXaXaXaXyXaXaXyXaXaXaXaXaXaXyXaXyXaXaXyXaXyXaXyXaXaXaXaXaXaXyXwXU . . . . . X T 6XyXaXyXaXyXaXyXaXaXaXaXyXaXyXyXaXyXaXaXyXaXyXyXaXyXaXyXaXaXyXyXaXyXaXaXyXaXyXaXaXaXyXaXyXyXaXaXaXyXaXaXyXyXaXaXyXyXaXaXyXaXaXaXyXaXaXyXaXaXaXaXaXaXyXaXaXyXaXaXaXaXaXaXyXaXyXaXaXyXaXaXaXaXaXaXyXaXaXyXaXaXaXaXyXaXaXaXyXaXaXaXyXyXaXaXaXaXyXaXyXaXaXaXyXyXaXyXaXyXaXyXaXaXaXaXaXaXyXaXyXaXaXaXaXyXaXaXyXyXaXaXyXaXyXaXaXyXaXyXaXyXaXaXyXaXaXaXyXaXyXyXaXyXaXyXaXyXaXaXyXaXyXyXaXyXaXaXyXaXyXyXaXyXaXyXaXaXyX", -"aXyXyXaXaXyXaXyXaXyXaXaXyXaXyXaXaXyXaXyXaXyXaXyXyXaXyXaXyXyXaXaXaXaXyXaXyXaXyXaXaXyXyXaXyXaXaXyXyXaXyXaXaXyXaXyXaXaXyXaXyXaXyXaXyXaXyXaXyXaXyXaXaXyXaXaXyXaXyXaXaXyXaXyXaXyXaXyXyXaXyXaXyXaXyXaXaXyXaXyXyXaXyXaXaXyXaXaXyXaXaXaXyXaXyXaXyXaXyXaXaXyXaXaXyXaXyXaXaXyXaXyXyXaXyXaXaXyXaXyXaXaXaXyXyXaXaXyXaXyXyXaXaXyXaXyXyXyXaXaXaXyXaXyXyXaXyXaXaXyXaXaXyXaXaXyXyXaXyXaXyXaXyXaXaXaXyXyXaXyXaXyXyXaXyXaXyXyXaXyX5XS . . . I 3XaXyXaXyXaXaXyXaXyXaXyXaXyXaXyXaXaXyXyXaXyXaXaXaXaXaXaXaXaXaXaXyXaXyXaXaXyXaXyXaXyXyXaXaXyXaXyXaXyXaXyXaXaXyXaXaXyXaXyXaXaXyXaXyXyXaXaXyXaXaXyXyXaXyXaXyXaXyXaXyXyXaXyXaXyXyXaXaXaXyXaXyXaXyXaXyXyXaXaXaXyXaXyXaXyXaXaXyXaXyXyXaXaXaXaXaXyXaXyXaXyXaXaXaXaXaXaXyXaXyXaXaXyXaXyXaXyXyXaXaXaXyXaXaXyXaXyXaXyXaXaXaXaXaXyXaXaXyXaXaXaXyXaXyXaXyXaXyXaXyXaXyXaXaXaXyXaXyXaXyXaXaXaXaXaXyXaXaXyXaXaXaXaXaXaXaXyXaXyXaX", -"yXaXyXaXyXaXyXaXaXyXyXyXaXyXaXaXaXyXyXaXyXaXyXaXaXyXaXaXyXaXyXyXyXaXyXaXaXyXaXyXaXyXaXyXaXyXyXaXaXaXyXaXyXaXyXaXyXaXyXaXaXyXaXyXaXyXaXyXaXyXaXyXyXaXyXyXaXyXaXyXyXaXyXaXyXaXyXaXaXyXaXyXaXyXyXyXyXaXyXaXaXyXaXyXyXaXyXaXyXyXyXaXaXyXaXyXaXyXaXyXyXaXyXyXaXyXaXaXyXaXyXaXaXyXyXyXaXyXyXaXyXyXyXaXyXyXyXaXyXaXaXyXyXaXyXaXyXaXyXyXyXaXyXaXyXaXyXaXaXyXyXaXyXyXyXaXyXyXaXyXaXyXaXyXyXaXyXaXyXaXyXaXaXyXaXaXyXaXyXaXyXaX6XI . . . . I 6XaXyXyXaXyXaXyXyXaXyXaXyXaXyXyXyXaXyXyXaXaXyXaXyXyXyXyXyXyXyXyXyXaXyXyXaXyXyXaXyXaXyXyXaXyXyXaXyXaXyXyXaXyXyXyXaXyXyXaXyXaXyXyXaXyXaXaXyXaXyXyXaXyXaXaXyXyXaXyXaXyXaXyXaXyXaXyXaXyXyXyXaXyXaXyXaXyXaXyXyXyXyXyXyXaXyXyXyXyXaXyXaXaXyXyXyXyXyXaXyXyXyXaXyXyXyXyXyXyXaXyXaXyXaXaXyXaXyXyXaXyXyXyXaXyXyXyXaXaXyXaXyXyXyXyXyXaXyXyXaXyXyXyXaXyXaXyXaXyXaXyXaXyXaXyXyXyXaXyXaXyXaXyXyXyXyXyXaXyXyXyXyXyXaXyXyXyXyXaXyXaXyX", -"yXaXyXyXyXyXyXaXaXyXaXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXaXyXaXyXyXaXyXyXyXaXyXyXyXyXyXyXaXyXyXyXyXyXyXaXyXyXyXyXyXyXaXyXyXyXaXyXyXaXyXyXyXyXyXyXyXaXyXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXaXyXaXyXaXyXyXaXyXyXyXyXaXyXyXyXyXaXyXaXyXyXyXyXaXyXyXyXyXyXyXaXyXyXyXyXyXyXaXaXyXyXyXaXyXaXyXaXyXyXyXaXyXyXyXyXyXyXyXaXaXyXaXaXyXyXyXyXaXyXyXaXyXaXyXyXyXyXyXyXyXyXyXyXyXaXyXyXaXyXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXaXyXyXyXyXyXyX3XM . M 3XyXaXyXaXaXyXyXyXaXyXyXyXyXaXyXyXaXyXyXaXyXyXaXaXyXyXaXaXyXyXaXyXyXyXyXyXyXyXyXaXyXyXyXaXyXaXyXaXyXaXyXyXyXyXaXyXyXyXaXyXyXyXyXyXyXyXaXyXaXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXaXyXaXyXyXyXyXyXaXaXyXaXaXyXaXaXyXaXaXyXyXyXyXyXyXaXaXyXaXaXyXyXyXyXaXaXyXaXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXaXyXyXyXyXaXaXyXyXyXyXaXyXyXyXaXyXyXaXyXyXyXyXaXyXyXaXyXyXyXyXaXyXyXyXaXyXaXyXyXyXaXyXyXyXaXyXyXaXaXyXyXaXyXyXyXyXaXyXyXyXyX", -"yXyXyXaXyXaXyXyXyXyXyXyXaXyXaXyXyXaXaXyXyXaXyXaXaXyXaXyXyXyXyXyXaXyXyXyXaXyXyXyXyXaXyXaXyXyXyXaXaXyXaXyXyXyXyXaXaXyXyXyXyXaXyXyXyXaXyXyXaXyXaXyXaXyXyXyXyXaXyXaXaXyXaXyXyXaXaXyXyXaXyXaXyXyXyXyXaXyXyXyXaXyXyXaXyXaXaXyXyXyXyXyXaXyXyXyXaXyXaXyXaXyXyXyXaXyXyXaXyXyXyXyXaXaXyXyXyXyXyXyXyXaXyXyXaXyXaXyXaXyXyXyXyXyXyXyXaXaXyXyXaXyXyXyXaXyXaXyXyXaXaXyXaXyXaXyXaXyXyXyXaXaXyXyXyXaXyXaXyXyXaXyXaXyXaXyXyXyXyXaXyXaXyXaXyXyX3XM . . . . M 3XyXyXyXyXyXyXyXyXaXyXyXyXaXyXyXaXyXaXyXyXyXaXaXyXyXyXyXyXyXyXyXaXyXyXaXyXaXyXaXyXyXyXyXaXyXaXyXyXyXyXyXyXaXyXaXyXaXyXaXyXyXyXaXyXaXyXaXyXyXyXyXyXyXaXyXaXyXaXyXaXaXyXyXaXyXaXaXyXaXyXyXyXyXyXyXaXyXaXyXyXyXyXyXyXyXyXyXyXyXyXaXyXaXyXaXyXyXyXyXyXyXyXaXaXyXyXyXyXyXyXyXaXaXyXaXyXaXyXyXyXyXaXaXyXaXyXaXyXyXyXyXyXaXyXyXyXaXaXyXyXyXaXyXyXaXaXyXyXyXaXyXyXaXaXyXyXyXaXyXyXyXyXaXyXyXyXyXaXyXaXaXyXyXyXaXyXyXyXyXaXyXyXaXaXyXyX", -"yXyXyXyXyXyXaXyXyXyXaXyXyXyXaXyXyXyXaXyXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXaXyXyXaXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXyXaXyXyXaXyXaXyXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXyXaXyXyXyXaXaXyXyXyXyXaXyXyXyXaXyXyXaXyXyXyXyXyXyXaXyXyXyXyXyXyXyXaXyXyXyXyXyXaXyXyXyXyXyXaXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXyXaXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXaXyXyXyXyXyXaXyXyXyXyXaXyXyXyXyXyXyXaXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXyX{.r . . . c {.yXyXyXyXyXaXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXaXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXaXyXyXyXyXyXyXyXaXyXyXyXyXyXyXaXyXyXyXaXyXyXyXyXyXyXaXyXyXyXyXaXyXyXyXaXyXaXyXaXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXyXaXyXyXaXyXyXyXyXyXyXyXyXaXyXyXyXaXyXyXyXyXyXyXyXyXaXyXyXyXaXyXyXyXyXyXaXyXyXyXaXyXyXyXaXyXyXyXyXyXaXyXyXyXyXyXaXyXyXyXaXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXaXyXyXyXaXyX", -"yXaXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXaXyXyXyXyXyXyX{.w . . . . w {.yXyXyXaXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXyXyXaXyXyXaXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXaXyXaXyXyXyXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXaXyXyXyXyXyXyXyXyXyXyXyXyXyXyX", -"yXyXyXyXyXyXyXyXyXyXyXyXyXrXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXyXyXyX/.8 . 8 /.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX", -"yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXG.7 . . . 7 G.yXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyX", -"yXyXyXtXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXyXyXyXrXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXrXyXtXyXyXtXyXyXyXyXyXyXyXyXyXrXyXyXyXyXyXyXyXyXyXtXyXyXyXyXyXyXyXyXyXyXyXtXyXyXtXyXyXtXyXyXyXyXyXtXyXyXyXyXtXyXyXyXtXyXyXtXyXyXyXyXyXyXyXyXyXtXyXyXyXtXyXyXyXtXyXyXyXyXyXyXtXyXyXyXyXtXyXyXtXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXyXyXyXrXyXyXyXtXyXyXyXyXyXtXyXyXyXyXyXyXyXyXyXyXyXtXyXyXtXyXyXyXtXyXyXyXyXyXtXyXtXyXtXyXyXtXyXyXyXyXyXyXtXyXyXyXyXG.3 . . 2 G.tXyXyXyXtXyXyXyXyXyXtXyXyXyXyXyXtXyXyXyXyXyXyXtXyXyXyXyXyXyXyXyXyXyXyXyXyXtXyXyXyXyXyXyXtXyXyXyXyXtXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXtXyXyXyXtXyXyXyXtXyXyXyXyXyXtXyXyXyXyXyXyXyXyXtXyXtXyXyXyXyXtXyXyXyXyXyXyXyXyXyXtXyXyXyXyXyXyXyXyXyXtXyXyXyXyXtXyXtXyXyXyXyXtXyXyXyXyXyXyXyXyXyXyXyXrXyXyXyXrXyXyXyXrXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXyXrXyXyXyXyXyXyXrXyXyXrXyXyXyXyXyXyXyXyXtXyXtXyXyXyXyXtXyXyXyXyXyXtXyXyXyXtXyXtXyXyXyXyXyXyXyX", -"yXyXyXtXtXtXtXyXyXtXtXyXyXrXyXtXyXyXyXtXyXtXyXyXyXyXrXyXrXyXyXrXyXyXrXyXyXyXrXyXyXyXyXrXyXyXyXyXyXtXyXyXyXrXtXyXyXyXyXyXyXyXyXyXtXtXtXyXyXtXyXyXtXyXtXyXyXrXyXtXtXyXtXyXtXyXyXtXtXyXtXtXtXyXyXtXtXyXtXtXyXyXtXtXyXtXtXyXtXyXtXtXyXtXtXyXtXyXyXtXtXyXtXyXtXyXtXyXyXtXyXtXyXtXyXtXtXyXtXyXyXtXyXtXyXyXyXtXtXyXtXyXtXtXtXyXyXyXyXtXyXtXyXyXrXtXyXyXtXtXyXtXyXyXtXyXyXrXrXyXyXtXtXyXyXtXyXyXyXtXyXyXyXtXtXyXtXyXyXtXtXyXyXtXyXtXtXyXtXyXtXyXtXyXtXtXrXeXZ.3 . . 3 Z.tXyXyXtXyXtXyXtXtXyXtXyXyXtXtXyXtXtXyXyXtXtXyXyXtXyXtXyXrXyXrXyXtXyXyXyXtXyXyXyXtXyXtXyXtXyXyXtXtXyXtXyXtXyXtXtXtXyXtXtXtXyXyXyXyXtXtXyXtXtXtXyXtXyXyXyXtXyXyXtXtXtXyXtXtXyXtXtXtXyXtXyXtXyXyXyXtXyXtXtXyXyXyXyXtXtXtXyXtXtXyXyXtXtXyXtXtXtXyXtXyXrXtXyXtXyXyXtXtXyXtXtXyXyXyXtXtXtXyXyXrXyXrXyXyXyXyXyXyXyXyXtXyXyXrXyXrXyXrXyXyXrXyXyXrXyXrXyXrXyXrXyXyXyXyXyXyXrXyXyXyXyXyXyXyXrXtXyXtXyXtXyXyXtXtXyXyXyXyXtXtXyXtXyXyXtXtXyXyXtXyXyXtXtXyXtXyXrX", -"tXyXtXyXtXtXtXtXrXtXtXtXtXyXrXyXtXtXtXtXtXyXrXyXrXyXyXrXrXyXyXrXyXrXyXyXrXyXyXrXrXyXyXrXyXrXrXyXrXtXyXtXtXyXtXyXrXyXyXrXrXyXyXrXtXtXtXtXtXtXyXtXtXtXtXtXtXrXyXyXtXyXtXyXtXtXtXyXtXyXtXyXtXtXtXtXtXtXtXtXtXtXyXtXyXtXtXtXtXtXtXtXtXtXyXtXtXtXtXtXtXtXtXtXtXtXtXtXtXyXtXyXtXyXtXyXtXtXtXtXtXyXtXyXtXyXtXtXtXtXtXyXtXyXtXtXtXtXtXtXtXyXtXtXyXtXrXyXyXrXrXyXtXtXtXtXtXyXtXyXrXtXyXtXtXtXyXtXtXtXyXtXtXtXtXtXtXtXtXyXtXtXtXyXtXtXtXtXyXtXtXtXyXtXyXtXtXtXtXrXm.% . . . % m.eXtXtXtXtXyXtXyXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXyXyXtXtXtXrXyXyXrXyXrXyXrXyXtXtXyXtXtXtXtXtXtXtXtXtXtXyXtXtXtXtXtXtXyXtXtXtXtXtXtXtXtXtXtXtXtXtXyXyXtXtXtXtXtXtXtXtXyXtXyXyXtXyXtXtXtXtXtXyXtXtXtXtXtXtXtXtXtXtXtXtXyXtXyXtXtXtXtXtXtXyXtXyXtXtXtXtXyXtXtXtXyXtXyXtXyXtXtXtXtXtXtXtXyXtXyXyXrXrXyXyXrXrXyXyXrXrXyXtXyXyXtXyXrXrXyXyXrXrXyXyXrXrXyXyXrXrXyXyXrXrXyXyXrXrXyXrXyXyXrXyXrXyXyXtXtXtXtXtXyXtXyXtXyXtXrXrXyXrXyXtXtXtXtXtXtXtXyXrXyXtXyXyXtXtXtX", -"tXtXtXtXyXtXyXtXyXtXyXtXyXrXyXtXyXtXyXtXyXrXyXtXyXrXyXrXyXyXrXyXrXyXrXrXyXrXyXrXyXyXrXyXyXrXyXyXyXtXtXtXyXrXyXrXyXrXrXyXyXrXrXyXyXtXyXtXtXtXtXtXtXyXtXyXtXyXtXtXtXtXtXtXyXtXtXtXtXtXtXtXyXtXyXtXtXyXtXyXtXtXtXtXtXtXtXyXyXtXtXtXtXtXtXtXtXyXtXyXtXyXtXyXtXyXtXyXtXtXtXtXtXtXtXtXtXyXtXyXtXtXtXtXtXtXtXtXyXtXtXtXtXtXtXyXtXyXtXtXyXrXyXyXrXyXyXtXtXyXtXtXtXtXyXyXyXrXyXrXyXtXrXyXtXtXtXtXtXtXtXtXtXtXyXtXtXyXtXtXtXyXtXtXtXyXtXyXtXtXtXyXtXtXtXtXtXtXtXtXtXqXn.$ . . : m.qXtXtXtXtXtXtXtXtXtXtXyXtXyXyXtXyXtXyXtXtXyXtXtXtXtXtXtXtXyXyXtXtXyXtXyXtXtXtXtXyXrXtXyXtXtXtXyXtXyXtXtXtXtXyXtXyXtXyXrXtXyXtXyXtXyXtXtXyXtXyXtXtXtXtXtXtXyXtXtXyXtXtXtXtXtXtXtXtXtXtXyXtXtXtXtXtXyXtXtXyXtXyXtXyXtXtXtXtXtXtXyXtXyXtXtXtXtXtXtXtXyXtXtXyXyXtXtXtXtXtXtXyXtXyXtXyXtXtXtXtXtXrXyXyXrXyXyXyXyXrXyXyXrXtXyXrXyXyXyXyXyXrXyXrXyXrXyXyXrXyXyXyXyXrXyXyXyXrXyXyXrXyXrXyXyXrXyXrXyXyXtXyXtXtXtXtXtXyXrXtXyXyXtXyXrXyXtXyXtXyXtXtXtXtXtXtXyXrXyXrXyX", -"yXrXrXyXyXrXyXrXtXtXrXyXtXtXyXrXtXtXtXtXyXrXyXtXtXtXyXrXyXyXrXtXyXrXyXrXyXrXyXyXrXrXyXrXrXyXrXrXyXrXyXrXrXyXyXrXrXyXyXrXyXrXrXyXtXtXyXrXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXrXyXrXrXyXrXrXyXrXyXrXyXtXtXtXtXrXyXyXrXyXrXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXyXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXeXn.+ . . # n.eXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXyXrXtXtXtXtXtXtXtXtXyXrXtXyXtXtXtXtXtXtXyXrXtXrXyXrXyXtXtXtXtXtXyXrXrXyXrXyXtXtXtXtXtXtXtXtXtXtXtXtXrXyXrXrXyXrXrXyXrXrXyXrXrXyXrXrXyXrXrXyXrXyXyXrXrXyXyXrXtXyXyXrXrXtXtXtXyXrXyXrXyXrXyXyXrXrXyXrX", -"rXrXyXrXrXyXrXyXrXrXyXrXrXtXrXyXrXtXtXtXrXrXrXtXtXrXrXyXrXrXrXtXrXrXrXyXyXrXrXrXrXyXyXrXyXrXrXyXrXyXrXyXyXrXrXyXyXrXrXyXrXyXrXrXrXtXrXyXtXtXtXtXtXrXtXtXrXtXtXtXtXtXtXtXtXtXtXrXtXtXrXtXtXtXrXtXtXtXtXrXtXtXrXtXtXtXrXtXtXtXtXtXtXtXtXtXrXtXtXtXtXtXrXtXtXtXtXrXtXtXrXtXrXtXtXrXtXtXtXtXtXrXtXtXtXtXtXtXrXtXtXtXtXtXtXtXrXtXtXtXyXrXrXyXrXrXyXrXrXrXrXrXtXrXtXrXtXrXrXyXrXyXrXrXtXtXrXtXtXtXrXtXtXtXrXyXtXtXrXtXtXtXrXtXtXtXtXrXtXtXrXtXtXtXrXtXrXtXtXtXtXrXeXrXtX6XU + O U 6XtXrXtXrXyXtXtXtXtXtXrXtXtXtXtXtXtXtXtXtXtXrXtXtXtXtXtXtXrXtXrXtXtXtXrXtXrXtXtXtXtXtXrXtXtXtXtXrXtXtXrXtXtXtXtXrXtXtXtXrXtXtXtXrXtXtXtXrXtXtXrXtXrXtXtXtXtXrXtXrXtXrXtXtXtXrXtXtXtXtXrXtXtXtXrXtXtXtXtXrXtXtXtXrXtXtXtXtXrXtXtXrXtXtXtXtXtXrXtXrXtXtXtXrXtXtXtXtXrXtXtXtXtXrXtXtXtXrXyXtXrXtXrXrXyXtXrXtXrXrXyXyXrXrXrXrXtXrXtXrXyXrXrXrXrXtXtXrXtXrXtXtXtXtXrXtXtXyXrXrXyXyXrXyXrXrXyXyXrXyXrXrXyXrXyXrXrXyXrXrXyXyXrXrXyXrXrXrXyXtXtXtXrXrXrXrXyXyXrXrXrXrXyXyXrX", -"rXyXrXyXrXrXrXrXtXrXyXrXtXrXrXrXrXtXrXtXrXyXrXrXrXrXrXrXyXrXtXrXrXyXrXrXrXyXrXyXrXrXrXrXyXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXyXrXyXtXrXrXrXrXrXtXrXtXrXtXrXtXrXtXrXrXtXrXtXtXrXrXtXrXtXrXtXrXtXtXrXtXrXtXtXrXtXrXtXtXrXtXrXtXrXtXrXrXrXtXrXtXrXtXrXrXtXrXtXrXtXtXtXrXtXrXtXtXtXtXtXrXrXtXrXtXrXtXrXtXrXrXrXrXtXrXtXrXtXrXrXrXtXrXtXyXrXrXrXyXyXrXrXyXrXyXrXtXtXrXtXrXrXrXrXrXtXrXyXrXtXrXtXrXtXrXtXrXrXrXrXrXrXtXrXrXtXrXtXrXtXtXtXtXrXtXrXtXrXtXrXtXtXtXrXrXtXrXtXtXtXrX6XU . . . O U 6XtXtXrXrXrXtXrXrXrXtXrXtXrXtXrXrXrXtXrXrXtXrXtXrXtXrXrXrXtXrXtXrXtXrXtXtXtXrXtXrXrXtXrXrXtXrXtXrXtXtXrXtXrXrXtXrXtXrXtXrXtXrXtXrXtXrXtXtXrXtXrXtXtXrXtXrXtXrXtXrXtXtXrXrXtXtXrXtXrXtXrXrXtXrXtXtXtXrXtXrXtXrXtXtXrXtXrXtXrXtXrXrXtXrXtXtXtXrXrXtXrXtXtXrXtXrXtXrXrXtXrXtXtXrXtXtXrXrXrXrXrXtXrXrXtXrXrXrXrXtXtXrXtXrXrXrXyXrXtXtXrXyXrXrXrXyXrXtXrXtXrXtXtXtXrXrXtXrXtXyXrXyXrXrXyXrXrXyXrXrXrXyXrXrXrXrXrXrXyXrXrXrXrXrXrXrXrXrXyXrXrXrXyXrXtXrXyXrXrXrXyXrXyXrXrXrXrX", -"rXrXrXrXyXrXrXyXrXyXrXrXrXyXrXyXtXrXtXrXrXrXyXrXyXrXyXrXrXrXrXyXrXrXyXyXrXrXrXrXyXrXyXrXrXrXyXrXrXyXrXyXrXrXyXrXrXrXyXrXrXrXrXrXrXyXrXyXrXtXrXtXtXtXtXrXtXtXrXrXtXrXtXrXrXtXtXrXtXrXtXrXtXtXrXtXrXtXrXtXtXrXtXrXtXtXrXtXrXtXrXtXtXtXrXtXrXtXrXtXrXtXtXtXrXtXrXtXtXrXtXtXtXrXrXtXrXtXrXtXrXtXtXtXrXtXrXtXtXrXtXtXrXtXtXtXtXtXrXtXrXrXyXyXrXrXrXyXrXrXyXrXrXtXtXtXrXyXyXrXtXrXtXrXtXrXtXtXrXtXtXrXrXyXrXyXrXtXrXrXrXtXtXtXrXtXrXrXrXtXrXtXtXtXrXrXtXrXrXtXtXrXtXrXrXtXtXtXrX6XS . . S 6XrXrXtXrXtXtXrXrXtXrXtXrXrXtXtXtXrXtXtXrXrXtXrXtXrXtXrXtXrXrXtXtXtXtXtXrXtXrXtXtXtXtXtXrXtXtXrXtXrXtXtXrXrXrXtXtXrXtXrXtXtXtXrXtXrXtXrXtXtXrXtXrXtXrXtXtXtXtXtXtXrXtXrXtXtXtXrXtXtXrXtXrXtXtXrXtXrXrXtXtXrXtXrXtXrXrXtXrXtXrXtXrXtXtXrXtXrXrXtXtXtXrXtXtXrXtXrXtXrXrXtXrXyXrXtXtXrXrXtXrXtXrXyXrXtXtXrXyXrXyXrXrXtXtXtXrXtXtXrXtXrXrXtXrXrXyXyXrXrXtXtXrXrXtXrXrXtXtXrXtXrXrXrXrXrXrXrXrXyXrXrXyXrXrXrXyXrXrXyXrXrXyXrXyXrXyXrXyXrXrXrXrXyXrXrXtXrXrXrXyXrXrXrXrXrXyXrXyXrX", -"rXrXrXyXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXyXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXyXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXtXrXrXtXrXrXrXtXrXtXrXrXtXrXrXrXrXrXrXrXtXrXrXrXtXrXtXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXtXrXrXtX|.S . X o S 3XrXrXrXtXrXrXrXrXrXtXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXtXrXrXrXtXrXrXtXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXtXrXrXtXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXtXrXrXtXrXrXtXrXrXrXrXrXrXrXtXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXtXrXrXrXrXtXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXyXrXrXrXtXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrX", -"rXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXeXrXtX{.M . M {.rXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrX", -"rXrXrXrXrXrXrXrXrXrXrXrXrXqXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXqXrXrXrXrXqXrXrXrXrXrXrXrXrXrXrXqXrXrXrXrXrXrXrXrXqXrXrXrXrXrXrXrXqXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXqXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXqXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXqXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXqXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXqXrXrXrX{.M . M {.tXrXrXqXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXqXrXrXrXrXrXrXqXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXqXrXrXrXrXrXrXrXrXrXrXqXrXrXrXrXrXrXrXrXrXqXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXqXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXqXrXrXrXrXrXqXrXrXrXrXrXrXrXrXqXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXqXrXrXrXrXqXrXrXrXrXrXrXrXrXrXrXqXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXqXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrX", -"qXrXqXrXqXrXqXrXqXrXqXrXrXrXqXrXrXrXrXqXrXrXqXrXrXrXqXrXqXrXrXrXqXrXqXrXqXrXqXrXrXrXrXqXrXrXrXqXqXrXrXrXrXrXqXqXrXqXrXrXrXqXrXrXqXrXrXrXrXqXrXrXqXrXqXrXrXqXrXqXqXrXqXrXqXrXqXrXrXrXrXqXrXrXrXrXqXrXqXrXqXrXrXqXrXqXrXqXrXrXrXqXqXrXqXrX0XrXrX0XrXrXrX0XqXrXqXrXqXqXrXrXrXqXrXrXqXrXqXrXrXqXrXqXqXrXqXrXrXqXrXqXrXrXqXrXqXrXqXrXrXrXqXqXrXrXqXrXqXrXqXrXqXrXqXrXrXqXrXrXqXrXqXrXqXrXrXrXrXqXrXqXrXqXrXrXrXrXqXrXqXrXrXrXqXrXqXrXrXrXrXrXrXqXrXqXqXrXrXqXrXqXrXqXqXrXqXrXrXqXrXrXrXrXqXrXqX/.c . . w {.rXrXrXqXrXrXqXrXqXrXqXqXrXqXrXrXrXqXrXrX0XrXrXrXrXrXqXrXqXrXrXqXrXrXrXqXrXqXrXrXrXqXqXrXqXrXqXrXrXrXqXqXrXrXrXrXrXrXqXqXrXqXrXrXrXrXqXrXrXqXrXqXrXrXqXrXqXrXrXrXqXrXqXqXrXrXrXrXrXqXrXrXrXrXqXrXqXrXqXrXqXrXrXrXrXrXrXqXrXrXqXrXqXrXqXrXrXqXrXqXrXqXrXqXrXrXrXrXqXrXrXrXrXrXqXrXrXrXqXrXqXrXrXrXrXqXrXrXrXrXqXrXqXrXqXqXrXqXrXqXrXqXrXqXrXrXqXrXqXrXrXqXrXqXrXqXrXrXrXrXqXqXrXrXrXqXqXrXqXrXqXrXqXrXrXrXrXrXrXrXqXrXrXrXqXqXrXrXrXrXqXrXrXqXrXqXrXqXrXqXrXrXrXrXrXrXqXqXrXrXrXqXrXqXrXrXrX", -"rXqXrXqXrXqXrXrXrXrXqXrXqXrXrXqXqXrXqXrXrXrXrXrXqXrXrXrXqXrXqXrXrXrXqXrXqXrXrXqXqXrXqXrXrXqXqXrXrXqXqXrXrXrXrXqXqXrXrXrXrXqXqXrXrXqXrXqXrXrXrXqXrXqXrXrXrXqXrXrXqXrXqXrXqXrXqXrX0XrXqXrXrXrXqXrXrXrXqXrXqXrXrXrXrXrXrXrXrXqXrXqXrXqXrXqXrXrXrXqXrXrXqXrXqXrXrXqXrXrXrXrXqXrXqXrXrXqXrXqXrXrXrXrXqXrXqXrXqXrXqXrXrXqXrXqXrXrXrXqXrXqXrXrXrXqXqXrXqXrXqXrXrXqXrXqXqXrXrXqXrXqXrXrXqXrXrXrXrXqXrXrXqXrXrXqXrXqXrXrXqXrXrXrXrXqXrXqXqXrXqXrXqXrXqXrXrXqXqXrXrXrXrXqXrXrXqXrXqXrXrXqXrXrXrXrXrXqX9X{.c w /.rXqXrXqXrXqXrXqXrXqXrXrXqXrXqXrXqXqXrXrXrXrXqXrXrXqXqXrXrXrXrXqXrXqXrXqXrXqXrXrXqXqXrXrXrXrXqXrXrXqXrXqXrXrXqXrXrXrXrXrXqXrXqXrXqXrXrXqXrXqXrXqXrXrXrXrXqXrXrXrXrXrXrXrXqXrXqXrXqXrXrXqXrXqXrXrXqXrXqXrXrXrXrXrXqXrXqXrXrXrXrXrXrXrXqXrXqXrXqXrXqXrXrXrXqXrXrXqXqXrXrXqXrXrXrXrXrXrXqXrXrXqXrXrXrXrXqXrXrXqXrXqXrXqXrXqXrXrXrXrXrXrXqXqXrXrXrXrXrXrXqXqXrXrXrXqXrXqXrXrXqXrXqXrXrXqXrXrXrXrXqXrXrXqXrXqXrXrXqXrXrXrXrXrXrXrXrXrXrXrXrXqXrXqXrXrXrXqXrXqXrXrXqXqXrXqXrXrXqXrXqXqXrXrXqXrXqXrXrX", -"rXqXqXrXqXrXqXqXqXqXqXrXqXqXqXrXqXrXqXrXqXqXqXqXrXqXqXrXqXrXqXqXqXqXrXqXrXqXrXqXrXqXrXqXqXrXqXrXqXrXrXqXqXqXrXqXqXqXqXqXqXrXrXqXqXrXrXqXqXqXqXrXrXqXqXqXqXrXqXrXqXrXqXrXrXrXqXrX0XrXrXqX0XrXrXqXqXrXrXqXrXqXqXrXqXqXqXqXqXrXqXrXrXqXrXqXqXqXqXrXqXrXrXqXrXqXrXqXqXqXqXrXrXqXqXqXqXrXqXrXqXqXqXrXrXqXrXrXrXqXrXqXrXqXrXqXqXqXqXrXrXqXqXqXqXrXrXqXrXqXrXqXqXrXqXrXqXqXqXrXqXrXqXqXrXqXqXqXrXqXqXrXqXqXqXrXqXrXqXqXrXqXqXqXrXqXrXqXrXqXrXrXrXqXrXrXqXrXrXqXqXqXrXqXqXqXqXrXqXqXqXrXqXqXqXqXqXrXqXrX0X/.7 8 /.qXqXrXrXqXqXqXrXqXrXqXrXrXqXrXqXrXqXrXrXqXqXqXrXqXqXrXqXrXqXqXqXrXrXqXrXrXrXqXrXrXqXrXrXqXqXqXrXqXqXrXqXrXqXqXrXqXqXqXqXqXqXrXqXqXqXrXqXrXqXrXqXqXrXqXqXqXrXqXqXrXqXqXqXqXqXrXqXqXqXrXqXrXqXrXqXqXqXrXqXrXqXqXqXrXqXrXqXrXqXqXqXqXqXqXqXrXqXqXqXrXqXrXqXqXrXqXqXqXqXrXqXqXrXqXqXqXqXqXqXrXqXqXqXrXqXqXrXqXqXqXqXrXqXrXqXqXrXqXqXqXqXqXqXrXrXqXqXqXqXqXqXrXrXqXqXqXrXqXrXrXqXrXqXrXqXqXrXqXqXqXrXqXqXqXrXqXqXqXrXqXqXqXqXqXqXqXqXqXqXqXqXrXqXrXqXqXqXqXrXqXqXqXrXqXrXqXrXrXqXrXqXrXqXqXqXrXqXrXqXqX", -"qXqXqXqXqXqXqXqXqXqXqXqXqXrXqXqXqXrXqXqXqXqXqXqXqXqXqXqXqXqXqXrXqXqXqXqXqXqXqXqXqXqXqXrXqXqXqXqXqXqXqXrXqXqXqXqXqXqXqXqXqXqXqXrXqXqXrXqXqXqXqXqXrXqXqXqXqXqXqXqXqXrXqXqXqXqXqXqXrXrX0XrXrXqX0XrXqXqXqXqXqXqXqXqXqXqXqXrXqXqXqXqX0XrXqXqXqXqXqXqXqXqXqXqXqXrXqXrXqXqXqXqXqXqXqXrXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXrXqXqXqXqXqXqXrXqXqXqXrXqXqXqXqXqXrXqXqXqXqXqXrXqXrXqXqXqXqXqXqXqXrXqXqXqXqXqXrXqXrXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXrXqXqXqXqXqXqXqXqXqXrXqXqXqXqXrXqXqXqXqXqX0XqXqXG.8 8 G.qX0XqXqXqXqXqXqXqXrXqXqXqXqXqXqXqXqXqXqXqXqXrXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXrXqXqXqXqXqXqXqXqXqXqXrXqXqXqXrXqXqXqXqXqXqXqXqXqXrXqXqXqXqXrXqXqXqXqXqXqXqXqXrXqXqXqXqXqXqXqXqXqXrXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXrXqXqXqXqXqXqXqXqXqXqXrXqXqXqXqXrXqXqXqXrXqXqXqXrXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXrXqXqX0XqXqXqXqXqXqXrXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXrXrXqXqXqXqXqXqXqXqXrXqXqXqXqXrXqXqXqXqXqXqXqXqXqXqXqXqXrXqXqXqXqXqXqXrXqXqXqXqXqXqXqXqXqXqXrXqXqXqXrXqXqX", -"qXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX0XqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX0XqXrX0X0XqXqX0XqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX0XqX0XqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX0XqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX0XqXqXqXZ.2 . > Z.rX0XqXqX0XqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX0XqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX", -"qXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX0XqXqXrX0XqXqXqXqXqXqXqXqXqX0XrX0XqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX0XqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX0XqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX0XZ.: : Z.9XqXqX0XqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX0XqX0XqXqXqXqXqXqX", -"qXqXqXqXqXqXqXqXqXqX0XqX0XqXqXqXqXqXqX0XqXqXqXqXqX0XqXqXqXqXqXqXqXqXqXqXqXqX0XqXqXqXqXqXqXqXqXqXqXqX0X0XqXqXqXqXqXqXqXqXqXqXqXqXqXqX0XqXqXqXqXqXqXqXqX0XqXqXqXqXqX0XqXqXqXqX0XqXqXqXqXqXqXqXqX0XqXqX0XqXqX0XqXqXqXqXqXqXqXqXqXqXqXqX0XrXqXqXqXqXqXqXqXqX0XrX0XrXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX0XqXqXqXqX0XqXqXqXqXqXqXqXqX0XqXqX0XqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX0XqXqXqX0XqXqX0XqXqXqXqXqXqXqXqX0XqXqXqXqXqXqXqXqXqXqXqXqX0XqXqXqX0XqXqXqXqXqXqXqXqXqXqX0XqXqXqXqXqXqXqXqXqXqXqX0XqXqXqXqXqXqXqXqXqX0Xm.% % m.0XqXqXqXqXqXqXqXqXqXqXqX0XqX0XqXqXqXqXqXqXqXqXqX0XqXqXqXqXqXqXqXqXqXqXqXqX0XqXqXqXqXqXqX0XqXqXqX0XqXqXqXqXqXqXqXqXqXqXqX0X0XqXqXqXqXqXqXqXqXqX0XqXqXqX0XqXqXqXqXqXqXqX0XqX0XqXqXqXqXqXqXqXqXqX0XqXqXqXqXqXqXqXqXqXqXqXqXqX0XqXqXqXqXqXqXqXqXqXqXqX0XqXqXqXqX0XqXqXqXqXqXqXqXqXqXqXqXqXqXqX0XqXqXqX0XqXqXqX0XqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX0XqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX0XqXqXqXqXqXqXqXqXqX0XqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqXqX0XqXqXqXqX0XqXqXqXqXqXqXqXqXqXqXqX0X0XqXqXqXqXqX", -"0X0XqXqX0XqXqXqX0XqX0XqXqX0XqXqXqXqXqX0XqX0X0X0X0XqX0XqXqX0XqXqXqX0XqXqX0XqXqXqXqX0X0XqXqXqX0XqX0XqXqX0X0XqXqXqX0XqXqXqX0XqXqX0XqX0XqXqXqX0X0XqXqX0X0XqX0XqXqXqXqXqX0XqX0XqX0XqX0XqXqX0XrX0X0XrXqXqXqXqX0XqXqXqX0XqX0XqXqXqX0XqX0XqX0X0X0XqX0X0XqX0XqXqXqX0XqX0X0X0XqX0X0XqX0XqXqX0X0XqX0XqXqXqXqXqXqX0XqX0X0XqXqX0XqX0XqX0XqXqX0X0XqX0XqX0XqXqX0XqX0XqXqXqX0XqX0XqX0XqXqX0XqX0XqXqXqX0X0XqXqXqX0XqX0XqXqX0XqX0XqX0X0XqX0XqXqX0XqXqX0XqXqX0X0XqX0X0XqX0X0XqXqXqX0XqXqXqXqX0XqXqX0XqX0X0X0XqX0XqX0XqXqX0XqXqXqX9XqXqX9Xb.% : b.6XqXqXqX0XqXqX0XqX0XqXqXqXqX0X0XqX0XqXqX0X0XqXqXqX0XqX0XqXqX0XqXqX0XqXqX0XqX0XqXqXqXqXqX0X0XqXqX0X0XqX0X0XqX0X0XqXqXqXqXqX0X0XqX0XqX0X0XqXqXqXqXqXqXqX0XqXqXqXqXqX0XqX0XqXqX0XqX0X0XqX8XqXqXqXqXqXqXqX0XqXqX0XqXqX0XqXqX0XqXqXqX0XqX0X0XqXqX0XqX0XqX0XqXqX0XqXqXqXqXqXqXqXqXqX0XqXqXqX0XqX0XqXqXqX0XqXqXqX0XqXqXqXqX0XqXqX0X0X0X0XqXqXqXqXqXqX0X0XqXqXqXqX0XqXqXqX0X0XqXqX0X0X0XqX0XqXqXqX0XqXqXqX0XqX0XqXqX0X0XqXqX0XqXqXqX0X0XqXqXqX0XqX0X0XqX0XqXqX0XqXqXqX0XqXqX0XqXqXqX0X0XqX0XqX0XqX0XqXqXqX0XqX0XqXqXqXqXqXqXqX", -"0XqX0XqX0XqX0X0XqX0X0X0XqX0XqXqX0X0X0XqXqX0X0X0X0X0XqX0X0XqX0X0X0X0X0X0X0X0X0X0X0XqXqXqX0XqX0XqX0X0X0X0XqX0X0XqXqX0X0X0XqX0XqX0XqX0X0X0X0XqX0X0X0XqX0XqX0X0X0X0X0X0X0X0XqX0X0X0XqX0X0X0X0X0X0X0X0X0X0X0X0X0X0XqX0XqX0X0X0XqX0XqX0X0X0XrX0X0X0XqXqX0X0X0XqX0X0X0X0XqX0X0XqXqX0X0X0XqX0X0X0X0X8XqX0X0X0XqX0XqX0X0XqX0X0XqX0XqX0X0XqX0X0XqX0X0X0X0XqXqX0X0X0XqX0XqX0X0XqX0X0XqX0X0X0X0X0XqX0X0X0XqX0X0XqX0X0XqX0X0X0XqX0X0XqX0XqX0X0X0X0X0X0XqX0X0XqX0X0XqX0X0X0XqXqXqX8XqX8XqX0XqX0X0X0XqXqX0X0X0XqX0XqX0X0X0XqX0X0X0X0X0X6Xb.# + b.9XqX0X0X0X0XqX0X0XqXqX0X0X0XqX0XqX0X0XqX0X0XqX0X0X0XqX0XqX0X0X0X0X0X0X0X0X0XqX0XqX0X0X0X0X0XqX0X0X0XqX0X0XqX0X0X0XqX0XqX0X0XqX0X0X0X0X0XqX0XqX0X0X0XqX0X0X0X0X0X0X0X0X0X0XqX0X0XqX0X0XqX0XqXqXqX8X0XqX0X0X0X0X0X0X0X0X0X0XqX0X0X0X0XqX0XqX0X0X0XqXqX0X0X0X0X0X0XqX0X0X8XqXqX8XqX8X0X0X0X0X0XqX0X0X0X0X0XqX0X0X0XqX0X0X0XqX0X0X0XqX0XqX0XqX0X0X0X0X0XqX0X0XqXqX0X0X0X0X0XqX0X0X0XqX0XqX0XqX0X0X0X0X0XqX0XqX0X0X0XqX0X0XqX0X0X0X0XqX0X0X0XqX0X0XqX0X0X0X0X0X0X0X0X0XqXqX0X0X0X0X0XqX0X0XqX0X0XqXqXqX0XqX0XqX0X0X0X0X0X0X0X0X", -"0X0XqX0X0X0X0XqX0X0X0X0XqXqX0X0X0XqX0XqX0X0X0X0XqX0X0X0X0X0XqX0XqX0X0X0XqX0XqX0XqX0XqX0XqX0X8XqXqX0X0XqX0X0X0X0X0X0X0X0XqX0XqX0X0X0X0XqX0XqX0X0X0X0XqX0X0X0X0X0X0X0X0X0X0X0XqX0X0XqX0XqX0XqXqX0X0X0X0XqX0X0X0X0XqX0X0X0X0XqX0X0X0X0X0XqX0X0X0X0X0X0XqX0X0X0X0XqX0X0XqX0X0X0XqXqX0X0X0XqX0XqX0X0XqX0X0XqX0X0X0X0XqX0X0X0XqX8XqXqX0XqX0XqX0X0X0XqX0X0X0X0X0X0X0X0X0XqX0X0X0XqX0X0X0XqX0X0X0X0XqX0X0XqX0XqX0XqX0XqX0X0X0XqX0X0X0X0X0XqX0X0XqX0XqX0X0X0X0X0X0XqX0X0X0XqX0XqX0X0X0X0XqX0X0X0X0XqX0X0X0X0X0X0X0X0X0X0X0X0XqX0X0X0X6XS S |.0X0X0XqX0XqX0X0X0X0X0X0X0X0X0X0XqX0X0XqX0X0XqX0X0X0X0X0XqX0X0X0XqX0XqX0X0X0XqX0X0XqX0X0X0XqX0XqX0X0X0XqX0XqX0X0X0X0X0X0X0X0X0X0X0X0X0XqX0X0X0X0X0X0X0XqX0X0X0X0X0XqX0X0X0XqX0X0X0X0X0X0X0X0X0XqX0XqX0XqXqX0X0XqX0X0X0X0X0X0X0XqX0X0XqX0XqX0X0X0X0X0X0XqX0X0X0X0X0X0X0X0X0X0X0XqX0X0X0X0X0X0X0X0X0X0XqX0X0X0X0X0X0X0XqX0X0X0X0X0X0X0X0X0X0X0X0X0X0X0XqX0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0XqX0X0X0X0XqX0X0X0X0XqX0X0X0XqX0XqX0XqX0X0X0X0X0X0X0X0X0X0XqX0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0XqX0X0X0X0XqX0X0XqXqX0XqX0X0X0X0X0XqX0X0XqX", -"0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X8XqXqX8XqXqX8XqX0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0XqX0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0XqX8XqX0X8X0XqX0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X7X8X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X8XqX0X0X0X0X0X0X0X0X0X0X", -"0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X8X0X0X0X8X0X8X0X0X0X0X0X0X0X0X0X0X8X8X0X8X8XqX8X0X0X0X8X0X0X0X0XqX0X8X0X8XqX8XqX0X8X8X0X0X8X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X8X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X8X0X0X0X0X0X0X8X8X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X8X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X8X8X0X0X8X0X8X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X8X8X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X8X0X0X0X0X0X0X0X0X0X0X0X0X8X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X8X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X8X8X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X8X8X0X0X8X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X8X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X8X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X8X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X0X8X0X0X0X0X0X0X0X0X", -"0X0X0X0X0X8X0X0X0X0X8X0X0X8X0X0X8X0X8X0X0X0X8X0X0X0X0X0X0X0X0X0X0X0X8X0X0X8X0X0X0X0X0X0X0X0X8X0X8X0X8X0X0X0X8X0X0X0X0X0X0X8X0X8X0X0X0X0X0X0X0X0X8X0X0X0X0X0X8X0X0X0X0X0X0X0X0X0X0X0X8X0X0X8X0X8X8X0X8X0X0X0X8X0X0X0X0X0X0X8X0X0X0X0X0X0X0X0X0X0X8X0X0X0X8X0X8X0X0X8X0X0X0X8X0X8X0X0X8X0X0X0X0X0X8X0X8X0X0X0X0X8X0X0X0X0X0X0X0X0X8XqX8XqX8X0X0X8X0X8X0X8X0X0X0X0X8X0X0X0X0X0X0X0X0X0X8X0X0X0X0X0X0X8X0X8X0X8X0X8X8X0X8X0X0X0X8X0X0X0X0X0X0X8X0X0X0X8X0X8X0X0X0X0X8X0X8X0X0X0X8X0X0X0X0X8X0X0X0X0X0X0X8X0X0X0X0X0X0X0X0X0X0X0X8X0X0X0X0X0X8X0X8X0X0X8X0X8X0X0X0X0X8X0X0X0X0X0X0X0X0X0X8X0X0X0X0X0X0X8X0X8X0X0X8X0X8X0X0X8X0X0X0X0X0X0X0X0X8X0X8X0X0X8X0X8X0X0X0X0X0X0X0X0X8X0X0X0X8X0X8X0X0X0X0X0X0X8X0X0X0X8X0X8X0X0X0X0X0X0X0X0X8X0X0X0X0X8X0X8X0X8X0X0X8X0X0X8X0X0X8X0X0X8X0X0X8X0X8X0X0X0X0X0X0X0X0X0X0X0X0X8X0X0X0X0X0X0X0X8X0X0X8X0X0X0X8X0X0X0X0X0X8X0X8X0X0X0X0X0X0X0X0X0X0X0X0X0X8X0X0X8X0X0X0X0X0X0X8X0X0X0X8X0X0X0X0X0X0X0X0X0X0X8X0X0X0X0X8X0X8X0X8X0X0X0X8X0X0X0X0X0X0X8X0X0X0X0X8X0X0X0X0X0X0X0X0X0X8X0X0X8X0X0X8X0X8X0X8X0X8XqX8XqX0X0X8X0X8X0X0X8X", -"8X0X0X0X8X0X0X8X8X0X0X0X8X0X0X8X0X0X0X0X0X0X8X0X0X0X0X8X0X0X0X0X0X0X0X0X8X0X8X0X0X8X0X0X0X0X0X0X0X0X0X8X0X0X0X0X0X0X8X0X0X0X8X0X0X8X0X0X8X0X0X0X0X0X0X0X8X0X0X8X8X0X0X0X0X8X0X0X8X0X0X0X0X0X0X0X0X0X0X8X0X0X0X0X0X0X0X0X0X0X8X0X0X8X0X0X0X0X0X0X0X8X0X0X8X0X0X0X0X8X0X0X8X0X0X0X8X0X0X0X0X0X0X8X0X0X0X0X0X0X0X0X0X0X0X8X0X0XqX8X0X0X8XqX0X0X0X8X0X0X0X0X0X0X0X0X0X0X0X0X8X0X0X0X0X0X8X0X0X0X0X8X0X0X8X0X0X0X0X0X0X0X0X8X0X0X0X0X0X0X8X0X8X0X8X0X0X0X0X0X0X8X0X8X0X0X0X0X0X8X0X8X0X0X0X0X0X8X0X0X0X0X0X8X0X0X0X0X8X0X0X0X8X0X0X0X8X0X8X0X0X0X8X0X0X0X0X0X0X0X0X0X0X0X0X0X8X0X0X0X0X0X8X0X0X0X0X8X0X0X8X0X0X0X0X0X0X0X8X0X0X8X0X0X8X0X8X0X0X0X0X0X0X0X0X0X0X0X0X0X0X8X0X8X0X0X8X0X0X8X0X0X8X0X8X0X0X8X0X8X0X0X0X0X8X0X0X0X0X8X0X0X0X0X0X0X0X0X8X0X0X8X0X8X0X0X0X0X0X0X0X0X8X0X0X8X0X0X8X0X0X8X0X8X0X0X8X0X0X0X8X0X0X0X0X0X0X0X0X0X0X0X0X8X8X0X0X0X0X0X8X0X8X0X0X0X0X0X8X0X0X8X0X8X0X0X8X0X0X8X0X0X0X0X0X8X0X0X0X0X0X0X0X8X0X0X8X0X8X0X0X0X8X0X0X8X8X0X0X0X0X0X0X8X0X0X8X0X8X0X8X0X0X8X0X0X8X0X0X8X0X0X0X0X0X0X0X8X0X0X0X0X8X0X8X0X0X0X0X0X0X0X0X8X0X0X8XqX0X0X8X0X", -"8X8X8X0X8X8X0X0X0X0X8X0X0X8X8X0X8X0X8X8X8X0X8X0X0X8X0X8X8X8X8X0X8X8X0X8X8X0X0X8X8XqX8X0X8X8X8X8X8X8X8XqX0X8X8X0X8X8X0X0X8X0X0X8X0X8X0X8X8X0X8X8X8X8X0X0X0X8X0X8X0X0X8X8X8X0X8X8X0X8X8X8X8X0X8X8X8X8X8X0X0X8X8X0X8X8X8X8X8X0X0X8X0X0X0X8X8X8X8X8X8X0X0X0X0X8X8X0X8X0X0X0X8X8X8X0X0X0X8X0X8X8X0X8X8X0X8X8X8X0X7X0X8X8X0X8X8X8X8X0X8X8X0X8X8X8XqX8X8X0X8X0X8X8X8X8X0X8X8X0X0X8X8X0X8X8X0X0X8X8X8X0X8X0X0X8X8X0X8X8X0X8X0X8X8X8X8X0X8X8X0X0X8X0X0X8X8X0X8X0X8X0X8X0X0X8X8X0X8X0X0X8X8X8X8X0X8X0X8X8X8X0X8X0X8X8X8X8X0X8X8X0X8X8X8X0X0X8X0X0X8X0X0X8X8X0X8X0X8X8X8X8X0X8X8X0X8X8X8X0X8X8X0X0X8X8X0X8X8X0X8X0X8X0X8X8X0X8X0X8X0X8X8X0X0X8X0X0X8X8X0X8X8X0X8X0X8X8X8X8X8X0X8X0X8X0X0X8X0X0X0X8X8X0X8X0X8X0X0X0X8X8X0X8X0X0X8X0X8X0X8X8X8X0X8X8X8X8X0X0X8X0X0X8X8X8X0X0X8X8X8X0X8X0X8X0X0X0X0X8X8X0X8X0X0X8X0X8X8X0X8X0X8X8X0X8X8X0X8X0X0X8X8X0X0X8X8X8X8X0X8X0X0X8X8X0X8X0X8X8X0X8X8X0X8X0X0X8X8X0X8X0X0X8X0X8X8X0X8X8X0X8X8X0X8X0X0X8X0X8X8X0X0X8X0X0X0X0X8X0X8X8X8X0X0X0X0X8X0X8X0X0X8X0X0X8X8X0X0X0X8X8X8X0X8X0X8X0X8X0X8X0X8X0X8X0X0X8X8X0X8X8X0X8X8X8X0X8X0X8X0X8X", -"8X0X8X8X8X0X8X8X8X8X0X8X8X8X8X0X0X8X8X0X8X8X8X8X8X8X8X0X8X8X8X8X8X9X8X0X8X0X8X8X8X8X8X8X8X8X8X0X8X0X8X8X8X8X0X8X8X8X0X8X8X0X8X8X8X0X8X8X8X8X8X0X8X0X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X0X8X0X8X8X8X0X8X0X8X8X8X8X0X8X8X8X0X8X8X0X8X8X8X8X8X0X8X8X8X0X8X0X8X8X8X8X8X8X8X0X8X8X8X8X8X8X7X0X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X8X8X8X8X8X8X8X8X0X8X0X8X8X8X8X0X8X8X0X8X8X8X8X8X8X0X8X8X8X8X8X8X8X8X0X8X0X8X8X0X8X8X0X8X8X8X0X8X8X8X8X8X8X0X8X8X8X0X8X8X0X8X8X0X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X0X8X0X8X8X8X8X8X0X8X8X8X8X0X8X8X8X8X0X8X8X8X8X8X8X8X0X8X8X0X8X8X0X8X8X0X8X8X8X8X8X8X0X8X8X8X8X8X8X8X0X8X8X0X8X8X0X8X8X0X8X8X0X0X8X8X8X0X8X8X0X8X8X8X8X0X8X0X8X8X0X8X8X0X8X8X8X8X8X8X0X8X8X0X8X8X8X8X0X8X0X8X8X8X8X0X8X8X8X8X8X8X8X8X0X8X8X8X8X0X8X8X0X8X0X8X0X8X8X8X8X8X8X0X8X8X8X8X0X8X8X8X8X0X8X8X0X8X0X8X8X8X8X0X8X8X8X8X0X8X8X0X8X8X8X8X8X8X8X0X8X8X8X0X8X0X8X8X8X0X8X0X8X8X8X8X8X8X8X0X8X0X8X0X8X8X8X8X8X8X8X8X8X8X0X8X8X0X8X8X8X0X8X8X8X8X8X8X8X8X8X8X8X8X8X8X0X8X8X8X8X0X8X8X0X8X8X8X0X8X8X0X8X0X8X0X8X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X0X8X8X8X8X8X8X", -"8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X8X8X0X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X0X8X8X0X7X8X8X0X8X8X8X8X8X8X7X0X8X8X8X8X8X0X8X8X8X0X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X0X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8XoX0X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X7X0X8X8X8X8X8X8X8X8X8X8X8X8X8X0X8X8X8X8X8X8X0X8X8X8X8X8X8X8X8X8X0X8X8X8X8X0X8X8X8X8X", -"8X8X8X8X8X8X7X8X8X8X8X7X8X8X7X8X8X8X7X8X8X8X8X7XoX8X8X8X8XoX8X8X8X8X8X8X8X7X8X8X7X8X8X7X7X8X8X7X8X8X8X8X8X8X7X8X8X8X8X8X7X8X8X7X8X8X7X8X8X7X8X7X8X8X8X8X8X7X8X8X8X8X8X8X8X8X8X8X8X8X8X8X7X8X8X7X8X8X8X8X8X8X8X7X8X8X8X7X8X8X8X8X8X7X8X8X8X7X8X7X8X8X7X8X8X8X8X8X8X7X8X8X7X0X7X0X7X8X8X8X8X8X8X8X0X7X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8XoX8X8X8X8X8X8XoX8X8X8X8X8X7X8X8X8X7X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X7X8X8X7X8X8X8X8X8X7X8X8X8X8X8X7X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X8X8X8X8XoX8X8X8X0X8X8X8X8X8X8XoX8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X7X8X7X8X8X8X8X7X8X8X8X8X7X8X8X7X8XoX8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X7X8X8X8X8X7X8X8X8X8X7X8X8X8X8X8X8X8X8X8X8X8X8X8X7X8X8X8X7X8X8X8X7X8X8X8X8X7X8X8X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X7X8X8X8X8X8X8X7X8X8X7X8X8X8X8X8X8X7X8X8X7X8X8X8X7X0X7X0X7X0X7X7X0X0X7X7X0X7X8X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X7X8X8X7X8X8X8X8X8X8X8X8X8X8X8X8X8X", -"8X7X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X7X8X8X7X8X8X7X7X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X7X8X8X8X7X8X8X7X8X8X8X8X8X7X8X7X0X7X7X0X8X7X8X8X7X0X8X7X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X7X8X7X8X8X7X8X8X7X7X8X8X8X8X8X8XoX8X8X8X8X8X8XoX8X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X7X8X8X7X8X8X8X8X7X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X7X8X8X8X7X8X8X8X8X8X7X8X8X8X8X8X8X8X8X8X7X8X8X8X8X7X8X8X7X8X8X7X7X8X8X0X0X8X0XoXoX8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X7X8X8X7X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8X8XoX8X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X8X8X8X7X8X8X8X7X0X0X7X7X0X7X7X0X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X8X8X8X8X8X8X7X8X8X8X8X8X8X8X7X8XoX8X", -"7X8X7X8X7X8X8X8X7X8X8X8X7X8X7X8X7X8X8X7X8X8X8X8X8X8X8X8X8X8X7X8X8X7X7X8X7X8X8X7X8X8X7X8X8X8X8X7X7X8X7X8X7X8X8X8X8X8X8X8X8X7X7X8X8X7X7X8X7X7X8X8X7X7X7X8X7X8X8X7X8X7X7X8X7X7X7X7X7X8X8X7X7X8X7X7X7X8X8X8X7X8X7X8X8X8X8X8X7X8X8X7X7X8X7X7X7X7X8X8X8X7X8X8X8X7X7X7X8X7X8X7X7X8X0X7X7X8X7X7X8X8X7X8X8X7X7X0X7X8X8X8X7X8X7X8X7X8X7X8X8X8X8X8X8X8X8X8X8X8XoX8X8X8X8X8X8X7X8X8X7X8X7X7X7X8X7X8X8X7X8X7X8XoX8X8X8X8X8X8XoX8X8X8X8X8X8X8X8X8X7X8X7X8X7X7X7X8X7X8X8X7X7X8X7X7X7X8X7X8X7X7X7X8X8X8X7X8X7X7X8X7X7X7X7X7X8X8X7X8X7X8X7X8X7X7X7X8X8X7X8X8X7X7X7X8X7X7X8X8X8X7X7X7X7X8X7X8X7X7X8X8X8X8X7X8X8X7X8XoX0XoXoX0XoX8XoX8X8X8X8X8X8X8X7X8X7X7X8X8X8X7X7X8X7X7X8X8X8X7X7X8X8X7X8X7X7X7X7X8X8X7X8X7X7X7X7X8X8X7X8X7X7X7X7X7X8X8X8X8X7X8X8X8X8X8XoX8X8X8XoX8X8X8X8X8X8X8X8X8X7X8X7X8X7X7X8X8X7X8X8X7X7X7X7X8X7X8X8X7X7X8X7X8X7X7X7X7X8X8X7X7X8X8X8X8X7X8X7X8X7X7X8X8X7X8X8X8X7X8X8X7X7X8X8X7X7X7X7X8X8X8X7X8X8X8X7X8X8X7X8X8X7X7X8X8X7X7X8X7X8X8X7X8X7X8X7X8X8X8X7X8X7X8X7X8X7X8X7X0X7X7X7X7X7X7X8X7X7X8X8X8X7X8X7X8X8X7X8X8X7X8X8X7X7X8X7X8X8X8X8X7X8X7X8X8X8X8X8X8X8X8X", -"7X7X8X7X7X7X7X7X7X7X7X7X8X7X7X7X8X7X7X7X7X7XoX8X8XoXoX8X8XoX8X8X7X8X7X7X8X7X7X7X7X7X7X7X7X7X7X7X8XoX8X7X8XoX7X7XoX8XoX8X7X8X8XoX8X7X7X7X7X8X7X7X8X7X8X7X7X7X7X7X7X8X7X7X7X7X7X7X7X7X8X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X8X7X7X7X7X7X7X7X8X7X7X7X7X7X7X8X7X7X7X7X7X8X7X7X7X7X7X7X7X7X8X7X7X7X7X7X7X7X7X7X7X7X7X7X7X8X7X7X7X9X7X8XoX8XoXoX8XoX8XoXoX8X8X7X7X7X7X8X7X7X7X7X7X7X7X7X7X7X8X7X8X7X7X8X8XoX8X8XoX8XoXoX8XoX8X8XoXoX8X7X7X7X7X8X7X7X7X7X7X7X7X8X7X7X7X8X7X8X7X7X7X7X7X7X7X7X7X7X7X8X7X7X7X7X7X7X8X7X7X7X7X8X7X7X7X7X7X7X7X8X7X7X7X7X7X7X7X8X7X7X7X7X7X8X7X8X7X7X7X7X7X7X7X7X7X7X7X8X7X8X8XoX8X0XoX8X8XoX8XoX8X8XoX8XoX7X7X8X7X7X7X7X7X7X7X8X7X7X7X7X7X7X8X7X7X7X7X7X7X7X8X7X7X7X7X7X7X7X7X7X8X7X7X7X7X7X8X7X7X7X7X7X7X8XoX8XoX8XoX8XoXoX8XoX8X8XoXoX8X7X7X7X7X8X7X7X7X7X7X7X7X8X7X7X7X7X7X8X7X7X8X7X7X7X7X7X7X7X8X7X7X7X8X7X7X7X7X7X7X7X7X7X7X7X7X8X7X7X7X7X8X7X8X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X8X7X7X7X7X7X7X7X7X8X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X8X7X7X7X7X7X7X7X7X7X7X0X7X7X7X7X7X7X7X7X8X7X7X7X7X7X7X7X7X8X7X7X8XoX7X7X8X7X7X7X7X7XoX8XoX8X8XoX", -"7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7XoXoX8XoX8XoX8XoX7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7XoX7X7X7X7X7X7X7X7X7X7X7XoX8XoX8X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7XoX8XoX8XoX8X8XoX8XoX8X8XoX8X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X8XoX8XoXoX8X8XoX8XoX8XoXoX8XoX8X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7XoX8XoX8X8XoX8XoX8XoX8XoX8XoX8X8X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X8XoX8X8XoX8XoX8X8XoX8XoXoX8XoX8X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7XoX8X7X7X7X7X7X7X7X7X7X7X7X7X7X7X", -"7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X8X8X8XoX8X8XoXoX8X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X8X7X7X7X7X7X7X7X7X7X7X8X8XoX7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X8XoX8XoX8XoX8XoXoX8XoX8X8XoX7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7XoX8XoX8X8X8XoX8XoX8XoX8X8X8X8XoX7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X0XoX8XoXoX8XoX8XoX8XoX8XoX8X8XoX7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7XoX8XoX8X8XoX8X8XoX8XoX8X8X8X8XoX7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X8XoX7X7X7X7X7X7X7X7X7X7X7X7X7X7X", -"7X7X7X7X7XoXoX7X7XoX7X7X7X7X7X7X7X7XoX7XoX7X8XoXoX8X8XoXoX8XoX8X7X7X7X7XoX7X7X7X7X7X7X7X7X7X7X7XoX8XoX7X7X7XoX7XoX7X7XoXoX8XoX8X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X.X7X7X7X7X7X7X7X7X7X7X7X7X7X7XXXXX7X7XXX7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7XoX7X7X7X7X7X7X7XoX7X7X7X7X7X7X7X7XoX7X7X7X7X7X7X7X7X7X7XoX7X7X7XoXoX8X8XoXoX8X8X8X8XoXoXoX7XoX8XXX7X7X7X7X7X7X7X7X7X7X7X7X7X7X7XoX8XoX8XoXoX8XoX8XoX8XoXoXoXoX8X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7XoX7X7X7X7X7X7X7X7X7X7X7XoX7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7XoX8XoXoX8XoX8XoXoXoX8XoX8XoX8XoX7X7X7X7X7X7X7X7X7X7X7X7X7X7XoX7X7X7X7X7X7X7X7X7X7X7X7X7XXX7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X8XoXoX8XoX8X8XoX8XoX8XoXoXoXoX8X7X7X7X7X7X7X7X7X7X7X7X7XoX7X7X7X7XXX7X7X7X7X7X7X7XXXXX7XXX7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7XXX7X7X7X7X7X7X7XXX7XXXXX7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7XoX7X7XoX7X7X7X7X7XoX7XoX7X7X7XoX7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7XoX7XoX7X7X7X7X7XoX7XoX7X7X7X7X7XoX7X7X7XoX7X7X7XoX7XoX7X7X7XoX8XoX8X", -"oXoX7XoX7XoX7X7XoX7XoX7XoX7XoXoX7XoX7X7X7XoXoX7XoXoX7XoXoX8XoXoXoX7XoX7X7XoXoX7XoX7XoXoX7XoXoX7X7XoX7XoX7XoX7X7X7XoX7XoX7XoXoXoXoX7XoXoX7XoXoX7XoXoX7XoXoX7XoX7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X.X7XXX7X7X7X7X7X7X7X7X7X7X7XXX7X7X7X7X7XXX7X7XXX7XXX7X7X7X7X7XXX7X7X7X7XoX7XoX7XoXoX7XoX7XoXoX7XoXoX7XoXoX7XoXoXoX7XoXoXoX7X7X7XoXoXoX8XoXoX8XoXoXoXoXoXoX8XoX7X7XoX7X7X7X7X7X7XXX7X7XXX7X7XXX7X7X7XoX8XoXoXoX8XoXoXoX8XoXoX8XoXoXoXoX7XoXoX7XoXoX7X7XoX7XoXoX7XoXoX7X7X7X7X.X7X7X7X7X.X7X7X7X7X7X7XoX7XoX7XoXoXoX7XoX7XoX7XoX7XoX7X7X7X7XoXoX7XoX7X7XoXoX7XoX7X7XoX7X7X7X7X.X7X7X7X7X.X7X7X7X7X7X7XoX8XoX0XoXoXoXoX8X8XoXoXoXoXoX8X7XoX7XoXoX7XoXoX7XoXoX7XoX7X7XoX7X7X7X7XXX7X7XXX7X7X7X7X7X7XXX7X7X7X7X7X7X7XXX7X7XXX7XXX7X7X7X7XoXoX8XoXoXoXoXoXoX8XoXoX8XoXoXoX7XoXoX7XoXoX7XoXoX7XoX7X7XoXoX7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7XXX7XXX7X7X7X7X7X7XXX7X7XXXoX7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7X7XXX7XXX7X7X7X7XoX7XoX7XoX7XoX7X7X7XoX7X7XoX7X7XoX7X7XoX7X7XoX7XoX7XoX7XoXoXoX7XoXoX7XoX7XoX7X7X7XoXoX7XoX7XoX7X7XoXoX7XoX7X7XoX7XoX7XoX7XoX7X7XoX7X7XoX7XoXoXoX", -"oX7XoX7XoXoX7XoXoXoX7X7XoXoXoXoX7XoX7XoXoXoXoX7XoX8XoXoXoX8X8XoX7XoXoX7XoXoXoXoXoXoX7XoXoXoXoXoXoXoXoX7XoXoXoXoX7XoX7XoXoXoX7XoXoXoX7X7XoXoXoXoX7X7XoXoX7XoXoXoXoXoXoX7XoX7X7XoXoXoXoX7X7XoXoXoX7XXX7XXX7X7XXX7X7X.X7X7XXX7XXX7X7X.X7X.X7X.X7X7X7X7XXXXX7X7X7XXXoXoX7XoXoX7XoXoXoXoXoXoX7XoX7XoXoX7XoX7XoXoXoX7XoX7XoXoXoX7XoX7XoXoXoX7X7XoXoXoX7XoXoXoXoX7X7XoX7X7XXX7XoXoX7X7XoXoX7XoXoXoX7XXXoXoX7XoXoX9XoXoX8XoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX7X.X.X7X7X.X7X7XXX7X7XXX7X7X7X7XXX7X7X7XXX7X7XXXoXoX7X7XoXoXoXoX7XXXXX7XXX7X7X7XXX7X7X7XXX7X7X7X7X7X7X.X7X7X7X7X7X.X.X7X7X'.7X7X7XoXoX7XoXoXoXoXoX8XoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX8XoXoXoXoX7X7XoXoX7XXXXX7X7X7XXX7X7X7XXX7X7XXX7X7X7X7X7X7X7X'..X7X7X'.7X7XoXoXoXoXoXoXoXoX8XoXoXoXoXoXoXoXoXoX8XoXoXoXoXoXoXoXoX9XoXoXoXoXXXXX7XXX.X7X7X.X7X7X7X7X.X7X7X'.7XXX7X7XXX7X7X7XXXXX7X7XoX7XoXoX'.7X7X7X.X7X7X7X7X7X7X7X'.7X7X7XoXoX7X7XoXoXoXoX7X7XXX7XoXoX7X7XoXoXoXoX7X7XoXoX7XoXoXoXoX7XoX7XoXoXoXoX7X7XoXoXoXoX7XoXoX7XoX7XoXoXoXoX7XoX7XoXoXoXoX7X7XoXoXoXoX7XoXoXoXoX7X7XoXoXoXoX7XoXoX7X", -"oXoXoX7XoXoXoXoX7XoXoXoXoX7X7XoX7XoXoXoX7XoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX7XoX7XoXoXoXoX7XoXoXoX7XoXoX7XoX7XoX7XoXoXoX7XoX7XoX7XoXoXoXoX7X7XoXoXoXoX7XoXoX7XoX7X7XoXoXoXoXoXoX7X7XoXoXoXoX7X7X7X7XXX7X7XXXXX7X7X7X7X7X.X7X7X7X7X7X7X7X7X7X.X7XXX7X7X7X7XXX7XXXoXoXoXoXoXoXoXoXoXoXoXoX7XoXoXoXoXoXoX7XoX7XoXoXoXoXoX7XoXoXoX7X7X7XoXoXoXoX7X7XoXoX7X7XoXoXoX7XXX7XXX7X7XoXoXoXXX7XoXoX7XoX7X7XoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX8XoXoXoX8XoXoXoXoXoXoX8XoXoXoXoXoX7X7X7X7X7X7X.X7X7X7XXX7X7XXXXX7X7XXXXX7X7XXX7X7X7XoXoXoXoX7X7XoXXX7X7X7X7X7XXXXX7X7XXXXX7X7XXXXX.X7X7X7X.X7X.X7X7X7X7X7X7X7X7X7XoXoXoXoX9XoXoXoXoXoXoXoXoXoXoXoX8XoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXXXXX7X7XoX7X7XoXXXXX7X7XXXXX7X7XXX7X7XXX.X7X.X7X7X7X7X7X7X7X7X7XoXoXoX8XoXoXoXoXoXoXoXoXoXoXoX8XoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX7X7X7X7X7X7X7X7X.X7X7X.X7X7X7X7X7X7XXX7XXX7XXX7X7X7X7XXXoX7XoX7X7X7XXX7X7X7X7X.X7X.X7X7X7X7X7X7X7XoXoXoXoX7X7XoXoXoXXX7X7XoXoXoXoX7X7XoXoXoXoXoXoXoXoX7XoXoXoX7XoX7X7XoXoXoXoX7XoX7XoXoXoXoXoXoXoX7XoX7XoXoXoX7XoX7XoXoXoX9XoXoXoXoXoX7XoXoXoXoXoX7X7XoXoXoXoXoX", -"oXoXoXoXoXoX7XoXoXoXoXoXoXoXoXoXoXoXoXoX7XoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX7XoXoXoXoXoXoXoXoX7XoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXXX7XXX7XXX7X7XXX7X.X7X.X7X7X7XXX7X7X.X7X7X.X7X7XXX7X7X7XXX7XXX7XoX7XoXoXoXoX7XoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX7X7X7XXXoXoXoXoX7X7XoXoXoXoXXX7XoXoXoXoXoXoXoXoXoXoXoX8XoXoXoXoXoX8XoXoXoXoXoXoXoXoXoXoXoXoXoXoX7X.X7X7X7X7X7X7X7XXX7XXX7X7XXX7X7X7XXX7X7XXXXX7XoXoXoXoXoX7XoXoX7XXX7XXXXX7X7X7XXX7XXX7XXX7XXX7X7X7X7X.X7X7X.X7X7X7X7X7X7X7X7X7XoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX8XoXoXoXoXoXoXoXoXoXoXoXoXoX7XXXoXoXoXoX7XoX7XXX7XXX7XXX7XXX7X7XXX7X7X7X.X7X7X.X7X7X7X7X7X7XoXoXoXoXoXoXoX7XoXoXoX8XoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXXX7XXX7X.X7X7X7X7X7X7X7X7X7X7X7X7XXXXX7X7XXX7X7XXX7XXX7XoXoXoXoX7X7X7X7X7X7X7X7X7X7X.X.X7X.X'.7XoXoXoXoXoXoXoXoX7XoX7XXXoXoXoXoXoXoXoXoXoXoX7XoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX7XoXoX7XoXoXoXoXoXoX7XoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX7X", -"oXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX7XXX7XXXXX7XXX7X7X.X7X7X.X7X.X7X.X7X7X.X7X7X7X.X7XXXXXXX7XXX7XXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXXXXXXX7XoXoXoXoXXXoXoXoXoXoXoXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX.X7X7X.X.X.X7X.XXX7XXX7XXXXX7XXXXXXX7XXXXX7XXXXXoXoXoXoXoXXXoXoXXX7XoXXX7XXXXXXX7XXX7XXX7XXX7XXX.X7X.X7X.X7X7X7X'.7X7X.X.X7X7X'.oXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXXX7XoXoXoXoXoXoXXX7XXX7XXX7XXX7XXXXX7XXX.X7X7X7X7X7X7X.X.X7X7X'.oXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX7XXX7XXX7X7X.X.X7X.X.X7X7X7X'.7XXX7XXX7XXX7XXXXX7XXX7XXXoXoXoXoX.X7X7X'..X7X.X.X.X7X7X7X7X7X7X7XoXoXoXoXoXoXoXoXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX", -"oXoXoXoXoX.XoXoXoXoXXXXXXXoXoXoXoXoXoXoXXXXXoXoXoXoXoXoXoXoX.XoXoXXXoXoXXXoXoXoXoXXXoXoXoXoXoXoXoXoXoXoXXXoXXXoXXXoXXXoXXXXXoXoXoXoXoXoXXX7XXX7XoXXXoXoXXXoXoXoXXXoXoXoXoXoXXXoX.XoXoXXXoXoXXXXXXXXXXX7X7X7XXXXX7XXX.X7X.X7X.X7X7X7X.X7X.X7X.X7X.X7X7XXX7X7X.X7XoXoXoXoXoXXXoXoXoXoXXXoXoXXXXXoXoXXXXXoXoXoXoXXXoXXXoXoXoXoXoXXXXXXXoXoXXXoXoXXXoXoXXXoXXXoXXXoXXXXXoXoXXXoXoXoXXXoXoXoXXXoXXXoXoXoXXXXXoXoXoXXXoXoXoXoXXXoXXXoXoXoXoXXXoXXXoXoXoXoXoXoXoXoXXXoX.X7X.X7X7X7X.X7X7X.X7XXX7X.X7X.XXX7X7XXX7XXX7XXXXXoXoXoXoXXXXXXXXXoXXXoXXXXX7X7XXXXXXXXXXXXX7X7X7X.X.X7X.X7X7X.X.X7X.X7X7X.X7X.XXXoXoXXXoXoXXXoXoXoXoXoXXXoXoXoXoXoXoXoXoXoXXXXXoXoXoXoXXXoXoXoXXXoXXXoXoXXX7XoXXXXX7XXXXX7XXXXXXX7XXX7X'.7X7X.X.X7X.X7X7X.X7X.XoXoXXXoXXXoXoXoXoXoXoXoXoXXXoXXXoXoXoXoXXXoXoXoXoXoXoXoXXXoXoXoX'.7X7X7X7X.X.X7X7X.X7X7X.X7X.X7XXXXX7XXXXXXX.X7XXXXXXXoXoXXXXXoX7X.X.X7X.X7X7X7X7X.X.X7X.X7X.X7XoX.XoXoXoXoXoXoXoXXXoXoXoXXXoXXXoXoXoXoXoXoXoXoXXXoXoXoXXXoXoXXXoXoX.XoXoXoXoXoXoXoXXXXXoXoXoXXXoXoXoXoXoXoXoX.XoXoXoXoXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX", -"oX.XoXoXoXoXoXoXXXoXoXoXoXoXXXoXoX.XoXoXoXoXoXXX.XoXoX.XXXoXoXoXoXoXXXoXoXoXXXoXoXoXoXXXXXoXXXoXoXXXXXoXoXXXoXoXoXoXoXoXoXoXoXXXoXXXoXXXXXXXXXXXoXoXXXoXoXXXXXoXoXXXoXXXXXoXoXoXoXoXoXoXXXoXoXoX7X7XXXXXXXXXXX7X.X7X7X.X7X.X7X.X.X.X7X.X7X.X7X.X7X.X.X7X.X.X7X.XXXXXoXXXoXoXXXoXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX.XXXXXoXoXoXoXoXXXoXoXXXoXXXoXoXXXXX7X7XXXXX7XXXoXXXoXoXXXoXXXoXXXoXoXXXoXXXoXoXoXoXXXoXXXoXoXXXoXXXoXoXoXoXoXoXoXoXoXoXXXoXoXoXoXXXoXoXoX7X.X7X.X.X7X7X.X.X7X7XXX7X7X.X7XXXXXXXXXXXXX7XXXoXoXXXoXoXoXoX7X7XXXXXoX7XXXXXXXXX7XXX7X7X.XXXXX.X7X7X7X7X.X.X7X7X.X7X.X.X7X7X7XoXoXXXoXoXoXoXXXoXoXXXoXXXoXoXoXoXoXoXXXXXoXoXoXoXoXoXoXoXoXoXXXoXoXXXoXXX7XXXXX7XXXXXXXXX7XXX7XXXXXXX7X7X7X7X7X7X.X7X7X.X7X7X7XXXoXoXXXoXoXXXoXoXoXoXoXoXoXXXoXoXoXoXoXoXoXXXoXoXoXoXoXoXoXXXoX7X7X'.7X.X7X7X7X.X7X.X.X7X.X7X.X7XXXXXXXXX7X7X.X7XXXoXXXoXoXoXoX7X7X7X.X'.7X.X7X.X7X7X.X7X.X7X.XoXoXoXoXXXoXXXoXoXoXXXoXoXoXoXXXoXoX.XoX.XoX.XoXoXoXXXoXoXXXoXoX.XoXoXoXXX7XoX.XoXXXoXoXXXXXoXoX.XoXoXoX.XoXoXoXoX.XoXoXoXoXXXoXoXoX.XoX.XoXoXoXoX.XoXoXoX.XoXoX", -"oX.X.XoXoX.X.XoXXXoXoXXXXXXX.XoXoX.XoXXXoXoXoX.XoXoX.XoXoX.XoXoXoXoXXXoXoXXXoXXXoXoXXXoXoXoXXXXXXXoXXXoXXXoXXXoXXXoXoXXXoXXXXXXX7XXXXXXXXX7X7XXX.XoXoXoXXXoXXXoXoXXXXXoXoXoXoXXXoXoX.XoXXXoXXXXX'.7XXX7XXX7XXXXX.X7X7X.X.X7X.X7X.X7X.X7X7X.X.X7X.X7X7X.X.X7X.X7XXXoXoXoXXXoXXXoXoXoXoXXX.XoXoXXXXXXXoXXXoXXXXXXXoXXX.XoXoX.XXXoXoXXXXXXXoXXXXXoXoXXXXXoXXXXXXXXXXXoXXXoXoXXXoXoXXXoXoXoXXXoXXXoXXXoXoXoXoXXXXXXX.XoXoXoXXXXXoXXXoX.X.XoXoXXXXXoXoXXXXXoXXXoXXXXX.X7X.X7X7X.X.X7X7X.X.X7XXX.X7X.XXXXXXX7XXXXXXXXXoXXXoXXXXXXXoXXXXXoXXXoXXXXXXXXXXX7XXXXX.X7X.X7X7X7X.X.X.X.X7X.X.X7X.X7X.X7X.X.XoXXXXXoXXXoXXXXXoXoXXXoXXXoXXXoXoXoXXXoXXXoXoXoXXXoXoXXXoXXXoXXXXXoXXXoXXXXXXX7XXXXX7XXXXXXXXX7XXX7XXXXX'.7X'.'..X7X7X.X.X7X'.7XXXoXoXXXXXXXXXXXXXoXXX.X.XoXoXoXXXoXXXoXoXXXoXXXoXoXXXoXoXXXoXXX'.'.7X7X7X7X.X7X7X.X7X7X7X7X.X7X7XXXXXXX7XXX.X7XXXXXXX7XXXoXXXoX'.'.7X7X7X7X.X.X7X'..X7X7X.X.X7XoXXXoXoXXXoXXXXX.XoXXXoXXXXXoXoX.XoX.XoXoXoXoXoXoXXXoXXXXXoXXXoXoXoXoXoXoXoXoX.XoXoXXXoXXXoXoXXXoXoX.XoXoXoX.XoX.XoX.XoXXXoXoXXX.XoXoXoXoXoX.XoX.XoX.XoXoXoX.XoX", -".XoXoX.XoXoXoX.XXXXXXXXXoXXXoXXXXXoXXXXX.XXXoXXXoX.XoXoX.XoX.XoX.X.XoX.XXXoX.XoX.X.XoX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXoXXXXXXXXXXXXXXXXXXXoX.X.XoXXXXXXXXX.XoXXX.X.XoX.XoX.XXXoX.XXXoXXXXX'.7XXXXXXXXXXXXX.X7X.X7X.X.X7X.X7X.X7X.X.X7X7X'.XXXXXXXX7X.X7X.XXXXXXXXXXXXXXXXX.XoX.XoXXXXXXXoXXXXXXXoX.XoXXXXXXXXXoXoX.XoXXXXXXXoXXXXXXXXXXXXXXXXXoX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXoX.X.XoXXXoX.XoXXXoXXXXXXXXXXXXXXXXXoX.XXXoXXXXX.X.X7X7X'.7X7X'..X7X.X.X7X.X.X7XXXXX.X7XXXXXXXXXXXXXXXoXXXXXXXXXXXXXXXXX7XXXXXXXXXXXXXXX7XXXXXXX'.7X.X7X.X7X.X7X.X.X7X.X7X.X.X7XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.XoX.XoXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX7X7X7X7X7X'..X.X7X.X.X7XXXXXXXoXXXXXXXXXXXXXXXoXoX.X.XoXXXXXXXXXXXoX.XoX.X.XoX.XXXXXXXXX7X7X7X.X'.7X7X'.7X.X'.7X.X'.7X.XXXXXXXXXXXXX7X.XXXXXXXXXXXXXXXXX7X7X7X.X7X.X.X7X7X7X7X.X.X7X7X'.XXoX.X.XoX.XXXXXoXXXXXXXXXXXXXXX.XoXoXoX.X.XoX.XXXXXXXXXXXXXXXXXoX.XXXXX.XXXXXoXXXXXXXXXXXXXXXXX.X.XoX.XXXXXoXXXoXXXoX.XXXXXXXXXoX.X.XoX.XoXoX.X.XoXoXoX.X.XoX.X", -"oXoX.XoXXX.XXXXXXXXXXXXXXXXXXXoXXXXXXXXXXXXXXXXXXXXXXXXXoX.XoX.XXXXXXXXXXXXXXXXXXX.XoXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXX.XXXXX.XXXXXXXoX.XoXXXXXXXXXXX7X7XXXXXXXXX XXXXXXXXXXX.X.X7X7X'.7X.X.X.X7X.X.X.XXXXXXX.X7X.X.XXXXXXXXXXXXX.XXXXXXXXXXXXXXX.XXXXXXXXXXXXX.XoXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXXoXXX.XoX.XXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXX.XXXXXXXXX.XXXXX.XXXXXXXXXXX.XXXXXXXXXXX7X7X'.7XXXXXXXXXXXXXXX.X7X X.X.XXXXXXXXXXX.XXXXXXXXX.XXXXX.XXXXXXXXXXXXXXXXXXXXX.X.X7X7X.X.XXXXX7X.X.X.X7X.X.X X7X'.7X.X7X7X'.7XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XoXXXXXXXXX.XXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXX.XXX.X.X7X7X.XXX7X7X.X7X'.7X.X.X7X7X'..XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XoX.XXXXXXXXXXXXXXXXXXX.XXX.X.X.X.X7X.X7X7X.X.X.X.X7X'.7X.X.X.XXXXXXXXXXX7X.XXXXXXXXXXXXX|..X7X.X7X.X7X.X.X.X'.7X.X.X7X7X'.7X.XXXXXXXXXXXXXXXXXXXXX.X.XXXXXXX.XoX.XoXXXXXXX.XXXXXXXXXXX.XXXXX.XXXXX.XXXXXXXXXXXXXXXXXXX.XXXXXoX.XXXXX.XXXXXXXXXXXXX.XXXXXXXXXXXXXXXXX.XXXXXXXXX.XXXXXXX.XXXXX", -".X.X.X.XXXXXXXXXXXXXXX.XXXXX.X.X.XXXXXXXXXXX.XXXXXXXXXXX.XoX.XoXXXXX.XoXXXXXXXXXXXXX.XXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXX.XXXXX.XXX.XXXXXXXXXXX.XXXXXXXXXXX.XoXXXXXoX.XXXXX.XoX.XXXoX.XXXXX7X'.XXXXXXXX7X XXXXXXXXX.X7X.X.X7X.X'.7XXXXX.X7X.X7X'.XX.X7X.X7XXXXXXXXXXXXXXXXXXXXX.XXXXXXXoX.XXXXXXXXXXXXX.XXXXXXX.XXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.X.XoX.XoXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXX.XoXXXXXoXXXXXXXXXXXXXXXXXXXXXXX.X.X7X.XXXXXXXXX.XXXXX7X.X.X7X.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXX7X.X.X.X7X.X.X|..X.X7X7XXX.X7X7X7X7X'.7X.X.X7X.XXXXXXX.XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXX.XXXXXXXXXXXXX.X.X.X.X X.X.X.X.X7X.X7X7X'..X7XXXXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXX7X7X.X.X.X.X X.X'.7X.X7X7X.X'.7XXXXXXXXXXXXX.X.XXXXXXXXXXXXX.X7X.X.X.X.X.X X7X7X7X.X7X.X.X.X7X.XXXoXXXXXXXXXXXXXXXXXXXoX.XXXXXXXoX.XoX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXX.XoXXXXX.XoXXXXX", -"XXXXoX.XXXXXXXXX.XXXXXXXXX.XXXXXXXXX.XXXXXXXXX.X.XXX.XXXXX.XXXXX.XXXXXXX.XXXXX.XXXXXXX.XXXXXXX.XXX.XXXXXXX.XXXXX.XXXXX.X.XXXXX.XXXXXXX.X.XXXXXXX.XXXXXXX.XXXXXXXXX.XXX.XXXXX.XXXXX.X.XoX.X.XXXXX7X'.'.7X.X7X'.7X7X.XXX X.X.X.X.X7X'.7X.XXXXXXXXXXXXX7XXX X.X.X.XXXXX.XXXXXXXXXXXXXXX.X.XoX.X.XoX.XXXXX.XoX.XXX.X.XXXXXXXXXXXXXXX.XXX.XXXXXXX.XXXXXXXXXXX.XXX.XXX.XXX.XoXoX.XXX.X.XXXXXXX.XXXXX.XXXXXXXXX.XXX.XXX.XXXXXXXXX.XXXXXXX.XXXXXXX.X.XXXXXXXXXXXXXXXXX.X7X'.'.7XXX.X.XXX X7X XXX.X7X7X.X.XXXXX.X.XXXXX.XXXXX.XXXXXXXXXXXXXXX.XXXXX.X.XXX7X.X.X.X'..X7X.X.X.X.X.X X.X7X X'..X7X.XXXXX'.7XXXXXXX.X.XXXXXXXXX.XXXXX.XXXXX.X.XXX.XXX.XXXXX.XXXXX.XXXXX.XXXXXXXXX.XXXXX.X.XXX.X|..X.X.X.XXXXX.X7X.X7X.X7X.X7X7X.X.X'.XXXX7X'.XXXXXXXXXX.XXXXX.X.XXX.X.XXXXX.X.XXXXXoX.XXX.XXXXX.XXX.X.X.XXXXX.X.XXX X7X X.X7X7X7X'..X.X7X7X.XXXXXXXXX X7X X7X.XXXXX.X.XXX.X.X.X.X.X7X.X.X.X.X'..X7X.X'.7X'.7XXX.XXXXX.XXXXX.X.XXXXX.X.XXXXX.XXXXX.X.XXXXX.XXXXXXX.XXXXXXXXXXXXX.XXX.X.XXX.XXXXXXX.XXXXXXXXX.X.XXXXXXX.XXX.XXXXX.XXXXX.XXXXX.XXX.XXXXXXXXXXXXXXX.XoXXXXX.XXXXX", -".XoX.X.X.XXX.X.X.XXX.X.XXX.X.X.X.X.XXX.X.XXX.XXXXXXX.X.X.X.X.X.XXX.X.X.XXX.XXXXX.XXX.X.XXX.X.XXXXX.X.XXX.XXX.X.XXX.X.XXXXXXX.XXX.XXX.XXX.X.X.XXXXX.X.XXX.XXX.X.X.XXX.XoX.X.XXX.XXX.X.X.X.XXX.XoX.X7X'.7X XXX7X.X.X XXXXX7X.X.X7X.X7X.X.X.XXX.X.X XXX XXX7X.X.X7X.X.XXX.X.XXX.X.X.X.XXX.X.XXX.X.XoX.X.X.X.XXX.X.XXXXX.X.XXX.X.X.X.XXXXX.X.X.XXX.X.XXX.X.X.XXXXX.XXX.X.XoX.X.X.XXXXX.X.X.X.XXX.XXX.XXX.X.X.XXXXX.X.XXX.XXX.XXX.XXX.XXX.XXX.XXXXX.X.XXX.X.XXX.X.XXX.X7X.X.X.XXXXX.X.X.X XXXXX.X XXXXX.XXXXXXXXX.XXX.X.XXX.X.XXX.X.X.XXXXX.X.XXXXX.X.X.X.X7X7X.X'.7X7X.X.X.X7X.X.XXX7X X'.7XXXXX.X.X.XXX.XXXXX.X.X.X.XXX.X.XXX.XXX.X.XXXXX.XXXXX.XXX.X.XXX.XXXXX.XXXXX.XXX.X.XXXXX.X.X7X.X.XXXXX.XXX7X'..X.X.X.X.X X'.7X.X7XXXXX X7X.XXX.X.X.XXXXX.XXXXXXX.XXXXXXX.XXX.X.X.XXXXX.X.XXXXXXX.XXXXX.XXX.X.X7X.X.X.X X7X.X.X7X.X.X'.7X.XXX.X.X.X.X.X.X.XXX.X.XXXXX.X.X7X.X7X.X.X.X7X.X7X7X.X'.7X7X.X.X.XXX.X.X.X.XXXXXXXXX.XXX.XXX.XXXXX.X.XXX.X.XXX.XXX.X.XXX.X.XXX.X.X.XXX.XXXXX.XXX.X.X.XXX.X.XXX.XXX.XoX.XXXXX.XXX.X.X.X.X.XXX.X.XXX.XXX.XXX.X.X.XXX.XXX.X.XXXXX.XXX", -".X.X.X.X.X.X.X.XXX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXX.X.X.X.X.X.X.X.X.X.X.X.XXX.X.X.X.X.X.X.X.X.X.X.XXX.X.XXX.X.X.X.X.X.X.XXX.X.X.X.X.X.X.X.X.X.X.XXX.X.X.X.X.X.XXX.X.X.X7X.X.X.X.X.X.X.X.X.X7X.X.X.X.X.X.X.X.X.X.X.X.XXX X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXX.X.X.X.XXX.X.X.X.X.XXX.X.X.X.X.X.XXX.X.X.X.X.X.X.X.XXX.XXX.X.X.X.X.X.X.X.X.X.X.X.XXX.X.X.X.X.X.XXX.X.X.XXX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X7X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXX.X.X.X.XXX.X.X.X.X.X.X.X.X.X.X'.7X.X.X.X.X.X.X.X.X.X.X X7X X.X.X.XXX.X.X.X.X.X.XXX.X.X.X.X.XXX.X.X.X.X.X.X.XXX.X.X.X.X.X.X.X.XXX.X.X.X.XXX.X.X.X.X.X7X.X.X.X7X.X.X.X.X.X.X.X7X.X.X.X.X'.7X XXX.X.X.XXX.X.X.X.X.X.X.XXX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X7X.X.X.X.X.X.X XXX.X.X.X.X.X.X.XXX.X.XXX.X.X.X.XXX.X.X.X.X.X.X.X.X.X.X.X.X X7X.X.XXX7X XXX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXX.X.X.XXX.X.X.X.X.X.X.XXX.X.X.X.X.XXX.X.X.X.X.XXX", -".X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X'..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X XXX.X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXX'. XXX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXX X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X'..X.X.X.X.X.X XXX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X'..XXX X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X", -".X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXX.X.XXX.X.X.X.X.X7X.X.X.X.X.X7X.X7X.X.X.X.X.X.X.X.X.X7X.X.X.X7XXX.X.XXX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X7X.X.X.X.X.X7X.X.X.X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXX X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X X.X XXX.X.X7X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X7X.X.X.X.X.X.X.X.X.X.X.X X X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X", -".X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X X.X.X.X.X.X.X.X X.X.X X.X.X.X.X.X.X.X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X}..X.X}..X.X.X.X.X'.'.7X.X.X.X'..X'.'..X.X.X.X'..X.X.X'..X.X.X'. X XXX X.X.X.X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X X.X.X X.X.X.X.X X.X.X.X.X.X.X.X X.X.X X.X.X.X.X.X.X}..X.X.X.X.X.X.X.X.X.X.X X.X.X.X.X.X.X.X X.X.X X.X.X.X.X.X X.X.X.X.X.X.X.X.X'.'.7X.X.X.X'.XX XXX X.X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X'..X XXX.X.X.X.X.X.X X.X.X X X.X.X.X.X.X.X X.X.X.X.X.X X.X.X.X.X.X.X.X X.X.X.X.X.X.X.X.X X.X}..X.X X.X.X.X.X.X.X.X'..X.X.X.X'..X.X.X.X X.X.X.X.X.X.X.X X.X.X.X X.X.X.X.X.X.X.X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X X.X.X.X.X.XXX.X X XXX.X'..X.X.X.X.X.X X.X.X.X.X.XXX'..X.X.X.X.X.X.X'.'..X.X.X X.X.X.X X X.X.X XXX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X X.X.X.X X.X.X.X.X.X.X.X X.X.X.X.X.X X.X.X X.X.X.X X.X", -" X.X X.X X.X.X X X.X.X}.}..X.X.X.X X X.X.X.X X.X.X.X.X.X.X.X}..X.X X.X X.X.X X.X.X.X X.X X.X.X X.X X.X X X.X X.X.X X.X X.X.X X.X.X}..X}..X.X.X.X X.X}..X.X X.X.X X.X.X.X}.}..X.X.X.X.X}..X.X.X.X X.X.X X.X X X.X X.X.X X X.X.X.X.X.X X.X X.X X.X X.X.X X X.X.X X.X X X.X.X.X X.X X.X.X X.X X XXX.X.X X.X X.X X.X.X X X.X}..X.X.X X.X.X X.X.X X X X.X X.X.X X.X X.X.X X.X.X X.X X.X X.X.X X.X X.X X.X X.X.X X.X X.X.X X.X.X X.X.X X X X.X X.X.X X X.X X.X.X X.X X.X.X X.X X.X X.X X.X.X X X.X.X X X.X.X X.X X.X.X.X.X X.X X.X X X X.X X.X.X.X X.X X.X.X.X}.}..X.X.X X.X X.X X.X.X X.X X.X X.X X.X.X.X X X.X X.X.X X.X X.X X X.X X.X.X X.X X.X.X X.X X.X X.X X.X.X.X.X X}. X.X X.X.X X.X X.X.X X.X X.X X.X.X X.X X.X.X X.X.X X.X X.X.X X.X.X X.X.X X X X.X X.X.X X.X X.X.X X.X X.X X.X.X X.X X.X.X.X.X.X.X.X.X.X.X.X X X X.X X.X.X X.X X.X.X X.X X.X X.X.X X.X X.X.X.X}.}..X.X.X.X.X.X}..X.X X.X X.X X.X.X X.X X.X.X}..X.X.X.X}..X X.X.X X.X X.X.X X.X.X X.X X X.X X.X.X X.X X.X.X X.X.X.X.X X X.X X.X.X X X X.X X.X.X X.X X.X.X X X X.X X X.X X.X X.X.X X.X.X X.X", -" X X X X X X X X X X.X.X.X.X}..X X.X X X X X X X X.X}.}.}.}..X.X X X X X X X X X X X X X X X X X}..X X X.X X X X X X X X X X X X.X}..X X.X}..X}. X X X.X X X X X.X}.}..X.X.X.X}.}..X}..X.X}.}..X X X X.X X.X X X X X X.X X.X}.}. X X X X X X X X X X X X X X X X X.X X X X X X X X X X.X X X X X X X X X X X X X X.X X X.X.X}.}. X X X X X X.X X.X X X X X X X X X X X X X X X X.X X X X X X X X.X X X X X X X X X X X X X X X X.X X.X X X X X X.X X X X X X X X X X X X X X X X X X X X X X X X X X X.X X X X X X X X X X X X X X X X X X X X X.X}.}..X.X.X.X}. X.X X X X X X X X X X X.X X X X X X.X X X X X X X X X.X X.X X X X X X X X X X.X X X X X X X X X.X X.X.X.X X X X X X X X}..X.X}.}. X X X X X X X X X X X X X X X X X X X X X X X.X X.X X X X X X X X X X X X.X X X X X X X X X X.X'..X'.'..X.X'. X.X X.X X X X X X X X X X X X X.X X X X X X X X}..X.X.X.X}.}..X}..X X.X X X X X.X X X X X X X X.X}..X}. X X.X.X X X X.X X X X X X X X.X X.X X X X X X.X X X X X X X X X X.X X X X X X.X X.X X X X X X X X X X.X X.X X X.X X X X X X X X X X X X", -".X X.X X X.X X.X X.X}..X}..X}.}. X X X X X X.X X X X}..X.X.X.X}. X X.X X X X X X.X X X.X X X X.X X.X.X X X X X X X X.X X X X X X.X.X.X}..X X X X.X X X X.X X X.X X X X X.X.X.X}.}..X}..X.X}..X}. X X X X X X X X X.X X X X X.X.X X X X X.X X X X X.X X.X X X X X X X X X X X X X X X X X X X X X X X X X.X X X X X X.X X X X.X.X X X.X X X X X X X X X X X X.X X X X X X X X X X X X X X.X X X X X X X X X X.X X X X X X X X X X X X X X X X X.X X X X X X X.X X X X X X.X X X X X.X X.X X X X X X X X X X X X X X X X X X.X X X.X X X X.X X X.X X X X X.X.X.X}. X X X X.X X X X.X X X X X X X X X X X X X X X X X X X X X X.X X X X X X X X X X X X.X X X X X X X X X X.X X X.X X.X}..X}..X}..X X X X X X X.X X X X X X X X X X X X X X X X X X X X X X X X X.X X X X X X X X X X X X.X X X X X.X.X'..X.X.X.X'. X X X X.X X X X.X X X X X X X X X X X X.X X X X.X X X X.X.X.X.X}. X X}. X}. X X X.X X.X.X X X X.X.X.X}.}.}..X}. X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X.X X.X X X.X X X.X X X.X.X X X X X X X X.X X X X X X", -" X X X}. X X X X X X X X.X}. X X X X X X X X X X X X X X X X.X}. X X X X X X X X X X}. X X X X X X X}. X X X X X X X X X X X X X}..X}..X X X X X X X X X X X}. X}..X}..X}.}..X}..X}..X}. X X X X X X X X X X X X X}. X X X X}..X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X}..X}.}..X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X}. X}..X}..X}.}..X}. X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X}. X X X X X X X.X}..X}. X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X'..X.X.X.X'..X.X X X X X X X X X X X X X X X X X X X X X X X X X}..X}..X}.}.}.}..X X X.X X X X X}. X X}.}. X X X}..X}..X.X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X}..X}.}. X X}. X X X}. X X X X X X X X X X X X X", -"}. X}. X}. X}.}. X X X X X X}. X}. X X}.}. X X}. X X}. X}.}.}..X X X X X X X X}. X X}. X}. X X X}. X}..X}.}.}. X X X X X X X}. X}.}.}.}.'. X X X X'.}..X}.}.}. X X X}. X}.}.}..X.X}.}..X X X X X X X X}. X}. X}.}. X X}.}.}. X}. X X X}.}. X}.}. X X}. X X}. X X X X}. X X X X X X}. X X X}. X}. X X}. X X X X X}.}. X X X}..X}.}. X X}. X X}. X}. X X X}. X X}. X X X}. X X X X X}. X X X X X X X X}. X}.}.}. X X X X}. X X X X}. X}. X X X}. X}. X X}. X X X X X X X}.}. X}.}. X X}. X X}. X X X}. X}. X}. X}. X X X}. X}. X}. X'.}..X}.}.}. X X X}. X}.}.}..X X}. X}. X X X X X}. X}. X X X}. X X X X}. X}. X X X X X X X X}. X X}. X X}. X X X X X X X}.}. X X X}.}.}.}. X}. X}. X X}..X}.}. X}. X X}.}.}. X X}. X}. X X X X X X X}. X}. X X X X}. X X X X X X X}. X X X X X X X X X}. X X X X X X X'..X'..X}. X}. X X X X X}. X X}. X X X X X X}. X X X}. X}. X}. X X X X X X X.X}.}..X}. X}. X}. X}. X X}..X}.}.}. X}. X X X X X}. X}. X}. X X X}. X}. X X X X X}. X}. X}. X X X}. X}. X X X X X X X X}. X}. X}..X}. X X X}. X}..X}.}.}. X X X X X X}. X}.", -"}. X X}. X X X X'. X}.}.}. X}. X X}.}. X X}.}. X}. X}.}. X}.}.}.}.}.}.}. X}. X}.}. X X}.}. X}.}.}.}. X}..X}. X X}.}.}.}. X}.}. X}. X}..X X X X'. X X}.}.}.}. X X}.}. X X}..X}. X}.}. X}.}.}.}. X X}. X}. X}.}. X X}. X}..X}.}. X X}.}. X X X X X}. X X}.}. X X}. X}.}. X}.}.}.}. X X X}. X}.}. X}. X}.}.}.}.}.}.}. X}.}. X}.}.}. X X}. X X}. X}. X}.}.}. X}. X X X}.}. X X}.}. X X X}.}.}.}.}.}.}. X X}. X.X}. X X}. X}.}.}.}. X X X}. X X}.}. X X}.}. X}.}.}.}. X}.}. X X X X X}. X X}.}. X}. X X X X X X}.}. X X X X}. X}.}. X X X}.}.}.}. X X}.}. X X}..X}. X X}.}. X}.}.}.}.}. X X}. X}.}. X}. X}. X}.}. X}.}.}.}.}. X}.}. X}. X X}.}. X}.}.}.}.}.}. X}. X X X}. X}..X}. X}.}. X X X}.}..X}.}. X X}..X}.}. X X X X}.}.}.}. X X}. X}.}. X}. X}.}. X}.}.}.}.}.}. X}. X}.}.}.}.}.}.}. X X}.}. X}.}.}. X.X'..X'. X X X}.}.}.}.}. X}. X}.}.}.}. X}.}. X X}. X X}. X X X}.}.}.}.}. X}.}.}.}. X X X X X}. X X}.}. X}.}.}..X}. X}.}. X}.}. X X}.}. X X}. X}. X}.}.}. X}. X}. X}.}. X X}.}. X X}.}.}.}.}.}.}.}. X X}.}..X X}.}. X}.}.}.}. X}.}. X X}.}.}.}.}. X X X X", -"}. X X X X}.}.}.}.}. X}. X}. X}. X X X X X X X}.}.}. X}.}. X X X X}.}. X X}.}. X X}.}. X X}.}.}. X}..X}.}. X}. X X}. X}.}. X X}. X}. X X X X X X X}. X}..X}.}.}. X}. X}.}.}. X}.}.}.}. X}. X X X X}.}. X}. X X}.}.}.}..X X}. X}. X}. X}. X}. X}. X X}.}. X X X}.}. X X}.}. X}. X}. X}. X}. X X}.}. X X}. X X X X X}..X}.}.}.}. X}. X}. X X}.}.}.}. X X}. X}. X}.}. X X X}. X X}.}.}. X X X X X}. X}.}. X}.}. X}.}. X}. X}. X}. X}. X X}.}. X X}. X X X X X}. X}. X}. X}. X}. X}. X X}.}. X X X}. X X}. X X}. X}. X}.}. X X}.}. X X}. X}..X}.}.}. X}. X}.}.}. X}. X}.}. X X}.}. X}. X}. X}. X X X}. X X}. X X}. X}. X}. X}. X X}. X}.}. X X}. X}. X}. X X X X}.}.}. X}. X}.}. X X X}. X X X X}.}.}. X.X}.}.}. X}. X X}. X}. X X}.}. X X X X X X}. X}. X X X X X}. X}.}. X X}.}. X X}. X}. X X}.}.}. X X X'. X.X'. X}.}.}.}..X}. X}. X}. X X}. X X}. X X}.}. X X}.}.}.}.}.}. X}. X}. X}.}.}. X}.}.}.}. X}.}. X X X}.}.}. X X}. X X X}.}. X X}.}. X}. X}. X}.}.}.}. X X}. X X}. X}.}. X X}. X}. X}.}. X}. X}. X}.}. X}.}. X X}. X}. X}..X}. X X}. X X}. X}. X X}. X", -"}.}.}. X}. X}.}.}.}.}.}.}. X'. X}.}.}. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. X}.}. X}.}.}.}.'. X}. X X}.}.}.}.}.}.}. X X X}.}.}.}.}.}.}.}.}.}.}.}.'. X}.}.}.}. X}.}. X}.}.}.}.}.}.}. X}. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. X}.}. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}..X}.}.}.}.}. X}.}. X}.}.}.}.}. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. X}.}. X}.}.}.}.}.}.}.}. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. X}. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. X}. X}.}.}.}.}.}.}. X X X}.}.}.}.}.}.}. X}.}. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. X}.}. X}.}.}.}.}.}. X}.}. X}.}.}.}.}.}.}.}.}.}. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. X}. X}.}.}.}. X X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. X}.}. X}.}. X}.}.}.}.}.}.}. X}.}.'. X X.X'. X}. X}.}.}.}. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. X X}.}.}.}. X}.}. X}.}.}.}.}.}. X X}.}.}.}.}.}. X X}.}.}.}. X}.}. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. X}.}. X}.}.}.}.}.}.}.}. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. X}.}.}.}.}.}.}.}.", -"}.}.}.}.}.}.}.}.'. X X'. X'. X X}.}.}.}.}.}.}.}. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.'.}.}.}.}.}.}.}.}. X X'. X'. X X'.}.}.}.}.}.}.}.}.}.}.}.}.'. X}.}.'.}.}.}. X X'. X}.}.}.}.}.}.}.}.}.}.}.}.}.'. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. X}.}. X X}.}. X}.}.}.}.}. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. X}.}.}.}.}.}.}. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}..X X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. X}.}.}.}.}. X'.}.}.}.}.}.}.}.}.}.}.}. X}.}.}. X}.}. X X X X X}. X}.}. X X}. X X}.}.}.}.}.}.}.}.}.}.}.}. X'. X}.}.'. X}.}.'. X}.}. X'.}.}.}.}.}.}.}.}.}.}.}.}.}. X'. X X'. X'. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}. X'. X'.}.}.}.}.'.}.}.}.}.}.`.}.}.}.}.}.}.}.}.}.}.}.}.}.}.'.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.'.}.}.}.}.}.}.}.'.}.}.}.}.}.}.}.}.", -"}.}.}.}.'.}.}.}. X'.'. X'. X'. X}.}.'.}.}.}.}.'.'. X'.}.'.}. X'.}.}.}.}.}.}.}.}.'.}.}.}.}.'.}.}.}.}.'.}.}.}.}.}.}.}.}.}.}.'.}.}.'. X X'. X'. X'.}.}.}.'.'.}.}.}.}.}.}.}. X'.'. X}.}. X'.'. X X'.}.}.}.}.}.'.}.}. X'.'. X}.}.'. X}.}.}.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.}.}.}.}.}.}.'.}.'.}.}.'.b.v.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.v.b.c.c.c.(.'. X'.}.}.}. X'.}.V.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.C.}.}.}.}.(.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.v.b.c.c.c.c.V.}.'.}.}.}.}.'.}.}. Xv.c.c.c.c.b.%.c.c.c.c.b.%.c.c.c.c.c.c.c.V.'.}.}.'.}.}.}.(.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.M.V.}.'. X'. X}.'..XP.c.c.c.c.c.c.c.c.c.c.c.c.c.c.c.b.c.V.V.V.M.C.C.C.C.L.L.L.P.(.(.).}.'.}.}.}.}.}. X}.'.}.}.'. X'. X'. X X'. X'.'. X'.'. X X}.}.}.'.}.}.}.}.`.}.}.}.'. X'. X X'. X'.'.}.}.}.}.'.}.}.}.}.}.}.}.}.'.}.}.}.}.'.'. X'. X}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.}.'.}.}.}.}.}.}.}.}.'.}.}.}.}.}.'.}.}.}.}.'.}.}.}.}.}.}.}.}.'.}.}.}.}.}.}.}.}.}.}.'.}.}.", -"}.}.'.}.'.}.'.}.'. X X'. X X'.'.}.}.}.}.}.}.}.}. X'. X'. X X'.}.}.}.}.}.}.}.}.}.'.}.'.}.}.}.}.}.}.}.}.}.}.'.}.}.}.}.}.}.}.}.}.}. X'.'. X'.'. X X'.}.}.}.}.}.}.'.}.}.}.}.'. X X'. X'.'. X X'.'. X}.}.}.'.}.}.}.'.}.}.'.}.}. X}.'.}.}.}. (.'.}.}.).}.}.'.}.}.}.P. P. X'.}.}.'. X'. X}.O d X}.}.}.}.. % }.}.}.}.'.}.}.}.'.(. V }.}.}.}.}.}.}.V. . : }.}.'.'.}.}. X'.V. : 8 c N $.V.L.).'.}.'. X'.'. X'. X'. X'. X X'.}.}. X'.'.}.}.}.}.}.}.}.}.}.}.}. X'.'. X'.'. X X}.}.}.'.}.}.}.'.}.}.}.}.}.}.}.}.'. X}.'. X'.'. X}.}.}.}.}.}.}.'.}.}.}.}.}.}.}.}.'.}.}.}.}.}.}.}.}.}.'.}.'.}.'.}.}.}.}.}.}.}.}.}.'.}.}.'.}.}.}.}.}.}.}.}.}.'.}.}.}.}.'.}.}.}.}.}.", -"}.}.}.'.}.}.}.'. X'.'. X'.'. X'.}.'.'.}.'.'.}.'.'.}.'. X'.'. X'.`.}.}.}.`.}.}.'.}.}.'.}.}.}.'.}.}.'.}.'.}.}.}.}.}.'.}.'.}.'.}.'.'.'. X'.'. X'.'.}.'.}.'.}.'.}.}.'.}.'.'. X'.'. X'. X'.'.'.'. X'.}.}.'.}.'.}.'.}.}.'.}.}.'.'.'.}.}.}.}. L.}.}.}.}.}.'.}.}.'.}.C.. P.'.}.'.}.}.'.}.'.}.+ 8 }.}.}.}.}.6 (.}.'.}.'.}.'.}.}.V. b.'.}.}.'.'.}.}.V. : }.}.'.}.}.'.}.'.M. 6 b.(.'. X'.'.'.}.'.'. X'.'. X}.'.'.}.}.'.}.'.}.}.}.}.`.}.}.`.'. X'.'.'. X'.'.}.'.}.'.}.'.}.}.'.'.}.}.'.}.'.}. X'.'. X'. X'.'.'.}.'.}.}.'.}.}.}.'.}.}.}.}.`.}.}.'.'.}.}.'.}.'.}.'.}.}.}.}.}.}.`.}.}.}.}.'.}.}.}.}.'.}.'.}.'.}.}.'.}.'.}.}.}.'.}.}.}.'.}.'.}.'.", -"}.'.}.'.'.'.}.'. X'.'.'.'.'.'. X'.}.'.'.'.'.'.}.'.'.}.'.}.'.}.'.}.'.}.'.}.'.'.}.'.'.}.'.}.'.}.'.'.}.'.}.}.'.'.'.}.'.}.'.`.}.}.'.'.'.'.'.'. X'.'.'.}.'.}.'.'.}.'.'.}.'.}.'.'.}.'.'.'. X'.'.'. X'.'.}.'.'.'.}.'.'.}.'.'.}.'.'.'.'.}.'.}. v.'.}.'.'.}.'.'.}.'.}.c. P.'.'.}.'.'.}.}.'.'.# 6 '.}.}.}.`.Z C.'.}.'.'.'.'.}.'.Z L.}.}.'.'.}.'.}.N. : }.'.}.'.}.'.}.'.M. c P. X'.'. X'.'.'.'.'.'.'. X'.'.'.}.'.}.'.}.'.}.}.'.}.`.'.'.'. X'. X'.}.'.}.'.'.}.'.}.'.}.'.'.}.'.}.'.'.'.'.'. X'.'.'. X`.}.}.}.'.}.'.}.}.'.}.'.}.'.'.}.'.}.'.}.'.}.'.}.}.'.'.'.'.}.}.'.}.'.}.'.'.}.}.'.'.'.}.'.}.'.}.'.'.}.'.}.'.'.}.}.'.}.'.}.`.}.}.'.", -"'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.}.'.'.'.'.'.'.'.'.'.}.'.'.'.'.'.'.}.'.'.'.'.'.'.'.'.'.'.'.}.).'.'.'.}.'.'.'.'.}.`.'.'.'.'.'. X'.'.'.'.'.'.'.'.}.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.}.'.'.'.'.'.'.}.'.'.'.'.}. Z '.'.'.'.'.'.'.'.'.}.Z X P.'.'.'.'.'.'.'.'.'.X a '.'.`.}.}.B. Z '.'.'.'.'.'.'.'.c . '.'.'.'.'.'.'.}.V. : }.'.'.'.'.'.'.'.M. X Z '.'.'.'.'.}.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.`.}.'.}.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.}.}.`.`.'.'.}.`.'.'.'.'.'.}.'.'.'.'.'.'.'.'.'.'.'.'.'.}.'.'.'.'.}.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.}.`.'.'.", -"'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.}.`.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.`.}.`.}.'.`.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.`. c '.'.'.'.'.'.'.'.'.'.b L.'.'.'.'.'.'.'.'.'.+ 6 '.'.'.'.`.P. b '.'.'.'.'.'.'.).# 6 '.`.}.'.'.'.'.}.V. : '.'.'.'.'.'.'.'.M. c (.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.`.}.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.`.}.`.}.`.}.`.}.'.'.'.'.'.'.'.'.'.'.`.'.'.'.'.'.'.'.'.'.'.'.'.'.`.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.}.`.'.'.'.'.'.'.'.'.'.'.'.'.'.'.", -"'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.`.}.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.}.`.}.`.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.`.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.}. 2 '.'.'.'.'.'.'.'.'.'.8 X P.'.'.'.'.'.'.'.'.'.+ 6 '.'.'.'.}.}.% % '.'.'.'.'.'.'.(. V '.'.`.'.'.'.'.}.V. : '.'.'.'.'.'.'.'.M. 6 ).'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.`.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.}.`.}.`.}.`.}.`.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.`.}.).'.'.'.'.'.'.'.'.'.'.'.'.'.", -"'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.`.'.`.}.}.`.`.}.`.}.}.`.}.}.`.}.`.}.`.`.}.`.}.`.}.}.`.`.`.}.`.`.}.`.}.`.}.}.`.}.}.`.`.`.}.`.}.`.}.'.'.'.'.`.'.'.`.}.}.`.'.}.`.}.}.}.`.`.}.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.`.'.'.'.'.`.}.`.}.`. . '.'.}.`.}.}.`.`.'.).$ P.'.'.'.'.`.'.'.'.`.+ 8 }.'.}.`.}.}.d (.'.'.'.'.'.'.B. v.'.`.}.'.'.'.`.'.V. : }.`.'.}.`.`.`.}.M. d '.}.'.'.'.'.'.'.'.'.'.'.'.'.`.'.'.'.`.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.`.`.`.}.`.}.`.}.}.`.`.}.'.`.`.}.`.}.`.}.}.`.`.`.}.`.`.}.`.}.`.}.'.`.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.`.'.'.'.'.'.'.'.'.'.'.'.`.'.'.'.'.`.'.'.'.'.", -"`.'.'.`.'.'.`.'.`.'.'.'.`.'.`.'.'.'.`.`.`.}.`.`.`.`.`.`.`.`.`.`.`.}.`.`.}.`.`.`.`.`.}.}.`.}.`.`.`.`.`.`.`.`.`.`.}.`.}.`.`.`.`.`.`.'.`.'.'.`.'.'.`.`.'.`.`.'.`.`.`.`.}.`.`.`.'.`.`.'.`.`.`.'.`.`.'.'.'.'.`.'.`.'.`.'.`.'.`.'.`.`.}.`.`. P.).`.'.`.`.`.'.'.). P.`.'.`.'.`.'.'.`.}.+ 6 `.'.`.`.`.`.$. C.'.`.'.`.'.`.Z P.'.`.}.'.'.'.'.`.V. : '.'.`.`.}.}.`.}.:. $.}.`.'.`.`.'.'.'.'.'.'.`.'.'.`.'.'.'.`.'.`.'.'.`.'.'.`.'.'._.'.`.'.'.'.`.'.}.}.`.`.}.`.`.'.`.`.}.`.`.}.`.`.`.`.`.`.`.}.}.`.}.`.}.`.`.`.`.`.'.'.`.'.`.`.'.'.`.'.'.`.`.'.`.'.`.`.'.'.`.'.`.'.'.`.'.'.`.`.'.'.`.'.'.`.'.'.'.`.'.`.'.'.'.`.'.'.", -"'.`.`.'.`.`.`.`.`.'._._.`.`.`.'.`.`.'.`.`.'.`.`.`.`.`.`.`.}.`.`.`.`.}.`.`.`.}.`.`.`.`.`.`.`.`.`.`.`.`.`.}.`.`.`.`.`.`.`.`.`.`.`.`.'.`.'.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.'.`.'.`.'.`.`.`.'.`.'.`.'.`.'.`.`.`.`.'.`.'.`.'.'.`.`.`.}.`.'.`. C.'.`.`.`.`.`.}.`.P. P.'.`.`.`.`.`.'.'.`.+ 6 '.`.`.}.`.`.C. $.'.'.'.`.`.'.d O `.'.`.`.`.`.`.`.'.B. : `.`.`.`.`.`.}.`.M. C.`.'.`.'.'.`.`.'.'.`.`.'.`.`.`.`.'.`.`.`.'.`.`.`.`.`.'.`.`.`.`.'.'._._.'.`.`.}.`.`.`.`.`.`.`.`.`.`.'.`.`.`.`.`.`.`.`.}.`.`.`.`.`.`.`.`.`.`.`.'.`.'.'.`.`.`.'.`.`.'.`.`.`.`.'.'.`.`.'.'.`.`.`.'.`.'.`.`.`.`.`.`.`.'.`.`.'.`.`.`.`.`.'.`.`.", -"`.`.'.`.'.`.'.`.'.`.'.'.`.}.`.`.'.`.`.`.`.`.`.}.`.`.}.`.`.'.`.`.`.`.`.`.`.`.`.`.}.`.`.}.`.`.}.`.`.`.}.`.`.`.`.}.`.`.}.`.`.`.}.`.`.'.`.`.`.'.'.`.`.`.}.`.'.`.`.`.}.`.`.'.`.`.`.`.`.'.`.'.`.`.'.`.`.`.`.'.'.`.`.`.`.`.`.`.}.`.`.`.`.'.`. %.}.`.'.}.`.`.`.`.C. P.`.`.'.'.'.`.`.`.`.+ a '.`.`.`.`.`.(. b '.'.`.'.'.).O 6 `.`.`.'.`.'.'.`.'.B. : `.`.'.'.`.`.`.`.:. 8 `.`.`.'.`.'.`.`.`.`.'.`.`.'.'.`.`.`.'.`.`.`.`.`.'.`.`.'.'.'.`.`.`.'.'.'.`.`.`.`.`.`.`.`.`.`.`.}.`.`.`.`.`.`.`.}.`.`.`.`.`.`.}.`.`.`.`.}.'.`.`.`.`.`.'.`.`.`.`.'.`.`.'.`.`.`.`.`.'.`.`.`.'.`.`.`.'.`.'.`.'.'.`.'.`.'.`.`.`.'.'.`.'.`.`.'.", -"`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`._.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`. V `.`.`.`.`.`.`.`.%. P.`.`.`.`.`.`.`.`.`.+ 6 `.`.`.`.`.`.'.2 : _.`.`.`.`.P. C `.`.`.`.'._.'._._.N. : `._.'._.'.`.`.`.M. C.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.'.`.'._.'._.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.", -"`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`. d `.`.`.`.`.`.`.).Z P.`.`.`.`.`.`.`.`.).+ 6 `.`.`.`.`.`._.b (.`.`.`.`.M. M.`.`.`.`._.'._.'.`.B. : `.`.`.`.`.`.`.`.:. b `.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`._._.'.`.`._.'.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`._.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.`.", -"`.`._._.`.`._._._.`._.`.`._._.`.`._.`.`.`.`.`.`.`.`.`._.`.`.`.`._.`.`._._.`.`._.`.`._.`.`._.`.`.`.`._._.`.`._._._.`._.`.`.`.`._.`._.`._._.`.`.`.`.`.`.`.`._.`.`.`.`.`._._.`.`._.`.`.`.`.`._._.`.`.`.`.`._.`.`.`.`.^.`.`.`.`.`.`.`.`.`. : _.`._.`.`.`.`.`.b L.`._._.`._.`.`.`.`.+ 6 `.`._._.`.`.`.%. C.`._._.`.C P._.`.`.`._.`._._._.B. : `._.`.'._.`._.`.:. ~._.`.`.`._.`._._.`._.`._._.`._.`.`.`.`._._.`._.`.`.`._._.`._._._._._.`._.`.`.`._.^.`.`.`.`.`.`.`.`.`.`.`.`._.`.`._.`._.`.`.`.`._.`.`.`.`.`.`.`._._.`.`.`.`.`.`.`.`.`.`._.`.`._.`.`.`._.`.`._.`._._.`.`._.`.`._.`.`._._.`._.`.`._._.`.", -"_.`.`.`.`._.`.`.`._.`.`._.`._.`._.`._._.`._.^.`.`.`._.`.`._.^.`.`._.`.`.`.`._.`._._.`._._.`._._._.`.`.`.`._.`.`._.`.`.`._._.`.`.`._.`.`._.`._.`.`.`.`.^.`.`.`._.`.^.`.`.`.`._.`._._.`.`.`._.`.`.`._._.`.`._._.`.`.`.`.`.^._.`._.`.`.`. _.`._.`._.^.`.`.4 P.`._.`.`._.`._.`.`.+ 6 `.`.`.`._.`._.L. $.`._.`.`.6 + _.`._._.`._.`.'._.`.B. : `.'._._.`._.`._.M. v.`.`._.`.`._.`.`._.`._.`.`._.`.`.`.`.`._.`.`._.`._.`.`.`._.`._.'.'._.`.`.`.`.`.`.`.`._.`.`.`._.`._.`.`._._.`._.`.`._.`._._.`._.`.`._._.`._._.`.`.`.`.`._._.`.`._._.`.`.`.`._.`.`._._.`.`._.`.`._.`.`._.`.`._.`._._.`.`._.`.`._.`._.`.", -"`.`._._._.`.`._._._.`._._.`._._.`._._.`.^.`.`.`.^.`._.`._.`._.`._._._.`._.`._.`.`._.`._.`._._.`.`._.`._._.`._._.`._._.`._.`._.`.`._.`._.`._._.`.`._._.`._._._.`._.`.^.`.`._.`._._._.`._.`._.`._._.`._.`._._.`._.`.^._.`._._.`._.`._.`. K.`.`._.`._.`.`.+ K.`._._.`._._.`._.`.+ 6 _._.`._.`._._.~.. b `._.`._.. d _.`.`.`._._._.`._.`.N. : _._._._._.^.`.`.M. N _._._.`._._.`._.`._._.`._.`._._.`._._._.`._.`._.`._.`._.`._._.`._.`.^.`._._._.`._.`.`._.`.`.^.`.^.`._.`._._.`._.`._._._._.`._.`._._._.`._.`._.`._._._._.`._._._.`._._._.`._._.`._._._.`._.`._.`._._._.`._._.`._.`._._._.`._._._.`._.", -"_._._._._._._._._._._._._._._._._._._._.^.`.^.`.`._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._.`.`.^.`._.^.`._._._._._._._._._._._._._._._._._.`._.`.`.^._._._._._._._. B.^.`._._._._.~. K._._._._._._._._._.O d _._._._._._._._.8 : _._.`.K. Z _.^.`.^.`._.`._._._.N. : _._._._._.`.`.^.:. X + : _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._.`.^._._._._._._._._.^.`._._.`._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._.", -"_._._._._._._._._._._._._._._._._._._.`.`.^.`._.^.`._._._._._._._._._._._._._._._.^._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._.`.^.^.`.^._._.`._._._._._._._._._._._._._._._._._.^.^.^.`.`._._._._._._.`. $.`._._.^.^.`.K. P.^.`._._._._._._._.O 6 _._._._._._._._.V ~._._.:. N._.`.^.^._._._._._._.N. : _._._._._.`.^.`.>. N._._.K.%.2 ).`._._._._._._._._._.`._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._.^._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._.", -"_._._._._._._._._._._._._._._._._._._.^.^.`.^.`._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._.^._._._._._._._._._._._._.^.`.`.^.`._.^.^._._._._._._._._._._._._._._._._._.`.`._.^.`.^._._._._._._. N _._.^.`.`.^.B. K._.`.^.`._._._._._.O 6 _._._._._._._._.:. C._.`.V P._.^.`.`._._._._._._.N. : `._._._._.^.`.^.M. N._._.`.`.~.b K.~._._._._._._._._._.^.^.`._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._.`._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._.", -"^._._._._._.^._._._._._._._._._.`.^.`.`.^.`.^._.^._._._._._._._._._.^._.^._._._._.^._._.^._._._.^._._._._._._._._._._._.^._._._._._._._._._._._.^._._._._.^._._.`.^._._.`.`.^._._.^._._.^._._._._._._._._._._._._._.^._._._._.^._._._. 6 ^._.`.`.^._.%. K._._._._._._.^._._.O 6 ^.`._._.^._._._.P. $._._.5 $ `.^.`.^._._._.^._._._.N. 5 b b b b b b b b b b b b b b b C ^._._._._._._._.:. N.~._.^._._.~.+ >._._._.^._._.^._._.^._._._._.^._._._.^._._.^._._._._._._._._._._.^._._.^._.^._._.^.`.^._._.^.`.^._.^._._._._._.^._._._._._._._._._._._._._._._.^._._._._._._._._._._._.^._._._._._._._._._._._.^._._._._.^._._.^._._._.^._._._._._.", -"_.^.^.^._.^._.^.^.^._.^.^._.^.^.^.^.^.^.^.^._._._.^.^.^._.^.^.^.^.^._._._.^._.^._._.^._._._.^._._.^._.^.^._.^._.^.^.^._._.^.^.^.^._.^._.^.^.^._._.^.^.^._._.^._.^._.^._.^.^._.^._._.^._._._.^.^.^.^._.^.^._.^.^.^.^._._.^._.^._.^._.^. $ _._.^.^._.^.V P.^._.^.^.^.^._._.^.# 5 ^.^._.^._.^.^.^.^.+ b _.~.O d ^._._.^.^.`.^._.^._.^.N. %._.^.^.^._._._._._._.^._._._.^._._.^.^.^._.^.^._.:. N.^._._._.^.^.V $._.^._.^._._.^._.^._._.^.^.^._._.^._._.^._._._.^._.^.^._.^.^._.^._.^.^._._.^._.^._.^._.^._._.^._._._.^._.^._._._.^.^.^._.^.^._.^.^._.^.^.^.^.^._._._.^._.^._.^.^.^.^.^._._._.^.^.^.^._.^.^.^.^._._.^._.^._._.^._.^.^.^._._._.^.^.^.", -"^._._.^.^._._.^.^._.^._._.^._.^.^.`.^._._.^.^._.^._._.^.^._._.^._.^._.^.^._.^.^.^.^.^._.^.^.^.^.^._.^.^._.^.^._._.^._.^.^._._.^._.^.^._._.^._.^.^._._.^.^.^.^._.^.^._.^.^._.^.^.^.^.^.^.^.^.^._.^.^.^.^._.^._.^.^._._.^._.^.^._._.^._. W._.^._.^.^.b K._.^._.^.^._._.^.^.+ 6 ^._.^._.^.^.^.^.^.d 2 ^.K. { ^.^.^.^._.^.^._.^._.^.N. %._._.^._.^.^.^._.^.^.^._.^.^.^._.^._.^._.^._.^._.:. N.^.^.^.^.^._.%. C ^._.^.^._.^._.^.^.^.^.^._.^.^.^.^.^.^.^._.^.^.^.^.^._.^.^._.^.^._.^._._.^.^._.^._._.^.^._.^.^._.^.^._.^.^.^.^._.^.^._.^._._.^._.^.^._._.^._.^._.^.^._.^.^.^._._.^._.^._.^.^._._.^._.^._.^.^._._.^._.^.^._.^._._.^.^._.^._.^._._.^.", -"^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^._.^.^.^.^.^._.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^._.^.^.^.^.^.^.^.^.^.^.^._.^.^._.^.^._.^.^._.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^. K.^.^.^.^.^.> K.^.^.^.^.^.^.^.^.^.O 6 ^.^.^._.^._.^.^.^.Z Q.%. N.^._.^.^.^.^.^.^.^.^.^.N. %.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.:. >.^.^.^.^.^.^.C. V ^.^.^.^.^.^._.^._.^.^.^._.^._.^.^._.^.^.^.^.^._.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.", -"^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^._.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^. :.^.^.^.^.^.+ K.^.^.^.^.^.^.^.^.^.O 6 ^.^.^.^.^.^.^.^.^.>. C.V W._.^.^.^.^.^.^.^.^.^.^.N. %.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.:. >.^.^.^.^.^.^.H. b ^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^._.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.", -"^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^. $.^.^.^.^.W. K.^.^.^.^.^.^.^.^.^.O 5 ^.^.^.^.^.^.^.^.^.W. %.4 $ ^.^.^.^.^.^.^.^.^.^.^.^.>. %.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.:. N.^.^.^.^.^.^.K. f ^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.", -"^.^.^.^.^.^.^.^.^.^.^.!.^.^.!.^.!.^.^.^.^.!.!.^.^.^.!.^.!.^.^.^.^.!.^.^.^.^.^.^.!.^.^.!.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.!.^.^.^.^.!.^.!.^.^.^.^.^.^.^.^.^.^.^.^.^.!.!.^.^.!.^.!.!.^.^.^.^.^.^.^.^.^.^.^.^.^.!.^.^.!.^.^.^.^.^.^.^.^.^. B ^.!.^.^.H. K.^.^.!.^.!.^.^.^.^.O 5 ^.!.^.!.^.^.^.^.^.^.$ b b ^.^.!.^.^.!.^.^.^.^.^.^.>. %.^.^.!.^.^.!.^.^.^.^.^.^.^.^.^.^.!.!.^.^.^.^.^.^.;. >.^.^.!.^.^.^.J. d ^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.!.^.^.^.^.^.^.!.^.^.!.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.!.^.^.^.^.!.^.!.^.^.^.^.^.^.^.^.^.^.^.^.^.!.!.^.^.!.^.!.!.^.^.^.^.^.^.^.^.^.^.^.^.^.!.^.^.!.^.^.^.^.^.^.^.^.^.^.^.!.^.^.^.^.^.^.^.^.^.^.", -"^.^.^.!.^.!.^.^.!.^.^.^.^.^.^.^.^.^.^.!.^.^.^.^.^.^.^.^.^.^.^.!.^.^.!.^.^.^.!.^.^.^.^.^.^.!.^.^.!.^.!.^.!.^.!.^.^.!.^.!.^.^.!.^.^.^.^.^.^.!.^.!.^.!.^.!.^.!.^.^.^.^.^.^.^.^.^.^.^.^.^.!.^.!.^.!.^.!.^.^.^.!.^.^.^.^.!.^.^.^.!.^.^.^.^. 5 ^.^.^.^.>. J.^.^.^.^.^.^.^.!.^.O 5 ^.^.^.^.^.^.^.!.^.^.b . { ^.^.^.!.^.^.^.^.!.^.^.^.>. =.!.^.^.!.^.^.^.^.!.^.!.^.!.^.^.^.^.^.^.^.^.!.^.^.:. >.^.^.^.^.^.^.K. a ^.^.!.^.^.^.!.^.!.^.!.^.!.!.^.!.^.^.^.!.^.^.^.!.^.^.^.^.^.^.!.^.^.!.^.!.^.!.^.!.^.^.!.^.!.^.^.!.^.^.^.^.^.^.!.^.!.^.!.^.!.^.!.^.^.^.^.^.^.^.^.^.^.^.^.^.!.^.!.^.!.^.!.^.^.^.!.^.^.^.^.!.^.^.^.!.^.!.^.!.^.^.^.!.^.^.^.!.^.!.^.!.^.", -"^.^.^.^.!.^.^.^.^.!.^.^.!.^.^.^.^.^.^.!.^.^.^.^.!.^.^.^.^.^.!.^.^.^.!.^.^.!.!.^.^.^.^.^.!.^.^.!.^.^.^.^.^.^.^.!.^.^.!.^.^.!.!.^.^.^.^.^.^.^.^.^.!.^.^.^.!.!.^.^.!.^.^.^.^.^.!.^.^.^.^.^.^.^.^.^.^.^.^.^.!.^.!.^.^.^.!.^.^.^.^.^.^.!.^. $ ^.^.!.^.%. K.^.^.^.^.^.^.!.^.^.O 5 ^.^.^.^.^.^.!.^.^.!.$. N.^.^.!.^.!.^.^.^.^.!.^.^.>. %.^.^.^.^.!.^.^.^.^.^.^.!.^.^.^.!.^.!.^.^.^.^.^.^.:. >.^.^.^.^.^.^.K. d ^.^.!.^.^.^.!.^.^.!.^.^.^.^.^.^.^.^.^.!.^.^.!.!.^.^.^.^.^.!.^.^.!.^.^.^.^.^.^.^.!.^.^.!.^.^.!.!.^.^.^.^.^.^.^.^.^.!.^.^.^.!.!.^.^.!.^.^.^.^.^.!.^.^.^.^.^.^.^.^.^.^.^.^.^.!.^.!.^.^.^.!.^.^.^.^.^.^.^.^.^.!.^.!.^.!.^.!.^.^.^.^.!.", -"!.^.!.^.^.!.^.!.^.^.!.^.^.^.!.^.^.!.^.!.^.!.!.^.^.^.!.^.!.^.!.^.^.!.^.!.^.^.^.^.^.!.!.^.!.^.^.^.!.^.!.^.^.!.!.^.^.!.^.^.^.^.^.^.^.!.!.^.^.!.^.!.^.^.!.^.^.^.^.!.^.^.^.!.!.!.^.^.^.!.!.^.^.!.!.^.!.^.!.!.^.^.^.!.^.!.^.!.!.^.!.^.!.^.^. Q.^.^.^.B K.!.^.!.^.!.^.!.^.^.O d ^.^.!.^.!.^.!.^.^.^.H. Q.^.!.^.^.^.^.!.!.^.^.!.^.>. %.^.!.^.!.^.^.!.!.^.!.^.^.!.^.!.^.!.^.!.^.!.!.^.!.;. >.^.^.!.!.^.!.J. f !.!.^.^.!.^.^.^.!.^.^.!.^.^.!.^.!.^.!.^.!.^.^.^.^.^.!.!.^.!.^.^.^.!.^.!.^.^.!.!.^.^.!.^.^.^.^.^.^.^.!.!.^.^.!.^.!.^.^.!.^.^.^.^.!.^.^.^.!.!.!.^.^.^.!.!.^.^.!.!.^.!.^.!.!.^.^.^.!.^.!.^.!.!.^.!.^.^.!.!.^.!.^.^.^.^.^.^.^.^.!.!.^.", -"^.!.^.!.!.^.!.!.^.!.!.^.!.^.^.!.!.^.!.^.!.!.^.^.!.^.^.!.!.^.!.^.!.^.^.!.!.^.!.^.!.!.^.^.^.^.!.!.^.!.^.!.!.^.^.!.^.^.!.^.!.!.^.!.!.!.^.^.!.!.^.^.!.^.^.!.^.!.!.^.^.!.!.^.^.!.^.!.!.!.^.^.!.!.^.^.!.^.!.^.^.!.!.^.!.^.^.!.!.^.^.!.^.^.!. J.^.!.!.d J.!.^.^.!.!.^.^.!.^.O 5 !.^.^.!.^.!.!.^.!.!.Q.. : !.^.^.!.^.!.^.^.!.^.!.^.^.>. %.^.!.^.^.!.!.^.^.^.^.!.!.^.!.^.^.!.!.^.!.^.^.!.^.;. >.!.!.^.!.^.^.J. f ^.^.^.!.^.!.!.^.^.!.^.^.!.^.!.!.^.!.^.^.!.!.^.!.^.!.!.^.^.^.^.!.!.^.!.^.!.!.^.^.!.^.^.!.^.!.!.^.!.!.!.^.^.!.!.^.^.!.^.^.!.^.!.!.^.^.!.!.^.^.!.^.!.!.!.^.^.!.!.^.^.!.^.!.^.^.!.!.^.!.^.^.!.!.^.^.!.!.!.^.^.^.^.!.!.!.^.^.!.!.^.^.!.", -"^.!.!.!.^.!.!.^.!.!.^.!.!.!.!.!.!.!.^.!.!.^.!.!.!.!.!.^.!.!.^.!.^.!.!.^.!.!.!.^.!.^.!.!.!.!.!.^.^.!.!.!.^.!.!.^.!.!.^.!.!.^.!.!.!.^.!.!.!.^.!.!.!.!.!.!.!.^.!.!.!.^.!.!.^.!.!.^.!.^.!.!.!.^.!.!.^.!.^.!.!.^.!.!.^.!.!.^.!.!.!.!.!.!.!. >.!.^.!.2 J.!.!.!.^.!.!.^.!.!.+ 5 !.!.^.!.!.!.^.!.!.^.!.> b !.!.^.!.!.!.!.!.!.!.^.!.!.N. %.!.!.!.!.^.^.!.!.!.!.^.!.!.^.!.!.^.!.!.^.!.!.^.!.;. >.^.!.!.^.!.!.H. b ^.!.!.^.!.!.^.!.!.!.!.!.!.!.^.!.!.^.!.!.^.!.!.!.^.!.^.!.!.!.!.!.^.^.!.!.!.^.!.!.^.!.!.^.!.!.^.!.!.!.^.!.!.!.^.!.!.!.!.!.!.!.^.!.!.!.^.!.!.^.!.!.^.!.^.!.!.!.^.!.!.^.!.^.!.!.^.!.!.^.!.!.^.!.!.!.!.!.^.!.!.!.!.!.^.!.!.!.^.!.!.^.!.", -"!.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.^.!.^.!.!.!.!.!.^.!.!.^.!.^.!.!.!.^.!.^.!.^.^.!.^.!.^.!.^.!.!.!.!.^.!.!.!.^.!.^.!.^.!.!.!.!.^.^.^.!.!.!.!.^.!.!.!.^.!.!.^.!.^.!.!.^.!.!.!.^.!.!.!.^.!.^.^.!.!.!.!.^.!.!.!.!.^.^.!.^.!.!.!.!.^.^.^.!.^. $.!.^.!.+ J.^.!.^.!.^.!.^.!.^.O 5 !.!.!.^.!.^.^.!.^.!.!.B ..!.^.!.^.!.^.^.!.^.!.!.^.!.>. %.!.^.!.!.^.!.^.!.^.^.!.!.!.!.^.!.!.^.!.!.^.!.^.!.;. >.^.!.!.^.!.^.C. B !.!.^.^.!.^.!.!.!.^.!.!.^.!.^.!.^.^.!.!.^.!.^.^.!.^.!.^.!.^.!.!.!.!.^.!.!.!.^.!.^.!.^.!.!.!.!.^.^.^.!.!.!.!.^.!.!.!.^.!.!.^.!.^.!.!.^.!.!.!.^.!.!.!.^.!.^.^.!.!.!.!.^.!.!.!.!.^.^.!.^.!.!.!.!.^.^.!.^.!.^.^.!.!.!.^.!.!.^.!.^.!.^.", -"!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.^.^.!.!.!.!.!.^.!.!.^.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.^.!.!.!.!.^.!.^.!.!.!.!.^.!.^.!.!.!.!.!.^.^.!.!.!.!.!.!.^.!.!.!.!.!.!.!.!.^.!.!.^.!.!.!.!.!.!.!.^.!.!.!.!.^.!.!.!.!.!.!.!.^.!.!.!.!.!.!.!. N !.!.W. : J.!.!.!.!.!.!.!.!.!.O 5 !.^.!.!.!.^.!.!.!.^.!.%. C.!.!.!.!.!.!.!.!.!.!.!.^.!.>. =.!.!.!.!.^.!.!.!.!.!.!.!.^.!.!.^.!.!.!.!.^.!.!.!.;. >.!.^.!.!.!.!.-. { ^.!.!.!.!.!.^.!.!.!.!.!.^.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.^.!.!.!.!.^.!.^.!.!.!.!.^.!.^.!.!.!.!.!.^.^.!.!.!.!.!.!.^.!.!.!.!.!.!.!.!.^.!.!.^.!.!.!.!.!.!.!.^.!.!.!.!.^.!.!.!.!.!.!.!.^.!.!.!.!.!.!.!.!.!.^.!.!.!.!.!.^.!.!.!.!.", -"!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.^. + a !.!.H. a J.!.!.!.!.!.!.!.!.!.+ 5 !.!.!.!.!.!.!.!.!.!.!.H. Q.!.!.!.!.!.!.!.!.!.!.!.!.!.>. %.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.;. >.!.!.!.!.!.!.{ ;.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.", -"!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!. 4 $ !.!.;. B J.!.!.!.!.!.!.!.!.!.+ 5 !.!.!.!.!.!.!.!.!.!.!.!.O > !.!.!.!.!.!.!.!.!.!.!.!.!.!.>. %.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.;. >.E.!.!.!.!.!.f H.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.", -"!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.E.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!. b !.!.{ { J.!.!.!.!.!.!.!.!.!.O 5 !.!.!.!.!.!.!.!.!.!.!.!.a b !.!.!.!.!.!.!.!.!.!.!.!.!.!.>. %.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.=. >.!.!.!.!.!.Q.O I.!.!.!.!.!.!.!.E.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.", -"!.!.!.!.E.!.!.!.!.!.!.!.E.!.!.!.!.!.!.!.E.!.!.!.!.!.!.E.!.!.E.!.!.!.E.!.!.!.E.!.!.!.!.!.!.!.!.!.E.!.!.!.E.!.!.!.E.!.!.!.E.!.!.!.!.!.!.!.!.!.E.!.!.E.!.!.!.!.!.!.!.!.E.!.!.E.!.!.!.!.!.!.!.!.E.!.!.!.!.!.!.E.!.!.!.!.!.!.!.E.!.!.!.E.!. B @ J.!.B # %. J.!.!.!.!.!.E.!.!.!.+ 5 !.!.E.!.!.!.!.!.E.!.!.E.C ..!.!.!.E.!.!.!.E.!.E.!.!.!.!.>. X.!.E.!.!.!.!.!.!.!.!.!.!.Q.!.!.E.!.!.!.!.E.!.!.!.=. >.!.E.^.!.!.B $ !.!.!.!.!.!.!.!.!.!.!.!.E.!.!.!.!.!.!.!.E.!.!.!.E.!.!.!.!.!.!.!.E.!.E.!.!.!.E.!.!.!.E.!.!.!.E.!.!.!.!.!.!.!.!.!.E.!.!.E.!.!.!.!.!.!.!.!.E.!.!.E.!.!.!.!.!.!.!.!.E.!.!.!.!.!.!.E.!.!.!.!.!.!.!.E.!.!.!.!.!.!.!.!.!.E.!.!.E.!.!.!.!.!.", -"!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.E.!.!.!.!.!.!.E.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.E.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.E.!.!.!.!.!.E.!.!.!.!.!.E.!.!.!.!.!.!.!.!.E.!.!.!.E.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!. N a -.!.a 4 .. J.!.!.!.!.!.!.!.!.Q.O 5 !.!.!.!.!.E.!.!.!.!.!.!.>. H.!.!.!.!.!.!.!.!.!.!.!.!.!.E.>. N =.=.=.%.=.=.=.=.=.=.=.=.=.=.,.!.!.E.!.!.!.!.!.!.=. >.R.K.t.{ < b !.!.!.E.!.!.!.!.!.!.!.!.!.!.!.!.!.E.!.!.!.E.!.!.!.!.!.!.E.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.E.!.!.!.!.!.E.!.!.!.!.!.E.!.!.!.!.!.!.!.!.E.!.!.!.E.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.E.!.!.!.!.E.!.!.!.!.!.!.!.!.E.", -"!.E.!.E.!.E.!.E.!.E.!.E.!.E.!.E.!.E.!.!.!.E.!.E.!.!.!.!.E.!.E.!.E.!.!.E.!.E.!.E.!.E.!.!.!.E.!.E.!.E.!.E.!.E.!.E.!.E.!.E.!.E.!.E.E.!.!.E.E.!.!.!.!.E.E.!.!.!.!.!.E.!.!.!.!.E.!.E.!.E.!.!.E.!.!.!.!.E.!.E.!.E.!.E.!.E.!.E.!.E.!.E.E.!.!. B b ..!.: f . J.!.E.!.E.!.E.!.E.!.O 5 E.!.E.!.!.!.E.!.E.!.!.!.J. Q.E.E.!.!.E.!.E.!.E.!.E.E.!.!.>. < !.E.!.!.!.!.E.!.!.=. =.!.E.!.!.!.E.!.E.!.E.!.E.!.E.!.E.!.!.E.!.!.!.!.E.!.E.!.E.!.!.!.E.!.E.!.E.!.E.!.E.!.E.!.E.!.E.!.E.!.E.E.!.!.E.E.!.!.!.!.E.E.!.!.!.!.!.E.!.!.!.!.E.E.!.!.E.!.!.E.!.!.!.!.E.!.E.!.E.!.E.!.E.!.E.!.E.!.E.!.!.!.E.E.!.!.!.!.E.!.E.!.E.!.!.", -"E.!.!.!.E.!.!.!.!.!.E.!.!.!.E.!.E.!.!.E.!.!.E.!.!.E.E.!.!.!.E.!.E.!.!.!.E.!.!.!.E.!.!.!.E.!.!.!.!.!.!.E.!.!.!.E.!.E.!.!.E.!.!.!.!.E.!.!.E.!.!.!.E.!.!.!.E.!.!.E.!.!.!.!.!.E.!.!.!.E.!.!.E.!.!.!.!.!.E.!.!.!.!.E.E.!.!.!.E.!.!.!.!.!.E. B { V !. C . J.E.!.!.!.E.!.!.!.!.+ 5 !.!.E.!.!.E.!.!.E.!.!.E.!.@ 4 E.!.!.E.!.!.E.!.!.!.!.!.E.!.E.>. < !.!.!.!.!.E.!.!.!.;. R.!.!.E.!.!.!.E.!.!.!.E.!.!.E.!.!.!.E.E.!.!.!.E.!.!.!.E.!.!.!.E.!.!.!.!.!.E.!.!.!.!.E.!.E.!.!.E.!.!.!.!.E.!.!.E.!.!.!.E.!.!.!.E.!.!.E.!.!.!.!.!.E.!.!.!.E.!.!.E.!.!.!.E.!.!.!.E.!.!.!.!.!.E.!.!.!.E.!.!.E.!.!.!.!.E.!.!.!.!.E.!.!.!.E.", -"!.!.E.E.!.!.E.E.E.E.!.!.E.E.!.!.!.E.!.!.E.!.!.E.E.!.!.!.E.!.E.!.!.!.E.!.!.E.E.!.!.E.!.E.!.!.E.!.E.E.!.!.E.E.!.!.!.!.E.E.!.!.E.!.E.!.E.!.!.E.!.E.!.!.E.!.!.E.!.E.!.E.E.!.E.!.!.E.!.!.E.!.E.!.E.!.E.E.!.!.E.E.!.!.!.!.E.E.!.!.E.E.E.!.!. B ;. a I. =. . i.!.!.E.E.!.!.E.E.E.O 5 E.!.!.E.!.E.E.!.E.!.!.E.!.a N !.!.E.!.!.E.!.!.E.!.E.!.!.E.!.>. < E.!.E.!.E.!.!.E.E.=. B !.E.!.!.E.!.E.!.!.E.!.E.!.!.E.!.E.E.!.!.!.E.!.!.E.E.!.!.E.!.E.!.!.E.!.E.E.!.!.E.E.!.!.!.!.E.E.!.!.E.E.E.!.E.!.!.E.!.E.!.!.E.!.!.E.!.E.!.E.E.!.E.!.!.E.!.!.E.!.E.!.E.!.!.!.E.E.!.!.E.E.E.E.!.!.E.E.!.!.E.!.!.E.E.!.!.E.!.E.!.E.!.E.E.!.", -"E.!.E.!.E.E.E.!.!.E.!.E.!.E.!.E.E.!.E.E.E.!.E.!.!.!.E.E.!.E.E.!.!.E.E.!.E.E.!.!.E.!.E.E.!.E.!.E.!.E.!.E.E.!.E.!.E.E.E.!.E.E.!.E.!.!.E.E.E.!.E.E.!.E.!.E.E.E.!.!.E.!.E.E.E.!.E.E.!.E.!.E.E.!.E.E.!.E.!.E.!.E.!.E.E.!.E.!.E.!.E.!.E.!.E. B H. ; t. C. . J.E.!.E.!.E.!.E.!.!.O 5 E.!.E.E.!.!.E.!.E.!.E.!.!.{ %.E.E.E.!.E.!.!.E.E.!.E.!.E.!.!.-. 4 !.E.!.E.E.E.E.E.!.=. ; R.E.!.E.E.!.E.E.!.E.!.E.E.E.!.!.!.E.!.E.!.E.E.!.E.E.!.!.E.!.E.E.!.E.!.E.!.E.!.E.E.!.E.!.E.E.E.!.E.E.E.!.!.!.E.E.E.!.E.E.!.E.!.E.E.E.!.!.E.!.E.E.E.!.E.E.!.E.!.E.E.!.E.E.E.!.E.!.E.!.E.!.!.E.!.E.!.E.!.E.E.!.E.!.E.!.E.!.E.E.!.!.!.E.!.E.", -"E.E.!.E.E.!.!.E.!.E.E.E.!.E.E.!.E.E.!.E.E.!.E.E.E.E.!.E.E.!.E.E.E.E.!.E.!.E.E.E.!.E.E.!.E.E.E.!.E.E.E.!.E.E.E.!.!.E.!.E.E.!.E.E.E.E.E.!.E.E.!.E.E.E.E.!.E.!.E.E.E.E.E.!.E.E.E.!.E.E.E.!.!.E.E.!.!.E.E.!.E.E.E.!.E.E.!.E.E.E.!.E.E.E.!. B R. =. I... J.E.E.!.E.E.E.!.E.E.O 5 !.E.E.!.E.E.!.E.E.E.!.E.E.,. t.E.!.E.E.E.E.E.E.!.E.!.E.E.E.E.-. < E.E.E.E.!.!.E.!.E.=. @ J.E.!.E.E.E.E.!.E.E.E.E.!.!.E.E.E.E.!.E.E.E.E.!.E.!.E.E.E.!.E.E.!.E.E.E.!.!.E.E.!.E.E.E.!.!.E.!.E.E.!.!.E.E.E.E.!.E.E.!.E.E.E.E.!.E.!.E.E.E.E.E.!.E.E.E.!.E.E.E.!.!.E.E.!.E.E.!.E.E.E.!.E.E.E.E.E.!.E.E.!.!.E.E.E.E.!.E.E.E.!.E.E.E.!.E.E.", -"E.E.E.E.E.E.E.E.E.E.E.E.E.!.E.E.E.!.!.E.E.E.E.E.!.E.E.E.E.!.E.E.E.E.!.E.E.E.E.E.E.E.E.E.E.E.E.E.!.E.E.!.E.E.E.E.E.E.E.E.E.E.E.E.E.E.!.E.E.E.E.E.!.E.E.E.E.E.!.E.E.E.E.E.E.E.E.E.E.E.!.E.E.E.E.E.E.E.E.!.E.E.!.E.E.E.!.E.E.E.E.E.!.E.!. B T.@ N . E. . i.E.E.E.E.E.E.E.E.E.O 5 E.E.E.E.E.E.E.E.E.E.E.E.!... X.E.E.E.!.E.E.!.E.E.E.E.E.E.E.!.-. < !.E.E.E.E.E.E.E.T.=. f I.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.!.E.E.E.E.!.E.E.!.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.!.E.E.E.E.E.E.E.E.E.E.E.E.E.E.!.E.E.E.E.E.!.E.E.E.E.E.!.E.E.E.E.E.E.E.E.E.E.E.!.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.!.E.E.E.E.E.E.E.E.E.!.E.E.E.E.E.E.E.!.", -"E.!.!.E.E.E.E.E.E.E.E.!.E.E.E.E.E.E.E.E.!.E.!.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.!.E.!.E.E.E.E.E.E.E.E.E.E.E.E.E.E.!.!.E.E.!.E.E.E.E.E.!.!.E.E.E.E.E.!.E.E.E.E.E.!.E.!.E.E.!.E.E.E.E.!.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.!.E.E.E.E. B E.5 % : E. . J.E.!.!.E.E.E.E.!.E.O 5 E.E.!.E.E.E.E.E.!.E.E.!.E.B N E.E.E.E.E.E.E.E.!.E.E.E.E.E.E.-. < !.E.E.E.E.E.!.E.E.=. + f H.T.E.E.E.E.E.!.!.E.E.E.E.E.E.!.!.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.!.E.!.E.E.E.E.E.E.E.E.E.E.E.E.E.E.!.!.E.E.!.E.E.E.E.!.E.!.E.E.E.E.E.!.E.E.E.E.E.!.E.!.E.E.!.E.E.E.E.!.E.E.E.E.!.!.E.E.E.E.!.!.E.E.E.E.E.E.E.E.E.!.E.E.E.E.E.E.E.E.E.E.E.E.E.", -"E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.T.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E. B E.N a E... i.E.E.E.E.E.E.E.E.E.O 5 E.E.E.E.E.E.E.E.E.E.E.E.E.a $ E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.>. 4 E.E.E.E.E.E.E.E.T.=. > f C t.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.", -"E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.T.E.E.E.E.E.E.E.T.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.T.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.T.E.E.E.E.E.E.E.E.T.E.E.E.E.E.T.E.T.E.E.E.E.E.E.E.E.E.E.E.E.E.E.T.E.E.E.E.E.E.E.E.E.E.E.E.E.T.E.E.E.E.E.E. l E.{ B E. . J.E.T.E.E.E.E.E.E.E.X 5 E.T.E.E.E.E.E.E.E.E.E.E.E.@ J.T.E.E.E.E.E.E.E.E.E.E.E.E.E.-. > T.E.E.E.E.E.E.E.T.=. ; B ,.R.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.T.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.T.E.E.E.E.E.E.E.E.T.E.E.E.E.E.T.E.T.E.E.E.E.E.E.E.E.E.E.E.E.E.E.T.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.", -"E.E.E.E.T.T.E.E.E.E.T.T.E.E.E.E.E.E.E.T.E.E.E.T.E.E.E.T.E.E.E.T.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.T.E.E.E.T.E.E.E.T.E.T.E.E.E.T.E.E.E.E.T.E.E.E.T.T.E.E.E.T.E.T.E.E.E.E.E.E.E.E.T.T.E.E.E.T.E.E.E.E.T.E.E.T.E.E.T.E.E.E.E.E.E.E.E.T.E.E.E. B T.-. ..E. . i.E.E.E.E.T.T.E.E.T.# 5 T.E.E.T.T.E.E.E.E.E.E.E.I. =.T.E.E.E.E.E.E.T.E.E.E.T.E.E.-. > E.E.E.T.E.T.E.E.E.=. + B i.E.E.E.E.E.T.E.E.E.T.E.E.E.T.E.E.E.E.E.E.E.T.T.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.T.T.E.E.E.E.T.E.E.E.T.E.T.E.E.E.T.E.E.E.E.T.E.E.E.T.T.E.E.E.T.E.T.E.E.E.E.E.E.E.E.T.T.E.E.E.T.E.E.E.E.E.E.E.E.T.T.E.E.T.E.E.E.T.E.T.E.E.T.T.E.E.T.T.E.E.E.E.T.E.E.E.T.", -"T.E.T.E.E.E.E.T.T.E.E.E.T.E.E.E.T.T.E.E.T.T.E.E.E.E.E.E.E.T.E.E.E.E.Y.E.T.E.T.E.E.T.E.E.T.T.E.E.E.E.E.E.E.T.E.E.E.T.E.T.E.E.E.E.E.E.T.E.T.E.E.E.E.T.E.E.E.E.E.E.E.E.T.E.T.E.E.E.E.T.E.E.E.E.T.E.T.E.E.E.E.E.E.E.T.E.E.T.E.T.E.E.E.E.E. l E.i. -.T. . i.T.E.E.E.E.E.E.T.T.O 5 T.E.E.E.E.E.T.E.T.E.E.E.t. f E.E.E.T.E.T.E.E.E.T.E.E.E.T.-. 4 E.T.E.E.E.E.E.E.T.&. d i.R.T.E.T.E.T.E.E.E.T.E.E.E.T.E.T.E.T.E.E.E.E.T.E.E.Y.E.T.E.T.E.E.T.E.E.E.E.E.E.E.E.E.E.E.T.E.E.E.T.E.T.E.E.T.E.E.E.T.E.T.E.E.E.E.T.E.E.E.E.E.E.E.E.T.E.T.E.E.E.E.T.E.E.E.E.T.E.E.T.T.E.E.E.E.T.E.E.T.E.T.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.E.T.E.E.", -"T.T.E.E.E.E.T.E.T.E.T.T.E.E.T.T.E.T.T.E.E.T.T.E.Y.E.T.E.E.T.T.T.E.T.E.E.T.T.E.E.Y.E.E.T.E.T.E.T.T.E.T.T.E.T.T.T.E.E.T.E.T.E.T.T.E.T.E.T.T.E.T.E.T.E.T.T.E.T.T.T.E.T.E.T.T.E.T.E.T.E.T.E.E.T.E.T.E.E.T.E.T.E.T.T.E.E.E.T.T.T.E.E.T.E.T. B E.U. i.T. . i.E.E.T.E.T.E.T.E.T.# 5 T.E.T.E.E.E.E.T.T.E.T.E.X. ; U.T.T.E.T.E.T.T.E.E.T.T.E.E.-. 4 T.E.E.T.T.E.T.E.T.=. . { T.T.E.T.E.E.T.E.E.T.T.E.E.T.E.T.E.E.T.E.T.E.E.T.E.E.T.T.E.E.T.E.E.T.T.T.E.T.T.E.E.T.E.T.T.T.E.E.T.E.T.E.T.E.E.T.E.T.T.E.T.E.T.E.T.T.E.T.T.T.E.T.E.T.T.E.T.E.T.E.T.E.E.T.E.T.T.T.E.E.T.E.T.E.E.T.T.T.T.T.E.E.T.T.E.T.T.T.E.T.E.E.T.T.T.E.T.T.", -"T.E.T.T.T.T.T.T.T.E.T.T.T.T.T.E.T.T.T.E.T.T.T.E.E.T.E.Y.T.E.T.T.T.T.T.T.T.E.T.T.Y.E.T.T.E.T.T.T.T.T.T.E.T.T.E.T.T.T.T.T.T.T.T.E.T.E.T.T.T.E.T.T.T.T.E.T.T.T.T.T.T.E.T.T.T.E.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.E.T.T.T.T.T.T.E.T.T.T.T.T. l T.E.$ U.T. . i.T.T.T.T.T.T.T.T.T.O 5 T.T.T.T.T.T.T.T.E.T.T.T.B I.E.T.T.E.T.T.T.T.T.T.T.T.T.-. < T.T.T.E.T.T.T.T.T.=. B U.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.E.T.T.E.Y.T.T.E.T.T.T.T.T.T.T.T.T.E.T.T.T.T.T.T.T.E.T.T.E.T.T.T.E.T.T.T.T.E.T.T.T.T.T.T.E.T.T.T.E.T.T.T.T.T.T.T.T.T.T.T.E.T.T.T.T.T.T.T.E.T.T.T.E.T.T.T.T.T.E.T.T.T.E.E.T.T.E.T.T.E.T.", -"T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.E.Y.E.Y.E.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T. l T.T.a @ T.T. . i.T.T.T.T.T.T.T.T.T.O 5 Y.T.T.T.T.T.T.T.T.T.Y.E.i =.T.T.T.T.T.T.T.T.T.T.T.T.T.-. < T.T.T.T.T.T.T.T.T.+. { T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.E.Y.E.Y.Y.E.Y.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.", -"T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.Y.E.Y.E.Y.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T. B T.R.l 5 T.Y. . i.T.T.T.T.T.T.T.T.T.O 5 T.T.T.T.T.T.T.T.T.T.E.Y.+ l T.T.T.T.T.T.T.T.T.T.T.T.Y.-. < T.T.T.T.T.T.T.T.T.=. ; > @ t.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.Y.E.Y.E.E.Y.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.E.T.T.T.T.", -"T.T.Y.T.T.T.Y.T.T.T.T.Y.T.Y.T.T.T.T.T.T.T.T.T.T.T.Y.T.T.T.T.T.T.T.T.T.T.T.T.Y.T.Y.E.Y.E.T.T.T.T.T.Y.T.T.T.T.T.T.T.Y.Y.T.T.T.T.T.T.T.T.T.T.T.Y.T.T.T.T.T.T.T.T.T.T.T.Y.T.T.T.Y.T.T.T.T.T.Y.T.T.T.T.Y.T.T.T.T.T.T.T.T.T.T.Y.T.T.T.T.T.T. B T.T.{ f Y.T.} i.T.T.T.Y.Y.T.T.T.T.O 5 T.T.T.T.T.Y.Y.T.T.T.T.I. ; T.T.T.Y.T.T.T.T.Y.T.T.T.T.-. > T.T.T.Y.Y.T.T.Y.T.+. &.T.T.I.-.s < U.T.T.T.T.T.T.T.T.T.T.T.T.T.Y.Y.T.T.T.T.T.T.T.T.T.Y.T.Y.E.Y.E.T.T.T.T.T.T.T.T.T.T.T.T.T.Y.Y.T.T.T.T.T.T.T.T.T.T.T.Y.T.T.T.T.T.T.T.T.T.T.T.Y.T.T.T.T.T.T.T.T.T.Y.T.T.T.T.T.T.Y.Y.T.T.T.T.T.T.T.T.T.T.Y.Y.T.T.T.T.T.T.T.Y.T.T.Y.Y.T.T.Y.", -"T.Y.T.T.Y.Y.T.Y.Y.T.Y.T.Y.T.T.T.x.T.T.T.Y.T.Y.Y.Y.T.Y.T.Y.Y.T.Y.Y.T.Y.T.Y.Y.T.T.Y.Y.Y.Y.T.Y.Y.T.Y.T.Y.T.Y.Y.T.Y.T.Y.T.T.Y.Y.Y.T.Y.T.Y.Y.Y.T.T.Y.T.T.T.Y.x.T.T.Y.Y.T.T.Y.Y.T.T.Y.Y.T.Y.T.T.Y.Y.T.Y.T.Y.T.Y.Y.T.Y.Y.T.Y.Y.T.Y.T.Y.Y.T.T. l Y.T.*. { Y.Y. . u.T.Y.T.Y.T.T.T.Y.Y.O 1 Y.T.Y.Y.T.Y.T.T.Y.T.Y.,. I.T.x.T.T.Y.Y.Y.T.T.Y.T.Y.-. 4 Y.Y.T.Y.T.T.Y.T.Y.+. &.T.Y.Y.T.T.B &.Y.T.Y.Y.T.Y.Y.T.Y.Y.T.Y.T.Y.T.T.T.Y.Y.T.Y.T.Y.Y.T.T.Y.Y.Y.Y.Y.T.Y.T.Y.Y.Y.T.Y.Y.T.Y.T.Y.T.T.Y.Y.Y.T.Y.T.Y.Y.Y.T.T.Y.T.T.T.Y.x.T.T.Y.Y.T.T.Y.Y.T.Y.Y.Y.T.Y.T.T.Y.Y.T.T.Y.T.Y.T.T.Y.T.T.Y.Y.Y.T.Y.T.Y.T.T.T.T.T.Y.Y.T.Y.Y.T.Y.T.T.Y.T.", -"Y.T.Y.Y.Y.Y.Y.Y.Y.Y.T.Y.Y.Y.Y.T.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.T.Y.Y.Y.Y.T.Y.T.Y.Y.T.Y.Y.T.Y.T.T.x.T.x.T.T.Y.Y.T.Y.Y.T.Y.T.Y.Y.T.Y.Y.T.Y.T.T.Y.Y.T.Y.Y.T.Y.Y.T.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.T.Y.Y.Y.Y.T.Y.Y.Y.T.T.Y. k Y.Y.i. +.Y.T.} i.Y.T.Y.Y.Y.Y.T.Y.T.O i Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.T.} +.Y.Y.Y.Y.Y.Y.T.Y.Y.Y.Y.Y.&. < a a a d a s a a a s a a a a x Y.T.Y.Y.Y.Y.T.Y.Y.+. &.T.Y.T.Y.Y.I.O 4 Y.Y.Y.Y.T.Y.T.Y.Y.T.Y.Y.T.Y.Y.Y.T.Y.Y.Y.Y.Y.T.Y.Y.T.Y.Y.T.Y.Y.Y.Y.Y.T.T.x.T.x.T.T.Y.Y.Y.Y.Y.T.Y.T.Y.Y.Y.T.Y.Y.T.Y.T.Y.Y.Y.Y.T.x.x.T.Y.Y.Y.Y.Y.T.Y.Y.Y.Y.Y.T.Y.Y.Y.Y.Y.Y.Y.T.Y.T.Y.Y.Y.Y.T.Y.Y.T.Y.T.Y.Y.T.Y.Y.Y.T.Y.Y.T.Y.Y.T.Y.T.Y.", -"Y.Y.T.Y.Y.Y.Y.Y.Y.T.Y.Y.Y.T.Y.Y.T.Y.Y.T.Y.T.Y.Y.T.Y.Y.T.T.Y.Y.T.Y.Y.T.Y.Y.T.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.x.T.T.Y.Y.Y.Y.T.Y.Y.Y.Y.x.T.x.T.Y.Y.Y.T.x.T.x.x.T.Y.Y.Y.Y.x.T.T.Y.Y.T.Y.Y.Y.Y.Y.T.T.Y.Y.T.Y.Y.Y.Y.T.Y.Y.T.Y.Y.Y.Y.Y.Y.Y.T.Y.Y.Y.Y.Y.T. B Y.Y.Y. t.Y.Y.} i.Y.Y.Y.T.Y.Y.Y.Y.Y.O 4 Y.Y.Y.Y.T.Y.Y.T.Y.Y.Y.N B Y.Y.Y.Y.Y.Y.Y.Y.T.T.Y.T.&. X.Y.Y.Y.Y.Y.Y.Y.Y.Y.T.Y.Y.Y.T.T.Y.Y.Y.T.Y.T.Y.Y.T.=. &.Y.Y.Y.Y.Y.Y.i I.Y.Y.T.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.T.Y.Y.T.Y.Y.T.Y.T.Y.Y.Y.Y.Y.Y.Y.T.T.Y.x.T.T.Y.Y.Y.Y.Y.Y.T.T.Y.x.T.x.T.T.Y.Y.T.Y.x.T.x.Y.Y.T.T.Y.T.T.T.Y.E.Y.Y.Y.Y.Y.Y.Y.T.Y.Y.Y.Y.Y.Y.Y.T.Y.Y.Y.Y.Y.T.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.", -"Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.x.T.Y.T.Y.x.Y.Y.Y.Y.x.T.x.T.Y.Y.T.Y.Y.Y.x.T.Y.Y.Y.Y.Y.Y.T.x.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y. k Y.Y.Y.: g.T.Y... u.Y.Y.Y.Y.Y.Y.Y.Y.Y.O 4 Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.4 > x.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.&. X.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.x.T.Y.Y.x.+. &.Y.Y.Y.Y.Y.Y.B t.Y.Y.Y.x.T.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.T.x.Y.Y.Y.Y.T.x.T.x.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.x.T.Y.T.Y.Y.Y.Y.Y.Y.x.T.T.x.Y.Y.T.x.Y.Y.Y.T.Y.Y.x.Y.Y.Y.T.x.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.", -"Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.x.T.x.T.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.x.x.T.Y.Y.Y.Y.T.x.Y.Y.Y.Y.x.Y.Y.Y.T.x.Y.Y.T.x.Y.Y.x.T.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.x.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y. k Y.Y.Y.a O Y.Y.Y.} i.Y.Y.Y.Y.Y.z.Y.Y.Y.O 5 Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.+ I.Y.Y.Y.Y.Y.Y.Y.Y.x.T.Y.*. X.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.x.Y.Y.Y.Y.Y.Y.Y.Y.Y.x.Y.x.x.=. &.Y.Y.x.Y.Y.Y.} | Y.Y.x.T.x.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.x.T.Y.Y.Y.Y.x.T.x.T.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.x.x.T.Y.x.Y.Y.T.x.x.T.x.Y.x.T.x.Y.Y.Y.Y.Y.T.x.T.x.x.T.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.", -"Y.Y.Y.Y.Y.Y.x.Y.Y.x.x.Y.Y.Y.z.Y.Y.x.Y.Y.x.Y.x.Y.Y.Y.Y.Y.x.Y.Y.x.Y.x.Y.Y.x.Y.Y.x.x.Y.x.Y.Y.Y.Y.x.x.Y.x.Y.x.Y.Y.Y.Y.x.Y.Y.x.Y.x.Y.x.x.Y.Y.T.x.x.T.x.Y.Y.x.T.x.x.x.Y.x.Y.Y.Y.Y.x.Y.Y.Y.Y.x.Y.Y.x.Y.z.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.x.z.Y.Y.Y.Y.Y.x. k Y.Y.x.l > Y.Y.Y.} u.Y.Y.Y.Y.Y.Y.Y.Y.Y.O 4 Y.Y.x.Y.Y.x.x.Y.x.Y.l. @.Y.Y.Y.Y.x.Y.Y.x.Y.Y.x.&. X.Y.x.Y.Y.Y.Y.Y.Y.x.Y.Y.z.Y.Y.x.x.T.x.Y.Y.x.Y.Y.x.&. +.Y.x.Y.Y.Y.Y.+. { x.x.Y.Y.T.Y.x.Y.x.Y.Y.Y.x.Y.Y.x.Y.x.Y.Y.x.Y.Y.Y.x.Y.x.Y.x.x.Y.x.Y.x.T.x.Y.x.Y.Y.Y.Y.x.Y.Y.x.T.T.x.Y.Y.Y.x.T.x.x.x.Y.Y.x.Y.Y.x.T.x.Y.Y.Y.x.Y.Y.x.x.Y.Y.Y.x.Y.x.Y.Y.Y.Y.Y.Y.Y.z.Y.Y.x.Y.Y.Y.Y.x.Y.x.Y.Y.Y.x.Y.Y.x.Y.Y.Y.Y.x.Y.Y.x.Y.", -"z.Y.z.Y.Y.z.Y.x.x.Y.x.Y.Y.Y.z.Y.x.Y.x.x.x.Y.x.x.Y.x.x.Y.x.x.x.Y.Y.x.x.x.x.x.x.Y.x.Y.x.x.Y.x.Y.x.x.T.Y.x.Y.x.x.x.Y.x.x.x.x.x.x.T.x.Y.x.x.x.x.Y.x.x.x.x.Y.x.x.x.T.Y.Y.x.x.x.x.Y.x.Y.x.x.Y.x.x.x.Y.Y.Y.z.Y.Y.Y.Y.z.z.Y.x.Y.Y.Y.z.Y.x.Y.Y. l Y.x.Y.} s x.x.Y.} u.z.Y.z.Y.Y.z.Y.z.Y.O i x.x.x.x.x.Y.x.Y.x.x.,. l x.Y.Y.Y.x.x.x.Y.x.x.x.&. X.x.Y.x.x.x.x.x.x.Y.Y.z.Y.Y.x.Y.x.x.Y.x.Y.x.x.x.Y.| &.Y.x.x.Y.x.x.*. x x.Y.x.x.x.x.Y.x.Y.x.x.x.Y.x.x.Y.x.x.x.x.Y.x.x.x.x.x.Y.x.Y.Y.x.x.x.x.T.x.x.Y.x.x.x.Y.x.x.x.x.x.x.x.x.x.Y.x.x.x.x.T.x.x.Y.x.x.Y.x.x.Y.x.Y.x.x.Y.x.Y.Y.Y.Y.x.x.Y.x.x.z.Y.z.Y.Y.Y.z.Y.Y.x.x.x.x.Y.x.Y.x.Y.x.Y.x.x.Y.x.x.x.x.Y.Y.Y.x.x.", -"Y.Y.z.Y.x.Y.x.Y.Y.x.z.Y.Y.Y.Y.Y.Y.x.x.Y.Y.x.x.Y.x.Y.x.x.Y.x.Y.x.x.Y.x.Y.Y.x.Y.x.Y.x.x.Y.Y.x.x.x.x.x.x.T.x.x.x.Y.x.Y.x.Y.Y.x.Y.x.Y.x.x.Y.x.Y.Y.x.Y.x.x.Y.x.Y.x.x.x.Y.x.Y.x.Y.Y.x.Y.x.x.Y.x.Y.Y.x.Y.z.z.Y.Y.z.Y.z.z.Y.Y.z.Y.z.Y.z.Y.x.Y. l x.Y.x.*. B x.Y.Y.} y.Y.Y.z.Y.z.Y.Y.Y.Y.. i Y.Y.Y.x.Y.x.Y.x.x.Y.} ; < Y.Y.x.Y.Y.x.Y.x.x.x.Y.@. X.Y.x.x.x.Y.Y.x.x.Y.Y.Y.x.Y.Y.x.Y.x.x.Y.x.Y.x.Y.x.+. @.x.x.Y.Y.x.Y.t. l Y.Y.x.Y.x.x.Y.x.x.Y.x.Y.x.x.Y.x.Y.Y.x.Y.x.Y.x.x.T.x.Y.Y.x.x.Y.Y.x.x.x.x.T.x.x.Y.x.x.Y.x.Y.x.x.T.x.x.x.x.x.T.x.x.Y.x.Y.x.x.Y.x.x.x.Y.x.x.Y.x.x.x.x.x.x.x.x.Y.x.x.x.Y.z.Y.z.z.Y.Y.z.Y.x.Y.x.x.Y.x.x.Y.x.Y.x.x.Y.x.Y.x.Y.Y.x.x.Y.Y.x.", -"z.Y.Y.z.x.x.x.x.x.x.Y.x.z.z.Y.z.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.Y.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.Y.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.z.Y.Y.z.Y.Y.z.Y.Y.z.Y.Y.z.Y.Y.z.x.x.x. l x.x.x.u. } x.x.Y.} y.z.Y.Y.z.Y.z.z.Y.x.O 4 x.x.x.x.x.x.x.x.Y.x.l g O g.x.x.x.x.x.x.x.x.x.x.&. | x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.&. @.x.x.x.x.x.z.y. g Y.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.Y.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.Y.x.x.Y.x.Y.x.x.x.x.x.x.z.Y.Y.z.Y.Y.z.Y.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.", -"x.x.x.x.x.x.x.x.z.x.z.Y.z.z.z.Y.x.x.z.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.z.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.Y.Y.z.z.z.z.Y.Y.z.z.Y.z.Y.z.Y.Y.x.x.x. k Y.x.x.x.. *.x.x.x.} y.x.x.x.x.x.x.x.x.x.O 5 x.x.x.x.z.x.x.x.x.x.4 x i @.x.x.x.x.x.x.x.x.x.z.&. X.x.x.x.x.x.x.z.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.+. @.x.x.x.x.z.x.y. f x.x.x.x.x.x.x.x.x.x.Y.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.z.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.Y.Y.z.z.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.x.", -"x.x.k.x.z.z.x.z.x.z.Y.z.z.Y.z.z.x.x.x.z.z.x.x.z.z.x.z.z.x.x.k.x.x.z.x.z.z.x.z.x.x.x.z.x.x.z.x.z.x.z.z.x.z.x.z.x.x.z.x.z.z.x.z.x.x.z.x.z.z.x.x.z.z.x.z.x.x.z.x.z.z.x.z.x.z.x.x.k.z.x.x.z.x.z.z.x.z.z.Y.z.Y.z.z.z.z.Y.z.z.z.z.z.z.z.x.x. k z.z.x.z.; u.x.x.x.} y.z.x.z.x.x.z.x.z.z.O 1 z.z.x.z.x.x.z.x.x.Y.O X.l l x.x.z.z.x.x.z.z.x.z.@. | x.x.x.x.z.x.x.x.z.x.z.x.z.x.z.z.x.z.x.z.z.x.z.z.+. @.x.x.z.x.x.x.u. g x.z.x.z.x.x.z.x.z.x.k.x.z.z.x.z.x.z.x.z.x.z.x.z.z.z.x.z.x.z.x.x.z.x.z.z.x.z.z.z.x.x.z.z.x.z.x.z.x.x.x.x.z.z.x.z.x.z.x.z.x.x.z.x.z.x.z.x.z.k.x.x.x.z.x.x.z.x.z.x.z.z.z.z.Y.x.x.k.x.x.z.x.z.x.z.z.x.z.x.z.x.x.z.x.z.x.z.x.z.z.x.x.z.", -"x.z.x.z.x.x.x.x.z.z.Y.z.k.Y.Y.k.x.z.z.x.x.x.x.x.x.z.x.x.x.k.z.x.z.x.x.x.x.z.z.z.z.z.x.x.z.x.x.z.x.x.z.z.x.x.x.x.z.x.x.x.x.z.x.z.x.x.x.x.x.z.z.x.x.z.x.z.z.x.x.x.x.x.x.x.z.x.x.x.x.z.x.z.x.x.x.x.z.Y.z.z.Y.z.z.Y.z.Y.Y.z.z.Y.Y.z.x.z.x. k x.x.z.x.a l.x.z.z.} y.x.z.x.z.z.x.x.x.z.O 1 x.x.z.x.z.x.x.x.x.g. *.| < x.x.x.x.z.x.x.z.x.z.@. | x.x.z.z.x.x.z.z.z.z.x.x.z.x.x.z.z.x.x.x.x.z.x.x.o. @.z.z.x.z.z.z.y. s x.z.x.x.z.z.x.z.x.k.x.x.x.x.z.z.x.x.z.x.z.x.x.z.z.x.x.x.x.z.x.z.x.x.x.z.z.x.z.x.x.z.x.z.x.x.z.x.z.z.x.z.x.x.x.x.x.z.x.z.z.z.x.z.x.z.x.z.x.x.x.k.x.x.z.x.z.x.x.z.x.k.Y.z.z.x.x.z.x.x.x.z.x.x.x.z.x.x.x.x.z.z.x.z.x.x.x.x.x.x.z.z.x.", -"x.k.x.z.z.z.z.z.z.x.z.z.Y.k.Y.z.z.x.z.z.z.z.z.z.z.z.x.k.x.x.x.z.z.z.z.z.x.z.z.z.z.x.z.z.x.z.x.z.z.x.z.z.z.z.z.z.z.z.z.z.x.z.x.z.z.z.z.z.z.x.z.z.z.z.z.z.z.z.z.z.z.z.k.x.z.x.x.k.x.z.z.z.z.z.k.x.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.x.x.z.x. k z.z.z.z.x ; z.x.z.x.} y.x.z.x.z.z.z.z.z.x.O 4 z.x.z.z.z.z.z.z.z.#. u.t. l.x.k.x.z.z.x.z.z.z.@. | z.z.x.z.z.z.x.z.z.x.z.x.z.z.z.z.z.z.z.z.x.z.z.z.+. @.x.z.z.z.z.z.u. s x.x.z.z.z.x.z.z.x.k.x.x.k.x.z.x.z.x.z.x.z.z.z.z.z.z.z.z.z.z.x.z.z.z.z.z.z.z.x.z.z.z.z.x.z.z.x.z.z.x.z.z.x.z.z.z.z.x.z.z.z.z.x.z.x.x.z.z.x.k.x.k.x.x.z.z.z.z.z.z.x.Y.k.Y.z.k.x.z.x.z.z.z.z.z.z.x.z.z.z.z.x.z.z.z.z.z.z.z.z.k.x.z.z.", -"x.x.z.z.z.z.z.z.z.x.k.x.k.z.z.z.z.z.z.z.z.z.z.z.z.z.x.k.x.k.x.x.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.k.x.z.x.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z. g z.z.z.z.} i x.z.z.z.} y.k.z.z.x.z.z.z.z.z.O 4 z.z.z.z.z.z.z.z.x.( l.l. @.k.z.z.x.z.z.z.z.z.@. | z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.| @.z.z.z.z.z.z.u. a z.z.z.z.z.z.z.z.z.x.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.x.z.z.z.z.z.z.z.z.z.z.z.k.z.z.z.z.x.x.z.z.z.x.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.x.x.z.z.", -"k.z.z.k.z.z.z.z.k.k.x.z.k.z.z.z.z.z.z.z.z.z.z.z.z.z.k.x.x.k.k.z.z.z.z.z.z.z.z.z.z.z.z.z.z.k.z.z.z.z.z.z.z.z.z.k.z.z.z.z.z.z.z.k.z.z.z.k.z.z.z.z.z.z.z.z.z.z.z.k.z.z.z.z.x.k.z.k.z.z.z.z.z.x.k.x.z.z.z.z.z.z.z.z.z.z.z.z.z.z.k.z.k.z.z. l z.z.z.x.#. g x.z.z.z.} e.z.z.z.k.z.z.z.z.z.O 1 z.z.z.z.z.z.z.z.x.g @ z.z.; x z.z.z.k.z.z.z.z.z.@. | z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.k.z.z.o. @.k.z.z.k.z.z.e. i z.z.z.z.z.z.z.z.z.k.x.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.k.z.z.z.z.z.z.z.z.z.k.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.k.z.z.z.k.x.z.z.z.z.z.z.z.z.z.z.k.z.z.z.z.k.k.x.x.k.k.z.z.z.z.z.z.z.z.z.z.z.z.z.z.k.z.z.z.k.z.z.", -"z.z.z.z.z.z.z.z.x.k.z.z.z.z.z.z.z.z.z.z.z.k.z.z.z.z.x.k.z.z.z.z.z.z.z.z.z.z.z.z.k.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.k.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.x.k.z.z.z.z.k.z.z.z.z.z.z.z.z.z.z.z.z.z.z. k z.z.z.z.f. ( z.z.k.z.} y.z.z.z.z.z.z.z.z.z.O 1 z.z.z.z.k.z.z.z.z.1 < z.z.a 1 z.z.z.z.z.k.z.z.z.@. | z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.| o.z.z.z.z.z.z.y. i x.z.z.z.z.k.z.z.z.z.z.z.z.z.z.k.x.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.k.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.k.z.z.z.z.z.z.z.z.z.z.z.z.z.z.x.k.k.k.x.k.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.z.", -"k.z.k.z.z.k.z.z.k.z.k.z.k.z.k.z.k.z.k.z.k.z.z.z.k.k.x.k.z.k.z.k.k.z.k.z.z.k.z.z.k.z.k.z.k.z.k.z.k.z.k.z.z.k.z.k.z.k.z.k.z.k.z.z.z.z.z.k.z.k.z.k.z.k.z.z.k.z.z.k.z.k.k.z.k.z.z.k.k.z.z.k.z.k.k.z.k.z.k.z.z.k.z.k.k.z.k.k.k.z.k.z.k.z.z. k z.z.k.z.z. | k.z.z.k.} y.k.z.k.z.k.z.k.z.k.O i z.k.z.k.z.z.z.k.z.O s z.k.x l.z.k.z.z.z.k.k.j.@. | z.z.k.k.z.k.z.z.k.k.z.k.z.k.z.z.k.k.k.z.k.z.z.z.o. @.k.k.z.z.k.z.y. i z.k.z.k.z.k.z.k.z.z.k.z.k.z.k.z.k.k.z.z.k.z.k.z.z.k.z.z.k.z.k.z.k.z.z.k.z.k.z.z.k.z.z.z.k.k.z.k.z.k.z.k.z.k.z.k.k.k.z.k.z.z.k.k.z.k.z.z.k.z.z.k.z.k.z.z.k.z.k.z.k.z.k.z.k.k.z.k.x.z.k.x.k.z.k.z.k.z.k.z.k.k.z.z.k.z.k.z.k.z.k.z.k.", -"z.k.z.k.z.k.k.z.k.z.k.z.k.k.k.x.k.k.z.k.k.k.z.k.z.k.z.k.z.k.k.z.z.k.z.k.k.z.k.z.z.k.k.z.k.z.z.k.k.z.z.k.z.k.z.k.x.k.k.z.k.z.k.z.k.z.k.k.z.z.k.z.k.z.k.z.k.z.k.k.z.k.z.k.k.z.z.k.k.x.k.k.z.k.k.z.z.k.z.k.k.z.k.x.z.k.k.z.k.z.k.z.k.z.k. g z.k.k.k.z.> t.k.k.k.z.} e.k.z.z.k.k.z.k.z.k.O 1 k.z.k.z.k.k.z.k.f. x z.z.@. #.z.k.k.z.k.z.k.z.@. | k.z.k.z.k.k.z.k.z.k.z.k.z.k.k.x.k.z.k.z.k.z.k.z.o. @.z.k.z.z.k.k.y. 1 z.z.k.z.k.z.k.z.k.z.k.k.z.k.z.k.x.z.k.k.z.k.z.k.k.k.z.k.z.k.k.k.z.k.k.z.k.z.k.z.k.z.k.z.k.z.k.z.k.z.k.z.k.z.k.z.z.k.k.z.z.k.z.k.k.z.k.z.k.z.k.x.k.k.z.k.k.z.k.k.x.k.z.k.z.z.k.k.z.k.z.k.z.k.z.k.z.k.z.k.z.z.k.k.z.k.z.k.z.k.z.z.k.", -"k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.z.k.k.k.k.k.k.k.k.z.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.z.k.k.k.z.k.k.k.k.k.k.k.z.k.k.k.z.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.z.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k. l k.z.k.k.k.s g.k.k.k.k.) y.k.k.k.k.k.k.k.k.k.O 1 k.k.k.k.k.k.k.k.@. o.k.k.r. x z.k.k.k.k.k.k.k.O. | k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.o. O.k.k.k.k.k.k.e. 1 z.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.z.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.z.k.k.k.k.k.k.k.k.k.k.z.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.z.k.k.k.k.", -"k.k.k.k.k.k.k.k.k.k.k.k.z.k.k.k.k.k.k.z.k.k.k.k.k.k.k.k.k.k.k.k.k.k.z.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.z.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.z.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.z.k.k.k.k.z.k. l k.k.k.k.k.x + k.k.k.k.k._ e.k.k.k.k.k.k.k.k.k.O 5 k.k.k.k.k.z.z.k.( 8.z.k.k.@ 4 k.z.k.k.k.k.k.k.@. | k.k.k.k.k.k.z.k.k.k.k.k.k.k.z.k.k.k.k.k.k.k.k.k.o. @.j.k.k.k.k.k.e. 1 k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.z.k.k.k.k.k.k.k.k.k.z.k.k.k.z.k.k.k.k.k.z.k.k.k.k.k.z.k.k.k.k.k.z.k.k.k.k.k.k.k.k.k.k.k.k.z.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.", -"k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.j.k.k.k.k.k.k.k.k.k.k.k.j.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k. l k.k.k.k.k.} , k.k.k.k.k.} e.k.k.k.k.k.k.k.k.k.O 1 k.k.k.k.k.k.k.k.g g.k.k.k.a h.k.k.k.k.k.k.k.O. | k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.o. O.k.k.k.k.k.k.y. 1 k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.", -"k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.j.k.k.k.k.k.k.j.k.k.k.k.k.k.k.k.j.k.k.k.k.k.k.j.k.k.k.k.k.k.k.k.k.k.k.k.j.k.k.k.j.k.k.k.k.k.k.k.k.j.k.k.k.k.j.k.k.k.k.k.k.j.k.k.k.k.k.k.k.k.k.j.k.k.k.k.k.k.k.k.j.k.k.j.k.j.k.k.k.k.k.k.k.k.k.k.k. h k.k.k.j.k.#. s k.k.k.k.k.} e.k.k.k.k.k.k.k.k.k.O 1 k.k.k.k.k.k.k.k.1 @ j.j.k.k.x #.k.k.k.j.k.k.k.O. | k.k.k.k.k.z.k.k.j.k.k.k.k.k.k.k.j.k.k.k.k.k.j.k.` O.k.k.k.k.k.k.e. i k.k.k.k.k.k.k.k.j.k.k.k.k.k.k.k.k.k.k.j.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.k.j.k.k.k.j.k.k.k.k.k.k.k.j.k.k.j.k.j.k.k.k.k.k.k.k.j.k.k.k.k.k.k.k.k.k.k.k.j.k.k.k.k.k.k.k.k.k.j.k.j.k.k.k.j.k.k.j.k.k.k.k.j.k.k.k.k.k.k.j.k.k.k.k.k.", -"j.j.k.j.k.j.j.k.j.k.j.k.j.k.j.j.j.j.k.k.k.j.j.j.k.j.j.k.j.k.j.k.j.j.k.k.k.j.j.j.k.k.j.k.k.j.k.j.j.k.j.j.j.k.k.j.j.k.k.j.j.j.j.k.k.j.k.j.j.j.k.j.k.k.j.j.j.k.j.k.k.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.j.k.k.j.k.j.j.k.k.j.j.j.j.k.j.j.k.j.k. k j.j.k.k.j.f. x j.j.j.j.j._ e.j.j.k.k.k.j.k.j.j.O 1 j.k.j.k.k.j.j.k.. 4 k.j.j.j.#. x k.k.k.j.j.k.j.@. s ( ( ( ( _ ( ( ( } ( ( ( _ ( ( ( } 8.k.j.k.j.k.j.o. O.k.j.k.j.k.j.e. 1 k.j.j.j.k.k.k.j.k.j.k.k.j.k.j.k.j.j.j.k.k.k.k.j.j.j.k.j.k.j.k.j.j.j.k.j.j.j.k.k.j.j.k.j.k.j.j.j.k.j.j.k.j.j.k.k.k.j.j.j.j.j.k.k.j.k.k.j.j.j.k.j.k.j.j.k.j.j.k.j.k.k.j.j.j.k.k.j.k.k.k.j.k.k.j.k.j.k.j.k.j.j.k.j.k.j.k.j.k.k.j.j.j.", -"j.k.j.k.k.j.j.k.j.k.k.j.k.j.k.j.j.k.j.j.j.k.k.j.j.k.k.j.j.k.k.j.j.k.j.j.j.k.k.j.k.j.j.k.j.j.j.j.j.k.j.k.j.j.j.j.k.j.j.k.k.j.j.j.j.j.k.k.k.j.j.k.j.j.k.j.j.k.j.k.k.j.j.j.j.j.j.k.j.k.j.j.j.j.k.j.k.j.j.k.j.k.k.j.j.k.k.j.k.j.j.j.j.k.j. h j.j.j.j.j.k.. | k.k.j.k.j.} e.j.k.j.j.j.j.j.k.j.O 1 k.j.j.k.j.j.k.r. g j.k.j.k.f. i j.j.j.k.j.k.j.@. ( j.k.k.j.k.j.o. o.j.j.k.k.j.k.e. 1 j.j.k.j.k.k.j.k.j.k.j.j.k.j.j.k.j.j.k.k.j.j.k.k.j.j.k.k.j.k.j.j.j.j.j.j.k.k.j.j.j.k.j.j.k.j.k.k.j.k.j.j.k.k.k.j.j.k.j.j.k.k.j.j.k.j.j.j.j.j.k.j.j.k.j.k.k.j.k.j.j.j.j.k.j.j.j.j.j.j.k.k.j.j.k.k.j.j.j.k.j.j.j.k.j.j.k.k.j.j.k.k.j.", -"k.j.k.j.j.j.k.j.j.k.j.j.k.j.j.k.j.j.k.j.k.j.j.k.j.k.j.j.k.j.j.j.j.j.k.j.k.j.j.k.j.j.k.j.j.k.j.j.k.j.k.j.k.k.j.k.j.j.k.j.k.j.k.j.j.k.j.j.j.k.k.j.j.k.j.k.j.j.k.j.j.j.k.k.j.k.j.k.k.j.j.k.k.j.j.k.j.k.j.j.j.k.j.j.k.j.k.j.j.j.k.k.j.j.k. k j.j.k.k.j.j.< #.j.j.k.j.j._ e.k.j.k.j.k.k.j.j.j.O 1 j.k.j.j.j.k.k.O. ( k.j.k.j.j.@ j.k.j.k.j.j.j.O. x k.j.j.k.j.k.` O.j.k.j.j.j.k.y. 1 k.k.j.j.k.j.j.k.j.j.k.j.j.j.k.j.k.k.j.j.k.j.j.j.k.j.k.j.j.k.j.j.j.j.k.k.j.j.k.j.k.j.k.j.j.k.j.j.j.j.k.k.j.j.j.k.j.j.k.j.k.j.j.k.j.k.j.k.k.j.j.k.j.j.k.j.j.k.j.j.k.k.k.j.k.k.j.k.k.j.j.k.j.k.j.j.j.k.j.j.k.k.j.j.k.k.j.j.j.k.j.j.k.", -"j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.k.j.j.j.j.j.j.j.j.j.j.j.j.j.j.k.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.k.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j. g j.j.j.j.j.d.s r.j.j.j.j.j._ e.j.j.j.j.j.j.j.j.j.O 1 k.j.j.j.j.j.j.( o.j.j.j.j.j.a 8.h.j.j.j.j.j.O. ( j.j.j.j.j.d.o. O.k.j.j.j.j.j.e. 1 j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.", -"j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j. l j.j.j.j.j.j.x h.j.j.j.j.j.} 0.j.j.j.j.j.j.j.j.j.O 1 j.j.j.j.j.j.j.g 0.j.j.j.j.d.( ( k.j.j.j.j.j.O. x j.j.j.j.j.j.` O.j.j.j.j.j.j.e. 1 j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.", -"j.d.j.d.d.j.d.j.d.j.j.j.j.d.j.j.j.j.j.d.j.d.j.j.j.d.j.j.j.j.d.j.j.j.j.j.j.d.j.d.d.j.j.j.j.j.d.j.j.j.j.j.j.j.d.j.j.d.j.j.d.j.j.j.j.j.d.j.j.j.j.d.j.j.j.j.j.d.j.d.j.d.j.d.d.d.j.d.j.j.j.d.j.d.j.j.j.j.j.j.j.d.j.j.j.d.j.j.j.d.j.j.j.j.j. h j.j.j.j.d.d.| ; d.j.j.d.j.d._ e.j.d.j.d.d.j.d.j.d.O 1 j.j.d.j.j.j.j., h.j.j.d.j.j.8. 1 j.j.d.j.j.j.O. z d.j.j.j.d.d.o. O.j.j.d.j.j.j.9. i j.j.d.j.d.j.j.d.j.d.j.j.j.d.j.j.j.d.j.j.j.d.j.j.j.j.d.j.j.j.j.d.j.j.j.j.j.j.j.j.d.j.d.j.d.d.j.d.j.j.d.d.j.j.j.d.j.j.j.j.j.j.j.j.d.d.j.d.j.j.j.j.j.j.j.j.d.j.j.j.d.j.j.j.j.j.d.j.d.d.j.j.j.j.d.j.j.d.j.j.j.j.d.j.j.j.j.j.j.j.j.j.d.", -"j.j.j.j.j.j.j.j.j.j.j.d.j.j.d.j.d.d.j.j.j.j.d.j.j.j.j.d.d.j.j.j.d.d.j.j.j.d.j.j.j.j.d.j.d.j.j.j.d.d.j.j.d.j.j.j.j.j.j.d.j.j.d.j.j.d.j.j.d.j.j.j.j.j.j.d.j.j.j.j.j.d.j.j.j.j.j.j.d.j.j.d.j.j.d.j.j.d.j.d.j.j.j.d.j.j.d.j.j.j.j.d.j.j.j. l d.d.j.j.j.d.8. i j.j.d.j.j.j._ e.j.j.j.j.j.j.j.j.j.O 1 d.j.j.j.d.j.j.. ; d.d.j.j.j.d.h.. h.j.j.d.j.j.O. x j.j.d.j.j.d.o. O.j.j.j.d.d.j.e. 1 j.j.j.j.j.d.j.j.j.j.j.j.d.j.j.d.j.j.j.d.j.j.j.d.j.j.j.j.d.d.j.j.j.d.j.j.j.d.j.j.j.j.j.j.j.j.j.j.j.j.j.j.j.d.j.j.j.j.j.d.j.d.d.j.j.j.j.j.j.j.d.d.j.d.j.j.j.d.j.j.j.j.d.d.j.j.j.j.j.j.j.d.j.j.j.j.d.j.j.j.d.j.j.d.j.j.j.d.j.d.d.j.j.", -"d.d.d.j.d.j.j.d.d.j.j.d.j.d.j.d.j.d.d.j.d.j.j.d.d.j.j.d.j.d.j.d.j.d.d.j.d.j.d.j.d.j.j.j.d.j.d.j.j.d.j.j.d.j.d.j.d.j.d.j.d.j.j.d.d.d.j.d.d.j.d.d.d.j.j.d.d.j.d.j.j.d.j.j.d.j.d.j.j.j.d.j.j.d.j.j.j.d.d.j.d.j.j.d.d.j.d.d.j.d.d.j.j.j.d. h d.j.d.j.d.d.f. g j.j.j.d.j.j._ 0.d.d.d.j.d.j.j.d.d.O 1 d.j.d.j.j.d.r. i j.j.j.d.d.j.d.1 8.d.j.d.d.d.O. x d.d.d.d.j.d.` O.d.d.j.j.j.s.e. 1 d.d.d.d.j.d.j.j.d.d.j.j.d.j.d.j.d.d.j.j.j.d.j.j.d.d.j.j.d.j.d.j.d.j.d.j.d.j.d.d.j.d.d.d.j.d.j.j.d.d.d.j.d.d.j.d.d.d.j.j.j.j.j.d.j.j.j.d.d.d.j.j.d.j.j.d.j.d.j.d.d.j.j.d.j.d.j.d.j.d.j.d.d.j.j.d.j.d.j.d.j.j.d.j.j.j.d.d.j.j.j.d.j.", -"d.j.j.d.d.d.d.j.d.d.d.j.d.d.d.d.j.d.j.d.d.d.d.d.d.d.d.j.j.d.d.j.j.d.j.d.d.d.j.d.d.d.d.d.d.d.d.j.j.d.d.d.d.d.d.j.d.d.j.d.d.d.d.j.d.j.j.d.j.d.d.j.d.d.d.j.d.d.d.d.d.j.d.d.j.d.d.j.d.d.d.d.d.j.d.d.d.j.d.d.d.d.d.d.d.j.d.j.d.j.d.d.d.d.j. h d.j.d.d.j.j.d.. ( d.d.d.d.d.d._ 0.d.j.j.d.d.d.d.j.d.O 1 d.d.d.d.d.j.O. j d.d.d.d.j.j.d.x ( d.d.d.j.d.O. ( d.d.d.d.j.d.o. O.j.d.d.s.j.s.e. 1 d.j.d.j.d.d.d.d.j.d.d.d.j.d.d.d.d.d.d.d.d.d.d.d.j.d.d.d.j.j.d.d.j.d.d.d.d.d.j.j.d.j.d.j.d.d.d.d.j.d.j.j.d.j.d.d.j.d.d.d.d.d.d.d.d.d.d.d.j.d.d.d.j.d.d.d.d.d.j.d.j.d.d.d.d.d.d.d.d.j.d.d.j.d.d.d.j.d.d.d.d.d.j.d.d.d.d.j.d.d.d.d.d.", -"d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.j.d.d.d.d.d.d.d.d.d.d.d.d.d.d.j.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.j.d.d.d.d.d.d.d.d.d.j.d.d.d.d. g d.d.d.d.d.d.d., O.d.d.d.d.d.d._ 0.d.d.d.d.d.d.d.d.d.O 1 d.d.d.d.d.d.( _ d.d.d.d.d.d.d.O. i d.d.d.d.d.O. x d.d.d.d.d.d.' ] d.d.d.d.d.s.e. 1 d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.j.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.j.d.d.d.d.j.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.j.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.j.d.d.d.", -"d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.j.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.j.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.j.d.d.d.d.j.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d. l d.d.d.d.d.d.d.p 9.d.d.d.d.d.d._ 0.d.d.d.d.d.d.d.d.d.O 1 d.d.d.d.d.d.p #.d.d.d.d.d.d.d.q. . d.d.d.d.d.O. x d.d.d.d.d.d.` O.d.d.d.d.d.d.9. 1 d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.j.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.j.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.j.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.", -"d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.s.d.s.s.d.s.d.d.d.s.d.d.d.d.d.s.j.j.s.d.d.d.d.d.s.s.j.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.s.d.d.d.d.d.d.d.d.d.d.s.d.s.d.d.d.d.d.d.d.d.d. l s.j.s.s.d.d.d.z p.j.s.d.d.d.d._ 9.d.d.s.d.d.d.d.d.d.O 1 s.d.d.d.d.s., q.d.d.d.d.d.d.d.d.; 8.j.d.d.d.O. x j.d.d.s.d.s.` ] d.d.d.s.d.j.9. i d.s.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.s.d.d.d.d.s.d.d.d.d.d.d.d.d.d.d.s.d.d.s.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.", -"s.d.s.d.d.s.d.s.d.s.d.s.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.s.d.d.s.s.s.d.s.d.s.d.s.j.s.s.d.d.s.d.s.d.s.d.s.d.s.d.d.s.d.d.d.s.d.s.d.d.s.d.d.d.d.s.s.d.s.d.d.s.d.s.d.s.s.d.d.s.d.d.s.d.s.d.d.d.d.s.d.s.s.d.s.d.d.d.d.d.d.s.s.d.s.d.d.s.d.. h j.d.s.d.d.d.s.` + d.d.d.d.d.s.d.) 9.s.d.d.d.d.s.d.d.s.O i d.d.s.d.s.s.. . d.d.d.d.d.s.s.d.s.h ( d.d.s.s.O. ( d.d.d.d.d.d.' O.s.s.d.s.d.s.9. 1 d.d.d.d.d.s.d.s.d.s.d.s.d.s.d.s.d.s.d.s.d.s.s.d.d.d.s.d.s.s.d.s.d.s.d.s.d.d.s.d.d.d.s.d.d.s.d.s.d.d.s.s.d.s.d.d.s.d.s.s.d.s.d.d.s.d.d.s.d.s.d.d.d.d.s.s.d.d.d.d.s.d.s.s.d.s.d.d.d.d.d.d.d.d.d.s.d.d.s.d.s.d.s.s.d.d.s.d.d.s.d.d.d.", -"d.s.s.s.s.s.s.d.s.s.s.d.s.s.s.s.s.d.s.d.s.d.s.d.s.d.s.d.s.s.d.s.s.j.s.d.s.s.s.d.s.j.s.d.s.s.s.d.s.d.d.s.d.s.s.s.s.s.s.s.s.s.s.d.d.s.d.s.d.s.s.s.s.s.d.s.s.s.s.s.s.d.d.s.s.s.s.s.s.d.d.s.s.d.s.s.s.d.s.d.s.d.s.s.d.s.d.s.s.s.d.s.s.d.d. g s.s.s.s.d.s.s.8. , d.s.s.d.s.s.s.) 9.s.d.s.d.s.s.d.s.s.O 1 s.d.d.s.s.9. , s.d.s.s.s.d.s.s.s.O. i s.s.d.d.] z s.s.s.d.s.s.' ] s.d.s.s.d.s.0. 1 s.s.d.s.d.d.s.d.s.d.s.d.s.s.d.d.s.s.d.d.s.d.s.s.s.s.s.s.d.d.s.d.s.s.d.d.s.s.s.d.s.s.s.d.s.s.d.d.s.d.s.s.d.d.s.s.d.s.s.d.d.s.d.s.s.s.s.s.s.d.d.s.s.s.s.s.d.s.d.s.d.s.d.s.d.d.s.s.d.d.s.s.d.s.s.d.s.s.s.s.s.s.d.d.s.s.s.s.s.s.s.s.s.", -"d.s.d.s.d.s.d.s.s.d.s.d.s.d.d.s.s.s.d.s.d.s.s.s.d.s.s.d.s.d.s.s.s.s.s.s.s.j.s.s.s.s.d.s.s.d.s.d.s.s.s.s.d.s.d.s.d.s.d.s.s.d.s.d.s.s.d.s.s.s.d.d.d.s.s.d.d.d.s.d.s.d.s.s.s.d.d.s.d.s.d.s.d.s.d.d.d.s.d.s.d.s.s.d.s.d.s.d.d.s.s.d.s.s.j. h d.s.d.d.s.d.d.p. p s.d.d.s.s.s.s._ 9.d.s.s.d.s.d.s.s.s.O 1 d.s.s.d.s.' p s.s.s.d.s.d.s.s.s.q. . s.d.s.d.] z s.s.d.s.d.s.' O.s.s.s.d.s.s.0. 1 s.d.s.d.s.s.d.s.s.s.d.s.d.s.s.s.s.d.s.s.s.d.s.d.s.s.d.d.s.s.d.s.s.d.s.s.d.s.d.s.s.s.d.s.d.s.s.s.s.s.s.d.s.s.s.d.s.s.d.s.s.s.s.s.d.d.s.d.s.s.s.s.d.d.d.s.s.s.d.s.s.d.s.d.s.s.d.s.s.s.s.d.s.s.d.s.d.d.d.s.d.s.d.s.s.s.d.d.s.d.d.s.d.", -"s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.d.s. h s.s.s.s.s.s.s.s.O x s.s.s.s.s.s.s.) 9.s.s.s.s.s.s.s.s.s.. 1 s.s.s.s.s.( ( s.s.s.s.s.s.s.s.s.a., 8.s.s.s.] z s.s.s.s.s.s.` ] s.s.s.s.s.a.9. 5 s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.", -"s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.d. g s.s.s.s.s.s.s.s.< ) s.s.s.s.s.s.s._ 9.s.s.s.s.s.s.s.s.s.O 1 s.s.s.s.s.p | s.s.s.s.s.s.s.s.s.p.( ) s.s.s.] z s.s.s.s.s.s.' ] a.s.s.s.s.s.9. 1 s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.", -"s.s.a.s.a.s.s.s.s.a.s.a.a.s.s.s.a.s.s.s.s.s.a.s.s.s.s.a.s.s.s.s.a.s.a.s.s.s.s.a.a.s.a.s.s.a.s.s.a.s.s.s.a.s.s.s.s.s.s.a.s.a.s.s.s.s.s.s.a.s.a.a.s.a.a.s.s.s.a.s.s.s.a.s.a.s.s.s.s.s.a.s.s.s.a.a.s.s.s.a.s.a.s.s.s.s.a.s.a.s.s.s.s.a.s. h s.a.s.s.s.a.a.s.g <.p.s.s.a.s.a.s.) 9.s.s.s.a.s.a.s.s.a.. 1 s.s.s.s.s., 8.s.s.s.w.s.s.w.s.s.s.<. p s.a.a.] z s.s.a.a.s.s.' ] a.s.s.a.s.s.9. i a.s.s.a.s.s.s.a.s.s.a.s.s.s.s.a.s.s.w.s.s.s.a.s.a.a.s.s.s.s.s.a.s.s.s.s.a.a.s.s.s.s.a.s.s.s.s.a.s.s.s.s.s.a.a.s.s.a.s.s.s.a.s.s.s.s.s.s.a.s.s.s.a.s.s.a.a.s.a.s.s.s.s.s.a.s.a.s.s.a.s.s.s.s.a.s.a.s.a.s.s.s.s.a.a.s.s.s.a.s.s.s.s.", -"a.a.s.s.s.s.a.a.s.s.s.s.s.s.a.a.s.s.s.a.a.s.s.s.a.a.s.s.a.s.a.s.s.s.a.s.s.a.s.s.s.s.a.s.s.a.s.a.s.s.a.s.s.s.a.s.a.a.s.s.s.s.a.a.s.a.a.s.s.s.s.s.s.s.s.s.a.a.s.s.a.s.s.s.a.s.s.a.a.s.s.a.a.s.s.s.s.a.s.a.s.s.s.a.a.s.s.s.a.s.a.s.a.s.s. h s.s.a.a.s.s.s.w.( q.s.s.s.s.s.s.a.) e.a.a.s.s.s.s.a.a.s.O 1 w.s.s.s.s. p.s.s.s.s.s.s.s.s.s.s.p.. O s.a.s.] z a.a.s.s.a.p.' ] s.a.s.a.s.s.9. . . 1 s.a.a.s.s.a.s.s.s.a.s.s.a.a.s.s.s.s.s.s.s.s.a.s.s.s.s.a.s.a.s.s.s.a.a.s.s.s.s.a.a.s.s.s.a.a.s.s.s.a.s.a.s.s.s.s.a.s.s.a.s.s.s.a.s.a.s.s.s.s.a.s.s.a.s.s.s.s.s.s.a.s.a.s.a.s.s.s.a.s.s.a.a.s.s.s.s.s.s.s.a.a.s.s.s.s.a.s.s.a.a.s.s.", -"s.a.a.s.a.a.s.a.s.a.s.s.a.s.a.s.a.a.a.s.a.s.a.s.s.a.s.a.s.a.s.a.a.s.s.a.s.s.s.a.a.s.a.s.a.s.s.s.a.s.s.s.a.s.s.a.a.a.s.s.a.s.s.s.a.s.s.a.s.s.a.s.a.s.s.a.s.s.a.s.a.a.s.s.a.s.s.s.s.a.a.s.a.s.s.a.a.s.a.s.a.s.a.s.a.a.s.a.a.s.a.s.a.s.s.j j j j j j j j j j j j j j j j j j j j j ] a.a.s.s.a.a.a.a.<.j j j j j j j j j j j j j j j w.s.s.s.a.s.s.a.<.j j j j j j j j j j j j j j j j j j j j j q.s.a.s.a.s.s.a.s.s.( h g h h h h h h h h h h h h j h h h h h h h h ) s.s.s.s.q.j j j j j j j j j j j j j j j j j j j j j j j z s.s.a.s.s.s.s.a.s.s.a.s.) j j j j j j j j j j j j j j j j j j j j j j q.s.a.0.h h h h h h h h h h h h h j h h h h h h h h h h h h h h h h j h h h h h h h h h h h [ a.s.a.s.s.a.9.j j j j j j j j j j j j j j j j j j j j j j j j 9.a.a.a.s.a.a.q.j j j j j j j j j j j j j j j j z j j j j j ) s.a.s.s.a.s.a.s.a.a.a.s.s.a.s.s.a.s.w.a.s.a.s.a.s.s.a.s.s.a.a.s.a.s.a.s.a.s.a.s.a.a.s.a.s.a.s.s.a.s.a.a.s.a.s.s.s.a.a.s.a.s.s.a.s.s.a.s.s.a.s.s.a.s.s.a.s.s.a.a.s.a.s.a.s.s.a.s.s.a.s.a.s.s.a.s.a.s.a.s.s.w.s.s.a.a.s.a.s.a.s.a.s.", -"a.a.s.a.a.s.s.a.a.a.a.a.a.a.s.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.s.a.a.s.a.a.a.a.a.a.a.a.a.a.a.s.s.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.s.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.s.s.w.w.w.s.w.a.a.a.p.a.s.s.s.w.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.w.a.a.s.a.s.s.s.w.w.s.a.w.a.a.a.a.a.s.a.a.a.a.p.a.w.s.a.w.a.a.s.a.a.a.s.a.s.s.a.s.a.a.w.s.a.a.a.a.a.a.a.a.w.s.w.a.a.a.a.s.a.a.w.s.s.w.w.s.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.a.s.w.w.s.s.a.7.s.w.s.a.w.a.a.a.s.s.w.s.a.a.a.a.a.s.s.s.w.w.s.a.w.w.s.s.w.a.a.a.a.s.a.a.a.a.a.a.a.p.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.a.s.a.a.a.a.a.a.s.s.a.a.a.s.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.s.s.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.s.s.a.a.a.a.a.a.s.a.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.s.w.s.s.s.w.s.s.w.s.a.a.a.a.a.", -"a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.s.a.s.s.w.a.a.a.a.a.a.w.w.w.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.w.s.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.w.s.w.a.a.a.a.a.a.a.a.s.w.a.a.w.a.a.a.a.s.w.a.s.w.w.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.s.s.w.a.a.a.a.a.a.a.a.a.a.a.a.w.s.a.a.a.a.a.a.w.w.s.s.a.a.a.a.s.w.w.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.w.w.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.w.s.a.a.w.w.s.s.a.a.a.a.", -"a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.w.a.w.s.w.a.a.a.a.a.a.s.s.w.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.a.a.a.a.a.w.s.w.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.a.a.a.a.a.a.a.a.a.w.a.w.a.a.a.a.w.a.a.a.a.a.a.s.w.a.a.a.a.a.a.a.w.a.a.w.w.s.w.a.a.a.w.a.a.a.a.a.a.a.a.a.a.a.a.w.w.s.w.a.a.a.a.a.a.a.a.a.a.a.a.w.w.a.a.a.a.a.a.w.s.w.w.a.a.a.a.w.s.w.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.a.a.a.a.a.a.a.a.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.a.w.a.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.w.s.w.w.a.a.w.s.w.w.a.a.w.a.", -"a.a.a.a.a.a.a.a.a.a.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.a.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.s.w.w.s.w.a.a.a.w.w.s.w.w.s.w.a.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.w.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.a.a.a.a.a.a.a.a.a.a.s.s.w.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.w.s.w.a.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.s.s.a.a.a.a.a.a.a.a.a.a.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.s.a.a.a.w.s.w.a.s.a.a.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.w.a.a.a.a.a.a.a.a.s.s.w.w.s.w.a.a.w.s.w.s.a.a.a.a.", -"w.a.w.a.w.w.a.w.a.a.a.w.w.a.w.a.a.a.7.a.a.w.w.a.a.a.7.a.w.a.w.a.w.a.w.a.a.a.w.a.w.a.w.a.a.w.w.a.a.w.a.a.a.a.a.w.w.a.a.a.w.a.w.a.a.a.w.a.a.a.a.w.w.a.w.a.a.w.a.w.a.a.w.a.a.w.w.a.w.a.w.w.a.a.w.a.w.a.w.a.a.w.a.w.a.a.a.w.w.a.w.a.a.a.w.a.a.a.7.a.a.a.w.a.w.a.a.w.a.a.w.a.a.w.a.a.w.w.a.w.a.a.w.a.a.w.w.a.a.w.w.a.w.a.a.a.a.w.w.a.w.w.w.s.w.a.w.a.w.s.w.w.w.s.w.w.a.a.a.w.a.w.a.a.a.w.w.a.a.a.7.a.a.w.a.a.w.a.a.w.w.a.w.a.7.a.w.a.a.w.a.a.w.a.a.w.a.a.a.w.a.a.w.a.w.a.w.a.w.a.a.w.a.a.a.w.w.a.w.a.w.a.a.a.w.a.a.w.w.a.a.a.w.a.w.a.w.a.a.w.w.a.a.7.w.a.w.a.w.w.w.a.a.w.w.a.w.w.a.w.a.a.w.a.a.a.w.a.s.w.w.a.a.w.w.a.a.w.a.a.a.w.7.a.w.w.a.w.a.w.w.a.a.w.a.a.w.a.a.w.w.s.w.w.w.a.w.a.a.w.a.w.a.a.a.w.a.a.w.a.a.w.a.w.a.a.a.w.w.a.w.a.a.a.a.w.a.a.7.a.w.a.w.a.w.a.a.w.a.w.w.w.w.a.w.a.a.a.a.a.w.a.a.a.w.a.w.a.w.a.a.w.w.a.w.a.w.w.a.w.a.w.a.a.a.a.a.w.a.a.w.a.a.w.a.a.w.a.w.w.w.a.w.a.w.a.w.w.a.w.a.a.w.a.a.w.a.a.a.w.a.w.w.a.a.w.a.w.w.a.w.w.w.a.w.a.w.w.a.w.w.a.w.a.w.a.a.w.a.w.w.a.7.a.w.a.a.a.w.w.a.w.a.a.w.w.a.a.a.w.w.a.w.a.w.a.w.w.s.w.w.a.a.w.w.w.w.a.w.a.w.w.", -"w.w.w.w.w.a.w.w.w.w.w.a.w.w.a.w.w.a.a.a.a.a.w.a.a.w.w.a.w.a.w.a.w.w.a.w.w.w.w.a.a.w.w.w.w.w.a.w.w.w.w.w.a.w.w.w.a.w.w.w.w.a.w.w.w.a.w.w.w.w.a.w.w.w.w.w.a.w.w.w.w.w.a.w.w.w.a.w.w.w.w.a.w.w.w.a.w.w.a.w.w.w.w.a.w.w.w.a.w.a.w.w.a.a.w.a.a.w.w.w.w.w.a.w.w.w.w.w.w.w.w.a.w.w.w.w.w.a.w.w.w.w.w.w.w.w.a.w.w.w.a.w.w.w.a.w.w.w.w.a.w.w.w.w.a.w.w.w.w.a.w.w.w.s.w.w.a.a.a.a.7.a.a.w.a.w.w.a.a.w.w.a.w.w.w.w.a.w.w.w.a.a.a.a.a.a.a.w.w.w.w.w.a.w.w.w.a.w.a.w.w.w.a.a.w.a.w.a.w.a.w.w.w.w.w.a.w.w.a.w.w.a.a.7.7.a.w.w.a.w.w.w.w.a.w.w.a.w.w.w.a.a.a.a.w.a.w.a.w.a.w.w.w.a.w.w.w.a.a.a.a.a.w.a.a.7.7.a.7.w.w.a.w.w.w.a.w.w.w.w.7.a.a.a.w.a.w.w.w.a.a.w.w.w.w.w.a.w.w.w.w.w.w.a.w.w.w.w.w.a.w.w.w.w.w.w.w.w.a.w.w.w.w.a.w.w.w.a.w.a.w.w.7.a.7.a.a.w.w.w.w.a.a.w.w.w.w.w.w.a.w.a.w.w.w.w.a.w.w.w.a.w.w.w.w.a.a.w.a.w.7.a.w.a.w.w.w.a.w.a.w.w.w.w.a.w.w.w.w.w.a.w.w.w.w.w.w.w.w.a.w.w.w.a.a.w.w.w.w.w.a.w.w.w.w.a.w.a.w.w.w.a.w.a.w.w.w.w.w.w.w.a.w.a.w.w.w.a.w.a.w.w.w.a.a.w.w.w.w.w.a.w.w.w.w.a.w.w.w.a.w.w.a.w.w.a.w.w.w.w.a.w.w.a.w.w.w.w.w.w.a.w.w.w.w.a.a.w.w.w.w.a.", -"w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.7.7.a.7.7.a.7.w.w.w.w.w.7.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.7.7.a.7.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.7.a.7.7.a.7.w.w.7.w.a.7.w.w.w.w.w.w.w.w.w.w.w.w.7.a.7.7.a.7.w.w.w.w.w.w.w.w.w.w.w.w.7.w.w.w.7.a.w.7.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.7.a.7.a.w.w.w.w.w.w.w.w.w.w.w.7.w.w.w.7.a.7.7.a.7.w.w.w.w.w.w.w.w.w.w.w.w.7.a.7.7.a.7.a.7.a.a.w.w.w.w.w.w.w.w.w.w.w.w.a.7.7.a.7.w.w.w.w.a.7.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.a.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.7.a.7.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.a.7.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.", -"w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.7.a.7.a.7.a.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.a.w.w.w.a.w.w.7.a.7.a.7.a.a.7.a.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.a.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.a.w.w.7.a.7.a.7.a.w.w.w.w.w.w.w.w.w.a.a.7.7.a.a.a.w.w.w.w.w.7.a.7.a.7.a.w.w.w.a.w.w.a.7.a.7.w.w.w.w.a.7.a.7.a.7.w.w.w.a.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.a.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.a.w.w.a.7.a.a.7.a.7.a.7.w.w.w.w.w.w.w.w.w.w.7.a.a.w.w.w.w.w.w.w.w.w.7.a.7.a.7.a.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.7.a.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.a.7.a.a.7.a.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.", -"w.w.w.w.w.w.w.w.w.7.w.w.w.7.w.w.w.w.w.w.w.7.w.w.w.w.7.w.w.w.w.7.w.w.w.w.w.w.w.w.7.w.w.7.w.w.7.w.w.w.w.7.w.w.w.w.w.w.w.7.7.w.w.w.w.w.w.w.7.w.w.w.a.7.a.7.w.7.w.w.7.w.w.7.w.w.7.w.w.w.w.w.w.7.7.w.7.w.w.w.w.w.7.w.w.w.w.w.w.w.7.w.7.w.a.7.7.a.7.a.7.a.w.7.7.w.w.7.w.w.w.7.w.w.w.w.w.w.w.7.7.w.w.w.w.7.w.w.7.w.w.w.7.7.w.w.7.w.w.w.w.w.w.w.7.w.w.w.w.w.w.7.w.w.w.7.w.w.7.a.7.a.7.a.w.7.7.w.a.7.7.w.7.w.7.w.7.a.7.a.7.7.7.a.7.w.w.w.a.7.a.7.w.7.w.w.7.w.w.7.7.a.7.a.w.w.w.7.7.a.7.a.7.a.w.w.w.7.w.7.w.w.w.7.w.w.w.w.w.w.w.7.7.w.w.w.w.7.w.w.w.7.w.w.w.w.w.w.w.7.w.w.w.w.w.w.w.w.w.7.7.a.7.w.w.7.w.7.7.a.7.a.7.a.7.w.w.w.7.w.w.w.w.w.7.w.7.w.a.7.7.w.7.w.a.7.a.7.a.7.w.w.w.7.w.w.7.w.w.w.w.7.7.w.w.w.w.7.w.w.w.w.w.w.w.w.w.w.w.w.w.7.w.7.w.w.w.7.w.w.w.w.w.w.w.7.w.w.w.w.7.w.w.w.7.w.w.w.w.7.w.w.7.w.w.7.w.w.7.w.w.w.w.w.7.w.w.w.7.w.w.w.w.w.w.7.w.w.w.w.w.7.w.w.w.7.w.w.w.w.w.w.7.w.w.w.w.w.7.w.w.w.w.w.7.w.w.w.w.w.w.7.w.w.w.w.w.w.w.w.w.w.7.w.w.w.7.a.7.w.w.7.w.w.w.7.w.w.w.w.7.w.w.w.7.w.w.w.w.w.7.w.w.w.7.w.w.w.w.w.w.w.w.7.w.w.w.w.w.w.w.w.w.w.w.7.w.w.w.w.w.7.", -"7.w.w.w.w.7.7.7.w.7.w.w.w.7.7.w.w.7.7.w.w.w.7.7.7.w.w.7.7.w.7.7.w.w.7.w.w.7.7.7.w.w.7.w.7.w.w.7.w.7.7.w.7.w.7.w.w.7.7.w.7.w.7.w.7.7.w.w.w.7.7.7.7.a.a.7.7.a.7.w.w.w.7.w.7.w.w.7.w.7.w.w.7.w.w.w.w.7.7.w.7.w.7.w.7.7.w.7.7.w.w.w.7.w.7.7.w.7.w.7.7.a.7.a.w.w.7.w.w.7.7.w.7.w.7.7.w.w.7.w.w.w.w.7.7.w.7.w.w.7.w.7.w.7.7.w.w.7.w.7.7.w.w.w.w.w.7.w.w.7.7.w.7.w.w.w.7.w.7.7.w.7.7.a.7.a.a.7.7.w.7.w.7.w.w.7.7.7.7.7.7.w.7.7.7.w.7.7.7.a.7.w.7.a.7.w.w.w.7.w.a.7.7.w.7.w.w.7.7.7.7.7.7.7.w.w.7.w.w.7.w.7.7.w.7.w.7.w.w.7.7.w.7.w.7.w.7.7.w.w.w.7.7.w.w.7.7.w.w.w.7.7.7.w.7.7.7.w.7.w.w.7.w.7.7.a.7.a.7.a.w.7.7.a.a.7.7.w.w.w.7.7.w.7.7.w.w.7.w.w.w.7.w.w.7.a.w.7.7.7.w.7.7.w.7.w.w.w.w.w.7.w.w.w.w.w.7.w.7.w.7.7.w.7.7.7.w.7.7.w.w.w.7.7.w.w.w.7.7.w.w.7.7.w.7.w.7.7.7.w.w.w.w.7.w.7.w.7.w.7.7.w.w.w.7.w.7.7.w.w.w.7.7.w.w.w.w.7.w.7.w.7.w.7.7.w.7.w.w.7.7.w.w.7.7.w.w.7.w.w.7.w.w.7.7.w.w.w.w.w.7.w.7.w.7.w.7.w.7.w.7.w.7.w.w.7.w.7.7.w.7.w.7.w.7.7.w.7.a.7.7.7.w.w.w.w.7.7.7.w.w.7.7.w.7.w.7.w.7.w.w.7.w.7.w.7.w.7.7.7.w.7.7.w.w.w.w.w.w.w.w.7.7.w.w.w.7.7.7.w.w.7.", -"7.7.7.w.7.w.7.7.w.w.7.7.7.w.7.7.7.w.7.7.7.7.7.w.7.7.w.7.w.7.7.7.7.7.7.7.7.7.w.7.7.7.7.w.7.7.w.7.7.w.7.7.7.w.7.7.7.w.7.7.w.7.7.7.7.w.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.w.7.7.7.7.7.7.7.7.7.w.7.w.7.7.7.w.7.w.7.7.w.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.w.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.w.7.7.7.w.7.7.a.7.7.w.7.7.w.w.7.7.w.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.a.7.7.7.7.w.7.7.7.w.7.7.7.w.7.7.7.w.7.7.7.w.7.7.w.7.7.7.7.w.7.7.7.w.7.7.7.w.7.7.7.7.7.w.7.7.7.w.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.w.7.7.7.w.7.7.7.7.w.7.7.7.7.7.w.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.w.7.w.w.7.7.7.7.7.7.7.7.w.7.7.7.w.7.7.7.w.7.7.w.7.7.w.7.7.7.7.7.w.7.7.w.7.7.w.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.w.7.w.7.7.7.w.7.7.7.w.7.7.7.w.7.7.w.7.7.w.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.w.7.7.7.7.7.7.w.7.7.7.7.7.w.7.7.w.7.w.7.7.7.7.7.7.7.w.7.7.w.7.7.7.7.7.w.7.w.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.w.7.7.w.7.", -"7.w.w.7.7.w.7.7.7.w.7.w.7.w.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.w.7.7.w.7.7.w.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.w.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.w.7.7.7.7.7.w.w.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.w.7.7.w.7.7.7.7.7.w.7.w.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.w.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.w.7.7.w.7.7.7.7.7.w.7.7.7.w.7.7.w.7.7.w.w.7.7.7.7.w.7.7.7.7.7.7.7.w.7.7.w.7.7.7.w.7.w.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.w.7.7.w.7.7.7.7.w.7.w.7.7.7.7.7.7.w.7.7.7.w.7.7.7.7.7.w.7.w.7.7.7.7.7.7.7.w.7.7.w.7.w.7.7.w.7.7.7.w.7.7.7.w.7.w.7.7.7.7.7.w.7.7.7.w.7.w.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.w.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.w.7.7.w.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.w.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.w.7.w.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.w.7.7.w.7.7.w.", -"7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.w.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.w.7.w.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.w.w.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.w.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.", -"7.7.7.7.7.7.7.7.7.7.7.7.7.w.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.6.7.7.7.7.7.7.7.7.7.7.7.6.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.6.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.6.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.", -"7.7.5.7.5.7.7.7.5.7.7.5.7.5.7.7.6.7.7.7.7.7.6.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.6.7.7.7.7.6.7.6.7.6.7.6.7.6.7.7.7.6.7.7.7.6.7.7.6.7.7.7.6.7.7.7.7.6.7.7.7.7.6.7.7.7.7.7.6.7.7.7.7.7.7.7.7.6.7.7.7.6.7.6.6.7.7.7.7.6.6.7.7.7.7.7.7.7.7.7.7.6.7.7.7.7.7.7.6.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.6.7.7.7.7.7.7.7.7.6.7.7.7.7.6.7.6.7.6.7.7.7.6.7.7.7.7.7.7.7.7.7.6.7.7.7.7.7.7.7.7.7.7.6.7.7.7.7.7.7.7.7.7.7.5.7.7.7.7.7.7.7.7.7.7.7.6.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.6.7.7.7.7.7.6.7.6.7.6.7.6.7.6.7.7.7.6.7.7.7.7.6.7.6.7.7.7.7.6.7.7.7.7.7.7.7.7.7.6.7.7.7.7.6.7.7.7.7.7.6.7.7.7.7.7.6.7.6.7.7.7.7.6.7.7.6.7.6.7.6.7.7.6.7.7.7.7.7.6.7.7.7.7.7.6.7.7.7.7.7.7.6.7.7.7.7.7.6.6.7.7.6.6.7.6.7.6.7.7.7.7.7.6.6.7.7.6.7.7.7.7.7.7.7.6.6.7.7.6.7.7.7.6.7.6.7.6.7.7.7.6.7.7.7.7.7.7.7.7.6.7.7.7.7.7.7.6.7.7.7.6.7.6.7.7.7.7.7.7.6.7.7.7.7.7.7.7.6.7.7.7.6.7.7.6.7.7.7.6.7.6.7.6.7.6.7.7.7.7.7.6.7.7.7.7.7.7.7.7.7.7.7.7.7.6.7.7.7.7.6.7.7.7.7.7.7.7.7.7.6.7.7.7.7.7.6.7.7.7.7.7.7.7.7.7.7.6.7.6.7.7.7.7.7.6.7.7.7.7.7.6.7.7.6.7.7.7.7.7.6.7.6.7.6.", -"7.7.7.6.6.7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.6.7.7.7.6.7.7.7.7.7.7.7.7.7.7.7.6.7.7.7.7.6.7.7.5.7.7.5.7.6.7.7.6.7.6.7.6.7.6.7.6.7.7.6.7.7.7.6.7.7.7.6.7.7.6.7.7.7.6.7.7.7.7.7.7.7.7.6.7.7.7.6.7.7.7.7.7.6.6.7.7.7.6.7.7.6.7.6.7.7.7.7.7.6.7.6.7.6.7.7.7.7.6.7.6.6.7.6.7.6.7.7.7.6.7.6.7.7.7.6.6.7.7.7.7.6.7.7.5.7.7.7.7.6.7.7.7.6.7.7.6.7.7.7.7.6.7.6.7.7.7.6.6.7.7.7.7.7.6.7.7.6.7.7.7.7.7.7.7.7.7.7.6.7.7.7.7.7.6.7.7.7.6.7.6.6.7.6.7.7.7.7.6.7.7.7.6.7.7.7.7.7.7.7.7.7.6.7.6.7.7.7.7.6.7.7.7.7.7.6.7.6.7.7.6.7.6.7.6.7.6.7.6.7.7.6.6.7.7.7.7.7.7.6.7.7.7.6.7.7.7.7.7.7.6.7.7.6.7.7.7.7.7.7.7.7.7.7.7.6.7.6.7.6.7.7.7.7.6.7.7.7.7.7.7.7.6.7.6.7.7.7.7.6.7.6.7.7.7.6.7.6.7.7.7.6.7.6.7.7.6.7.6.7.7.6.7.6.7.6.7.7.7.6.6.7.7.6.7.7.7.7.7.6.7.6.7.6.7.7.6.7.6.7.6.7.6.6.6.7.7.7.6.7.7.7.6.7.7.7.7.7.7.7.7.6.7.7.7.7.6.7.7.7.7.7.6.7.7.6.7.7.6.7.7.7.7.7.7.7.7.7.7.7.7.7.6.7.7.7.7.7.6.7.7.7.7.7.7.7.7.7.7.7.7.7.6.7.7.7.6.7.7.7.7.7.7.7.7.7.7.7.7.7.7.6.7.7.7.6.7.7.7.7.7.7.6.7.7.7.6.7.7.7.6.7.7.7.6.7.7.6.7.7.6.7.7.6.7.6.7.7.7.6.7.6.7.7.6.7.6.7.7.7.7.7.7.6.7.7.7.6.", -"6.6.7.7.7.7.6.7.7.7.7.7.5.7.7.5.6.7.6.7.7.6.6.7.7.7.6.6.6.6.6.7.6.7.6.6.7.7.6.7.7.7.7.6.7.7.7.7.6.7.7.6.6.7.7.7.7.6.7.7.7.7.6.7.7.6.6.7.6.7.6.7.7.6.6.7.6.7.7.6.7.6.6.6.6.7.6.7.7.6.6.7.6.7.6.6.6.7.7.7.6.7.6.7.7.6.6.7.7.6.6.7.7.7.6.7.6.7.6.6.7.6.7.7.7.7.7.7.7.7.6.7.6.7.7.7.6.6.7.7.7.7.6.7.7.7.6.7.7.7.7.5.7.7.6.7.6.7.6.7.7.6.6.6.7.6.6.7.7.6.6.7.7.7.6.6.6.7.7.6.7.7.6.7.6.6.7.6.6.7.6.7.7.7.6.7.6.6.7.7.7.6.7.7.7.7.7.7.6.7.6.7.7.6.6.7.7.7.6.7.6.6.6.7.6.6.7.7.7.7.6.7.6.7.5.7.7.6.6.7.6.7.7.6.6.7.7.7.7.6.7.7.7.7.6.7.7.6.6.6.6.7.6.7.7.6.6.7.6.7.6.6.6.7.7.6.7.7.6.7.6.6.7.6.6.7.6.7.6.7.7.6.6.7.7.6.7.6.7.6.6.6.7.6.6.6.7.7.7.7.6.7.6.7.7.7.6.7.6.7.6.7.7.6.6.7.7.7.6.6.7.7.7.7.6.7.6.7.7.7.6.7.6.7.7.7.6.7.7.6.6.7.7.7.7.7.6.7.6.7.7.6.6.7.7.7.7.7.7.6.7.6.7.7.6.7.7.6.6.6.6.7.6.6.7.7.6.7.6.6.7.7.7.7.7.6.7.6.6.7.7.6.7.6.6.6.7.6.6.6.6.7.6.7.6.6.7.7.6.7.6.6.7.7.7.6.6.7.6.6.7.6.6.7.6.7.7.6.6.7.7.7.6.7.6.6.6.7.7.6.6.6.6.7.6.7.7.6.6.7.6.7.6.6.6.7.6.7.6.7.7.6.6.7.7.6.7.6.7.6.7.7.6.7.7.6.7.7.7.7.6.7.6.7.7.7.6.6.7.7.7.7.6.7.7.6.7.6.6.7.6.7.", -"6.6.7.6.6.6.6.6.5.7.7.5.6.7.7.5.7.6.6.6.6.6.7.6.6.6.6.7.6.7.7.6.6.6.6.7.6.6.6.6.5.7.6.7.6.7.6.7.7.6.6.6.6.7.6.6.6.6.7.6.6.6.6.6.6.6.6.7.7.6.6.6.6.6.6.7.7.6.6.6.6.6.6.7.7.6.6.6.6.6.6.7.7.6.6.6.6.7.6.6.6.7.6.6.6.7.6.6.6.6.7.6.6.6.6.7.7.6.6.7.6.7.6.6.7.6.6.6.6.6.7.6.6.7.6.6.6.6.7.6.6.6.6.6.5.7.7.7.6.7.6.7.6.6.7.6.6.7.6.6.7.6.7.6.6.7.7.6.6.6.6.7.7.6.6.6.6.7.6.6.6.6.7.6.7.6.6.6.7.6.6.6.6.6.6.6.6.7.7.6.6.6.7.6.7.7.5.7.7.6.6.6.6.6.7.6.6.6.6.6.6.7.7.6.6.6.7.6.6.6.6.6.7.6.6.7.7.7.6.7.7.6.6.6.6.7.6.6.6.6.7.6.6.6.6.6.6.6.6.7.7.6.6.6.6.6.6.7.7.6.6.6.6.7.6.6.6.6.7.6.7.6.6.6.7.6.6.6.6.7.6.7.6.7.6.6.6.7.6.6.7.6.6.7.6.6.7.6.6.6.6.6.6.7.6.6.6.7.6.6.7.6.6.6.6.7.6.6.6.7.7.6.6.6.6.7.6.7.6.6.6.6.6.7.6.6.7.6.6.6.7.6.6.7.6.6.6.7.6.6.6.6.6.7.7.6.6.6.7.6.6.6.6.6.7.6.6.6.6.7.7.6.6.6.6.6.7.6.6.6.6.6.6.6.6.7.7.6.6.7.6.7.6.6.7.6.6.7.6.7.7.6.6.6.6.7.6.6.6.6.6.7.7.6.6.6.7.6.6.7.6.6.7.6.6.6.6.6.7.6.6.6.6.6.6.7.7.6.6.6.6.7.7.6.6.6.6.6.6.7.7.6.6.6.6.7.6.6.7.6.6.6.6.7.6.6.6.7.6.6.5.7.7.7.6.7.5.7.6.6.7.6.6.7.6.6.6.6.7.6.6.6.6.6.5.7.6.7.6.7.6.7.", -"6.6.6.6.6.6.6.6.7.5.5.7.6.6.6.7.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.7.5.6.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.7.5.5.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.7.5.5.7.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.7.6.6.5.5.7.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.7.5.5.6.6.5.7.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.", -"6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.5.6.6.6.5.6.6.6.6.6.6.6.6.6.5.6.5.6.6.6.5.6.6.6.5.6.6.6.6.6.6.6.5.6.6.6.5.6.6.6.6.6.6.5.6.6.6.6.6.6.6.5.6.5.6.6.6.6.5.6.6.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.6.6.5.6.6.6.6.6.6.6.6.5.6.5.6.6.6.5.6.6.6.5.6.6.6.6.6.6.6.6.5.6.5.6.6.6.6.6.6.6.6.5.6.5.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.5.6.6.6.6.6.5.5.6.5.6.6.6.6.6.6.6.6.6.6.5.6.7.5.6.6.6.5.6.5.6.6.6.6.6.6.6.6.6.6.5.6.5.6.6.6.5.6.6.6.5.6.6.5.6.6.6.6.5.6.6.6.5.6.6.6.6.6.6.5.6.6.6.6.6.6.6.5.6.6.6.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.5.6.6.6.6.5.6.5.6.6.6.6.6.6.6.6.5.6.5.6.6.5.6.6.5.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.5.6.6.6.5.6.6.6.6.6.6.5.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.5.6.6.6.6.6.6.6.6.5.6.5.6.6.6.6.6.5.6.6.6.6.6.5.6.6.5.6.6.6.5.6.6.6.6.6.6.5.6.6.6.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.6.6.6.5.6.6.5.6.5.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.5.6.6.6.6.6.5.6.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.5.6.6.6.5.6.6.6.5.6.5.6.6.6.6.6.6.6.", -"6.6.5.6.5.6.6.5.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.5.6.6.6.6.6.6.6.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.6.6.6.5.6.6.6.6.5.6.6.6.6.6.5.6.6.6.6.6.5.6.6.6.5.6.6.6.6.6.6.6.6.6.6.5.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.5.6.6.6.6.6.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.6.6.5.6.6.5.6.6.5.6.6.6.6.6.6.6.6.6.6.5.6.6.5.6.5.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.5.6.6.5.7.6.6.6.6.6.6.6.6.6.6.6.6.6.6.7.5.5.6.6.6.6.6.6.6.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.5.6.6.6.6.6.6.6.5.6.6.6.5.6.6.5.6.6.5.6.6.6.6.6.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.5.6.6.6.6.6.5.6.6.6.6.6.6.6.6.6.5.5.6.6.6.6.6.6.5.6.6.6.6.6.5.6.6.6.5.6.6.6.6.6.6.6.6.6.5.6.6.6.6.6.6.6.6.5.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.5.6.6.6.6.6.6.5.6.6.6.6.6.5.6.6.5.6.5.6.5.6.6.6.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.5.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.6.6.6.6.6.5.6.5.6.6.6.6.5.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.6.5.6.6.", -"6.5.6.5.6.6.6.5.5.5.6.5.5.6.5.6.5.6.6.6.6.5.6.5.6.6.5.6.6.6.5.6.5.6.5.6.6.6.5.6.5.6.6.5.6.6.6.5.5.6.6.6.6.5.6.5.6.6.6.5.6.6.5.6.6.6.6.6.5.6.5.6.5.6.5.6.5.6.5.6.5.6.5.6.5.5.6.5.5.5.6.5.6.6.6.6.5.5.6.5.5.6.5.6.6.6.5.6.5.6.5.6.6.6.6.5.6.5.6.5.5.6.6.6.5.6.5.6.6.5.6.6.6.5.6.6.5.6.5.6.6.6.6.6.6.5.6.5.6.6.6.5.6.5.6.6.6.5.6.5.6.5.6.5.5.6.5.6.5.6.6.5.5.5.6.6.5.6.5.6.5.6.6.5.6.5.6.5.5.6.5.6.6.6.6.5.6.5.6.6.6.5.6.6.5.6.5.6.5.6.6.6.6.5.6.5.6.5.5.6.6.5.6.5.6.5.5.6.6.6.5.6.5.6.6.5.6.6.6.5.5.6.6.6.6.5.6.5.6.6.6.5.6.6.5.6.6.5.6.5.5.6.5.6.5.5.6.5.5.6.5.6.5.5.6.6.5.6.5.5.6.5.6.5.5.6.5.6.5.6.6.6.6.6.6.5.6.5.5.6.5.6.6.6.6.5.5.5.5.6.5.6.5.5.6.5.6.6.5.6.5.6.6.6.6.5.6.5.6.5.6.6.5.6.5.6.5.6.6.5.6.5.5.6.6.5.6.5.5.6.6.6.5.5.6.5.6.6.6.6.6.6.6.6.5.6.5.6.6.5.6.5.5.6.5.6.6.5.6.5.5.6.5.6.5.6.5.6.5.6.5.6.5.6.6.5.6.5.6.5.6.6.5.6.5.6.5.6.6.6.6.5.6.5.6.6.6.6.6.5.6.5.6.5.5.6.6.6.5.6.5.6.6.6.6.6.6.5.6.5.6.6.6.5.6.5.6.5.6.5.6.5.5.6.5.6.6.6.6.6.5.6.5.6.5.6.5.6.5.5.6.5.5.5.6.5.6.6.6.6.6.5.6.5.6.6.6.6.6.5.6.5.5.6.6.6.5.6.5.6.5.6.6.6.6.5.6.5.6.5.5.6.", -"5.6.5.6.5.5.6.6.5.6.6.5.6.5.6.5.6.5.5.5.6.5.6.5.5.5.5.5.5.6.5.6.5.6.5.5.5.5.6.5.6.5.6.5.5.5.5.6.6.5.5.5.6.5.6.5.5.5.5.6.5.5.6.6.5.5.5.5.6.5.6.5.6.5.6.5.5.6.5.6.5.6.5.6.5.6.5.6.5.6.5.6.5.5.5.5.5.6.5.6.6.5.6.5.5.6.5.6.5.5.6.5.5.5.6.5.5.6.5.6.5.5.5.6.5.6.5.5.6.5.5.5.5.6.5.6.5.6.5.5.5.5.5.5.6.5.6.5.5.5.5.6.6.5.5.5.5.6.5.5.5.6.5.6.6.5.6.5.6.5.5.6.5.6.6.5.5.6.6.5.6.5.5.6.5.6.5.6.6.5.6.5.5.5.6.5.6.5.5.5.5.6.5.6.5.6.5.5.6.5.5.5.6.5.5.6.5.6.5.5.5.6.5.6.5.6.5.5.5.5.6.5.6.5.6.5.5.5.5.6.6.5.5.5.6.5.6.5.5.5.5.6.5.5.6.6.5.6.5.6.6.5.6.5.6.6.5.6.5.6.6.5.5.6.6.5.6.5.6.6.5.6.5.6.6.5.6.5.5.5.5.5.5.5.6.5.5.6.6.5.6.5.5.6.5.6.5.6.6.5.6.5.6.6.5.6.5.5.6.5.6.5.5.5.6.5.5.6.5.6.5.5.6.5.6.5.6.5.5.6.5.6.5.6.5.6.5.6.5.5.5.6.5.6.5.6.5.5.5.5.5.5.5.5.5.6.5.6.5.6.5.6.6.5.6.5.5.6.5.6.6.5.6.5.6.5.6.5.6.5.6.5.6.5.5.6.5.6.5.6.5.5.6.5.6.5.6.5.5.5.6.5.6.5.5.5.5.5.5.6.5.6.5.6.5.5.5.5.6.5.6.5.5.5.5.5.6.5.6.5.5.5.5.6.5.6.5.5.5.6.5.6.6.5.6.5.5.5.5.5.6.5.6.5.5.6.5.6.5.6.5.6.5.6.5.6.5.5.5.5.6.5.6.5.5.5.5.5.5.6.5.6.5.5.5.5.6.5.6.5.6.5.5.5.5.6.5.6.5.6.5.5.", -"5.5.5.6.5.5.5.6.5.5.5.5.5.6.6.5.5.6.5.5.5.5.5.6.5.5.5.5.5.5.5.6.6.5.6.4.6.5.5.5.6.5.5.5.5.5.5.6.5.5.5.5.6.5.5.5.5.5.5.6.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.6.5.5.5.5.6.6.4.5.5.5.5.5.6.5.5.5.5.5.5.5.6.6.5.5.6.5.5.5.6.5.5.5.6.6.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.6.5.6.5.6.4.6.5.5.5.6.5.5.5.5.5.5.6.5.5.5.5.6.5.5.5.5.5.6.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.6.5.5.5.5.6.6.4.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.6.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.5.5.5.6.5.5.5.5.5.6.6.5.6.4.6.5.5.5.6.5.5.5.5.5.5.6.5.5.5.5.6.5.5.5.5.5.5.6.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.6.5.5.5.5.6.6.4.5.5.5.5.5.6.5.5.5.5.5.5.5.6.5.5.5.5.5.5.5.6.5.5.6.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.6.5.6.4.6.5.5.5.6.5.5.5.5.5.5.6.5.5.5.5.6.5.5.5.5.5.5.6.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.6.5.5.5.5.6.6.4.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.6.5.5.5.5.5.5.5.5.6.5.5.5.6.5.5.5.5.5.5.6.5.6.4.6.5.5.5.6.5.5.5.5.5.5.6.5.5.5.5.6.5.5.5.5.5.6.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.6.5.5.5.5.6.6.4.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.6.5.5.", -"5.6.5.5.5.5.5.5.5.5.6.5.5.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.5.5.4.6.4.6.6.5.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.5.5.5.6.5.5.6.5.5.5.5.5.5.5.4.6.6.5.6.5.6.5.5.5.5.5.6.5.6.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.6.6.5.5.5.5.6.5.5.5.5.5.5.5.5.4.6.4.6.6.5.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.7.5.5.5.5.5.6.5.5.5.5.5.5.5.5.6.5.5.6.5.5.5.5.5.5.5.4.6.6.5.6.5.6.5.5.5.5.5.6.5.6.5.5.5.5.5.5.5.7.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.4.6.4.6.6.5.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.5.5.5.6.5.5.6.5.5.5.5.5.5.5.4.6.6.5.6.5.6.5.5.5.5.5.6.5.6.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.6.5.6.5.5.6.5.6.5.5.5.5.5.5.5.4.6.4.6.6.5.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.5.5.5.6.5.5.6.5.5.5.5.5.5.5.4.6.6.5.6.5.6.5.5.5.5.5.6.5.6.5.5.5.5.6.5.6.5.5.5.5.5.5.5.5.5.6.5.5.6.5.5.5.5.5.5.5.5.5.5.6.5.4.6.4.6.6.5.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.7.5.5.5.5.5.6.5.5.5.5.5.5.5.5.6.5.5.6.5.5.5.5.5.5.5.4.6.6.5.6.5.6.5.5.5.5.5.6.5.6.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.6.5.5.5.5.5.5.5.5.5.5.5.5.5.", -"5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.4.5.5.6.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.4.6.4.5.5.5.5.5.5.5.5.5.5.6.4.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.4.5.5.6.5.5.5.5.5.5.5.5.5.5.5.5.5.5.4.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.4.6.4.5.5.5.5.5.5.5.5.5.5.6.4.5.5.5.5.5.5.5.4.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.4.5.5.6.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.4.6.4.5.5.5.5.5.5.5.5.5.5.6.4.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.4.5.5.6.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.4.6.4.5.5.5.5.5.5.5.5.5.5.6.4.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.4.5.5.6.5.5.5.5.5.5.5.5.5.5.5.5.5.5.4.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.4.6.4.5.5.5.5.5.5.5.5.5.5.6.4.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.", -"5.5.5.4.5.5.5.5.5.4.5.5.5.5.5.4.5.4.5.5.4.5.5.5.5.5.5.5.5.5.5.5.5.4.5.5.4.5.5.4.5.5.4.5.5.5.4.5.5.5.4.5.5.4.5.5.5.5.5.5.5.5.4.5.4.5.5.5.5.5.4.5.5.5.5.4.5.5.5.5.5.5.5.4.5.4.4.5.5.5.5.5.4.5.4.5.5.5.5.4.5.5.5.5.4.5.4.5.5.5.5.4.5.4.5.5.4.5.5.5.5.5.5.5.5.5.5.5.5.4.5.5.4.5.5.4.5.5.4.5.5.5.4.5.5.5.4.5.5.5.4.5.4.5.5.5.5.5.5.5.4.5.5.5.5.5.4.5.5.5.5.4.5.5.5.5.5.5.5.4.5.4.4.5.5.5.5.5.4.5.4.5.5.5.5.4.5.4.5.5.4.5.5.4.5.5.5.5.5.5.5.5.4.5.5.5.5.5.5.5.5.5.5.5.5.4.5.5.4.5.5.4.5.5.4.5.5.5.4.5.5.5.4.5.5.4.5.5.5.5.5.5.5.5.4.5.4.5.5.5.5.5.4.5.5.5.5.4.5.5.5.5.5.5.5.4.5.4.4.5.5.5.5.5.4.5.4.5.5.5.4.5.4.5.5.5.4.5.4.5.5.5.5.5.5.4.5.5.4.5.5.5.5.5.5.5.5.5.5.5.5.4.5.5.4.5.5.4.5.5.4.5.5.5.4.5.5.5.4.5.5.4.5.5.5.5.5.5.5.5.4.5.4.5.5.5.5.5.4.5.5.5.5.4.5.5.5.5.5.5.5.4.5.4.4.5.5.5.5.5.4.5.4.5.5.5.4.5.4.5.4.5.5.5.4.5.5.5.5.5.4.5.5.5.4.5.5.4.5.5.5.5.5.5.5.5.5.4.5.5.4.5.5.4.5.5.4.5.5.5.4.5.5.5.4.5.5.5.4.5.4.5.5.5.5.5.5.5.4.5.5.5.5.5.4.5.5.5.5.4.5.5.5.5.5.5.5.4.5.4.4.5.5.5.5.5.4.5.4.5.5.5.5.5.5.5.5.5.5.4.5.5.5.5.5.5.3.5.5.5.5.5.5.5.5.5.5.5.5.5.5.5.", -"5.4.4.5.4.4.5.4.4.5.4.4.5.4.4.5.4.4.5.4.4.5.5.4.5.5.4.5.5.4.4.5.4.5.4.4.5.4.4.4.4.4.4.5.4.4.4.5.4.5.4.5.4.4.5.4.5.3.5.5.4.5.5.4.5.5.4.5.5.4.4.5.4.5.4.4.5.4.5.5.4.4.4.5.5.4.5.5.4.4.4.5.4.4.4.5.5.4.4.5.4.4.5.4.5.4.4.5.4.5.4.4.4.5.5.4.4.5.5.4.4.5.4.5.5.5.5.3.4.5.4.4.5.4.4.4.4.4.4.5.4.4.4.5.5.4.4.5.4.4.5.4.4.5.4.4.5.4.4.5.5.5.4.5.5.4.4.5.4.5.4.4.5.4.5.5.4.4.4.5.5.4.5.5.4.4.4.5.4.4.4.5.5.4.4.5.4.4.5.4.5.4.4.5.4.5.4.4.5.5.5.4.5.4.4.4.5.5.4.5.5.5.3.5.4.5.4.4.5.4.4.4.4.4.4.5.4.4.4.5.4.5.4.5.4.4.5.4.5.3.5.5.4.5.5.4.5.5.4.5.5.4.4.5.4.5.4.4.5.4.5.5.4.4.4.5.5.4.5.5.4.4.4.5.4.4.4.5.4.5.4.4.4.5.4.4.5.4.4.5.4.5.4.4.4.5.5.4.5.4.4.4.4.5.4.4.5.5.5.4.4.5.4.4.5.4.4.4.4.4.4.5.4.4.4.5.4.5.4.5.4.4.5.4.5.3.5.5.4.5.5.4.5.5.4.5.5.4.4.5.4.5.4.4.5.4.5.5.4.4.4.5.5.4.5.5.4.4.4.5.4.4.4.5.4.5.5.4.5.5.4.5.5.4.5.5.4.5.5.4.4.5.5.4.5.4.4.5.4.5.5.4.5.5.3.5.4.5.4.4.5.4.4.4.4.4.4.5.4.4.4.5.5.4.4.5.4.4.5.4.4.5.4.4.5.4.4.5.5.5.4.5.5.4.4.5.4.5.4.4.5.4.5.5.4.4.4.5.5.4.5.5.4.4.4.5.4.4.4.5.4.5.4.4.5.4.5.4.3.5.5.4.5.5.5.5.5.5.5.3.5.5.5.3.5.3.5.3.5.5.3.5.", -"4.4.5.4.4.5.5.4.4.5.5.4.4.4.5.4.4.5.4.5.5.4.4.4.4.3.5.5.4.5.5.4.5.4.4.5.4.5.4.4.4.5.5.4.4.5.4.5.4.4.5.4.5.4.4.5.5.5.5.3.5.4.4.5.4.4.4.4.4.5.5.4.5.4.4.5.4.4.4.4.4.5.5.4.4.4.4.4.4.5.5.4.4.4.5.4.4.4.5.4.5.4.4.5.4.5.5.4.4.4.5.5.4.4.4.5.5.4.4.4.4.4.5.4.5.3.5.5.5.4.4.5.4.5.4.4.4.5.5.4.4.5.4.5.4.5.4.4.4.5.5.4.4.5.5.4.4.4.5.4.4.4.4.4.4.5.5.4.5.4.4.5.4.4.4.4.4.5.5.4.4.4.4.4.4.5.5.4.4.4.5.4.4.4.5.4.5.4.4.5.4.5.5.4.4.4.5.5.5.3.4.5.5.4.5.4.4.3.5.5.3.5.5.5.5.4.4.5.4.5.4.4.4.5.5.4.4.5.4.5.4.4.5.4.5.4.4.5.5.5.5.3.5.4.4.5.4.4.4.4.4.5.5.4.5.4.4.5.4.4.4.4.4.5.5.4.4.4.4.4.4.5.5.4.4.4.5.4.4.4.5.5.5.4.4.5.4.5.5.4.4.4.5.5.4.4.4.5.5.4.5.4.4.4.5.5.5.3.3.5.5.4.4.5.4.5.4.4.4.5.5.4.4.5.4.5.4.4.5.4.5.4.4.5.5.5.5.3.5.4.4.5.4.4.4.4.4.5.5.4.5.4.4.5.4.4.4.4.4.5.5.4.4.4.4.4.4.5.5.4.4.4.5.4.5.4.4.5.4.4.4.4.4.4.4.4.5.4.4.4.5.4.4.4.5.4.5.4.5.4.4.5.3.5.4.5.5.4.4.5.4.5.4.4.4.5.5.4.4.5.4.5.4.5.4.4.4.5.5.4.4.5.5.4.4.4.5.4.4.4.4.4.4.5.5.4.5.4.4.5.4.4.4.4.4.5.5.4.4.4.4.4.4.5.5.4.4.4.5.4.4.4.5.5.5.4.4.5.5.4.4.5.3.3.5.3.5.3.5.5.3.5.5.5.5.5.5.5.3.5.5.5.", -"4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.5.3.3.5.3.5.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.5.3.3.5.3.5.5.4.4.5.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.5.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.5.4.4.5.3.5.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.5.5.5.4.3.5.4.5.4.4.5.3.3.5.3.5.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.5.3.3.5.3.5.5.4.4.5.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.5.4.5.3.5.3.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.5.3.3.5.3.5.5.4.4.5.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.3.5.4.4.4.5.3.5.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.5.3.5.5.5.5.5.5.3.5.3.5.3.5.3.3.5.3.5.3.5.3.5.", -"4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.5.3.4.3.5.4.4.3.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.3.5.4.4.3.3.4.3.3.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.3.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.3.3.5.3.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.3.3.3.4.4.4.3.4.5.3.4.3.5.5.3.3.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.3.5.4.4.3.3.4.3.3.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.3.5.3.5.3.5.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.3.5.4.4.3.3.4.3.3.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.3.5.3.4.3.5.3.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.4.5.3.4.5.3.3.3.5.3.5.3.5.3.5.3.5.4.3.5.3.5.5.3.3.", -"4.4.3.4.3.4.4.4.3.3.4.4.4.4.3.3.3.4.4.4.4.4.4.3.3.3.3.4.4.4.3.4.4.4.3.4.3.4.3.4.4.3.4.3.4.3.4.3.4.4.4.3.3.4.4.4.3.3.4.4.4.3.4.4.4.3.4.3.4.3.3.5.3.4.3.4.4.3.3.4.4.4.4.3.4.4.4.3.3.4.4.4.4.4.4.3.3.3.4.4.3.4.4.4.3.3.4.4.4.4.3.3.3.4.4.4.4.4.4.3.3.4.3.4.4.4.3.4.4.4.3.4.3.4.3.4.4.3.4.3.4.3.4.3.4.4.3.4.4.4.4.4.3.4.4.3.4.4.3.3.4.4.3.4.4.4.3.4.3.4.3.4.4.3.3.4.4.4.4.3.4.4.4.3.3.4.4.4.4.4.4.3.4.4.4.3.4.4.3.4.3.3.4.3.4.4.3.3.3.3.3.5.3.3.3.5.3.4.3.5.3.4.3.4.4.4.3.4.3.4.3.4.4.3.4.3.4.3.4.3.4.4.4.3.3.4.4.4.3.3.4.4.4.3.4.4.4.3.4.3.4.3.3.5.3.4.3.4.4.3.3.4.4.4.4.3.4.4.4.3.3.4.4.4.4.4.4.3.4.3.4.4.4.3.4.4.4.4.3.4.3.4.3.3.4.4.4.3.4.3.3.4.3.4.4.3.4.4.4.3.4.4.3.4.3.4.3.4.4.3.4.3.4.3.4.3.4.4.4.3.3.4.4.4.3.3.4.4.4.3.4.4.4.3.4.3.4.3.3.5.3.4.3.4.4.3.3.4.4.4.4.3.4.4.4.3.3.4.4.4.4.4.4.3.3.4.4.3.4.3.4.4.4.4.3.4.3.4.4.4.4.4.4.3.4.3.3.4.4.3.4.3.4.4.4.3.4.4.3.4.3.4.3.4.4.3.4.3.4.3.4.3.4.4.3.4.4.4.4.4.3.4.4.3.4.4.3.3.4.4.3.4.4.4.3.4.3.4.3.4.4.3.3.4.4.4.4.3.4.4.4.3.3.4.4.4.4.4.4.3.4.3.4.3.5.3.3.5.3.3.3.5.5.3.3.3.5.3.3.3.5.3.3.3.3.4.3.3.4.4.4.3.", -"4.3.3.4.4.4.3.4.4.4.4.3.3.4.4.4.4.4.3.3.3.3.4.3.4.4.3.5.3.4.3.4.3.4.4.3.3.4.4.3.4.4.3.4.4.4.3.4.4.3.3.4.3.5.3.4.4.4.4.3.3.4.3.4.3.5.4.3.3.5.3.3.4.4.4.3.3.4.4.3.3.4.4.3.4.3.4.4.4.4.2.4.4.3.4.4.4.4.4.3.4.3.3.4.4.4.4.3.3.4.4.4.4.4.3.3.3.3.4.3.4.3.3.5.3.4.3.4.3.4.4.3.3.4.4.3.4.4.3.4.4.4.3.4.4.3.3.4.2.4.4.3.4.3.3.4.3.4.4.4.4.3.4.4.3.4.3.4.4.4.4.3.3.4.4.3.3.4.4.3.4.3.4.4.4.4.2.4.4.3.4.4.4.3.3.4.4.4.4.3.4.4.3.4.3.4.4.4.5.5.3.3.5.5.3.3.4.3.3.5.3.4.3.4.3.4.4.3.3.4.4.3.4.4.3.4.4.4.3.4.4.3.3.4.3.5.3.4.4.4.4.3.3.4.3.4.3.5.4.3.3.5.3.3.4.4.4.3.3.4.4.3.3.4.4.3.4.3.4.4.4.4.2.4.4.3.4.4.4.4.4.3.4.3.4.3.3.4.3.4.4.4.4.4.3.3.4.4.4.4.4.3.3.4.3.5.4.3.4.4.3.4.4.3.3.4.4.3.4.4.3.4.4.4.3.4.4.3.3.4.3.5.3.4.4.4.4.3.3.4.3.4.3.5.4.3.3.5.3.3.4.4.4.3.3.4.4.3.3.4.4.3.4.3.4.4.4.4.2.4.4.3.4.4.4.3.3.4.3.4.4.3.3.4.3.4.4.4.3.4.3.3.4.4.4.4.4.3.3.4.3.4.4.3.4.4.3.4.4.3.3.4.4.3.4.4.3.4.4.4.3.4.4.3.3.4.2.4.4.3.4.3.3.4.3.4.4.4.4.3.4.4.3.4.3.4.4.4.4.3.3.4.4.3.3.4.4.3.4.3.4.4.4.4.2.4.4.3.4.4.4.4.3.4.3.3.5.3.3.5.3.3.3.5.5.3.3.3.5.5.3.3.5.5.4.3.5.3.4.3.4.4.", -"3.4.4.3.3.3.3.3.4.3.3.3.4.3.3.3.3.4.4.4.4.3.3.3.3.5.3.3.3.5.3.4.4.3.3.4.4.4.3.4.3.4.3.4.3.4.3.4.3.4.4.3.4.3.4.3.3.4.3.4.3.4.4.3.3.5.3.4.4.3.3.5.4.3.3.3.4.4.4.4.4.3.4.4.4.3.3.3.4.3.4.4.3.3.4.3.3.4.3.4.3.4.3.3.4.3.3.3.4.3.3.3.3.4.4.4.4.3.3.3.3.5.3.3.3.5.4.3.4.3.3.4.4.4.3.4.3.4.3.4.3.4.3.4.3.4.4.3.3.4.4.3.3.4.4.3.3.4.3.4.3.4.4.3.3.4.3.4.4.3.3.3.4.4.4.4.4.3.4.4.4.3.3.3.4.3.4.4.3.3.4.3.3.4.4.3.4.2.3.4.4.4.4.4.4.3.4.3.3.3.5.3.3.3.3.3.3.5.3.3.3.5.4.3.4.3.3.4.4.4.3.4.3.4.3.4.3.4.3.4.3.4.4.3.4.3.4.3.3.4.3.4.3.4.4.3.3.5.3.4.4.3.3.5.4.3.3.3.4.4.4.4.4.3.4.4.4.3.3.3.4.3.4.4.3.3.4.3.4.3.3.3.3.4.3.3.3.4.3.4.4.3.3.3.3.4.3.4.3.3.3.3.3.3.4.3.3.5.3.3.4.3.3.4.4.4.3.4.3.4.3.4.3.4.3.4.3.4.4.3.4.3.4.3.3.4.3.4.3.4.4.3.3.5.3.4.4.3.3.5.4.3.3.3.4.4.4.4.4.3.4.4.4.3.3.3.4.3.4.4.3.3.4.3.3.4.4.3.3.4.3.3.3.4.3.4.3.3.3.3.3.4.4.3.3.3.3.3.4.3.4.4.4.3.3.3.4.3.3.4.4.4.3.4.3.4.3.4.3.4.3.4.3.4.4.3.3.4.4.3.3.4.4.3.3.4.3.4.3.4.4.3.3.4.3.4.4.3.3.3.4.4.4.4.4.3.4.4.4.3.3.3.4.3.4.4.3.3.4.3.4.4.4.4.3.5.3.3.3.3.3.5.3.3.3.3.3.3.3.3.3.3.3.3.3.3.5.3.5.3.3.3.", -"3.3.4.3.3.3.3.3.3.3.4.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.4.4.2.4.3.3.3.4.3.3.3.4.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.4.2.3.3.4.2.4.3.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.4.4.2.4.3.3.3.4.3.3.3.4.3.4.3.3.4.3.3.4.3.3.4.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.4.2.3.3.4.2.4.3.3.4.3.4.3.3.4.2.3.4.2.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.4.4.2.4.3.3.3.4.3.3.3.4.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.4.2.3.3.4.2.4.3.3.4.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.4.3.3.3.3.3.3.3.4.3.3.3.3.3.4.4.2.4.3.3.3.4.3.3.3.4.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.4.2.3.3.4.2.4.3.3.3.4.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.3.3.3.3.4.3.3.3.4.3.3.3.3.3.4.4.2.4.3.3.3.4.3.3.3.4.3.4.3.3.4.3.3.4.3.3.4.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.4.2.3.3.4.2.4.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.5.3.3.3.3.3.4.3.3.3.4.3.3.", -"3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.4.2.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.4.2.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.2.4.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.4.2.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.4.2.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.4.2.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.2.4.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.4.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.", -"3.3.3.3.3.3.3.3.3.3.3.2.3.3.3.2.3.3.3.3.3.2.3.3.3.2.3.3.3.3.3.3.3.3.2.3.3.3.2.3.4.2.4.2.3.3.2.3.3.3.3.3.3.2.3.2.3.3.3.3.2.3.3.3.3.3.2.3.3.3.2.3.3.2.3.2.2.3.2.3.3.3.2.3.3.3.2.3.3.2.3.2.2.3.2.3.3.3.3.3.3.2.3.3.3.3.2.3.3.3.2.3.3.3.3.3.3.2.3.3.3.2.3.3.3.3.3.3.3.3.2.3.3.3.2.3.4.2.4.2.3.3.2.3.3.3.3.3.3.2.3.2.3.2.4.2.3.2.2.3.3.2.3.3.3.3.2.3.3.2.3.2.2.3.2.3.3.3.2.3.3.3.2.3.3.2.3.2.2.3.2.3.3.3.3.3.3.2.3.2.3.2.2.3.3.2.3.3.3.3.3.3.2.3.3.3.2.3.3.3.3.2.3.3.3.3.2.3.3.3.2.3.4.2.4.2.3.3.2.3.3.3.3.3.3.2.3.2.3.3.3.3.2.3.3.3.3.3.2.3.3.3.2.3.3.2.3.2.2.3.2.3.3.3.2.3.3.3.2.3.3.2.3.2.2.3.2.3.3.3.3.3.2.3.3.3.3.3.2.3.3.3.2.3.3.3.3.3.2.3.3.3.2.3.3.3.3.3.3.3.3.3.2.3.3.3.2.3.4.2.4.2.3.3.2.3.3.3.3.3.3.2.3.2.3.3.3.3.2.3.3.3.3.3.2.3.3.3.2.3.3.2.3.2.2.3.2.3.3.3.2.3.3.3.2.3.3.2.3.2.2.3.2.3.3.3.3.3.2.3.3.3.3.3.3.3.3.2.3.3.3.3.3.3.2.3.3.3.2.3.3.3.3.3.3.3.3.3.2.3.3.3.2.3.4.2.4.2.3.3.2.3.3.3.3.3.3.2.3.2.3.2.4.2.3.2.2.3.3.2.3.3.3.3.2.3.3.2.3.2.2.3.2.3.3.3.2.3.3.3.2.3.3.2.3.2.2.3.2.3.3.3.3.2.3.3.3.2.3.3.3.3.3.2.3.3.3.3.3.3.3.3.3.2.3.3.2.3.2.3.2.3.", -"3.3.3.3.3.3.2.3.3.3.3.3.2.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.2.3.3.2.2.3.2.2.2.3.2.3.3.3.3.3.3.3.3.3.2.3.3.3.3.3.3.3.3.2.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.2.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.2.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.2.3.3.2.2.3.2.2.2.3.2.3.3.3.3.3.3.3.3.3.2.4.2.3.3.3.3.3.3.2.3.2.3.3.3.3.3.3.3.3.3.3.3.3.3.2.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.4.2.3.3.3.2.3.3.3.3.3.3.3.3.3.3.3.3.2.2.3.3.2.3.3.3.3.2.3.3.2.2.3.2.2.2.3.2.3.3.3.3.3.3.3.3.3.2.3.3.3.3.3.3.3.3.2.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.2.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.2.3.3.3.3.3.3.3.3.2.3.3.2.2.3.2.2.2.3.2.3.3.3.3.3.3.3.3.3.2.3.3.3.3.3.3.3.3.2.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.2.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.2.3.3.3.3.3.3.3.3.3.3.3.3.2.3.3.3.3.3.3.3.3.2.3.3.2.2.3.2.2.2.3.2.3.3.3.3.3.3.3.3.3.2.4.2.3.3.3.3.3.3.2.3.2.3.3.3.3.3.3.3.3.3.3.3.3.3.2.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.3.2.3.3.3.3.3.2.3.3.3.2.3.2.3.3.3.3.2.2.3.3.2.3.3.3.3.3.3.", -"3.3.3.3.2.3.3.2.3.3.2.3.3.2.2.3.2.3.2.3.3.2.2.3.2.2.2.3.2.3.3.3.2.3.2.2.3.2.3.2.3.3.2.3.3.2.3.3.3.2.2.2.2.2.2.3.3.2.2.2.2.3.2.2.2.3.2.3.2.2.3.2.3.2.2.2.3.2.2.3.2.3.2.3.2.2.3.2.3.2.2.2.3.2.2.3.3.3.3.3.2.3.3.2.3.3.2.3.2.2.2.3.2.2.3.3.3.2.2.3.2.2.2.3.2.3.3.3.2.3.2.2.3.2.3.2.3.3.2.3.3.2.3.3.2.3.2.2.2.2.2.3.3.2.2.3.2.2.2.3.2.3.3.2.2.3.2.2.3.2.2.2.3.2.2.3.2.3.2.3.2.2.3.2.3.2.2.2.3.2.2.3.3.2.2.2.2.2.2.3.2.2.2.3.2.3.3.2.2.2.3.2.2.3.2.2.3.2.3.2.3.3.2.3.2.3.2.2.3.2.3.2.3.3.2.3.3.2.3.3.3.2.2.2.2.2.2.3.3.2.2.2.2.3.2.2.2.3.2.3.2.2.3.2.3.2.2.2.3.2.2.3.2.3.2.3.2.2.3.2.3.2.2.2.3.2.2.3.3.3.2.2.2.3.2.2.3.3.2.3.2.2.2.3.2.2.3.3.2.3.2.2.3.2.3.2.3.3.3.3.2.3.2.2.3.2.3.2.3.3.2.3.3.2.3.3.3.2.2.2.2.2.2.3.3.2.2.2.2.3.2.2.2.3.2.3.2.2.3.2.3.2.2.2.3.2.2.3.2.3.2.3.2.2.3.2.3.2.2.2.3.2.2.3.2.3.2.2.2.3.2.2.3.3.3.2.2.3.3.2.2.2.3.3.2.3.2.2.3.2.3.2.3.3.3.3.2.3.2.2.3.2.3.2.3.3.2.3.3.2.3.3.2.3.2.2.2.2.2.3.3.2.2.3.2.2.2.3.2.3.3.2.2.3.2.2.3.2.2.2.3.2.2.3.2.3.2.3.2.2.3.2.3.2.2.2.3.2.2.3.3.3.2.3.3.2.2.3.3.3.3.2.2.3.3.2.3.3.2.3.3.2.3.3.2.3.2.3.2.2.3.2.", -"2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.3.2.2.2.2.2.3.2.2.2.3.2.2.2.2.2.2.2.2.3.2.2.3.2.2.2.2.3.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.3.2.2.2.2.2.3.2.2.2.3.2.2.2.2.2.2.2.2.3.2.2.3.2.2.2.2.3.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.3.2.2.2.2.2.3.2.2.2.3.2.2.2.2.2.2.2.2.3.2.2.3.2.2.2.2.3.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.3.2.2.2.2.2.3.2.2.3.2.2.2.3.2.2.2.2.2.3.2.2.3.2.2.2.2.3.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.3.2.2.2.2.2.2.3.2.2.3.2.2.2.2.2.2.2.2.3.2.2.3.2.2.2.2.3.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.3.2.2.2.2.2.3.2.2.2.3.2.2.2.2.2.2.2.2.3.2.2.3.2.2.2.2.3.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.3.2.2.2.2.2.3.2.2.3.2.2.2.3.2.2.2.2.2.3.2.2.3.2.2.2.2.3.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.3.2.2.2.2.2.3.2.2.2.3.2.2.2.2.2.2.2.2.3.2.2.3.2.2.2.2.3.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.3.2.2.2.2.2.3.2.2.2.2.2.2.2.3.2.2.2.2.2.3.2.2.3.2.2.2.2.3.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.3.2.2.2.2.2.3.2.2.3.2.2.2.3.2.2.2.2.2.3.2.2.3.2.2.2.2.3.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.3.2.2.2.2.2.2.2.3.", -"2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.", -"2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.", -"2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.1.2.2.2.2.2.1.2.2.2.1.2.2.2.2.2.2.2.1.2.2.1.2.2.2.2.2.1.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.1.2.2.2.2.2.1.2.2.2.2.1.2.2.2.2.2.2.2.1.2.2.1.2.2.2.2.2.1.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.1.2.2.2.2.2.2.1.2.2.2.1.2.2.2.2.2.2.2.1.2.2.1.2.2.2.2.2.1.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.1.2.2.2.2.1.2.1.2.2.2.2.2.1.2.2.1.2.2.2.2.2.1.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.1.2.2.1.2.2.2.2.2.2.2.2.1.2.2.1.2.2.2.2.2.1.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.1.2.2.2.2.2.1.2.2.2.2.1.2.2.2.2.2.2.2.1.2.2.1.2.2.2.2.2.1.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.1.2.2.2.2.2.1.2.2.2.2.1.2.1.2.2.2.2.2.1.2.2.1.2.2.2.2.2.1.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.1.2.2.2.2.2.1.2.2.2.2.1.2.2.2.2.2.2.2.1.2.2.1.2.2.2.2.2.1.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.1.2.2.2.2.2.2.1.2.2.2.2.2.1.2.2.1.2.2.2.2.2.1.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.1.2.2.2.2.1.2.1.2.2.2.2.2.1.2.2.1.2.2.2.2.2.1.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.1.2.2.2.2.2.2.2.1.2.2.", -"2.2.1.2.2.1.2.1.2.2.2.1.1.1.1.2.2.2.2.2.2.1.2.2.2.2.1.2.2.2.2.2.1.2.2.2.1.1.1.1.1.2.2.2.1.2.2.1.2.2.1.2.2.1.2.1.2.2.2.1.1.1.1.2.2.2.2.2.2.2.2.2.2.2.1.2.2.2.1.2.1.2.2.2.1.1.1.1.1.2.2.2.1.2.2.1.2.2.1.2.2.1.2.1.2.2.2.1.1.1.1.2.2.2.2.2.2.2.2.2.2.2.1.2.2.1.2.2.1.2.2.2.1.1.1.1.1.2.2.2.1.2.2.1.2.2.1.2.2.1.2.1.2.2.2.1.1.1.1.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.1.2.1.2.2.2.1.1.1.1.1.2.2.2.1.2.2.1.2.2.1.2.2.1.2.1.2.2.2.1.1.1.1.2.2.2.2.2.2.1.2.2.2.2.2.2.1.2.2.2.1.2.2.2.1.1.1.1.1.2.2.2.1.2.2.1.2.2.1.2.2.1.2.1.2.2.2.1.1.1.1.2.2.2.2.2.2.2.2.2.2.2.1.2.2.2.1.2.1.2.2.2.1.1.1.1.1.2.2.2.1.2.2.1.2.2.1.2.2.1.2.1.2.2.2.1.1.1.1.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.1.2.1.2.2.2.1.1.1.1.1.2.2.2.1.2.2.1.2.2.1.2.2.1.2.1.2.2.2.1.1.1.1.2.2.2.2.2.2.2.2.2.2.2.1.2.2.2.1.2.1.2.2.2.1.1.1.1.1.2.2.2.1.2.2.1.2.2.1.2.2.1.2.1.2.2.2.1.1.1.1.2.1.2.2.2.2.2.2.2.2.2.2.2.2.2.2.1.1.2.2.2.1.1.1.1.1.2.2.2.1.2.2.1.2.2.1.2.2.1.2.1.2.2.2.1.1.1.1.2.2.2.2.2.2.2.2.2.2.2.2.2.2.2.1.2.1.2.2.2.1.1.1.1.1.2.2.2.1.2.2.1.2.2.1.2.2.1.2.1.2.2.2.1.1.1.1.2.2.2.1.2.2.2.2.2.1.2.2.2.2.2.2.1.", -"1.2.2.1.2.1.1.2.1.1.1.2.1.1.1.1.2.1.1.2.1.2.2.1.1.1.2.2.1.1.2.1.2.1.1.2.1.1.1.1.1.2.1.1.2.1.2.1.1.2.2.1.2.1.1.2.1.1.1.2.1.1.1.1.2.1.1.2.1.1.2.1.1.1.2.2.1.2.2.1.2.1.1.2.1.1.1.1.1.2.1.1.2.1.2.1.1.2.2.1.2.1.1.2.1.1.1.2.1.1.1.1.2.1.1.2.1.1.2.1.1.1.2.2.1.2.2.1.2.1.1.2.1.1.1.1.1.2.1.1.2.1.2.1.1.2.2.1.2.1.1.2.1.1.1.2.1.1.1.1.2.1.1.2.2.1.1.2.2.1.1.2.1.2.1.2.2.1.1.2.1.1.1.1.1.2.1.1.2.1.2.1.1.2.2.1.2.1.1.2.1.1.1.2.1.1.1.1.2.2.1.2.1.2.2.1.1.1.2.1.2.1.2.1.2.1.1.2.1.1.1.1.1.2.1.1.2.1.2.1.1.2.2.1.2.1.1.2.1.1.1.2.1.1.1.1.2.1.1.2.1.1.2.1.1.1.2.2.1.2.2.1.2.1.1.2.1.1.1.1.1.2.1.1.2.1.2.1.1.2.2.1.2.1.1.2.1.1.1.2.1.1.1.1.2.1.1.2.2.1.1.2.2.1.1.2.1.2.1.2.2.1.1.2.1.1.1.1.1.2.1.1.2.1.2.1.1.2.2.1.2.1.1.2.1.1.1.2.1.1.1.1.2.1.1.2.1.1.2.1.1.1.2.2.1.2.2.1.2.1.1.2.1.1.1.1.1.2.1.1.2.1.2.1.1.2.2.1.2.1.1.2.1.1.1.2.1.1.1.1.2.1.1.2.2.1.1.2.2.1.1.2.1.2.1.2.2.1.1.2.1.1.1.1.1.2.1.1.2.1.2.1.1.2.2.1.2.1.1.2.1.1.1.2.1.1.1.1.2.1.1.2.2.1.1.2.2.1.1.2.1.2.1.2.2.1.1.2.1.1.1.1.1.2.1.1.2.1.2.1.1.2.2.1.2.1.1.2.1.1.1.2.1.1.1.1.2.2.2.2.2.1.1.2.2.2.1.2.1.2.1.2.", -"2.2.1.2.2.2.2.2.2.1.2.1.1.1.1.1.1.1.2.2.2.2.2.2.2.1.1.2.2.1.1.2.1.2.1.2.1.1.1.1.2.2.1.2.1.1.2.2.2.2.1.2.2.2.2.2.2.1.2.1.1.1.1.1.1.1.2.2.2.2.2.2.2.1.2.1.1.2.2.1.1.2.1.2.1.1.1.1.2.2.1.2.1.1.2.2.2.2.1.2.2.2.2.2.2.1.2.1.1.1.1.1.1.1.2.2.2.2.2.2.2.1.2.1.1.2.1.2.1.2.1.2.1.1.1.1.2.2.1.2.1.1.2.2.2.2.1.2.2.2.2.2.2.1.2.1.1.1.1.1.1.2.1.1.1.1.2.2.1.2.2.1.1.2.2.1.1.2.1.2.1.1.1.1.2.2.1.2.1.1.2.2.2.2.1.2.2.2.2.2.2.1.2.1.1.1.1.1.1.1.2.2.2.2.2.2.2.1.1.2.2.1.1.2.1.2.1.2.1.1.1.1.2.2.1.2.1.1.2.2.2.2.1.2.2.2.2.2.2.1.2.1.1.1.1.1.1.1.2.2.2.2.2.2.2.1.2.1.1.2.2.1.1.2.1.2.1.1.1.1.2.2.1.2.1.1.2.2.2.2.1.2.2.2.2.2.2.1.2.1.1.1.1.1.1.2.1.1.1.2.2.2.1.2.2.1.1.2.2.1.1.2.1.2.1.1.1.1.2.2.1.2.1.1.2.2.2.2.1.2.2.2.2.2.2.1.2.1.1.1.1.1.1.1.2.2.2.2.2.2.2.1.2.1.1.2.2.1.1.2.1.2.1.1.1.1.2.2.1.2.1.1.2.2.2.2.1.2.2.2.2.2.2.1.2.1.1.1.1.1.1.2.1.1.1.1.2.2.1.2.2.1.1.2.2.1.1.2.1.2.1.1.1.1.2.2.1.2.1.1.2.2.2.2.1.2.2.2.2.2.2.1.2.1.1.1.1.1.1.2.1.1.1.1.2.2.1.2.2.1.1.2.2.1.1.2.1.2.1.1.1.1.2.2.1.2.1.1.2.2.2.2.1.2.2.2.2.2.2.1.2.1.1.1.1.1.2.2.1.1.1.1.2.2.1.2.2.1.1.2.2.1.", -"1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.2.1.1.1.1.1.1.2.1.2.1.1.2.1.1.2.1.1.1.1.2.1.1.1.1.2.1.1.2.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.2.1.2.1.2.1.1.2.1.1.1.1.2.1.1.1.1.2.1.1.2.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.2.2.1.1.2.1.1.2.1.1.1.1.2.1.1.1.1.2.1.1.2.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.2.1.2.1.2.1.1.1.1.1.2.1.1.2.1.2.1.1.1.1.2.1.1.1.1.2.1.1.2.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.2.1.1.1.1.1.1.2.1.2.1.1.2.1.1.2.1.1.1.1.2.1.1.1.1.2.1.1.2.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.2.1.2.1.2.1.1.2.1.1.1.1.2.1.1.1.1.2.1.1.2.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.2.1.2.1.1.1.1.1.1.1.2.1.1.2.1.2.1.1.1.1.2.1.1.1.1.2.1.1.2.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.2.1.2.1.2.1.1.2.1.1.1.1.2.1.1.1.1.2.1.1.2.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.2.1.1.2.1.2.1.1.1.1.1.2.1.1.2.1.2.1.1.1.1.2.1.1.1.1.2.1.1.2.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.2.1.2.1.2.1.1.1.1.1.2.1.1.2.1.2.1.1.1.1.2.1.1.1.1.2.1.1.2.1.1.1.1.1.1.1.1.1.1.1.2.1.1.1.1.1.1.1.1.1.2.1.2.1.1.1.1.1.2.1.1.2.1.", -"1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.", -"1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.", -"1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.", -"1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.", -"1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.", -"1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.", -"1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.", -"1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1.1." -}; diff --git a/mixer/icons/icon-large.svg b/mixer/icons/icon-large.svg deleted file mode 100644 index 8b251a5..0000000 --- a/mixer/icons/icon-large.svg +++ /dev/null @@ -1,155 +0,0 @@ - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/mixer/icons/icon-small.svg b/mixer/icons/icon-small.svg deleted file mode 120000 index 1d9c2c6..0000000 --- a/mixer/icons/icon-small.svg +++ /dev/null @@ -1 +0,0 @@ -icon-large.svg \ No newline at end of file diff --git a/mixer/non-mixer.desktop.in b/mixer/non-mixer.desktop.in deleted file mode 100644 index 61e4221..0000000 --- a/mixer/non-mixer.desktop.in +++ /dev/null @@ -1,9 +0,0 @@ -[Desktop Entry] -Name=Non Mixer -Comment=Modular Digital Audio Workstation - Mixer -Comment[fr]=Station de travail audio-numérique modulaire - Mixeur -Exec=@BIN_PATH@/non-mixer -Terminal=false -Type=Application -Icon=non-mixer -Categories=AudioVideo;Audio; diff --git a/mixer/pixmaps/panner-plane-502x502.png b/mixer/pixmaps/panner-plane-502x502.png deleted file mode 100644 index 923d8db96dc2e246cb7e90cb76c00c93b3fd4ca7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29800 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 EFZZ}D^Z)<= diff --git a/mixer/pixmaps/panner-plane-92x92.png b/mixer/pixmaps/panner-plane-92x92.png deleted file mode 100644 index b153e2c2bb6e96ff24adc04932c78d91d6055986..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 864 zcmeAS@N?(olHy`uVBq!ia0vp^F(Ayr3?#1@DrEsFmUKs7M+SzC{oH>NS%G}U;vjb? zhIQv;UIIA^$sR$z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBC}9)e z6XMFt$Hxr>JYc}f3uJL|aq;r<@$m3+0XaZvK0aPvAR8#m&Brgm$Hxx@K;r-Z|5e3L zqJZWwCV9KN2=nZYnFi!=7I;J!Gca%qgD@k*tT_@u1#dlF978hhy`5QG+^oQJjPt$7 zs=NFCx64j?*?DC5rjuUzKaLk)zpt1(SzS#l`GBPX17o$QP>YsfGJAtoW#`XLQ7lUmyJpj$*=?%N{>MF&x4yVJ@1Wn5$JJY-vrfl5 z*(~wqT5+0vH@h_7!XvLAy(zi#HK#am^G=J~dp>3e3PL~vXArc`^861 zpW3^1i?=+@y?ZHobHV;RvE(f;j_ZE;S`(yVw{za=&Lex?`sQ8!G{2UkZrVIgd-lV7 z=Il+iv)OZV!*uO`KYSD(u`2K#vp>}3d!xW+?op--6PhNNgtoMKzBPCu8eJICzRILC zyZS|jSon^m^V1C7xP|sRZ;8O`vA$SQ?blPBZuov**kacgMdx%2?2fx*+&&t;ucLK6U0B1<&@ diff --git a/mixer/pixmaps/panner-sphere-502x502.png b/mixer/pixmaps/panner-sphere-502x502.png deleted file mode 100644 index 12356d391cc904dce6ba26f0a8b224243e850337..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 118356 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 z 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 z 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 diff --git a/mixer/pixmaps/panner-sphere-802x802.png b/mixer/pixmaps/panner-sphere-802x802.png deleted file mode 100644 index b63fca31ca31ac370a1d11d8ba7311cbf9d36655..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 230397 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

BG)KUoX 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

{*;Hj&0Xgc&C7PRYLF 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

eOOtffQ`aY%bU}D#pnpkT1$BN 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%0DM4$ zzjh)}zD^lUXp&=2_p_wPI9o&_#){u1c*Nt36u}ecejV)77lN_^Fco9uh0a~SjAc;? z=OUQjYo8AxCG;2;i)DDinO|C#Xn+|!C*dHwz-g`0(m3+FP*X=F#!6;Z!PKgJq{2Yv z4kC4yA zUc!X+r*+@$hpPayRsmf(mC35%NOfnBB}tEkXE57&M7nBJ&xEt@AXm=EEKXN6O(v$+ zt)oZ?FO@)5q!rgK(MYSd#wBrtY%))V+Gll+tUfqH$>N#4H10ArA#IMd)T}Lw5kf|W zuhPJ!IxI+u!z?-)I5CcwA+pIzr3%TCfmeA-o)3s%E4!DO)(1`Pe3pOAq5KfmFl%8# z$QH7UL-h6yf)lIruklNgqECg08nb15R7m>aHG{6nFvYSe z;2l}l1F+dImDYI)y<~{GB_j0ZEcj!4R++L30Z8IRibkY&7s7BXaOq_05}R>-Uv-(^ zeHuL{wT2#52M|5ZZj^x26P5;i=H!R{3!<`KCI^4%O{!WA)I9Z!4`Jt=R0KHZHnoU6j}i$pZwEo_XhXiseKQSLNh8 z&et+H*JErZLB?@AFxK=I2@A;j6ri>>huiTA;|x?0o0B@vr$0_)DK06eNRPC7X~xl4 zbHUJ%LdO$g+JWU*@F@!^2iDfq>~h3!+Knh-6s2+5ocou0@z8S@k(QMzIW&j2HeQNyzqPG zUhvdPuly#f`NG-xsb)o+(1m7zjEp{p={R6f>{9mJ-8><^-h>J+0Ik|Mwidb>JGk6(mdwb0G1J`Wzs!?@PT7!h7Gap{RWM(5fW<@G0~aP_8Ho=Mp|{9)bigR?Jo z_INok>xp&0_U@^ZXvpr-)hZ|%GppQIKbmejAg9Ja7CRw;CH?4Ei%aLOtO%g}Jd7$4 z7MY1TJIx}xT;uL6GE)f#St6~H^-Wjh=6s5(9gd9uYdA-KRB>KwPbTWrRVP8IZK_%b zrmEADz*csLx`)amAGP)$+~7_z0D`@Yig?Uc4|5tx**)k=V!7g$W+KN@9jw?AvITjw zow|&!l1opZSzJ1KZMdtWeo-T>#-@dZfh4oI)z+CW?Om#DO|?=iV=Y~#Qb3xAGmj&w zYK1!|gGh-L4ieSXxkVaV!5LOQHj#k$m>l616~;n1pP4Adj~)b1tn+<^I{qZX zWL?^_R_;V+d}uwQBCsMokm$m%c)IJUlYbBHiG9&K#FqoJEb#4q__cRYo3b+0wtJ#< zTDoj!QiBlImglSsv~K1>#KMgLTaioa29Xsx#WOMSyVCVU6Fk#gs{Ub(Wz7`vk}five+c~KThfpB%B0BT{(+exz%wUr~9tqD5#(O6J)_%=qHs!Tza|r(`QoI z-f~G5W}egPCE=^)xiO8jGQCfP9mL~%HK|gHxeE(QkWur#cT;#aj+Z|k#PbK$qM4+LBb&vA+pUEIKIG_I z-}Q-<%5=TGXLZL|@corsaHgR;*;O_T#Fk)rc+;6W2dOS7GtEY3!X7zNy&C(qNyqi9 z$rUjOo;kO7a2T}|rq~9|aHwI`%Sz<*xy=0DQN% zKlWB2UFg-!o&f`PoV+*U>7K#4Q3S`dTAaDS8Dznhp3{;mCl+J%Fa_z<2V|;Muh#D) zd!e7AYOid>E1B9!lo?E=VjWDDmroW;_#4x}M)NKY8M|g0+pjG8Mwil114gU#IbZl> zR2yfg1g9q>Ef&>7Vu9;V6_9ZPTgsGQ%G;*F`5gzRs%(lWcr15qc){Z(EVqrdx~Y+~ zKw2}jmcHT#E4-+>Z%!R2pRuGfE6_^atLFYv{vZXDjxC);~^BN=Y$hnMoGo~FQdoGi|9krJjS|mB9JaC4(dTNvKvG?yJmyY7%N$tktnBEoB)G|df)HukG-`o ze1=)Qtf|ccKlOI&?gmO7!L+p5FuH2A%Ko_qj&uH>^h+fQ-G8^3BrjcHvMe} z0j``_;4Oo03z#q}5Z2{WR2f9pdI7znSk%hw4AiyBzBe`C+)8v8FIbWW=Jcl=`$0uk|BuG=t2A~KsVxmG3)b%aY8Rk z)WsKm*rl-{v5ZTN4w9jx_ ztnCrYy|08Q)|p8>>S+>+H0W$1E4ENu<%jKw7Aq6QYl?Gq3*nCAOZd=(kAQ1ydOW8! z)T)OiY|>YAo|s%xCU%_ekCI?!Bb}^xLdWK$K}L)vCt)l}ui$cwm2RS>Jia88e0@@C zK16ZfdqUB@Af>7rd08W7G9*1$lI|F*0_AFWz(l_>;jyY1OEq!Osq!$>UIB&M1c;>lPi z*g6rxosO%}M&U-1tR`?qz0_jbTuar}-TyS($G9-siOm}C_|$+-rCza3r)BeItb)yx z4ThEdcShcblK7-!5IJdiYh}e$JT_-JHlE6z%v2oWC-x#RTsP zGRyYOV=Sb5@`Ll06x-}BZ5Yp{K`Mzl8e4R&eD|wK;Y^uk-LSA}2!58S4J335Vca?Q zB2S(4B3|a{PJ?a~n<99?m)HF=W6pgF}o+~_mnIuwSLC#}dgE+o2lEEX5hvqSH404Cs#`$0X zqZ)|Heg9EnZ6{LF21kios}t)WvUlFCe(t1|k{4661j}j%nuN&yo?daz!;#Fd(%;O3 zh|h#>jmI!QI&0vto@~`v74!%3M#mP?Vv-VY?&mh zw)Ofx3}P%6as{oOGPTs*2(ZYUnJ7Y*m7p797!$tyvgZ6TT#s z^%no3^NHCY8%p$J;f{;t<-uj1p z5D=ZoU_~5~-Cb+@k&z|yf9l&X)-w}j-efg(`*gw01Xz^fyo@cbL>V3}S})F0=m)PG zn#@gA>Gd_poXux&aPw^^Yw%fEe1)1u?2Z@If+&z!w8z;zUkbB&aj^Cfsvh~A#8Ng! zOd}Bu^_@%$*@;{_w-dowZf03A)c?Oz;&;=waI4x9#S!Md;_4!99ex??4=+Rf?q92y zJ7?_$zxDQyv+m4zGD}EwGOh}afWWDGd|qo8lp6(^BE;z+x+Lx|p9Cd6Q+2s7dx?y{ z-V2E&h0g2EeQtn@TZJ>Gj2hJ@ zLfUg#RCdQ71dSy1R3Fb$E99#N?W0jxorYW(m zb130dy@Q1LdpcqT_LQ+St{T;7{xR7{+*?zapCj;D_G++}lAU(pM%eg~YqOV;e-#$(h@Io6DZ}j57^lsuS0`#* zehI2vF?mMjNg5EXnk}2FrbcT+sh-|U2|6_d1V7Un`mkTKMG$%DIPIV9;(sG!EiGD)=QfzBf@YrG5BS$zYf;D zyqVnHh_wC;HG8$!>v>MIS^HVdlrhHn+kl31oj4IhoW;vS4{xWo9$xdWDTB~8D zJaegFUxD;X`Zq^B@s2OvJl-a35T}*LK8?yUMV12F&ok0A9&N!|d5l%#(oy0JIkaGC zD{5BV3ML~A$tn(P&bj%_WhRaf#^qg*H*L&15F-$vAIAW|g zJaa?7PzPgwq&E25jHt4|WD|&K%sj`QH~+E%3vp?Dc($`T_@}%9bj5^ZY(qJq!72=j zJnN}377hugj>1^wM%rW=aA`&_XA=S{MXu=+OW|Yrbj0rFRzl7UVym(&X4-Nm`7@|h z#H#jJENT~7D{-drW!uS*$|9@U>YfqOdWkU^Wre&*>P@5tvKQF~jAc-_+A4p>8i&dt z!0O0sYih_DF^oc5<8Q8sy~B5V`%C{4QP#^Y8v55yy}fjDzY~v7eXgV-R-mOoVAFj} zb=KB3X_eMJb`eTi`{10NfgsT;Qh=Rcu#Qg7J9f&~%2yA)|4=%W$V3#?`tss`i+Y>n zbt1ZGY?ziftMsW-YpMA6H2HxwFD^-4aHLjQavC{2CeM%|V< z)sX>Z?v)bnS*lW0UD)DWaX~d?K4(w@rzN1K;*9bhJE*KOwT*#Wrq-W%gU47mPMI$e zqqI_(UV4R5W@|<-W`y4Dwjr7c)6+n6X&V2tnTK8O;*I;Ggwxy)?8{#f5%N1Z9L?Wl_4%AO12*~`i z(-Gb)%Y>+y3D&5M!87N++YeiLnH#;;=IjE%lil|Ev+m~N4uI{|<*|F$r&fL&?1PSL z<0&hyyR`${Fo@8NDjcE0Nl~?Dl>VTqd^$hhI6!tg7mS=3j)_JMUJB8YSFPIa+z}Rg zLjbe_gcaI*aZf;Hx~eQ+pE}`7dU5;BJ{Adc+h{}oNWYnvfGvuiU~pir>9X- zm8oPt;%0LJV7t8%)SZV)Yu47w-|cqq(@QHzi|xfYZ8+!o#T@{kGl+OmL`Ovd zqFw>y6=fuBvjw2%5CN zbhc$RAi%TD1({sIQc}qRCRQQH`PqiR)BQG^)g_hOCB6m}EnkUm{8{<$r z`7wZ>zWl~Qjyev3U)Vi1t9RGz1O(oC@XkQ&f3ZFlqLYylkWmp2k&$orP$LpleVE3b z$N*4q|NX}Re*f_o8|3g3ju4*~r<}TyddFxTDHMRb_xBHkvitVi3qXi78IPlmnNOfu ztezF;JG>tL{e1wxefMJzq2v#3bcCBJxD0_KpfS(|M~Gv%?ywK z`H=uWefjONGeaC<9M$95QOPl*djFpv0r>gUQ5`&2JZ4~o>xebXyZ`aO{1rTQR9YU? z0VLo3$48Dbe4dSpEk+i=;7b4!%N*efhP&NCj3gwzVZKMLd&T(yglDk-Y%nf90(q5? zfx8lAk)=lKtRL0Ke+TgEH{Zu|wIT%Q1ZyRIo2iz@nc=;E*5|9qwyNgKklhYWV8F-! z@xK84`ptK~0n02Vp{Hz*cwc?|ccBbl4!*A8k49D!0At5hUOf~a9L#tB*9QcC|L#W% z=~4wAQVOc7wP3h{9r?Ep-vi|L?;S;UB6}+axX`?*;+A6OAQGxr1XzK8``|HwKY#i~ z!WA^p4wqmm!j7eI6TWQBneNDY5C3K;&wh1AV2BHn#4m&VyECf`bKzbDk|}2fkFWUn zy$?j>+0#F-&x~DMTmZPbx;o)^?|0_^bMO5Bv00rN4kBi~8AP7#w!SMTVksx%g6b5+ z(NQ5T_`|xekgw0roM5}#xpaZIaorR|#1`ic=VcSqe?oxGox37(b@}w%@SI$eD25*I`Yi-b*ftD`DO#)DvT0Mn88wP8wMP~fi-qUC1?3odsbIv;Ji_kK)Ml#vYP24X_ z=Y{e6hI5sLbV7M@O3J(H;khLGm(DroY>_jX%QZzc%2vtq>oZwBpfKo0m!=vId z3Hf#AtK!zBwN~uFwykTq+!`j1Xk*cN7=~fsQg^z79Z~m*1I0S$hAIpSGHv=@t1m7~ z<4GTe!43l(R}f7n-pMRECZkJu22I6mxkB)0*f9}i^mF@ou8^p+$KCHR-v2qwGW9Xj zT36mzCDVpnZ<;u~6LfKIZ@{b>j8!;((K$EHS84fD*Uq4YS;eF64{q%+g!|K|I311h zjdr)9M@!l&l54^MPPn!9a+&-v|JwFn><0S+kxX@FxD^t3KNI~rxZkbam~Lfg6_aU2=U9#FVizP- z*6ZZ~Hxf%@HBbsf6+If#`&gv0tuLjTB*5vtv|+AV=75zQ9rsy7C%>i%`nG}J_(fC11z|7^|%6nj#vcI3d(-)ofU5p$4#!nzQS3YBCe~(FY5msnBJtSZJYW>hxt= z2FHf|tOLV0F?7Z6is~^eZ<0=zK7;@JAo#<&Kdjr|f+pwNGhgA?-hRKgd-38mt~r^i zEAC3zaKH6J??^9oDg+=`?GV{hF>yT8KhYHXsKCrGa+aY)jc2luUdCGCOi7WAFI9a{_Uy#R z%B#`QXizna+Li@rw@s^FSvpX#vEa!pP@dA_lZAjxrdFc%(JU;>O)+1UCWzGvqm$W6 zv_x)l0!C$W9p}RYRVH+(`X!pGHPHck!80pYPWr+aqGAieoK({(O)jG_8B|s&D`C_R zwOv*ewo;mBOldpHfe{RL_te%(_ubAb~`!?vVv` zB6Z4yFp|$}S^Hters$k$^&aX@A1Yslsu-xwGjWQV_RplY<`4e(lG_|e)6uHzSd96G zvFTFU`^&gvWIH0dZ0f0!Iv!~SW>K=GsKj33WNIdo(nqQhT&p^9hPwaeSyzXcelbi^4k^))%h%FIEc0hQ-FFP&_itYxG#1UWr{nE%1V z8Y3hi33IP3BF9@asdrkea!P@iHOV*P!ZGfQPpy2jv%kH8S>@}O!Tmbe2P<>Fnwsnl zlE9Qw1I}WZl9Wmr7eWd!0vF{0!I-`$Dm(|NG%6lPVk>O;#E!5cPeoSbhCCk`7@1-& zI5r_pcRxq&Eh0rHB8|u1O2#=SwN4%Blex%fAeEK;GdHXZq0ZD0^&ZmWDw8}Xbm?zQ z9pkgr!$=Ef;IFhC!y$S299XE1bnLEU1{Ewk{%DZkf~3 zknOBgL*Lv^GK0k(mq6j^)v;it3bng-kgncQ-rx#{Fjm&67orL)mb-sAJw;H}o zO_x^XT}+WSJq-^UMx7c_IQ35)#EY?7dasj1d9zb>Ku`9fkQVtu>z0Ro zG}2M!LX$(NtL2}RaOV&ULK1<_l94m0h?xQ`8^l;{oJi|OH4E@td3$GDk?N?bH#QG} zQP%El$pud;ex7wp^qCvWDCKU+>cw4C5|7c=JL-xD)A_u00+9(Le=vBPElU`)!WDs;j$5D&y6dGej%1UM17XL>{cM_;-%Jl2Rk3RQJ zC8nrpl71;UBLVz0*l%{jm3zq>z<9UcE|>-2U)%n{%DjJm=9?N2L?@b<36Mx6GqFvh zQvLf_q-SItm9`jln3>BYL)p6Q5urX7e7^yCj!G*;^T%Zb~-F%p%lh5yh zO?-T=93A8C`8nNnJ4@`(4Ni43_*vyq4CR?Rsx23V^> z1(M16s}poAR&v&-)F3aBRtt0GN*R^%4dQ3qVMmcK3fXK@3J|$IAKGtiWth1Y~UHI#k<2ZL?mM|1u4O_eNfY z_H{OPL2L|Et2uR{FqK;8#qlK_xCMwAdEY!pQS(ER6$$DXE9*m2!qDv5&oQgsiFuUJ zI_>G$q@=Y_Nx@3aQWaxWp9{mLls=yZlle!oC=35q(+FeLO?knMeVTL2kN}ObN^QRX z$==B`H_oYRLJEnCNL@jjM_H$wlefGw`Ct9^u*EO9Yr{(`Uv7tQ z_V%SyS#iF)bueo$_-=2XSohA#tjHlO*kkq%WQED*3M#4-vsoV|tfGEF^eu8z&DXcHMsvucRWU?ztK~9oNKb!dz)^WK zWD6A=D_m>&6-iR=_0CM6oDAk_9T>*jPdbd8RyrPL(ppIkMj|0mHG{?>CHo5lC9i~# zYvI?a6DmCYgLt62mz9v{!bYp(WY@&n-BRoXyfxsM8ZI?Z6}el1=&eGPqMP~d)gz-& z4#^=Ni#fl}Iklq7b=B&K6-R_RV>zM2CsJ-~%FIFGl4H2^5^JfuD6vtR$&>h2l(mHv zjcf$juI@P9z)~aUSw-0HG(!-@Lwl0jyEy*S@I^c&_PH;?WVzuk}TOf zhsnj?r|bB|u~U0;5zxRl=la^$pVoc5A8v^%>z2YS0KX0Hr$O!*8Fz2OF1QNFXymRs z(F8V>b=Zz5j;*jx=k!ghIO74W1lT3X+-lW2SFZY6S8fG+8J}?Blo{@I%9FDeU=-Un zK^YNx#$QC*#s?W5V6C>KOZ7o-l-RxK*``dBz%ng%wf``S3DP@M6tq@Ab@b;-WNyBW zjfg5FQSypPgE^C8&J|U@WTS|a_erps0it33ylz)KP6AexiGDA_>N7$DMbW2J-!H*i za;dkGg zdDozgbyJKCO|rzPU5z1&Svn>)waR!bD6cXvV-QF$Vg);qtsA|Q#uFIw1k0Lf^*>X7 zj#O0UBnu;Eq701^_~%4pWc9+?^X>#!7QgiF-?s^4-BOr!>D;$_`)I}cgaJDU8D&+H zu_pRH?f}Ed6yA3xI;F>o#T^ZdoFuR*?rhvx>P}EZYwgd=YBDwI5BS6^cSFGXgUFj0J_U*Z@XMWB8Ii8?lOuV`TN8*8SMqo!l-O{Wij^UhvD{o>_Tk1rnWsga)?GH+YG^ z?WWTE!kuw!Ib_T$l*nXIX8>nUkyE^A)ovgoY(_aY#0jn(d<}79xFS1@DVyPu8|#%? z@*-*VFsqbhj!+3WP}H1Bd!XWj?IdBFBxOWI)!k-{5>OC483&f_L=_2DY-9r->I!{m zRyr*CFy=MTGz7Y>2Fsd&T!ZDxz_(kx#!EW?y4eL)LcesUtk<%Y%*Q|56vY-c5L~_) zXcek%c7Bp;vr5nJCCkpwvD_6JN}xsXz0x*aW0C+73=|{d>R3`!G8)z9_nsUYc~)C* zRpIMy#xvbBKuJm+97D`BtT+p{4-#r^KKxGRAuQNe$X;Y{vUf7bs1-?VAnEt;rQ>My5);WiQT4kz zPAIJkDC1JQYI6Y{Y0}7ZZ$=tqEu%)W) z#YQ(IN+NV+eak|{MAl|uXlxmsuGpULGZY2XYYOG3m>QMh+H{Li8+S8XmGH}n$K^iQ zPHz)^{-(lM+A=3GztCQa+G&fcy_w-X}CMKnBM9~wu+8VFm6u}bZEhApZDIa5Ac z<>HMsJ5#$YCEX1M&M9}pYDvdjDqWQ-L&inoGt}e?S__qx7l=BV@q2QU21|#euc-v2 z8~1{mMfM_l!Pbe47T*=&gsvFsrcR?w@L8AhCrlL^!dG2NGIe8%Acs#4LHz!l#FfME zgZpi8{Vmgk-cp!#6wMu6t3yW_Z%%Vc z$hwIvTGWKiNOO{zD}o`CB2MI)m968NxMR$j0R@95Y#}}|-btw+)c%<{(u%-B`6EoT zhAE}r%xN1nr%>CkBPG4_&cRH$ot{~?`I3WcyeYV`%m+DETGJurNDHw^Q!N{4+-KZiN)uD8IlapJ-VXb8;!RDku?5K;UIJXzC z*5WF3<{JfZq_FYS1w_5x_(nnzvPM^!&{?UU8P|vb36lTJlW^*3^61B;JC6jZa9r#a z6_=Y^&QvI}p6v+xBt1@|!I#`K&;_K0!i807wOjK`x+YT5oHG%I9XDHK5PR4JlSs zBU@uDNEK!>PYPzBDvOnLHL{_69AuU}Lqp@J#Rg0@SSSjboI$Trw`M@;&sS4zSFyO% zu0obhm^!l*AEf$@rF3Uyz4XsU5F`{vK~cCgIa(z~15XNM?_@91i|hqX#He~)I$*Xo z&#`B4biL6tl1!M-Bu-t7_jwmeqM2mY0jreBLyCzd^eskOYfV0N^3C4o&uz zr%t}#+kc$9JErTxp4@X+&eMi68iy)*dvhhoOyN7w2CsL2uMa6fZNjbv87yPP!Y-Ef zsBA^36ibrqc;r$*$i{GEf+=#?Y#8M-ktOQ*_jMs_D9#9sv5Zp13Z(aakjmn!(^{ml z&qiSYfrev3UdD=@%+gGjWgrMqLu^o?I$D6@5;x?ei6Pi%F)NuR{9n4NEpO>ZS`f@w zD=sLDlxHb!=`1IYl3t`27+_7T$=0fwGmEw5K?Sfi3y55{^vdFQo>q5zDPU_ks6yk+ zFR47TwlvOAeWigon}?bl)O^$Xx@ZS$KCKE!W#~a>Q@X3)-BjqPdT!4Qqf=rm!zT1E z`DP~-ETW5dEC5i8k7PmWRF(Ut;p&2_`zTd_jMjSA!e^*zZK$-MjyDq98@A-l)G7|y zJ3Mo4>%?o)SESwuwQ9aBBD&G=yB`;wpxIibAxrVbGc~f@C<(v6rL`8`q&)=QTdNoO z)5&+e`*pa5DC-u(EC4_3?RR^7x8vQ;P{z`1Op*^|hKflNxX^J&6>;MMiZ+G!TYO!H z%UGzW*<$z=y}96QR&jMf9hZEWwu5_--lBt?8=f16T4(NPC8-5G(gLC?9Zn+iw4*25 zb&0R5WnWfnsuH)Sn(ye$DkAA(pSY@Us`JV`>q8isYPD)43B{<@{aPKLR#929+@^>U z%ECZqI#hTJ@iV`!rxWWmCwl8hD-+)GKj{M4V#6I&(tW=)*Kcad}S zXUYj346&{Bz}g-Am+ z1Xy{7LU83qOLq&2E~b)d-c_3<%PW#MB{0{PnZm5qsVE-p}GYCM93|6`ic zb4HSQYURhl{W7@QIUU_&m zV?P=L?5wn=S23UqJ?7f1#mThyomrTRjH7I>=WI!lfVg%CR>o-|NdZbEeVL%dNm8Yq z+xlxKFjh=fTYME;DPy4|8iJp(cT)&@7YgM8o=P`%PAS%^c4sbGSyQsGZo9>TkXT6e zyt=@PhX}lbHAFNhVI88J9AA>9v3d#eXO`1LX9X70i>@BV-WnMo1S7$tcP3Z>pi!{1 znfgi&Z7RksB9n*9)BsJ30m`Y_+NLFQCyvO1WJl3mY5po`Pj+Am=cqoatmWqbsWhTS zK_T_cLT*2id|bIL)Dm@DNClYI3d@6Mr9(fH^iF!g&dE;1`yc6iK&eq>`GhPZR#N;$ z9o=SHG)>EiO3q<{Wi{W)oV6N%-8(n=ilJYLei`gHJuh!5%DUY!3&3~#;p6kw`)9H- z^gbv-)eaw&&e7&kq##SO*~F#E(;lL^UAz$ps0mav)hBfc)d3tDYj#)ex%bg7g}mXQpcM$ z^uglX6q^$V>;-f%6chp=Z9R3+VCXd7u6!0EDtVq{LLb3HMO3WO#kkGX9QJo zzZx0;QrI5I6|2r+nT{+ea$3@^kuqLILrjRujhp<3DS>>@>Bo@^NU5Q*d=eO%! z`paB!l}!e1gD{#k4Xca`4kt-_dJ?38=Jns*sP~$pIdy|!=e?`}5?hO(diz6f_P2G1 zciUmsUhwUHcz^H<@y+E0ujO3fP$ras7K24Th z^HoM6n{LcVP$_*(pv3*IROnNBu%fKU6|o{$pzr5LY7`z_OtsO&e3z47RR!W7j%<3> z_D->RJF?tTQ^)6zqTe=!vz@u2mfZ=u1m?@ZhS^@K{MKuyevA-fP;ubumMyQ?2Ne32U+xxL0}LJZwnLl4C%Irf&8D2$irTWmSh1< za!UZ#QLNScFKS!S);Z4r1ZoilrAI(uJw>$XXk(C0)ex~vwi0B0#M0zqtKFdG z56jKQOp`%sA;J22U_wGC$gE})TI?QG;KqV0TeU1MQ4VVQq;f_wX`Qmwq7)Be8n_A# zS9E3{l;W^1&|rHRy9ft?%@ii#a}6t>#acNsYHbah#b3h;n?=RMGi@*w)jsKen3gX^ zyN>D4?Z_3-JN#ztFTHzeZl|5T7xuHRm;nO@;^O;DVe!L z62Hib|G4kNGN~-7dMT?$O0AL~iU}^K+;yx|_`Ba&JAqHM@GY)q7!A8yETjJUFy1pF zz$#uJRyfzp6%1^mt}+97-r0&rHY(1;wG-&2qq-Kj07X@`ZcB=xd7N;~ogu?jnngh2 z_l?v*JeG!iI+GO{B=7UBGDBTVX9~aA5db~EMKtkNc}vXGHWBM<3Q976oMWi6`NyjH zsIqe543pM!95SyjJ33SQ8=}!ah}gznLvJ#-`>k_VERMj!o+HCp9i}?sAY)AU*2#Xv z*%OJSJw;n>7GxTpm@;!{)_m(0uO|6i|LbI`wbB*L>S^((aizku*M|Qd?AN>D=iXY= zy@6S$zn(hzc5naJ+3KztUEnEXEHj0cJf|e>WxstarAtv<&oH~2mUe0M^N;Ao#mPl# zY)$bHN|_QJCZzaJU3f?aD_4{ic}8qP42==m(3ck-C8(-_l~quosMO|4X$ZWrewz_t z(PNlPC?Kd$OcfTYIzLiP{do^gD$F+&FE@$ISw^a5@-L#*0VJ`l$<@^T(x%6%q)xWt zYK#?YmqX|XD_6>yo2R7iVj0m8E3%U!MRE4z%Y1$ar|or26h62>N_$1Qk^0?r=&L0d zON#sd;An$BW;$0b;;PE!aCWp&E*U|&Ecjk*e>>k!;cu7~r^hWDk~>8EX<<`|rA8|w z&W$rISkG~vQf**lrbb|GgA~N$VP`vYbE=p;O*MsSw)i+40!Gt8YP)?f5vOOH|0=TV zm_s7N3i0NL+KX(RM4@MNnUXY{D62MVfW_KvTm@Kp%{ndnbgX1`JLaWWq~!&bcQU3; zccTf#_`_~8&yzo_e7m>54z4@9y%^>dfLQ>3?(NULy}#mJW3)TD&fJyM4a<$~prXAl zJLDbh6m*~?1R^^8OO%V1R9bID-&N`EZ7k#kS9+9Xsbu3zU&zx=&3C95F{7X6h^Yx>UdWgs ztJwX^e5 zjCi>BtyX(!(wTTwUk3}CJo3wB>Z__jeC6k9iE#9Dm#OuKr=Db)dXvS;C=c(7C)XS} z2`KGX%A#BAtQxhyE7{P@zCr7;v{BX!#$u%%Z^DwMh=4KKw2;;ZN0n-uq{%j)tpFUR zkDvBIFg0mBX2nuzq#$EIriJXBS0iBOq!)=W#T;VqSi^jo{j&euF0F5xg31zAxMXVk z9=~Q>tu%KP4MaNTH$#+p#o?_<0#B{{(%av9=TbwsTL-hw&Ncx0{r39D+H5uew%Z#x zR5q$hCtvM{cUI=DbJKwqLU3O*0V+Y*W_@NMyL}(G1>Vur){s-?V<{=2a=t!uz*WC* zJpiIMwW5%gD0J^r6wlAk0ql1BtVW~X8LCUzi36}AFM>wiDkIbL^*I37?~`pP)8N@i zx=Oxx)Hd$tXXhlg+nwIlyJS<9IFQX=!E*q8zdguiO*Gy(qa`C1!P$7Oc2%U65tGx@ zzzQfhTb~oK`yDWo*vJ+)z)6=ij%vT#p}o`fOPUqzWkgz4%hO|@!R*(EaqgBC@YZHy z$enry*)FAJKgoo>Yd@-fhnh$E!NQ^*z`>b8PMsN+pQYA(byXXcsg}jtN7UzPst@u& z7DCml^WuC1;Bve5Y~@h)j-7h0w7Jv(F@hDb<|L-6Q4iyf&d)ahcDrr)$gZ+P=5$ z-s-sWZlWP~&$k?|;OmA+3pcoU@U{c`pMH_lMoWT@zCy)&rIbw4CV!XTee{k1S6@Aa z>c*GC|2^_andyjL-rj!vP=MXn-%k@#;iQmRSXsfPlbsVou8Fge`R9XoA2{IZ%O}}) znWEZjS|3xvI(+-RhXA%;f2YYD?FY@&XUo-#l>~7Ay@vpvefCGj|J7$YPFew1Y;*mg ze*Wq^sc~AGDU_nJmN5kHy#I*6)n|Wd$J8ZwtDFSyfA9#vFJF8sH9u%On*PHn%ZAqL zoev-ByPeB`NXfbnf{PE{CGh0)uRC%TDg|Y#cf6We(L^8c!3U23Jp1Givc(AIz4tBP z_4Wtv0@!~3_42Y^^IVOi`u8<4*375^695lE@V>bS&-nG*pR3D%{egB65a)`I1ULCzVF`h2K|d_f`4a#WJD+edkT=dI=Tz@xb>#cqG8jUwnfiNoFD27t;gZ zdH)fB%TNC-873BeGg`h=9{uh29uoNZtM4-3%jo13RT-s|lh%)m;Qsp$4RH0@AM;Qf zO6=doNH-=>*w0tLe*Ik-$<#SyK+O8h>M9|C2ag{Bxcc%*mp;GUXgZBS#5YdakS5n+ zt?s?|kiaire}{I(U;Avc5!Vgi?MLqb`1$LnnUPzp>!ICV-KC!OZ#}qA;E$hvVF1G3 zk92$n!>`EbSBegdoYv0C5B>1{-uiv!ZALPkaozUG<&9v#{%X5@^2`qQ`iHVRmyK!w zR^+2q_f}`dfaG|~(pUc`uPHqN4EuiA?!-AM`17omRrCqx?{U4`UvB$;uc}TIW$wU2 z{8S0qAV}=D`|YzUXKgl1l?;=_3{=2DdS8U{5k0^lVtd(NZr!jq%uC~}MaL%z@JK3X z!_JS&vG6p`;ykBx_wdK0EREZ{?X#<)-(}t^nZhx;aIMIWlo|pXcDvoPOFP(-Tk<;~ zQ)|p&O=9f!cK7V6?{|@Jn78w8=`jK9x4YfbOR+Yd0RR?bzI`tkAXa?3Kpomn=PKOo zJd~=-_CNX8_G)+eJjgLIe*>ut$u<&2Hb;M2>Y-z{uk*FHY#z97M2yWKuLFf&N| zOC{%O@3v3#`D%&rdWofm?RNL{nHyXjXL4UH##sIeUOm0+{oP)C3)9F#i5JDoNe94+ zTwU#+J$bet?93f_@UCEbU(MVzE>*I+v1Cr;t+xZW+;4ZgrLR8Gx7*$R*`*z<=8gQ@O=8NBpSY3f;V6zWfbHG>a%=lN3Ez9}R~$Rq(&Ea=PGm1) zgFA!?Q*n|WNZ9RecR9}OTHvqGTSr!=0+pgODp`BiUvBNNM=r*nNU|<`beCF^#@&nW zE_D08-|paCWV2#mkzw?drvJ~5=)e_6toF;`KDipc??*EL+rHahI+9uKZ(>*o3(t)m zsy3=0d;86PxVPfn&KRH*fV3j@sb}Jz((m@!tRbn6eKI4Z#%iPb&kC->QSEMfPEsoDu2Z+Q1kqUD_@m54hut1Y zti-6cBA7mG>vK;lHX~2>D4eT7R;z< z=B60z_dU{V#56f0|9eD2BDtSY-|w^1Uf8dS2>>zRW@ZInNv&>e-!rv+=M-L&7{tdL zbw#cX{yoTdd;8lk5f!%?$*d5=WNz839Mz?hulDwXv+k}j2JDPDHvy*L?@m#{g5L7L zJ9%n{PoqE;YJ3KB^Kg(7p}nN>JDPlgRLmVvAgzv&G*xEw|0LskbCggV+yj@L!(ar~ z`AWx%IAiF=2sp+eXX7)p;hHfxArdi+$)F6w$sg}=*8y;zEwFJ$jl%fA2hu*ulWkZm=NHB5r0;mNufcp7agxdVJ~jGl z$BxsKR~@QuGIdPL3aq1z!=qKXit~v^DfnMHGvG*l`U%mBk%U6m-#`aWmM(b(mBp#i5<%24S_W255t#}Twciy}sthWDqpUzjVVUlD@JpM7U-^A- z-|U8er#aEL7Rjtc#DMmejjT1QpL_dL@BX%uI~`3(1s{R5P$)*VNNmhkDFW?(A9C5YTK>}Q?*3Pq*MsKDiBE7@ji2!TLnsmg9 zlLv`H24jg+BRNgiRrhE55%%cEq+g^o@a;HW!7N=Tktr}uRLrR|N(h0hM3WXS4{<5% zn4kQV?vhog^U5(qk(QUmP2>>fJ1Z4G!)jo*o|~o)R*?=oHu7}Fwu-5Zh@0vrJ}H)E zSB@#-gG8X8!Hi=7>u7Jj!kG1QE#aK&-klQzhwtR>>+6F)(fx28q%R zdIrm?u88@v^0DYj&!U`+-01J1HTD5yjR^Yzf(pZ5?g{f6MC~N2wMRqdM=)er$h+yxW&qdxl z*^78zj{sR{kQ43tl(Ik71^z@RZNq5Q)7m?L3IU zYwP6K!T!|SUJhf1+kj+NVuZIZg{(EID<|LXhleZkchhwsAze|}lBv~VEX*4wSt2@) z$|wT`1XK9T|1H)f#YocQ%IGgjZ=)rW7`5x07-{^@9QV#7W-H69=~V2Xs8Nmdm|!ci z8%@QyCf4Mcp;5a-rwFzzJ1B0oHBd7wuPY7xR!gP*B6@_q?qsqbor(dT@Cp3qNA0Zd9ye8$DvZn(z z(r&EnOw%x#yU8ck?ZI4$*|qKhEbdt8(29;ZB3PFIU}cdLx3`6p4PQ@w~4t{7qZXv>s+qNF5x z3CN`AF<=8I1cIOQHybfEgp1m57ioZO7EiS$@(cl!{#&V$FKdFWTga!%Lplb=Flu^{9 zB)z3n`((j*k41$XpIGim|e80E>CM(6t}~<+&vq9tbPewUNvxp@(kq|Qt5KAhEs9lt(yFHU z9wMj0cAhKP%FbjT(6#YWIhD@1t}Q&vOPTffKOR6o2dSx9N zncTF6*(8~^d9pmoWOA<9+IOWnfHOCYVe<-7EeBB0F!qe^1-(e`B;GLRY3>b5`9uR_ zl~Xj8mlZI#m1_Fh%LEEta^Vto&19IY@a9mTqAHc%96u=N4HL^~pA^)QR^(6XzTFSM z4sQ9(@Y0dY3S!JnY^HCVYnvI>kG=hFZ|`=z*BQ#_I66q4XWXe$odhks7qBl8;Tq*F zG^zU1zQJJHg${IaLsg648Ev#w=`hNes`7K)SlW8yD#WoJq0BdDU%Ci5rv^ z$LZ39=`wbAJN4mAa}V{i=aQ|R#6c5g1@yJ)AaKZ)ctmP9n(#9TU6@s*)v4^;BIbMQ zM%4F}t8J7eI9>T0$p#WaT0w8+V7PSYs^0C|vgn%Y>%43WHC>&Aq{Sg_VI9X=PgRqb zQbe+*NE|pr3-zgS|?szV{W`e*g98^N8FID zn9FP)@DILkcH4)&XvaLD8hR0p6Qh_8MJ`|)A5@{3NelW&LsSbeF(x@yh`sb&Rc{!k z)i={NADK6#)t&`TMrEf5RW?jDIzY@YnXl$=b)?eOY;x1n3vw|&OVb~V)n3X4iH}S&ryMh7Hl9<THLtxitt3()O4>=sDRVG_yl9I$ zKa=X78n(SXS!$N`7BGyZD;B>&{KG8MmQ>Zhp_GQvO-@3FW3~i}B+(o(J_srw)PEt} zfu(oYF37jCo=PJVr|mE@T9hQBF{`bxaHtox6&~3v^`5aYF#I4+e6HZGreey1g>a_P zeVO&tiJ8hr;jJtpS4*=aCD{pxDbPt>(_|@XB_qwGg-9`gMF8u_uiQG5rx8V&bLN=k z9EDb6jM5kfp0B>k5^`?5P3nYJ(1Sj)S<;T*k5OQW4(vn>(TO*?oa_Tkgee?Vq*<_f z6Ev`*l|+sSScN;IQ-GRpQ;&l>Yn4405yMr7QN=wb1yz2=b0U!l@FLnlWJuF0O*#*c zqIE94LyX#>qsFn7_k$s;T`a8G-m~H64J9dyCJu($0Vj{vF$L*}A~!nD>K$N!m4Oxf z)Z1@%!!vt3%Y)6=D+#jze7heWuFbv9JXo1kz%Ir=#(`21mD1(!CP#{he_NzX2ncB; zv2-6-_uOG>nrh?L#|C7inGdE&YrdbqkU&lP#f-=?X&fO^Za?}|dFIwt+Js{Z@wBY& zB}w}6v{vU?F5hHCmY7DZR|T~>RcrCmspn_eBG0Qsht-udOT3W=f_1cK+a-&w9OwNtf{6I<-m zQ4r@)B;_>@ay+bw`|L=>4nd_Sz*>ONf@&6@kmuBXPM-dLnf0Wog4Z~iSf5}Pws5`! z-?z1{lqrlzo3bh}AJZwf_N3&#>Lxe*Or{jnY|Wu0M_F`7wS&(zs?TcvnSh0#YKDNT zhSaW|1+NxR4pD8$;4J@IGl64?oEjSsrji&*H_$xzK&2)Q!C#aaY%-XNgQXi;tgB$O zIpvyIkxuaM!F{!}U+;(Aty8+crZ8(S`1ESHV|ZcC?yZc2tQ`l4Uzt3}=wyrz&~1h+ zfPxDxvZE6T$2`PreTpePBd?()>i#YiYSxDe%xRRtAi6L6sB18VA;UWNkt@+a#U7@7 zW*WI1+Red*C~Gq&a0#@~f$UValp%#lg%Lr4p;hOuM#8DD6ZpQO@{2r<9G|RIcTg^6}2m`30_>3O4C^etWB-)@aA#GF~Fi6fJ^T* zH@0NP{;wJV5K8mrB|$6PsAWbKX)Oef#&}Bh+9$L=a)W(lA+e@HGlZSy3e=6PyMYEU%loq3&5{~ z`)zO!R&EvQ!QOa$6cq{#&<9Hfugej{4!e=$&u7(hMA% zcH5I85{ErFZXWR1Bl?J==983RG6mbE)nKXN)ZBwk9(a?*+u`lbd~nvSK@l1BE}XP7Iu|$*B9E0Y zqcCU`>#fMh^hSYpw9%4qvZ!pdBBseRbFz<6G?i&YN~5NV80lZhy)H|a^Ohq~-pW@i zBeuYSNzDi%QRGr6lW*?5=a&=secp6@$r{BYbh`)-)*y-6t;e2_kcuVq!nRHeFrC zSgcK7RVpize7b!~=R+4CTKA+-R3cHM_fT{NWmd5!*>C5eL%KxZ1gr3iI$DRpHrc;z zO&H+&-hHzlw(iv{7rqWK3&3aF{^82JzwXWrEydF&qNiDR=5W%Su}||LrbvLs(w<5e+`&% zJ_1SAJR(89)2IFyk}k{$(kKz*?SS`*{AEN`s5rjrLrpzR!pfp6%eWKWLm){DshmJr zErBf8WVUWlAYYwxkL9;Yl6A;AA&Gamk;JkHIzC*c$-P8Qu0T{JL*`OAmAP`bJWI5; z-W0p`+XJm$47$3JZ(22tGX>9~A8MCY??=USnA4)8lJP;sfk*NEurahFuJKOMP6}ox zy49FJCKw~jqPK#-*=(4@oFp1VZQ5ztmqd!k>LA8q!L%*GSSXBAb?UP;cqyYEE|X>f zl{8pDLRpspSu|;u)S6+=<{~yuzE0z_R1cB$`zdJT($h|CE#+D_}xKT<%o< z)y!kd**ke5rMKLL!5!HG`C>5EvG>)r4cqF3W%l>X^MZ{{9i~uD8N*#hsI3yZBq_a7 z5<$|6*gN^tiqB`v<3&hk?^dT`y9#qZbCbl3QGX&#39fy4+uoAD?$?!#FE-m~7fb z#`qnCe$mKjc}G*3f)U|J6BJtEP_z^(E0m0XrX+NWq^rIt<5M>kr>CsLZ0+U?ACTcGu5I4Ifv~2XMP!bAImPp9pIHZ*k zin72xOJ+s%H%nUR>CfBn%F3;YIW`z}2`po@X|;myd;70#|KwHkBYh2F7J%>f z_UrZV_KJ_#c`FCs?w9#UnGkm)Z8m}`s3*R|Rod33auw2$L76z$N{q3Y)bT{yoTjkc z4Oe)OYpPS201&PbP-7ZW|`=WQA^F_IEY{XIl4FHEnu1#zMP-CJl_mHk-?eBrA7tD3RRE zRW`wNms4*6tJ#$0xz)Yf5#1s+Bh|z9A{kN9I@(tjN;~hF@3kR;e_QwUZuo9*_phq< zJ;%PU_R9kPdTd2P%w$SV79s63leMYuUz1Fjm>|KbS#Ss{H|n?Q-r_-|RmDu@tid8o zL1riDa_Y&lsL1l~vJC@bBF2XDR;N`iFU32_+fsjt$Gvsk}W_Gtf4~#XBr>j&J8-X^c72woU z*_aG@1g9vCheD)2Ewpcjyy5OBjK%g3TOA|`!^AemQm0Xu6U+?zm0C8MG&Z{nOO-!; ztjzGq^3{TIZT2n_SCiFCmOj}j>T6Bx9lqV$Z};}8d&NQ4YXh?Y{5-g?cf+r}9Rw>f zqT`NZ>LitZ$V5?|iUcp8RVjE{1UEv}NSu>W%B;M;%#>EVBvCY>7`C*N#2gx{Ag!#W zr9@h6Kq5)MyR_t-Y^9kt5t3n5I&c`h9YhrrnA(>dNsbV%uE|-Ux7$i22dXDoVP0n0M z9x6JpHYaDChsMG8|&dLltRtC{r5h&zhdlyL197*(Uvy(B8r&v~#%ul4VG%S_6&MPmx7) z5D)DaOQf}M&Wiq8E&cvHN9{xJQHT|c%F`h$nSE`RvHWUWh_sd~+fH8oPgsvN<2cIW zZr>x!oBMMMp;cu|z?Wcxbr55K=YE3%a;*UWpE{R zF+F%TDvqG6DnTpjXes8Cg2$>(VpWXAVur8ICuTveb8-$959v}T71oku<7U7Vw}-0z zB_j8j8x1s}TS#pgZ(qsy!up-RIlH*CzPOQxcXRR9=HjgzncPku z)l(-w_jcp=Vwur#II1>O~Nhu7%Cn=FWPv&}2dK*l&&D zrn`N)wbIPpezCf^iPe_po43w4i=IJ!>f}bB!P_}Ay!26V5u!Tc3Lbo&uP-iE7Y9i! zr13RuoU8M2w`UokZSJf$?b|Y})>-$G+O#mt&*z(q^UZ~(u2?+SB6Ij7 zGT-N6z6x`4vsO5du{h3GcN)HLmA=K9gP*He)TAlPz9T9IK~@QP&FY<>U!0v^NT~4Y z!k-C)GR0m!Rt%@sAL49vez7{wv7kun>v-vo+T+D4C(q8#HfLw?qWcQcmAD^!`{R-2 z!rMGEtRDa8e>h72=|CrrFvr735$AvoeD9wh1NiC7Z!E-|1VjA*NM2`DzjpiqtB*RY zNF%uO;Qk=^aSkxx!w=tgz;ECGH~_kzO=^iT60#l2b0y@%kN)l`_ABcXg(%73y<1rFi|Ioy z;R+h?-H-lG;FoW{AHo%sL$hb~3W9w2kB=Os|J>>;SpJsJ$vG!ChF$!!001k_3Jmz@ zqYnZ6{O$LHjJAYn_)qP7Ns?ymyyFJ(XdKmaU%6D5CQ{#CPahZV_ILmB5rCh+`nJ5= z-7?N#y4(Nxv7-#14Rm6G?szeZ&o(mP<9~ic;HNLYJ@y%l=gJbDfaJUX`SDH743Gc$ z5rChMA60p-Ud2%@>CuZ<@V$S2gp;mdZ5I7lDE+5{k>=wzV3mPtfs)rx{-BJ242jjib1=R{^ z)I4P(T0?km$PRq?_xB0>{{4@l02b2|ZYtZbsZb-tO3)cT_~5ZX><<=B7)nMu+19Ae z!5Ctgj8??gm)`!{gATa*_a6c|1I`S4!Ozb9(edog*$cxA&l}0`@p~VL$g`(^ULUw! zTwDOSy1Kglq3+(hfAXk0;Q!jJ{@-`c-&=PC%xbk4+3tG@(RhQ14M9{GS9BkOE22VV z;}mHF2-{rTaf0pDrT<}ypH$9F_=(dl;o-w9M1altxd7Yk4yiU-LJcunm96ARBEIgt zb=QhqJ$s6jA=l|58In*Rmn`V#n+<{Oc8f;HbPF+*?|JL)+t$hDvnT1VNVfL)6Ln^I zVR%OB;ERAlSjaf4w?*VC%naIL!5|k@<<&05W*Km^*$~+6wh0v%2pDhd zxpQ*qoRji^)RWR%ci)D&0>l@A;{Nk;95V^d3YSdTL z9*Qhv??`Pz<0amlpBrMg+lh?reiHjSnNWsMXE;N0p4_@~aRQYITsV`H=2dmKMnT(_pJY9+g~2pV0fEnhHkY!v(`F0T>pr}Fbu;D90!1a zCyz>iODA^??{{X?(K*{Y=c{89Jlsd<9oBUa4$2-_6;r(3O5kZJ&WTv4H^)0MlGA0E zS^Q}X;Ir0RYo)|1A|{NAMJ2AuAvtHQ1uAwS=K>$IwYqn-t7ndCQi89 zPnH(NQJr9(l$}X{)>?4`dEGppTQV~|*HJlVof{-Ps)jc(s*^7wmz^sf(g4I_V)a~U zy<}-XfOZK|taEP2FjiJHM5D7$*@RoORYN$5_&s zI{c_KKxxglOzj&op@{e^=p394-GY_w!Yan{#@G5PI6KY8Mwt!yPb#Ubq`@#M-vOV% zO%V}mLIYVQlh^f1qqx#lq_u)nn$9_K9eHlJBAz+4Qqi^BwogrKt7ljg&oejOaeW65l9P^2>thC^46fJ&$i%j0xy z9t*W5aS49Z4(Xd%kClw`b2k+PlYVff(UWC|wbtEsYPs~X>25qY4X`2x!H>QDdO!So zaIe{nVP4m%@VmYJWf6z9dQ_w2oO#<_ zKCNWUkFoKvoPA0O1;OTMXD9KNlNOLgZqFU?V7UQkodmW9*0QjwlIYt!d8;*>az-?@1LbpF^l7@aQB8l{CVcezwtMi)vGU8U~|D>AIM=)f~# zOi^$eQSs!+dsl2o=Ia7|(zl_SoEGDO<5 zYYS3WF_xqpUg`GE#kV4ri9mZ(B_M5zr-Lhw#zTIE)wL=W0oN*Wn5rfB+YAuTFJ*FlF;9y8ZhbIk+B-9xALgqzH6IN;Y836d*Ke7B1NBa`zt7ES_4{AiyQkQbxrKn#{5bH3*J7 z{1RDf&3k&P$L-}*2r^^}tmFS`OCzM&*xGg0+mQMtW=#V4)4K2W!*{*4FLl0pezWLp zgjpgtw(qsT7u(^h-OxMnrtqEO|GN+{UYW?$339s;$U-%4YevUWu^xfn$I6wO_EyhU=nI$L<()y>`ny?gp)~sQO^ic<;l}#MrkA=7E3!d z+7Qj0ABnWkMp`JMGY-1Lw~$u06j5zVc_;vJGV5<6r&fR?d4SrLYNq5eq;>FA9ILvW z|A=Z1_wxWo&yiPWQlq~qg!i0^eJ}o$E+H>vL5UEDk_u-?tQN+qGFX+JUeTMWRY&Ed zdT_ImH7b??$xf0i>I{By*0XBn{7YlExsb;K<}g-uBRVsx@`O(z8R{3Dj^*azKq_Vd z)wL*VN%Q3lIcl)dH~Uq!Q^V&i45uv26~}f7rnzHfd#%)-Mivb+roz-tNXVoqJtehPJ{4UppK+QfnQRKP zCZiV8szMWOV+(0}PP&mLQ75ZP&?CiMrZq!Z+rj+vAPvKUX;D!~%b#kwp6=+z zVZe&Pt^04o!>&P&Qho5H$GoXx1Ju>uP@`=&;V8YbbLHoS>sIT4H&sk5*Hn==*sG>NzTUa!sU+6& zTcY}lY?D}elF2NN%W1G{Yd5O~4N-Me{f@5K{z37_U2STRl7W-TbVAfa0C7loN zF+=g5$#iMibZS^vo|#%lWQnn=;H(R?U$sP_mnx>IJ5qou1`i`fFC^8frTN9Ek&k8& zek5L-wI%?5x3iyI^?z9RdQTMQFESziGPtkz!&B>Qh=^Vpc1+|!p{PvBn)S#o@LsV* zHR5z6+l8`XrP^_)vU)}tF~5&9r!Rto?jbtpIrX&q+ZOQcoot1A0Q zsWhw^)_BCmoIAg*jISFnvm%N&SVCmbjj)@kB#}& z4RWFb;pCwe!*-rJ_w|1GYX7=}tiKM-0`S#t_npW1KH3UIg`khvE7gTj z3qRdS;g*wBWMC8{p1BE-d6x|fDYt5JW>s-nmmdXFgsD@##%Ucio;JrLtwq~(R{k!H z#iRz^atr?Q(<3a7hSBp>L^;%MW}8@X$M9`FlHt^b(&dPAb@JP)V!juEj$U1&E6)yp z&R?Wj7UT_G{TYZx%mwYmW!{hnPlcpARUGNuAvGB1)V(UT^e~iNL7|_?PgCCHS!!L4 zt%>erJyz=+vgUf9eO%GoPUPG0ifx-RhR7{L6R4yMCd{>H9w%iD0bMkJ1btkJ@|$D@ z;;UXUMXE7^yosBLJ!j;acxK_vNdF4h<1YlWejnU_U+#b0+umVCtfG2d3G{UBFN&Z1 zo#bXuVqA1h&_x-bOB$XNyLOXDVoB9LSg~SkJ-t=cmwxhFO*c)Xg&ROx<W9&r2kzp6eGm z*5CiA3r!qAMe`Udn{!I;$29&jBbllW-puCP6jN62rEXO3wr*_`z=}>$>%v z#^WLl`vH75kFmV(Xq39QaEWQ$Kdls+_~dFNWExJJy0B#?;)MGb`&8rs0LNYptI?D5Ec@|# ztR}`HtNt?ioTiOcJ;qAbj%vFfsio-g%`w*%MSqp4&;JS46>Wy{zHc>?1B&_q?1=PZCVIS9Vo4gcB>m+r69L}UJH6JIa*VmJIY*u9g;WUd+O`i$Y1P~jU? zX7Q%5-yMOP(#U7}Dx%(Xm_sF2wD726Hznt)xqO0Pq~@FSY?&)*absoZ5n{e#5i*XY6&yUZc#}qhULv~Yq$r8c6~gC z$HFX+73ZI9y~r?@1bm}s2~!W-sU!@d)|noq>!>+4YvV?$uOpH%SP9gFiji)7F0(3X z$0;+hBiDw5;FrOExf}j?{e|y;VVDKrr{4abtNwTED3cj!@X9K}bHe@VqCs|i(o`=- z7jV5PKtO64&lq<|RwhcOo0u|KIzw7gER*S;kMZekA+45$G1}EbJ*&=fTC#wyPva&; zl8z(>53p8DK3ne!-+(YBxnGeru~l9N!gnDSr8 zPLm1Q5D&~eHP_*>&`vFsbTWa$SQ<^D=2lb6-tz)qbZ>9-SYb^`!lAROi(wS7Q=1%V z8;)$zk@P2CKJO9anv-7ncWb}g4!;lXFEum#6=7B{_+&eLxf`B3i7AJja?gVDFVU{? zm4{qSKvBOnh42*mhUid|Icdc#PhFcc$=woMhxr9Ve5Rsq& zTjJe-BQ@_wVXP)lRv4@N*Gd#L$u^;0M!K=^f7YtF31bC)aH45Z>xHYWL{X%r|2}3* zb1E+y;EY@m&zyX@9X{O-PwijJbMLPRvjF^I-T%4jzu6Ci$jXbf7`8qEa&^k}D)hdN z|7&I~TQU-Bq)h#9NfLWbaO|{uiN~AS!zxtaCBoLB zI-L@^b8^jyN-X9M4#1g#6@0t5pKXU9dh7mTlg0{v)z^1>d&l&DTXpZP$1Kc_B*YU< zA_T|3JMqqwSOE^>Z6qSuydYj|F5*Km{Xci0<7h@4vuqiTo#{Fy(%|F2)_YQ10h_X2 z;7FLakye(pDJd+I0;Q1&Q%ser9LGG)s*;ovOt5J{8sy$!vql9r4^8*}G>$EPsR~VM zkWp$oQE!kY={%AzD$IS(;+LA4j5NU(l9(GlVNxfzPD}66YoQ$Tek?9m%}@)iTGgwy zZ=KI$zCNa0cpNTgkLo{U>p!bOF7t;q#eHrLeHV?fN~x%xsj6p2abOjuM;6?TPVJhO z(6L8htb>eW&6z11m6Uo%(BmdC7_R`wj4_T+LSoR(Q|&rQX?!jIH6R-jft zU8b2Ui!#x$G;Ze0L&+hR^P{S+m`V0HY2B7tnf$RzdHs#9GXwI~FDdf)Z?~MdI)T38 z;=|5htebsF(e0nX3n;y2k@PT!v9xeIXf%s<$i``8&0=s#A6r7v$#pSSi^s|mI6?wo zB~gd1M4ef}uhfP@s<%^;1D)Zyj6c(zj3#=G)-JlX>4wUR_6w+QFZ+FPpYQrFc7F|< ztT$|ye(eSS`>MY%JmdPJBR~h~Ktcw<%Cw?)VV#tT8W}mQj#Hik6?p?BjtoxU^dsvt z9yIb%iRCeYz@oJlb*adYlFf&ccJ{l^5|o5$jh`a*rH<*}rDSxb?RZi9b156|QlhTPa%IQKn5}T#g<7!DrnTl9=@;VBgNHqt z>srXooPbeo1Tfv~2jS4QI12B|Vr@H*L|4^RN)&q2^5abHKU-H*@3qoLVA|ERr1S|l z!zSB=6bi7m4|HulSZ1)=90_z|7^|92qn-R%8*L`ZVnJmk2v`8s;s@2VI7OW@LMZAV z#@_jio$69X4T%2U6oG^q;%X{u@{BNKM?7=#`EK~1tKq5pi^ia?&dxRf`u+C$$J%T* z0Jhs3IMfRp)o+9QKUe*^;m7BzbKfl((1{^LXdn_Mh4pIffPU!pMB@~~2sboEgz8Wp zmTBf`b#?||zuzMuEsY~|^^kxK3WN9tGiegJUY`RPhCPZprbjBKU8mE}rvuK;&k5{y zyXzyZv-L)RVZTFTrI!kkKK2J0Rn8-@IX`!h?RJ;_A`h`jQed64vyF(@{VqLGIntUx ztVeJDzS?cKrm@kN8s5@n#5gst&o%&te&=ND`BIh2v1l?=Mr8YLX9MWSkX+pKS!__gkL&?cz_$`AQDkVzG4v1sM8Wd5RLMb(Z7w z|9igK2(S;Mk_IP@8X1#OL}zE`0Q)ei>=J9$d=&sOemZe}eg zU+qrtdCwvX&(F^hX3>(`SGB*?BCB>S&erD!u>G!zvCc$;KO$xeE9B-K(_lI zKED6q;~P2DiyYN=d;7^%|7-6o#CILWIPn#|U~8Pq?!0sF?mPEZj9zfkVzaYUM5YfC zfxD01x%=py_>h)WcBtxMrwZ!juaWOHCJ$fc|gQDf)0q?)}@SXP` zN#$2^w+rp>qzKx3=YvNN zK6rF2#;RTveFbHaLuuWkfy9Fk9{ufuN6Y!GDs487>itLe-+$D?DCOMMdIU(^fA7&d z?>|JbIgz5faJuEBvOObs@A1QXj~`~G1Mf;|We$Lr+oAjKKfE7Cb(H2^<5xfUd+$BG z7iLj?20G~UFo8-8(_cY<#Qnz)?md1GQ%TtLUQRA(iLnUWee~e&qjz*8d~CgCP+Q#_ z^-YVryA*eKElzPO5`w$Cdy(SqPH_$H?ykY1xO?$p<<0$n-cQdwGx?O6WRiW(-e>RY zTEDf%D=gz;8gzbz52*yrnQ zA;4YKwrtSNUMQs)Ue0vasUbR@9ypA?=C+?$$>Iy+=fK^D68{e9Y;8gROkOyG;Y95% z&;nM>ZbV#0d42z9b6$NXny{xbdTuNEJoqU5(tG~}$S+(ReM=CsO>&vCX>-`_DG1xGG1BCWx zn%$YYZei~a=-l|~f8=0hVHI;0x-wqG*xM$=&B!{F0?tP9WA_eQ3AUS+p{ zA~3QKCey>(?BW%m)$_GXJHUe8ySk{081j3bF4U{1?*YkLl9yL862gZoDc$$!8$H|F zwc18WR;4_Q6}Xj-;+-2$>AKD{$Ymq4Ggd}UKKK@m-VVXt( zyM)9tHQ^w&KZD7tJUd0ToAZW%-vk{W3C-+-gdYj*HqBr3^zUf+1i9LdxeRaS+C?BC zSWVjIe7aAOjUleQ3^*;0V@WMBMGsF)Q)5bl&@?zn{MM?3dHqN(;1D^6H*nq$99xl* zDDDhL=xgZ~^=lIjP(?_cL*2fxD@!1AnZ-Q+E#8QUv1Ase#!T#S6c5vB{aoVFfy~G} z`_=SLHKc41tWo6G=q_9MRjq&3in-k_W&*=fsu0_H(GeC~KF9L{cKh;@ZsT9L{{rp# z(lE-m*a;}7)&~3&*!Z*8t$@xi|3uohB73U@>wi6ATs{ttF{E~f-^qNZJfX3gUt~y~@Zs`j z8-LDgA4smsWS}4Su77k&I&4`-*U8}^i!)KQhUQfe;F3KzQZ~^!1FDZmIM+Bl(nNpc z2y-zD@aNC^H4BHi7%#c^*i;k#UM@chDPGU=smp+ucQYsI|D|q*Df1kP!@vrn#m&s; zhyo?%cluPc5@wmuX>|uHurJ4mF2{I=i~!~f*`jMBhCAmcd-_dNU)ue)EY4t6NSPqR zpH8e@{Sp-G1q5;c0DEquVYBbfy2xUgXpXslgI zj4aE1KbsEBifJS=BU*7#mdc9fHB`wtt)-cuE&SO9OU6PLP4zsPDE!fGBbje~&(p+4l z!z9^!>-ZqyLFn6JIa*p>V*3*dN2h24`!tHGi(=12?Jsy6alKTS83L`a2{$ZR8~b~= zp0+4lE7BEC5p4zbH2U)>?-(9KCaJ`PFb(oUsSXKi_Vy;GQ~9v^4jj|OB2nHEO4GP{ z2x&C&6t~|Y^MEab#p)Ib8bjF8B9Fwa_yjloYo3tA-I76YDQCM`Qqg#{mnG&ymCIX??l zZVAr#XwEV#m`@a5O6PrV&3wcu4jj}ynKpQ0WOdFMD-_O-N zt+whM#Y~WTa2oW&zgTl9tB;KvSc$3Mf4hh>Uz z$S=6Yp;6taYOAkT0pYVrllP~Lf=Ro=4Vg?}f3!9HbrAKdCl0vWG<33{|7JdS^%yv= zu`&5~F5l-#bmQN7Zg-Ojr0`=C_L3q?lYWZ!6(SK$^`);`3 zJ5=P7p3@@wfWpgvK+`sLWc%`mDWILbQ7nfHreKlz>+?JCDCa%E}I z^dA62mbD2pS9Cq2upW>pg;OAV-7SljWRrTi8u1F{g@s3dk@r&O24FCvY_1Z;A@NPk z+_dduv=EJ}FqrSB}qW4%UOy8;H zl3hCeTz5eu@!LHPLtD9)gtVqy<>s!^%daz~kvmA|>41n!)>iW>DcY$2j4bX4?&^;y zRs6?p);6*EDH)zpU z@+NIs$f?V!m61_x+GHyhN6tIj9v@34rz6vTa>k(_-5IFw$KV!&ua*_vt(6OUTkKS+ zd13RE{4i1Qg1Dd%L~yvg%KW{Rq4`f0P__9d+#L>(cy8pNz(IOK%+ztO;n9eQ=yR%G zvzNu*&i3H5a#6u-b^E!m6iGKuz4;O^JOYxa@!+g0R9?XZl z3m{@LW7G)ButuylT*D@pa7Dx)l=SSR<&rvkTlOlj+`x*bXO7}9QFa;!_So%*E_lUe z?v8|W=i+go9NXNKk<>{dEB&k9t7KfC8D--hi0S8Cb8Cv}6l|-Qa|IHa0OsmVI6*G{ zj^kPSo!o4pfwSbC5p7MLoibWVmJP(6W23KUF9cOWq4jgJz$y0SF&U)98lpRNSFA9m z=lkd;99s=#6CPZU!nW{$Ct)|1kjY^#?Vw>E;MqqMQmJaW9dK7~B^ZAz;X>7ALx#K) zaJsoAS1smg)^)7-hjcF1k+jTrzSvbFWt?gW+o~5kIR#-nnEnb$S-}+9{w6`?ll7-7 z$WlG(3e5X$A*dp)=4We94AVU(PNCi3s&Xma(aW&mm%a_8F7R3HqtTQcuytX)6U~u> z&HOSb++HG=Qbb>KXw$ebcYODHmt!y~%EYuk6J3*rQBuO9XA70p&pB!+)Uu$KIY*7c zU1wHa9g`S0`)eghC{vQ9;ezpRIvWw?=45@h0(S+jL}#um=7?bRXk~#&H(^ajuM7iY zumT=Hd|Yu!JItG^KyHb-YLAwyl6sE=FRJF*uKVtLXTxF7 z_VMuFrWkem!Q(vi-X6cdWSVctr316fKc3*apI-VwkY4c!G zJD&7s;mIVT2_ksHA%zh<@woi+b8bb1{qHzpUUTf_+0=@DPuwd-BIJ2&o!}qiYf8OD zmDVHii-iX5Rz>lTS^coHmQ{&86J{sKnB$-*Usd}d5O_(=Z`S(m{4UKk7p|oyv3xA^ zBj=kkJO?+?`FqlJ0LhneX?VWxCW>w(IHj{=Bx2Rk$kDyBwD?(A zSlG4tB2d*q<|^@2wm<3V1&8;rL9tBb9Lp)?3w?kWyBI8dtO8qu{Dj*TNo0H-u|B|% znUyc!jrJH%z5DI^RzNdxz}Y2nLTa~`qq6wJ;g8wY_bB!qU)x4Xp{UukyR^X&`Vf8b zDKFlFqw9gv3Ax}V5=2aBez@b$bLztKCtYe$K7KTE*?C|Te{#H%!ow*E6p>Lp0nlFl z2&NWx=}(DFfO$G)c4(2jrFwEl20J1PX=a&LQS8#4Tm6BQg1apR5ReMlWglEZI=sKjRNgo9Ulk(p^o`LH>UM^1gq5e&^dW7f5~$vJ%P%;+GVEx zf%39i79tzHOPKW|;uo?kQ*d#eg^F$KHsZ6~P=yiOGG~%P@!{wokb6$N7&h~-v39n7 zq6I}Ots5y1sb~u7IShlM(mtR2Y0_7JbK3VGOEjtytnS`m)orDt=VeWWJXvYx-AUq& zf780wc`;O^zdNc|fw=?9|nvZ$2I;KuPQypntae)odfMk(Q9MG$6Xx=GtSTl=OeGw{exAs6El_EFvkvquI3i;Y@ zaZN$AQ)<(Uaa>_T%C7DZ5>p~+50$Jkq}W8oEEe*QpKi@3!Bve*V-%%}UTwyYFtIUo zV%j8*24*7(wpmZf(Jpi}W5Dok7BzpvG!Eb0g^R!z5mykM@=#-|#(i7nvy6>%IGtZ2 z^N`ax8C21QxP@}?hcTN8dM^D;nqKBrmTI)?S3J{cYgXKt}>ljlmy`e0FVro2Y8we_zTf9-oTl58#gM;01Yp~zMWqwkNSrG zux$wE526sHpr;P8*+4}1u{jbjD`={ zDpV~=&RP>5xXq8}q_KYbt8T=rkd?9@nUl6y%7wV?jBx|gJQGf545Pes>lT!V)J-_@ zb$Tw5P@XtI*sfYp-BicoB5?JWoY|TW!=)5v<~zuaT8Y!{Q~NM%M{+QxaMoc5=415e z#{{yB#y5dcTI-NT0cCiFah5k@H0N+G8NIMnUqu!$ZnKGbt!8SW3REH3eQY?Jy-%(NtEJ%{nf-%~Q}cB~G17xO$L%Leezzlvr`0SlgG3%#n4XeqxYYp5k= zMJqSjOnwoa0o|EPkpaa^c*p4f^6*Tp449R;*lyW06AH3co7B?$l5%2d>4H!E-qxlU zT)sNOlws~aChg?v9TwliA>TD4dBW(8WD!~4aFp6??$rMyGYwf`vi>GKNt@C&h}Rg_ zH_;&LYfc|!jHYy^m^&7KOuc;2x_At3P$G_bk0RP+FlkOdU_BiTUCI7c0UWIexw~*W`HaoWsw`Ity(q+* zW^C3H1B!?{%gcnXxezfHMpHY(8;%HCb2T{wqZ3H&9YPSyd?=Dkj^4TpHu3$5L_%G#y zF5CM>3ZY^5LP=pi<5z|UP)0^k7U_-gh+r`JBqd?gS6V?OVA+`GG;PT}U?hoQ#BhKW z1VGPcyNZ*5WiX%voNfl#7ky99kh*zs6UZD9e%z0cW!$Mwq7ry(oLICc7*Oqwz)bs6he(gNd!+*;*lHygSXr1+#M54obyv*t**P0k0X z9$E$-dR)JDFDv6uDMHHjPjaQ3f@^QOnhmqetth@e`hvo5T^!?N0_#jJX?s}}NhDCL z!bFVvo?8_A`S^Tm-Q_CPmI3)QRV;s#A}rx6 zWR+o&;UUI}=NOeRA&YkxiY!e{NCm}4o<|&7Znfo>r;8`ugk;FpL2NIk)`9b%O_g|y z3F9?MJv^lE|8y)yHW7DIAje313=y{fCqIYml{+rCjjCyCA$JaD?KbFbWy#5d_Cxr1 zy)Fcy?lb8SVpBFWZrPIaBA(ZytU9g+JU=*!pkyF2o8Wrjm-#JWnRx~|SvWzqA_G5* z)|4r2I=uFjD#WE87N)>RW2k7SzOsB$uEdCO9PhjQF#+9)x!+9gzm-3r)Mb0_zlDm> z7UD^%{|pkk%)v`u2zdDjhqySnMd}Kfpo{GIAaTwO{b5PcXyGkv+{T8JB9sZoM-`4^P(jS(^(hD59Q9dOV)8Yt$d2<1IJS-p^2{M!RW&6v@pTs0X4lld zeeEa(GB$c~{eYVrmC^-?f$iJT-~oU+h&_`rvvQf=zNM;JLN44`eS%Ta0s*fS`#@gW z=_Yq8WD&g$-*3Bfwq>yPoj3-vR*QtMsD!*OuAx5vtrnu{tj8I~h3z8`O$Q=NG3_Bz z{Q&13$55X7n#H)RVrz=r2S1@$4|~h=n;^$F-I{NSjwg{vqF7U)BLuS`#Vsty7AYuc zfo$Emlro8J!X^{&zyXR(4fxftxfIlx*F|oG(+X;l5|gyc=E*tR(=A9^&2N-93(0w% zX$bm626`RO_uQOR0z_H&t6jhB1#tPO4g^~+yf{yGW7t2I$y<`|Se?ti3^XHSXpS4Ii}Db7GbCH0vd_R5T2oYEzWK*3oU%1 z?1W_yoEYhjtY3wA##_J@k(D=SMSS)li>}XDM=20fuBR`ctBQ;C5(QYsYD#?Q3eoif zpVnp|CG0!~ z3@s+53bu+_vh6jp3bN3+=Ec%><}P5AERiu;H4cwSZ?q{+U4YTR%sCC#3<0URKyz*X z`3|4Y&GsU*nD(Sxn>SX~&-yem8M(;J2CF4?@o5-;&S8LHpj`roX_-f;PjsQjmsCly zHTpk%A@!?$fb}nv#Wr>FP|Bs==}05s+egL`a8h;5`t^X8r&-2 zHdJUxPKHNiXqp(I)JQT=46poMlByy#jjm|>s8ka!qG&sB9;#YMy0$&s%GWJoylNimzdij`=#I#IgiQGYepujivCqEYDT=0-32OiGI zXIgDf|Gqh*e4}dIZ(3WC)dcY>y+7P3d`H72KREs~bhVxpg{(e&?C0K)^8*BW4w>m% zf~4Z)5JEOB-#jC<;r=!f86#vc>_bX07vv(J{13;bKa$HU4R z5T6ZeJc^~=!F`k>_X(Yy&lTn}$;=jKqOMpKfLzSk{$A1QLwjt+o8XjSP#R!qzXR?- zO7gIrHD%Txnp(U{;{B~5%g@=W$F{XxiOc!mR&K&f-VXq>ec?z`hMyPKiu`6O75_zX zv_7nDFQT3m68`+<>-Iz71W_%r>3gv3$@JQA?!$1bB5ihbD=)s|=GcYX>$eAm>;De* z7Z=};QR+Tx=OAs7)`P#&C>E-tdU>=62yMjhd1gUd$>QOuI_KT4A!OZ&8s^$-9Xnf& zEUr7C6i%ROGo}HMKD)1!uC3?G>et^i^MB%MJFc(NOkB?Jc|u+jtr->296|htdS48WEwiH^WS)4* zHcs%bu=5Om3-q>q@7{>NRiSh0>1hLO&T+N1H_FXwLTq&KOmp+~^>PHcioXB}m&R+C z+mp;^3M-B40${6@9g&Z!rghJi`~pzX7mQHjtVvSSzO@38xhi?id?{rF3>{eq%BgMJ zEU-$)i6}sc{YP(wLY=Ga6@wOtBb?1w*V8_(_3KW{Z4|@+?OEhK3)kK2D#94^s040( zrWk^AKYs`o>v#(w*>K>DS<>`kc9`KkZ&X^NCIe-6&Yve5x0Lbu@f}39HQhdJ{hQVN z7~JaVM;VQ?f%q(b4641TzzaH)(15>PVdg>${zrYH{D+9vW4L0KoxqFTrV=cn2fK1u z0^Ym#N9GV>BCr8{d}KA`ytIQ}4c~I0p|*VQG5UG~pY4Ctoyd6XB0%{OQ-OVQumN#e z#n*m+^PmPj@sye8#}8&%<=qb!eVA=(aQY(eg0I2@0}X!|_P);dho5U;@#avLOh^yM z7VQ8OgM>#J9_<1 zddKlUUi8rr?fZsh(DYuSj_$71Z>Z`%PtkuuKMZ@G17xqOAl%Vqu>fK$X8gy^yx6Je zml#R!R@*%gt|#gBn}|+*FxROqNBqZgB30NdTonJ|mFptciRT&QbN}OO zA75s7IzQe3^n;cwS%i7}<%{itQQH$WJF|v?wiGGA{_{Ea`y$SR{Xjo6hDTT8*`=hp zy!#)@;Lgo_rV8VyN}a(WyPsjUqFgA3X!>LI?9D}**+`?NQBZ)y_^*Dw@OgfBl61FP z*)@`3EI3Hc1hZiX9LN`1*xV(aa=Ix0`?nii>R@d_v=;q0D=RCMp1!{RhpOlGW+07>^o}TB z)yMJhT3`;u_@v((OSdp%9H}}2H8T94Iqaqns?qinRF@YMG^<1C_ktGs1)uBBUvIA0 z^txy$wYAf++@U$0jW7u!8TFzl$D6j^-rh+1mOO}!6Bd62+u~!;l#j4(bE+jTb6-_LLPkL9k zS)98rouRM~vuW|DdtPsaj4d55AVo1ooS~?zrgo#;EI%K~ACy_9OX658^++$O67jAL zMYmpwAKczDB^FhGhO$RzF09XZvOjkHfG|2Pn_s_A%vxYji{J9MZ zGTUn0JkZMLd;jec&gZGiZscl9_&h>~2+&x%(5qqkE1Tz_fkDaA^J7ejwmSm4pf2H)U z7!x?oK}B&oNM2}9?N?*kAgp>esapmLSySsca!%NYFb@pCV9c#KYlum^FdgPKj}86# zwt)^^EyA}L#o7(z&+Kt&&nhv@oDsrtl+xEy zvX%I!huTw^#bVmA=$@bm@gP+=05kvNpA*#n8e;b$a7lQ;5eUU^ncFOUi|^f?N#W|n zSom~yj5IluR9w_B*oWP8XHIFBK?nv40gw;V z^h~N(5&0oL@x2kQ7`8~-AjpY~%8nB1Jjc~x7}1t!t_;s3b3^D`OfxOXAIa-~=M5ji zM%CK3?maX`K2$-yK`W4AS)B3cLs9c-A6lKk;K8$H@D6$KVk3@x+vV%NVirrR(c+bq zV%_*Hs}8U>*BHN7%~`!eLNUs#f?=;OKTDthGD)UhBJi!`g)1weAPG=N`0gDR( zAkK!RiOFj8efDwq(znz?cYyMwrF1@#hjaubw!n9wnN8A%g)twHYQ#YbXLFU#CAA`s zX3=g&b}660{5N%BtTFvz54Ag%E>T6@Op_ED)Fd=0fn5u&6U)V*iz=kG;B?6drSg$%%%4Q@QbA58j77DxlPK~hcLn=h^el?3T8616$8yY($dg04$N)2Y zT7_{nE>j})O$SV&?ZlV6FPH8kOuz6U7VD5wS}pE~&z;~;qX1W=nvYvN^nANlLtje@ zTghuqEK?*(?L-WKax_r9`!#X^DKLJ55L@~v_TyU1lN0Hn&(RB`op&htCY{yR0pTR(1qx?J| z=`UYg%J~W%f)rK-Y@Zob)0Ts^hi8*+iZC1B(-eI-9Rn?^GfrBiLKFjcQote90`9Hf zujm&0IdgRU&>%Mn<=eX~EUUa8a3$4DQYna^G`G30W%T;Zd;j1#6?bVVJ^KPZu z#;9li#HYTA4{YoI_*fG@KbNJCTiWJ7s8b!9vgZqzPPJT2HCOHyB6ybw5ka2d&kXue zO@0q^%G_`idv2iE9I=o}G7oXs!!J8%$@yulTbfnjTU2D9tn1Z8AiL=*O?1pRg_5*@ zi1A#usQnKj32%@8K zCDq_FMgexF)mBc8Fs2kn%u6L>1e=>d^Wi6vskKj!jhBDmOgG2QdGS!anHB`oV$PoW z-_I*QAZeWS$}mi9>@X__QRAiw5aV|qK0-~A99dICaw@KM65!{|8H5fWD;!h3SSzF0 ze7571l;nQUdG(^~8ZgL4WX=@qy{Yajy^dv7J0FPf0lfSKQ$fFv6 z@wQVWji-V$*iG&RhPd)b5EM%5V)OH6BysvKgU}26yX1ou3nJdoo>1k(Qg(}aj%l5X z@7B6f&!WEu18Rf6!X-mZ(~p!FP>kjhX+#(x=rdt)uJO_%U6m2@K!(pZiiO*EcXm7z zbKXg?wQ04Ti)rlWgc3};adn19n?*H&3od=l|GWhP^&dnZAKihukS@CeRW=P}?Nxct zmM(I_+g}ttYEj^nEvAY$*da3YD(Q2lgx}Mo>p``j{>dzmjN-t>(t5sgOB=Z~{*e!1(Zkl@zh4=3_v+er& zY3$z{D)q&P*RQ%f+gxU%>UQ0QGJAq(!Od?l>_f>|(T1lh{Rxz=mv=jCg#t(Pr5wC@+<2@r zF1 zPAh~79Opb@-VXvqkj_8y|7?Iu^^sAUfwLA#oBxKvpZ|o!aJr#Iw~sOc?qrJvN=-D4 z7GHJ@0TgkOv00|0%KReh-J%aq8rcO_Rygp~V}|DmPT1pzjnWTkn2tkX14w@#Zxjrh zc6&q899yp*_O}8WiLO9XMX3VBLI)$wy;M#J*27AXGQh$XPvs#h5I>ddR7s6Cdf79# zIt`Upv}>rBTCi*gjk=IyRD%Y6B3`27Um3^yu_o6kti&c%_D{Of*9Ev2(lNy%Ne~mQ z(wZX0)zu)mg8mdp?sLA67jfz-$1&>W0F5S7{hB^}h*M0JeuD*V13EbcM18HK9Ncz=jruZdn+?ihN1*e+>>xZCV|_pZoZ1l?3T_?gT><{67?{g zV@Mdoz(P1NC~akg-yEj>)apv}6FkZ)g)Tt=di%R~tDq(mG!@#Z6<8g)qEaSH+6hBq zFDpc_pf}{3f^4=1#*cs2#~pgL0SwtDG0u3_Dvrh5PfM^67OiO#Tc28)#Wp28Qu`Fc9`X|jfD*3+L!0&*FDaFHjwlNU5B_Sd>xgG6MMP8x zu*w`wY4%N1-&>qOiP;!uVM6^Yg2&XQH`I~hX>5^=;c6~?q2XCb0=A|oKR~h+CBdcX z4WO3fH$zl>+~N`bUrjNqdORBmOceOhP8~xj3hxWZ7#U=TBLN$WM)1ymta^0hu^tfw;$cw_NniA%zxh_RVa+(Z-4Bmy*k4rru` z-T+VtCV2z|3KunaAc{gZNp3&AW80tguD|KgBUrm-X`z;}*|qR}YGzRp-@dk~w7f$W z7STsX_GQSTg46?NQ2$&TecH~JsbeGPgRRmQTu_yn*0y7ecd+fiOOi)XUQ58S zQ_&`2@$)oA_A+Y<7Ceul5{Q)5t34_wVj$snbq456-Zc2N917a(huiv;s)Uw|Z=_2l zTtNkIWdsFYvO7JgdN7_85*%7%Drtp%LlIR-@;E|K{e*h5?wVk|pK)Gfqhd}bz!Ati zt(K1s|EOM`i_IPdS5f~Z_#0!f86=^x>|S}nbXba^;*#*_!@SS-`>zHQBW$K`9xTo=!4+s*X@_)wVtS5l*zi~lJKqaf`z-36-s`JDyGpA5Y#IsDq zLozD@u~=4ybKJ967{ahcVsd$x0=s&Zoci9u-HKarKN*%Rg+aui9tl%6_3TOG_9 z+^Xb23aiu5yqwQEt~|g=F>ko5*}TI?mz%j@f}uiNpK;YxNv(xCMFSj!4t^pUQGX>; z<8$SjY!5~g$MU5UqU-5*GM=E$Cc81C^>U=cC9`9!hD*1OF;B{;qhBbNoM6WTcMU*B zVK&qI-50)EZZL7wC!~I>uX+W>dbbkZh}W-Z zyt@VBW#5@>m*^;qJkEA@aOam=qKd0wqtdHx)qXG4mp&hj{h}z94*Q)0 zq&y*QEJI=y@z)zdnl`%oZHxk^t89uONUwq=$@Fu4(;K)(zj-Y3%LI9F`Due2$)A&< z;(FnnC@<3o3@DnLo{3-_kkKFg&%tN#;sU-(olecL`EOr7gTd#a^!rTK1iC6=n!(FS z*mS=yqRpmMwTXD;&H30SdOJIW(ut?*ZWfx96r|@9nOvjUg`qanvfcH$5S|5lm1*%? zKf8JT#c3rO_KE?Ec9znOvYkmCr-enLGFxfPUP!>KN!W4HXyORu+3n4A1+#tqq{R;x zzXWe_)&lT$D`IGCno^*w+X-IOE?i_I(pOP6O?V3_?4TG0B+pbQ3>F2|zZp1F#Pcj8 z37Ax;_Sbg5x(Rj7n?jzP5v~pD3s9ixX89S zW70p_CE8=+@{CFRyQJogI_QkXZAgbLm5-JY7p*{83n!79XVIwcYczv_G>=*E2Ew6O z7HzCe{^a^0NKxkt{n$d^G4=}hNMOsj*R+zDkQwr6EFb9Mm=0?I26KeIjNQ(A1>Yxl zLzYZVD}~c=1g4q8xy7;L1W>Dy#}zV8UR^vWLn3+%xCp8g=fIePhtKnx%K8a0fh#ir zU?eUi8=BlLtsI0~&;hLExt2|}(ckE#V1@a1T91%JSo1@H$?*D;?*FVV9WFqKFNW=2 zQR9*>sWzXQh*|Sff-ycb_TYi0Dr=b{ZLzfG%7QveWngR6{j#jWf~j+GLfS+Wd(zKd z39$EcXUQ@#`X?w~I=D8|)gWGeAv0MfbA6YeJ=x0YHB@pfph^)ZxVDU@t)V0e1y_#} zrNN32e@ zmfhNv6>i;`L?TuV3I_am;YMY9_wN>n=b9g%i;XDrj;9Jrql*1!rpR0li_<$UB?_A@ z?}{@$aGD@$CVtb%lf}iGY(nZ0RJnC39!XwIuUt5L>7OYTWalpglcG31wSO}I+vG;u ze@K3e{Jck<@=-F}zJR|DyM4O5Vi|mBt_l}e`cfG#B?l9`Bq`VYjRrh1br_qvC;Nx{>+Nfw=K!*%{|sg8?n5hgACOw5xu@jtHHr{^ZTtblx7J=4*cdxO%D8 z9nHJgIGfy2@<^`CAx2QCpny+vKEFg$NA@Q61D@$bnxvSj>VAVlrCL#Uc`r#Pi_I*B zZh=f?ISW!|DO~R2q8sTT|E}QOPdfsv8I>r`z*1 z4gL%-CvRJR$@L^2iyXU18KNOGv}X z!4t?F)|SI8`dzGNYRP83<$A>681$(DZ41X4iZ!?Rezk*r_z;-aa|yA`d6+iP;c< z^OV1epsLAEOgHi;c%ka-Te5*kQLT~EWgOfHXLX%Frs?pYhqU3YwNG`q_mgOh@bc6D zY`IT8+FTq}|J#@Vdzm4QNl-g=|4#fK(joztviG=o)qL-v^z7LD)pqW6CEIr*$t3 zs`X?YT_;_)F;0|g%riLFnsO=Svtt_F%$FT;%GTe&Md;A>QSd=~!1!$k-}pSyO(7 zCKwm~tt-iCW)qTU_FyOd__LPHb~-+JSf9J7)_L$0-}sG^WhD&9tKR3!GP~B^pFD~d z6jO0?TAQ!42giTffE1FTxlxHgm!-gZ-~T<9d$GW`BD4_Mr=ziEHBbF!--Y&O# z47aRDc9R6-!61_4>r{v`*2{E0llph9acw4%ZX9=Rh_3>J8mu^3V~uuuREwwfmY0`? z<_)YinRj%&M{fF}d=N6MD{v}B)lgdadH(kXMR7JTOx|MXN1*~-#S^WDqf)8QRG6^@ zqT+sKA9}2)TX1f2cQRHvhd&%n2c7VcZf6$N_;4;`X< ztT@7rbJqQ4#EjQ05nm5+?VfFU$M4*|MIG_EVL!jHgZ{PcSQ}V9Z2@i6*&QVLE-mwL z=x{Co`rtRzU#tvQz_~eJBKkq5c4lSPsiGH zf3!+DuH20)O!7!I4x9}t9pYKkt&?Sba79b zy?5E|F{2V$Q`l5rNQTIHw4i2YXUCl_5~#-u!E@nYLrI})mOnGc#pxCnn|5XQqIJ7==&NxT9-IBFf^i~hf%T|+aC zke%quKfP?PwVsce*ig1EO4XkF79n*lsV9Voqt_Qu; z_d?j+R~DIqAAT0$#-N;lm5K2aV_#+<~YNX*vv$^ zZff*@5bVdl!I*lX=`RqA;xC(lAD9#V&ts_UuT)g8S~?GquUX z#_L9fuI#Q+)@|^oe6QjWBQ$wS#gP1W;K%&?(-$QMO=PP|ErAPCcf$gjSrdst#Ww0` z;>S^Y#wNL!!UKK}M^Tz|Fd&h&}q0wJBp#~4`-ZX46oHb>p3 zg`BVZyM58Ga{El(NqDaFMqeOajhBvrLa#g1XKyYt|2K*21Z`jFar}?62x~{>{E?E_ zl$Ue`1^td-_afb1Uaz>jT+ekSvZs(<8C1uuZUwY2gTZs|IxWV&DWlq3*=3QJclL% zcAguMJnWvzAkf?FRM6&@eZIltdyUpqv>qwEJqTqL;L?4(hMx4!(PwRNrB zLI@^P|Fivd54v_j_!}Ewqbg$0_st*on`Sdg?pK=a66(K>t5+Vgthvp!pdvz8{$N;~ z{nDA@pDp#<=4_po8=-syP3@e!DL&*4xZZ-0CRme=`Ji@nbTZlQY>aXb80!a zQJER38l(5~#;cvuijb`WcTwP^LbH~!D~XL6;=c(0>t&teY6Cm!=-+w3W*zrWk*u8%I*-=CC6L4N_ zPtmw!@O-d6XZ;?8$e+D8Xa;njrv3 zQ5~`9XIreksASJU^#6GYtT{lm;1=!ykwp;6gNwuVIU7&qs;^bw(`<+DX88h<7+qZo zE~h9+4s&*{-HaWWKU!?rzX(MyZhneN`pZnDXfDb0o+9bjiLj;My5B2HHL~u;IF|%S zB$I!U=5@uH+DBKXBZE?DKzt&~yJRJbybhZqm`fds?z?n>3M1Mf>L3t=NHAesqyi>Lh(2n5DGN237B}?tL4Z{^_PRbX>MX~UTHL)uhss=$J%wVE~)0n ztYI=dRD8?nbTrckrl;s-rbRKRii-+jnuU-wioBZ z(=xVSn+ijB~{B0%PJ(QH@n&Rpj-aIA%@!*oYruNL6=-cAj9aRi%9ET9XCw* zbcS-f4^9DTQYA4T-6n(z2%}7=5tN`vRm1!6MyvQG-Db#P?SeO&^$);|pgsdPNdtbU z^7USPDi>G*-?p3xh3V;OGE`@dpTESj zu6Ag#3?x!#YF^OzG@vRig#cTJ3zp`$Q?GnLt>uEM|C%>L`ONX^MYMfLP?~#CG_(HZ zsy6$}@7}zovLLjeqtPa*Yp-<@hVn#&mk!VJcyrDH$xD8eqnU}Zu$MiLpdOTW;FD^; zzjziX|IiY#jvjugh;23x5j1DTP#`RjTo9R_0E^_pjS?voa8FlK8X6nuF^F@W1)o7F zSNN@&RF4ICGwVR&6!^zIP5*9h-ai?RbQYL~b^{Hd{C@xfLH)i}0RFk3 zE=6{t|9w6@9{h%c)2y3~oEB0LO+;GWDQpmgrZ~TpjvUIc7cqWXmFF38<(fPJg$vGydQngkXt7>_vwD2x}f{EygBlB23^+*kz%}9To-ll(&dSRFImbyfp_w=+HR_c<#8o{SQ71b}mV5Rn#iLegqMgQand7(xuvl36fC z7o!giM#)GE*`J+--xWY1YznnjH)50R6?9Q<<{NjFU~j1@%dE6s?KtVJRbo49@ujiL z=Aimg4n^tElYCJ!CY^* z0N>^wQ^|2w7tzyK`{^p!U5kLPP=$Q8TdBV4Etn@A(5%t<>PJ?F1lLISPQ=ye6S9i5 zWX)&G_OINCu}-81&OC2fVO+?b)vs{#6j4exXB+fuk*lCp255z`c-nN-kXUHd2$gkk z{F$Z-S(Y+w_6}K~VwMh~)+^OFeh|Llv5+8|OWuC@$#6($cow-Y8vF%g`P3`0AszA4 zB!AmY|8qTlKgq9p9sG^WYH)Am>qmVPK8_k(yli^(f!J8KHn*ZR* z<@5HG#;K&pTWrnt;orpx^A4Cn7s^v_IV*V$%=8NU+0Cx;(Ru*utkrGK|0_%JRs)-1 z9w)Ldv2_zItapvaRfVpqnsTAkCTwxsnJ>F#^I1KeM6X8z{~v}AHhx1AIsrlF8(BnJBos~* zKyajLmP8rX^2}*zE#!<}>u9rHlQ+sua3z{{LyocH z-H@@q>NJiA0A%Ruh=q7Yp}{)Jx!M=A2~n1LIRttqzM5QwY-qORa!DLl@kTV!7vV)%a7FsDji!C_AV*!gZ zqFc^wH2Vk^W4UB5oy|yNt?;kA@z2-eccc84*1_M#ta{ka+dCqs6)gtdAKZpf3%+R5 z^9^z$vZOR5u{lh9jf=W?&U$StlageqC92XS`o$aZ%rhmmyOu}`CIAsOe_m(ZK;pL; zqOg=^?bnsXCR@f^^rLI#3`IFet(OSAYzr;M2wH22D= z$e3;7kJUZ(F6(I3`Lzi4i5tZgdJ`S8I;*?gDD>nmjN0tg(99iS+3P~3JE57H_Rzbf zMBnM~?-UKGM;NT?3$i>2VHKJzDdUdyMYx(zO3u1Nm-eqEiB)~4syL~PMUY&wKx1|V z?p0rkjGEMn*`N7%XwO1Ek?XK{%}#~2Jy(B1ih_}jXKC^lifKwyMsz}ESn4*rh zbf2DYF|j_V=_I5+M0haTQ*RQF_1E3_|E|X;qo9wsZ*-XTwj-_ocRebA^Ub4y9^4Q? zXY3#vRaOfWh|h{*0&TKEfRHW*_LYxoOH(n4h_tZWgO}C% zBSO=Cd7C$`3a;;3O?U+c>qZc^(#Cjvh84&#e#i|)R1ifox@u`2G+BW-LgaWXBBmw7 z3OcGDRP%$PRlA>vSYT5nY)LG#?2*I*;J^j<*elsBh$_1lALYheDY%>|;gVoOiLvs% z*O#X~ZHK8L01J<0^jMA*#j`N;SRG?^nAOKCj;E8j-3Z|0jel=&54;;@)zpl%W-Vm0 zX^6Hf^Up?{6amu`;mjg2!y+wU$%Rhkya-~Fu~xn8=cdNxCbd)z%#zN<$WWyLRY$9Y zF<%zP>sE^9hQn zTfBJdQ<@33MCC7`WZoQ0j)Hbv0kzJ6KQU_Zc<9}R9J4?<+By&bgKA`7tbeH*9c8>RXzEPF zii1v#m`r(sp+s6*0S=&Q>{;6A@~ty5VGfIpswEOu@ACQ9sU-$N32UGbkc6mSNo;a< z8H}<_gw(XtjI^{wTJ}(U0&`N+Y3Z1>rW`WF)FQFFh;v?r7rC&@<9Mi52;ByzR1f+m z-gSHIb$jrk#ysL*PiXP=VACsOtd(|?+u^Dk%cHiADNSMbcpbU+9d+4Wq){BY5-Y$M z&AT;#h0^@pRhc%-xS_59I#7Tsk)5bB7|X47Rn(bOW_mg3!mVLD+au{U9j?U`+SfSJt=YF`E5Us1G2GDES|RC)%b=g{!{__yn?raOI>zcStB=~j*&gDAM=FXnVjwng5_$+0S z7Ml*ld;_wE=Fa%@X4k7&Q7rZNg|CD(+?X}8U!`z-)~6Gqx)%&oXODVm8&tc~JXnMTs@nZ+3%gw1kz>Kgy7F$&@-aLf_eqnZwPs&Vl;-cVq7-_N zIh@ogx{d+IRYR=!3twJis)f6Rjh{zpTcza}7G<$g6B4bA8!G&SCJGw13U60ey6s)yEqe3VbsLe+^Im*BN5<5USDEJS2*H z)YQqNbM-KiH6r~Kq+{nuB;Pud8vb1Y9Bq3Hd#MX}=9F5dgZ@I0yQIVx%w9J6p9 z_ATbNYmH3XCEq2EUx-n0EqdQEb|#i9;#^H-s<1@tSZ!I?tiP77#&Q8mL}Bq)mgLjz zkdT$iG~M0l8CUeStMV}jC3p9Xz?-Nu{>H|QuAzDpYk2$f@7A1VZ)$_!>UOH+oRu8R z#tn-nQE~-+mhz=8E}B?-0?EpEjmDd|DHN_5V!4K}bX+iyHk)HlA~*IN1n710+yfZjY)8iT8)I+&R% z7{aW2D7UXfsy4#VY<2;m!Z$8umF{N^`7Kl*)^zJMXQoa}?;1XG)vYSq9V2;Z!j!!X zfxSYBDfA#Z>Ow5xh)9lWhFCZerf!S-rNWGBwpd8eO3mqV&Bomt#$uBLtw(q)$JUR7 zwnFN`xZfekB{sxBOsX$}etifXWBvMIR*!-Fb;l6w~Bix8_;0f zxiSc>AIEi}zGf}_kozUg&ay3qmTiv~X<~qKsPkfvtKykgbQfTGVBCw3wn9 z1MA%8nOTZEiJ#hI!CcCDEr6oG^6%j7_oJrOqrGn3EA73q)kV`}a3uJW=KsaHV(m@P zY#+(ly=jhH{b9xS(_k!?bvGt`rQ<^M#&oZ}=plWPPgJq9CxSFmcQm#2);JzqA#`np zR9TaDjw>2`>k*10sXi!CTE?JJR#in-+oVDo{w$ln4~`pRQhhqf=lkg&yXo68gx~!- z_$!)KXS05lwN}N+9XTbsv^;P(;tcG zUgJgdn2-FwiVFI-(^0pdq25HU+#cz!Lf#W@y(d~ctqtZnIb`>1t`)b&5c9~KX^ie% z2?sTMH?%wx;fP7~N@UVPSzpa?DG}YGe4oT-KY|_XK#*?;o=%9jeiv)oHFf)FveOD?}Wla zf|{gPWbJZUJ$***2StkF%H0zN0+tGKs%q=Q8LNb&=mENM@X2JgTGa|#i+~osVyfCM zf#%FCq?7d*)Y3+bi#x{3lBuP4gEstxWwxpq9Hvgj3UXBs+_ryI)@H)SEy>;F3n0HF zjyZu0{*6zq#R^@~Ee$+6aa_mRELm63#p6ZLKVOdrzxi(rpHlC8 zI`SYI6ao&=$#7b;zl+hrixvy5H@ALGEp;XxS);}~%fLuIEaF`~M0xPpwlEr`@r zR!rB)t=rRAT4J5skY~0c*0NkYZpUiXNN61Am(*>p03Z^(FlRQjn3awH)-jx&(}Y+; zt6V+R(z2m3J0&wcW_d3b43=wz^DUj`jK?XOBuA7dEgN32M0h^(Sb!t9#7ouB_u-4f z^woaq7^}mqKK?zN)?apE2Lvzwu^k?Go;e;=Cy6(yIR-Jd2gcjgKn8`zz_TR8_CPRq zOjQj=GoEh^k+Kh}_I|3?{D$guHREDo$W_-(GLthqK{z!Q^H?5sk4fWU0(07xEGS0k zR_A0PXX2~X2!>mG`uxxM04=Ig!YsA!(xtM?Bs?9V_ z(wB;Omf?>u1;lFA6zhb}1!=L8?3mo?s`kXD)~P0lx?Q#_jAa+97SmW|k2P(F!LKI_ ziYip0x3KBrYh$Jp5sG)pX8uJXTD`Kak$-NjW~aJ*td2E*+3L7$O9YPis-wYk`SNpB zdO?|;*8;NQYs*z1II_vHsc2WbFIQICJh2C^vhsaR3q{jY+}cUlJnZ@qxbmT(v~0lA zYg|AmZ7`NcA*e#xGg$3C`H0eDveMedv%B@#l;!I-e>=Tt1H@wDQ1gE|JbQ*yWfb({ zJI_MA={#C~y7mi>o`()xyZrQKd!RNzC7^2oivBX#rR9%T) zi{^I~*KLf7Uo&eUQ8o0z7-HpvJ8p<&_;@Z~ZELC*7PWgJheuQIgE_Q(AY@@%+CD7# zbcS<2&p-^AWnmj~Aa<%x#_+`#NuA z#qP6ug;^aGpYNydNA5%&`QgT$JG#U!i2~FO5Yp4COC4u2o22t>yA@zO9AY$(*r9=e9yoV2E_b-kzNS*za~eQ8l_Ijdu+ezIBY`fb}<`o^8(wTpsq; z_`apYbZxz{i>iWW=jZWU8KTXQZpRCY6;A-*d~*)q@~~@3FW#b`&QAaA`~tvkcg@>f z?I$*Vwz&Xsx!=Dwp*7EHzq>|l&9VO8suj+n*YnM}0xu7{ioY!A!!lXn__>-t!4tb) z=fj%9WxTFl9`+VsWt-3%gxPlBnqlJk`2~T){<;+oT5btt#wZKu#u$6$hAjkp*?HDi zxJzaYSP3qyNi3%C;JDw}E|aQMXK--M8(O;VY&ZjO&9TIVH`ro1W5gGgIg}JCSaHfdp|a`u!w--A#Ynjn9KVeDKb_z7GESXEl8E-+vP7__v9o zl8mtL_PnSffCoSRKmQ5f$^U*Cpzf8X7bifn&+3(DrHapqbM*o4Bj+ACUH}0)DpcoK z9#Ke4ZjSmSol~42JpO>tXHS0$P!DDyd|dm*NX2U;`U!xazI`IlO0KSJOPVyQa3Nx*^aua(nNXj9`K1Fkj?|frvwV`Z z-VWums(`8};lcMl`$U1KUw=(i&fUP1ElAOE1#>GKdjL24Z_WH=|a zcl*U@LN#7jkN@}?fbYNhMv}$GiG{g6bB4z z5C8KI0G@vN&Ff$7kN@-^LLL8k+wY*RghtvTY>N2Yj%&ekb{REY@p1P9)-9P-} z9{~LD)i<&>D=mqidaBjAO4pS;a;{jqA=t;2*?=HjS0DW0697Mb^IeRkT1DP48HKDB z>x`un0q%eLi6gGQn7n9gKw)k5$z#Dja}88QfPs8J-5E4}2McSA;zKN*z04LpK=RS2 zA1O3^6TB*zy}ss+`BI^ux8n-fr$I50?|%3JfEQ1HL=svhI&jfrx!Hge4)DO>2*su7 z6Ok`fK6f0?w)grv_*4tvAe$8gXa3Vdhm{xvwG!1O$ zclluRtQtMj`WfbtfWLUI0PNQu%5w_x>Or|0KQUid?aS6%TPpFm!Exu2QQq&lR<-n| zR>;P8$|Vt!2d+iK`Td}}yShY?NW=Ch@~2Q`Ub*DzZf8{)Vx@P@4yDdK9(dM-oCnV@ z?kOf+y2-oQ= z)Yrk^#;p9X*@h4#Os~JiX_}_#4QwZtKl-d*XI2XQ9ONp9fLrpOcN@-2fJ;A+Nz9(^ z1wlka;=|`^@Y$l@GUcbGkA^gU&=e8XpoJ-OQC2{EuV>BQ5C|bi&X&+xZ&CMT>G36& zghE7u1OXiA$$_O<7e&TR-PUG)oI;pFSnmF+Orr>?OmnQD#7lnBAN2_7CUK@LzTG_BaND7)k@u2bmJ`P zii`UL^RDL&QdA_k68u%6NshB--x*5_+S3Sx5LCpQKlwzD4M_^Nb=(jR*g7ik-6((G zP5<17FAmdQ`#Shrn^l*<|7M2*PbRs#Is{b^j|aDL92S=->dXdF5}A}^c@&f~n7K}# z*Exg6HU0%I`Nbm@-He;gk~u9pJJB1XsksRer8M3?O==aFt0a<^yfkLaUJSYDiR1(k zZ`@ZRpnE|2xyDDOYBF36W-;{2SYyo{NjAMv%c=y{q)XY_JB!KmIPTFj@6-fP6m%*B z3*G{(SPKlCbY!p{{&6{x#)BR>YWS3!L#r~7HrDpHr>}mw;hIVErpdJ7kMWH8#)Ikv zlq|nSM-8{~Kk~)q8h;blJfgH8*6LNkH3kbA_mt? zsBZkqzK-~ES=kxU*jcqw_r|BUh}bH_7U_)3gHNwC1;K@2Qxj0QK->HRuDE#QlA^<$ zW4PG669ceu42qrTPm}y*H~#f{`YCkx(ck9iFzYuyE=B*cn*f0I13U zyu&fAx|mkob2($jx|3A4Qj(T=ZHVF2T|%5RGOZy|F+H+jsdddGYUy6o;siz}iA&Ql z7=sIgjwT;EyF%~?{B=zpB3Xi-Mr$=o-Knk5)>;DeieRqd0#SYnzBJ8p&3k=%)^b={ zFY~wFI5^M~d(js`zZ=6hhw#7q=~>5E9cK0M>m5G_`SbPo{TM#m`v2SxA8q}G<0j^V z$&7dek>)94c?1lq-uPHrP9l1BO4*>dKrWr{ZefirU@}d}x2iy!!Mp@p^Z2T%_90$j zCt{rutkZ<)ALIaxs#gL>p1I^DrgJa1r$$$;U=}mgq5fjkP@ zjzoRmX3mZ)5!Atm!_EV@H-YU-C$RQRnyQ)Tq)v5yP6FN(l?naoE92^|5 zAsw+7eKN`yhv|#`^mLT&@ZMooAHVu>E&A0V{4~kSph|qU@n?=3kWMFsDmTd|M5Sh0#g6NrmjnpBlZ)s-Iy)^bN2@8C0(S7Ytg-E z?qGFXiIZxmwIVi$<(##Vy5~EFEBPwxYj2tF%CBL0O>~sVlwmr<70czh4$8GS6-$iI zkk0DX(F1$MlTrS*8~?uRg~ATA{!N2qpVcoht1HpJ@1_WqKHT^VN53#fL_}JcP0DFv zl}QFwE9S^gdAT$O)(lgYxF%~*g*66@H!M&9aPFJcXuhB|^`+*G+C1;tmO0L@SMw}N z!%r^v(-{jAz+M#s=jqcO)`pJdgDp)~>9CmKXODHZ1WC&0(RKa+3VPCtz1Ya17G|q7 zkFWahS1}gX+YIZ%pBl*3)=lz(uMz;i(3AK|M)D$#;Zbn*%Nx$Oj+(8NR6#WAN|Pp= zpk*`{Hku@Z{Hu78r|2iHV!OHJWsTdb8Z1sE^yO}hRG}*-;ub!s4z7tm?p3cvC)FW& zV!4%hW}SQCZi*%|r*a6(-wKwNa&4M*yk;s8X815x-wvCHgJeDG(1J6PwcEZoot2T^ z^T{>>z)tkLQU10Y|GFE04%*kj-@~llMwq26gnAJ}8FW1vS@n51JZrpw6&K$7 z-@%o@oTevHk0kT793*c%)ttkmS63IN=Z%@^;R?JiC4*cIY|e^rSZJHRb<!oiDKAed= zbm?@(U;0_+o&t6V0+Z^`LBAiv*N5y&KG^<`T{N0V6>fd+cb&&5j{tw&X zKhFHUWEKxVlmpcz7gGmDWaF@?YbBv2Z>`~zt{mkPumxKK8OrEoEpyOjyrn88KDko7 zo=)k>iPvgeB)I6m>otbSDSj_-z=d0c9jRB5fci2`NK&&B)T%lb#Z@VVp)_}bO2Dp$ z6@y8TbTibeIU6+3_tnu=zjw!M-y3!f$H}l8pBRtb>u&7eJNEh;p-D^8-5t{1{@HZ> z_o596#PvC!PSifu{^^?MV}-W1XDlBc{92y0Dee=h&YF)j3=^9Y-u!!7qKnnZvCRZK z(Y>zM*PIC-bSdGg0?Sn+p)XSEm&RVt;tF@=e0+?uDTyv^Tc>T`gU-c1mc~~&k_zBT zdv~97TC*6-k-$sQZx7+C!}QG|{4mM2bTQWNXmptMdmN+Ui$i!i$@3td+fO(C+;KxX z=m;=AB&Rx-E=zvKOtiF?Gm(F;T(Bjju$r##!&^IIN8>mPA+{^=7ZX+SpHOUQAZ z&a5tmWQs+sCFkI{gx|peEZ7WY3kpdD#a@cmLS6fq77f-KN-JPfzSWeEUX@{(xoON& zcb1S2STBp4>gNn#ZGE%mv5bPP5WjPwwLIZD%ii~@-yXvMT#ujcr^^noI?U?hcQO>X z68-CLBCtQ-e6sbAyqojkp_=2Lvn&>K0Z~&QP2{D#xiL-6LY(hJQrOJrS1me#Td7+zU(1(z2J>L228t+d#m)UX2QfddCe5d6t&G3M{4iv)Px{dSRe0 z_+^M0y9!w9V3}fJn{FzV ztIJ{0_m?wX(w=;=9h&^SqA&!k$5-ESxFa-4Yt~hqdEU*@>J>l_@BWrI!kk$fHdp?@ zvS4>&o2xk39TC`BI|DYn5zB`J$D`zBiJ}V2P1k$`=|C2y%dNPGvFYHO-xwQ{uSKp! zwPC;PfB9*l61iJ9EUkUTm}LNtwQIaNpFC!W(~80V8( z&J){YcCi;c3*qZS`1@}9@-U4ZVs)6+$M16p@YNw)i(ZTF&W85~ci%C_#RuxB@ySmo zo%1f@x~_{*ezrNyx>uIZpmXmY7iuTpMuW}yDebAud*=>2rwPqqr4=#G%u%IecUU=^ zF7k^-a+~#J4iLpom5M>(I3KK6gr%M``$QC!M&`YieJ^&YEZLwu4WG<1s#UhCu-MLj zHhSq~FfkK~3TrTXTV8V&WVmL{Zk-)asOE2li6Km~+Fk#R6i=TrUQvx*O{|C|$lj1VS50iX* z2wxtiZw_xF9IB5Fv-vwuz}Y&B$z{qaTZdG_DBZPcX}p@09@T|jN;X|HinBF4(dLevthP#%d1QO{{Lh2v z6>!gCNZpYxAw|)}ItyzC*u}$@O-t|MgIwOwMvZDmD$oVo@=0)WxTPL^pYB=p0jzCmx!IBqzb z%#%xg>Ba@q$WjT&3M6V?nR%@E*R3OfYtbJk`RXuzxergLa2a}~u*0lA`TzjD2znK! zCu8_&JM2_H+4y$`cScSc{j`?eK253=uj#gxS_olQ{a|kN3ulwPg35bOCgfXbeAS~Q z)JQLtD_n#=3rEE@3{)E)YJum}5L7!+0v8Sg8KBvs!mc~E@|dfcvvK^qj4_#36rNg@ zzj@Y$M3b%6RBUab3DLT?W`0XzGg&U_-jU+ECDL-`Jf-2fRw$gez~F{=fBl`_qIcPE z=3?7@9ZQa~)aEfgR&*+d0Tx&j-P15wShMuZbXT5&D_;p!87C*SJDC7e-l? zlHHX#LDr)y+N{(hRyuF~h#^*6v~}ibP?omD*>6J2rbRys8)8*4&wRF!NJ)h;8=C_W zI|{!!gn#U&FAmdBQ~`T9m+j&jFmMsV8xyq9r zr6S(C-e(sHHV^R$`VZ8M~K8}q^@z4EqE%H+Izs`n_Htx*LH}(jVmSzw}Xf^A!L@u1$ zkW*rYB(+<{T8U;EK3CklW&{>*+?pNt7r15vXrn~ekz$X2PW>rTR@C(O&7J~fPPSz% zj4K)^N1NobvdnSurhb0 zs@CUe^%IGgs5dqWEz#wyvxBjcuj+~MubY^oAbKe}VX<#mWQ1!@4K%KML}7bch{np^ z0>_+`8m+Ln)*87aGgg=7{A@#0NHy(*-n`hGMgfa8(+_iajshFbs{c{-r%C>2H~w=s zeLsb%L##eJ%DFC1HxQmYh$?2kO_=Z*HQJ{9K;8Dxk#tF_ zmE&tfizcH)`7HQI%A0Q{i6o`;Sl=2+p@gu{zUdcLlNXvkFD}Iq72sObL7k%qBpHVJ zY?_6-a;K(-SmzARlKMoA1;^=4L-I^UUhCstEM8b z?sjHPuyS@qK6?X~X?w!Qm@Md3(C^3a&;9hb-Sn(y6!y_!Rv)(?m!f~Z9^dkzVP-$(P|o_o&-#%_p5iD z!)ro4vZw>DvQt<)#)@QBU9@)>$>U z0mjETR@-STvStBz^lrEgiN|V4vg#qBH9X7Z z$O@LZf``jUv2AegIJm)R}Pi)Be81q8pr%}E* zO#j$V-yS-P)klX}eZ0naGRgJz`28q<*!urG8{Qw>z&V^JB%e~9SK`>_md)aqJF9AK z+^mi1gEM!~V0!n&TBv8d)wpLVD9}>vg#6+v7_s%)LTTG5rp71Goxl+nq$8k_e^RTS zQF8}Z&;gR*kg<|q^z3$(g$Z6H!L__$>)&lrmwl$MEFl(+i(%>X2#<1%_%R$!#&C*q zNzNZi+a394vDYt}sB>cPIZW_`7exD-2F3@getk;IaYwxDD>tm=3uvHfmSIImY7MbW z5tbQ9VZP7I%vlbFbi^iQ6nfBsBlO2He0>N{#_;ta{4jNh)klX}eZ2N~5%fivz8k}f zp#Ob7Jl?o>yo-0A2q7lLKsx9IKrzJim_TYLjA$(O@#O|O>)ScQ2-5^tmAb6+0%|+Z z^)h0P`dLj(p#M|(OL}N{*&bb-8yR&RL%O{^+f04EmdG#W0G!! zS$ZcrN^237J%E%_tSk*;%jLiJrdoxDk?&mf2|L<382fz9N6ZE;h7B zSv_OaxzSnu9T$w5$HG;R_!VHO!K#7?ty(KyeL2TQ%gF5t&%s!ERUizgbDdXx<|?VX zKW>PXo$i&h6Df_WU%Y{wksDH>FGZe?;qSZYANy|E&_{<^eZ1*$CHnua4_6|8IvYOS z4v##~96cBSKqsA>2P3;4=7&X%NXw-}8hg{vnk^+OB~#_GUOm5N|8z^9p)4atwh5T0 zq*&z)q9?qz`f+V49je$vo#4XJ8MT=fq||(v>DhX2ibP|*SX;dp3kjXEKc!W>Yk@nn z+g7DsZ(H;$_Cm7;$h3l5jG`t_uf;Ac$IyCj#)9K9)`z^iWBsdgU=7+}^(P*2!#5lc zQQB#i!Z^i|EjU{1soLLMkGN#PG(dnP+2;2dHF{m|)3r~>p~g=YYRn0tRfnB*_XTiJ zT#JlaV4Bth3#JgMbzyM+)~wEFO(=FVqiLo3Ijr3^4^Ea*oBNb=-cAB_&P-s#Sp`pE zRDBWTn=$-zH~sH^df6dXAGd^A+wD1k@vwXSZJnQ=1K91}z^3}F-r8C16@S}JFM@tQ z$sf1=)9rBIk;DchHRyb68-~rO2-D<2W+#JmV^$#O(*CUme>g76qbS4LY&HOPhq3Wu zNETC=y=|miq87J>RNdQdwxS5rL2FbIou)OrfU1#tl*j2b!pYrKp#AzO&6%fiND*^lKY%YgX}6mzJ`O=CgXX-2&L{_ot=eY-&lqZ21JR z-JAgk3Ynr3B7 zw6l7erx0pYy*)oWQ(!zCs@=Jgs&NI&+med_u-R-0?50D!CMy=rrEfB_9l9 zD{l?46xa+K4;;djc`To5jsvOC%b-uj@ZA``K7_AM1{C%cr_ZXI)$rbD9|Cy!KhIu& zi;q702*B>|pTGX5`mEmOSqbp%7``3DlY{@i7y8l0zdP`ecLUuh8mOYU_s)F*#_z9n zQDspQf1%MK-K;*Vt%%Xe;r@G%035!1igJz5QMj@+Iu&9<@s@6AvH13t<1nWkA7k zaUrf2cl$-DlLhal`10tZ_W>Nf{8mb_)GC-+sgs%n;`cs!AHeRPFHn+;xSe&U{rSO1 z9{|{W@lCb6SCCl61H4YNdgYK)w>_P58&H>z9`mvo+AISCcgvl&WG;< z_~EN>-I5j4d`t#0tZ-lnqda>2E`jlj%Zf+Lx~QxSbG3yjtGu1~#rfu&Cp*ze3s-uW z^lMibjTR-&-0}D5@go3Fzr3s@U)3428o`)DwK%+_Z9aJa5rJplJuMwmivUF14d9Ge z-co1|c<|_fgX+`W?CIsO<*W^ODe@x7SNrhy{q$rE*Ef+^eZ}dss%FIxKl%*7%gZ+~ zx$XHGfWvP8`kT7{;N3o}U&X9G+PDt~|A({TPiOw2cRG_a>Ne*JT<>?IE)7pwJuXy?NM0*Q*B_4DmG_Z z0*C!U8tSF3DxO|0F7CYp;Ogpmfv_8kR|Sq4Pvn-?Iw{T%?rSZ0BaC^1|FzpX$?6OJ@Y^6k4(Lxs&4@m5< zFH!V4vdU&=Euv?cksPZYn@REPdOvFAvrsTtXyc`4r})K;_u}G#0=w%=8G1_EwS=r~Q2LXt*4 zBrYVn#;akcRA=2cjWk{jeiD-ym{CX-qL=mH7N}Vi<%bP`aT;?9b>54X$i|Xfwvs62 zioPZ8Ik$C;o)luVMq+jWljEUkCGe`iFl+%#(*Y*&x-QIV27i=7I={?TQUaYlw8fCD z=?6SP(kL)&&H#+#9yfIkw%9_-6MLFSJLadlezkA50LEJv4Nq)s6;9d6JZD_mZKkAa z!n`+gDRX}#_+u##S_L{S=cjd&QjM`#8c9SB%wAVE(r48T%ZksOc|o+s-HBd{hV)6h z+I9hU`ZSq?uKD!iCm5#Dtzp)}Np<0dSCsOW!OHC*&V)c`QrMX^p?vH@Z_9JsB;S8l98;`M9t(Iy_j_AEESsBsV1|KEIb;jGGYceOo_A0f;a1Y z=M?I=nyN0A^w9N{dM+qhAf<@NNPsP8E$y%Pj!A|k8={^fC?-bDcZVMr(e!T zp~R5@U^G#5FxYWkgUKT7Xof_3REKngP0^d;3mprNO;7SVydyk1<*9IFM<>#3P`cyd z2;6Z-^R&viD38)3qq~d5gD7glsEfO*|8%4>l4(CpB46d<*uk1!$`F19ZHLC7J zccPQ3%k{Wo!b>!bReC8)i*|E918W~F`$`+1^MC5_m}p zqHdc3?ZbVcCu=(A8`MG?7I0bDRk?1uRNEJw20A=>?`xMZoVJY z2nSV@My~#=E5lpRWHaN4HPq@S%My&!APit>X|!*YWQ#zfoi}i5G3`Vnn;R34B??b^ zLsQw8+b+Ko;Ctqf3@2UtuQnogi#Sa(&#cz6y@am$kQD083}Y~ki!P)2mzWcvH__A{ zcoF1>NxnOTFAvillKioT2rNF%3-x8hP&w<+=^DaFj-8oeA=R;HY|Ozq%2|)) zl8nq1w9_ox&vA##y*!o}f}A^U9lco}=5`z1m5|HuV7XbuUP4@`o!L5MuI(w4O&uG?D>7JB@KgpdqB<#dst1|B zhOUe|%o;C??J7hV|K#Vk+B93InVl_d=y`+%tO>2`hUJSi1w%brse6h7bLnI8#t_RB zTSrfT*r`4l!&ist%YFEM43}?#UqfGUejBqIP|8i-BC4&=>eo4|OVR7y^aICd!T*u^ z>DJ%#bl@--R#d=Qx|E=VO9V~gsS1mNer<#gw8Cw@E)6%u26w2++D&)a-*=O6h3=3Q?v5*=GJ!Oq`bxmptpM zwMt8?g8b-jP3kM0K|`mpEaJ>C+@{jBB^S8`&w68e7fmsdit(;t+)vtP10eC6;m;Lm!gs0Q+c;nt5+#~O{ z(Mg#a6hTQMy2h){kG#T#*2+Sn*<+nG4$z!amLjN^)kPN%NuRbuMkiJE<#*BK+2oL#CM?MEpBgU6EZcR|B$rL~S94(ph&RQNf zlJ~2tHn%RdOl2m^9@>eXVG1f<-;hsdJ)0xt7{q8eBph4*JLPhx1U!29b#;I-^i~(X zdfW!MjZVSVH!gx#R}QbvE1YOZi|C=rr<~5$qOMVM3;Iu4){&11 zksn>nt|*ThmSc?!WZ;^PObde7SNvqkR|=DRO-W_$d}$>>Xttva+atMV$zMeL#Hl|} zn{&fUP#5^pnn_=4iQqP91SNlflISZ)|8{_rEK3lM7-dvOn@i{mFRsg$5!6;l;DJ9( z=)I-d#lWHRwdC1~uBZkHQ-MUJdWPZDL5*>H%q(p2=wb|C%P35tO6;EgU{{9r7k+C) zXK(~=-vhtlOxltNe@<*8B;~tMES5$66f>r2heW0h2fyyubwm5oyzy4+;!K0_t7s8(7lzf)w$D5bi$c!vwuhq!)=kS}1R1oUw@h*-< zb9c_3%uv^n!tK=%|Lw)vmH!7rl_FO12v|-WOA;EiI4HO71sH||p=)mg3rSTCQh&U_ zvbt~7BPm)>S>k=O^b=FR!Rs~-WtPznLv4z-10|F{9k~x_9gvn15lyxm^OS4;Ay0;P zs?za>v7?40#u_ZXsm_{GN(vL!(rp?G+h1&^AJ&Q@;R}vhsmfy9Yx0os{CoVth9^7y zN+n7GiaVXA1$15LyV0f4r;NIHH`6!sh#X4hST&#@nl^q z#H4u0A4ubnwW{l32Z>)3AhCX;D@r{6`OwWHr%1JI%lV?eKFq}S4zwDu=!d`BaS9+_j}Cor zzRR(H>DYKq6cja7L7A88m4jMP6UFAdEs89q*l&>fA{UT%Cv>e#y_WwfB6DKrs)^vY zVwmFUV1R`0`dCr*L<8ri9|rULN1Ho|mN+Bw;7;VK2$YLDO;Uk&WCKn^q&z{=*ZIo` zt=&OiFbk0<^z01T=)Of3i>i#1b>d46w4|iV##a=qY96y|kB+0G5l19-#YIh)^-z3` zuTd(-W-It3lmu}_sWcXr2jfMPX-2}`+Tl_aBZA{5>`W3r=G=Hif+^GK37l28-Ox?U zwt`e3K%b~|f*P-8>0(*Dq4NpL4}_6L)iE(t_dcgTfYUj*{QCZ--HdF&iVLC!;jvrI)B-eMcpiZjdpg;_Ek~N zEpnkZKnT33R<>K@fE;{jjJ%Mj>OlE<=4=pVB_Ae z8`Y|726Ap76NDfi3;QXAEANT_1cnE|q91+QPnM_uso!;Qhz$RJQIbNc$no0W zC%DlX!@=cpt1KJ0GE*SM2ZEn#XhIt)Ve7}!H|@74=wK22P?7#ukJOVVk?|%1+6?n6 zRgs3-L0OO%1rEQmHVcG#Pep6HT=};kge`MFDYagDo#HqZEw21x;ied`ff4VD0k;*wLFdi2UrdDFi0 zH+RXb*I8JBwiV{`OJS5YjslV<*D4rA!GyV(4~8$r0MnTeWuMd^_a+Zt zkU~)Eo{oTerp*(jtx;-436EjL9J`RWrLo;UL0tFgw$kX7rKb|zy~745YetJe^4J*k z^}w`58vz|Q=(54QnI&lHhG^~6g1?EnXxz=DyQ7vJJmh(i(M)$^3aztTeVnqtR1WJ{AW=s zMuT-_0)(($4i9;UP!xjq?;`q!Vp%*R4AV^%?>ddL-uTga{>UGy$1|8(M?^;ol zIoVR1LL7^PHt-;(6S8r!rUN=LAFbjYP__X{;4XRIrvLLlBQ)y%@z#^m=PO(c=LMiH znyY#EI?{;re5FdD?5hg#Aw-bto5SKvk2>nhG<1}(abR?bS@ z!g2M{seH_|7puzy3UiR~jC$zXZRc z>a$rVt*)4h*+ymGgl4329SeWAYd==e*ApUsa1ggzgdGcqr_dRQnHazaFK0r5c;#&zH3)j{BYp)H>Z~lCe;CWypraNh+68 zi(rl%hW0>1PUaVkSyZ$if13(cWVD&JqPUP|*01JtYUnPcbv}tQsh(uP=F}?(=hjQj z?m807f&WZ>+?a>#NPsmjJI-zZ(8b|iVws&}5k z#ffUwV(GpLVH`+HDJwo1-MGo%4F?Vas9@92KrlgW zE7)^j)<4S05|kxoVuU3qoD!{$42slwFx*ds%gEvKonoNRf|Ohs&jm86JKWc9g17TD z?)P|PLh@Ys`qB_i!>^H_Blr5!$4|HhIb2nc;c!pO1BsH89s}`#Z2>uITHStptR1-n zEHIpw1hl}xkUx4Z+?K3)*VObGyasNrUTGxs<6rs+IkW2DvV)|-yzPo&!Ye4DT z!v#W3YXUJWzsRv%&2rg4m%`lqwG3W->Ts+`v0+k<4b1p>=2t$0DxEGUEs3hNfHR)- zk#9APaNKIDpCDffF=jE;bzw^ER~;GyaKhQ##|nrTFA$-pK7 zRn_P{TQ+gAP_(pcX%jd$|MP104yn7J(94xi^M|kmzYKQWE2ES| zgH^|z-B=-mran0Vfi_x6MW3621?&?~0C#bAO`u-%(P&m3YUnovimE2U*6Q3S!xU47 z%9Q#+p)P>d1P3>A zkdiw?{waGu5TW%;=jEk@YmhhzXvwTeFB8pVd0?LlB_DR7%Tj6+qBeJ!&${`NBP&nW zWJb*?Gev79DHTi# z^2RYe640md-)ZGkGbO*ZO)+ZFjS}6Gwd}Af-1IF{am6_Iv`!4~mlyaenp9#67czJW zc2fUPs4Wzn`!G5wBZf9k3{=h;C;Km3>YMsSW5XsXYjkj|7HKv>y}JLcA0+j}aF^*g zkhTQL9LZ1xeSwgQa!4}OS!ou)TuVGG7YHjot3e2vHM8L~XEHzKvYJ=cy&kk!GCD2% zTx9AyC48kq9uidGm6F;iSV`36CKy&+V@pz2cDfMmjvE8BxwNf*Q-d=1xy5RV5;Hn2 zCqp)HI)E=@Z&eL+pMG;F^dHL%h!W!*j^%`3B5(_>bbw(2f-kFiFSv1R9CeQR^03)elMAOkB?x#0g7cIq^JoTS-TvP-R@yJ5)5Sm$3cxO3QhA`6p0M7(>l6xNbo{Gw0(4;> zo#Ihp-nNIl8?P>rFS1KuTcXQlIZ30RZ5in3(mv-cV3L&cnbY8e?YCvp8Rl#MY9Qq@ ze=x<0V~crM4zg4WI+1{1XoE9OxytmjgL<{bTH}yZ#F5v;R%>$dD{bYA2p?nT!juE` zakr&^&{fK{d)zy(6l>CrQAFqas%q#sX|f~M${v-NT}km~6C0PtbZdJ$&Mwc*-7 zH5N=byYeuWk``&3DM`C1kXdX5k{D(t*ptSfy*DQQqY zWl}3&iP#ukYO{;5x&YRR^wf`=t#I9s382EnRB=9YXYaa}CwJ)DJJKgphe{#k}bKOWBozngrD@=yW9gSRhP77(Tq#h(Kh^vXHrowb$6 zLEQ1H2|rI3)vfY)-j*IliOHr{dKzmM35>8EU_g8dT3Mz1%^@DL8Q&^40CyhR9wl+K znFIq>ss-E&>&HBguFo1Pg*?X-@i5pb9KTYVTk2gIH>3TF>kA8#tUnb|wsHWyhSm?# zcj=+WJ8+ZPvc-R3-MtcUN(zgz(0m~kRM=i+;ltZM#?8J%HzEdVVrGU30O50qbhhGk zKRL1e-qjXRtNW@wI^kBeIBM9IZl~zh?M?|jJ zi^T9=P%f3s1ygEO02Lc>{Ro{OZ@)4g9Bm#jC3OsNWU->+hwNppzQ#+L%=N+Jw2g?V&Jv=9bvj2a+dTGT#0VD(kroJ0HK zJg?h0gdgJEgPm2^=nJ}3PM1%gELB4M?k5+NyB_IKH@mEkYhRWF=qp%0Xd3^DJu)uQdVYxsf#O|dy&GLdz_G_2IA90~AusCIi6w65Tw z&BCw?6O@#F4}t1zjXCh5WvgaGp+RLQ=%PuDXTX&Gs`k*+&_$SOzk-DvovuZx)l8jC zW@n6j8q98*M44;NzFEhA&S+X?Mv4)~%VXtuvGETWNBKF{5AlT<1Z|we%gISz)Tg zkP{N6up*Dy9gND7E^Ry>)j>@6ya{77TO5}MHL$!y-W12GeC_n#`Y(c**uw@DF^u68huC*eM-y#hh$fA?b-Ov=!%;sfSm)nuNnr&pO{dY? zYK&^(?vEr7Q?Qo_PuC$@EJueSfk)B8Ibfw=yfYRF0wC}FYs?Et&cM&M&w7mj7|ucG zb9+@%{&ao)c>37{2L}hNx~9h9yDI8Ofs=-lhW34+4B65#$M)|q!P~_aBO$Tp{m+E0 z()8^_>c7ivr4kTiiMVu>RN>N9VJIqfsY^b;{+iR3&v7NUN)A@Cmc=?7KbYQ)deAG*4S!xKtE?A!U_#_T|H$&+t@WB^rh^q3K5i!)C)p`-7p63*n*RY z+=3IgpCzh*uNNR8x*?M&cwtpf==!3<62iYR^+QGlVJQpCx`Rv>8!K-w>HvC6^n-hg}*WNj3!Vl`~` z-H^=T)pd){aDy3qt$5Z(^qRu>+hICSRw!)fleQD{x2(>J|JH(z*rM%x6!uB9uUx7( z?&>3Ce1_vg!?hsL%tu$0F>pC_KvK9mQ)L%=hI!I4{LPj~BqPQ+>5vG&&T2*mUuhw0 z{2YBmg?=238g z&HX(sN9AmFgfjV!mxPO@#siscoa87~VU_EtCj=jsJ5HJwH;GO@@gqqn0bN#grBUyj z3txj#*qMyPIP$}h1loBMSPhp8iFA-`r|aOr0G5i(9Hqe%B^SNAM%{sBR{zfSAO#1L zbM+VxBXv|bYq^n(IP_I0M8)-}E|CjeKSOm0Xz1W+h8uKqy zzb8d|3Xo^miA`BqrCs>1lRi_ymahEqk6MX6MTz=N;{6o0%eZuG4{mLk*Bez->d9{! zZS!?CUqszS*e*h&3wN|{hoylO%M}TL8MR`^bGyQ7V>XBWK}qnJJZYX(Zl9IA1>^uE zNzis50NM!MC9)^akI304%r#lA6*;ZWaTh4dlnV~A5i=f=YwJ88bDO5!%%gReO{k00 zl+($v6X!*sgl6VfF*25=Eg8M7wL95?ZBcG$QAILc<|iwLPa`YwO>$}i2Oazm+W#7V&Ygp;$N^~y5m1#Jc zI{78V#I`!^=Y17IbG$}zr)UZbb#pw=Jb4%(GO!N~B?f<%X{F>Sy>Wp66J2~2i}$9* zb|7oy{l~`e-TX@E%W!PoLaPMoHMK6UZY;$tQqfADaHjjloPAbx*Cu->mYU2c?=T}~?-9|v z$R^F^$bc~7FM^jfoJQsrHSamuMmx5bF+X@l*Sy3Zi)U)uBg1f`Z^?IY$7MC}XIdO+ z9GSNE_ek~UHSNSTry0I6jR}Ko4u?xcd<3mvxtH9Bf69cB3<|$y?`6mFbeue9fq~WUtS=c$R$RC2rfg% z1}D+i3*CrLIA;p?k9!&YK;ByzhFlz)Jf-p2dj30B(ErTeMuR*;(+tlFkxhB4NQi`&msAJ>go=(*_CD2!Ockwq^x zO+#(#*>1TsB?kX0b4;>P!1=`nvaYRv=~5(CP5K5|S*KoUMOFPn)diVYOj0y-1-bgq zlh!4hnG=^(-j=rbMItP2n2^bfQb#mHl4NhgmcXt7=TOYNAEdO1+I>EgSkJnmBFeT| zC02AE6+cjHu-M}odj>2ho(;Pp(mqH}O$tD=#8M2bDnC2Eq2Nr}5yAW%whpzH0(A+w zh5MD^!g4vXu76QIDI6PDwEPgSRW$}L=G7MX5~(peT-#`0+Ud`Qvm014}ea1!db z=BP#1bX#LABFiuiEm~FNifJxD)-S+5D36Gi-(zO)-=JfEE_4UyGpoYT=%cs3(whgy z*z&>3={zJE(^UFlzha%eP$P-K(q|fhA&)%v`m}(YkE24N{ENEfl|4o)o{8O3t=Z=V zQ$5o=%={*DtqoaQbTK?IX2;QQ(ZmaBChba249*Om4DQlCpM#n7KLU({{__ivB(?}v zw4j+E>y&w)H9R3tSgU#Qk0~1cHAk}8`xfwQxx0CH(R~?W zlo1-POT&gRlRitIod2P8SNUwghstWPT8cgFqe+D^mV`=U%TQLYzX0^2&VCMM+;i%ggq5vSow*uEKxcZ>EJ&g@n=gglWr;pe zU5i*0CW;{$`c?V-<9SV`>|m)oo+;In%R8SyIx^+ple+ha`}F?dzp?^lr)RrgIkREC zKSKC2p#nl9L0o`82EeK3fbSMt{E{GA;nInXc(p;XBByA4H%3bH^_X(?E|Ydsob=MI z_(wSIsbzXgWyF2Cs4^H*o{IHzC+I<_vj84LQClLSBXm5_-pAr5LK`teY(rs#@S_0i z(LU-EOG)8LTH*Si&Sin=c`>}NwkPhcyqc^29}nBLr^`X@HY_)6lDo75Oc)lDloA0U z_3&^AXt?5NYLW}eID}{DW$LzlMW$LQtSYQiyK|Rd6r3<4F{{ zG9qYVus@0xW|Hi_a%^j6oRd&snS&)pCaMSSEhw%i$$6p=YZ7wAw$kw6Q%!D$#HaJr z5n&LyTO0f#=KG;m1aZn^-w?Nv-d3TO39?ioR3oFK3F}M8V2Cn;B?xds^jJ7WI`5IbE_8_{F!<0p&gd3wxmk( z()AlmU`{_DJD;Ie*d~Mfb2?er462)qEK^eCNN7`~mM5#!%K?P4UX-Op#LSW`u171i z^UkPt!@{3smxGlfQ4^z>W!dI0tF!*4I{Fg*hGs%-+vs7t=HFovTyb1WJn{C9sZ)fr zVIS=ib3|b^-Z5xNVs9`ofP#LO23z|Y3G?9+^)>D=$mK8^m4A99j4xC{EsVz5&{thn z8LZS*O^2>>;L=XTO&_BHZ3ewrvuLEK`^VD$A@ZOZZ7OthB>qWg3k;(KScSYlTU4Mk z)Cje83IgG_LiDH9xor+-bn&*;Cv*0#n34~mbt`v54UqC@tYPyo(uBs(yb9uj8>Ok} zqE=?#2a{qI5_wtiG@6={^)jJWzE$Kq8`(*9`lM$`3ze3<&kYjOJb_VdxbRZ&r_`N;E?|8A^=iTUp+T{}Zsg>`mi^xc6 z?BJaf_V_n4RP`cKt8Lj)uRvabriT#nQIXZQW{GJ_ip^#bB}PKflzTR&FTznl92CMI z2nrb~M#=FVyEC~IY^f^OTPjKJzJkBlF^Ee<_NBDhTlvO^yLRqne>f}LdMCI&T&C!} z(z-bOt&tWZo7QPYuXX#Y^G0sAS;~=YvQgl*S!fr*r5eo*6ZUQAtsXTP`)p2UPW<|e zm^nTq`2XzM@rW%k0hIj1G<)JmCDS z$r%T#xU_ScJ{hl!^E@D{GLs1Hk{yXA70c_q0VVcqddr!Nu;J7 z>4&(pv+Q4JrxU1H(vC4RoAwyF1*D#Q*_ud3{Jjyo!>L$|bzs>n-HdpQ`m@iS(i+56 z&71Dz5x>7=u829vxta(yfqk0+3I$CQafBHI08f;N+>Y$CHOYSyT_zT1-x$~pq8~9j zZyQ_FMAMXUYwxijeULaP-e){c=}v+YizN_$mDbAN$={j)B2>q8*OX*-r!cvMyGs~fOll*! z&-!f}QCCN`0q z4x_Ujw}QF85)uZG3Q>WmO){g8AgTyU#fKCw4pi9*HH$eHGq*Lo+OSO}xT8Pl}%&q;oYn%1_?Cu%$fSi2Nn7Nagam|M2=Mvj6 z0msha5Z+hJI4s<(&C<_j6}6#hBqpD2%~8!ee%K($E8F5Z{n$PR`tk7O=K{_GbGR$r^=oBZ^uZ&Zn6mBC{otXu<6AT;Ay7vR z>!a1vk`}p>$%hLD4#Q|^b&N3|lqKaWp@A&8`-F#&b9dIb6+;eBs^e;1g|4`#t~-O3 zdQPo}XI@g|rQ`4m{=vH9&zhBc1l(stdi$_H^iNtjwNt-&`pcyA$~Uz1xVva*B%T{h zI<pt({#*&=L4 zImjLu690Eys^fMN90UOc4EOv1FmpwIiF)zF>D1i$G%~V%H#e27JsUqhJe_F6`-hH4 z7lv7J>!MW!zGoGbHgP|8HyE3nh`}xOv=_*@`M?tc9#w_|?sMP50REjB4~84^{s@h( zGh(BuCyL?U3iU}fJu8-=A}wKx1#p)wL-qt*qV*N~!S>o+t7lc7iXXBT{b_2x$#4WG z#nLOmeP=!U7s^~_%V(zVqK3E}42k8G9`|qc4cvKR5!RC19 zGcug+a?zgAuCb;uV{vI|T7!FlPyAq7T{#W9}Dr znMj=D@wWzFTq|Fg@L=fOdTE0hh(VSkka~VdMUv2VfNmutSC9Cn?(#%G8PM@yp2Zv# zBh0y&L;BL0t0_(7pBLpjp+vbU(Iyb`gCtbqrbN!BQXfa;vv* z1|vUG;v*SmZ(%zIQ1D~+Q+8&Y1c+T|dqqc0uGjxvats!5u>dP6?yU|MU9PX&4;KKd zrq89%mCbwKdv(<&KqAdkN=sCiM{9Y60Rbl@bv$4G!MwCls%gHpkTmSH%eX1_5KK~` zoKG6A3|yb#RvK+yc9iZ*g}D4rB)E9{?`0{BVT_F%XPI4RcbXPER`6b{o>r4IvrLEZ zn$Zm7Riqb~dVT@j;9l_qj(a>~V`^HfBBi5Kv?VakRc`Yc7d@?X9zPSZ z9mz*0fqGu4_eszRw@c;e``SQGh zjLtC-yvCIommS%Cj={DfDrNg!7F4J^>zt|jtqybRKtU)9t{)T61&vlFMQmGoCMmf^ zDxccQPE7~8i}O~+R8%EOg^U(KlMq@?%|Lx|dW88U+ZOYP9v_U%(MZ-;tC6G_gdwCE z2wHX#)`no+WneSUmVA0OkL!qGt}a^|!mvrOYjips%Lpf>J&jM=H_NW=lb5@&PA?C% zpMtX}-1IlbMC0<)kKP6djYwb#1r#fA&PuMPKr;8nliIWnH1OUKc<_wQNiz}}*#0HkK5%qDT7$g2;1&4Y>3B=S&&=4n>fa5)9HI$ZI()Xm zjzj=Gi4oi2ciVfrJ-c%`-K9Gp!m;SYr`0<%Ed zBQQsxS!4h8TLY0LCBA%&5!+4(Z16cuFQ!FPEQk=jFv4NtDirTr9DKR79it1$lY+-? zx>~%aV@(k8nr~!0ceW?MTisjz?OF@@()-UR-;}qTv%8juqlOr;v)9+hQ-^;(KCo4@ znK|Aa76cP~y(_V#ejDis5lF`LxR^k7%}&LHM9UTCRtj29i~zgnxdH3FA3#`|mTcx^&{mC|c?nc1-Bs z=?xFCt&@(FmcWKD)mZX(B$MU*sg-i~oK0*J!Av<7CxL1m)rF^jhUve3|2+i>!Q|sL zgl^+G#h;Cr&u#2~0UGwrI-&NY@T7QR9g&?m6u$WWu$;70qv&(A*(XpTQ1N}Y@?l#t z2i)D`5r(pbUl7u9=^OyH?}W?>Bj6I|oPG4MOmLo;=M;f(3wi_ph5bnVrAAwshyI2CsL#rx7_Vrp-=WR(W8_ z)DZA_4-(5pLT4w|At;}~g_x-e8K?3363j+u-LKL`Wiem{ZNUPq_=5ZOznh+`VNq(b zYEmQ|!opgndZpE^OT3s8|5>w0k6}EyrQjZa7B7ei*wNn8z8x%N5+|f7PZ6#GF$L&C zcg16o1-}yg1N0D>vxB*e&#rPjRlXk(jx?S$;ACL7p^_Wi{#*RRUt#Zmc08Ar1IQ<@ zJs}_NuVW(=yh5RXsq^ptY6@y3S}qhrHug<7(u(J)Y-hnQGPMEuA0V66+4UdqT2TAu z64;W~#F(}hhqROEK!XhXufiIXjE5=vb2|m`f|C;#b5ZWv>1j?=5vF65={hJTD~%A~ z?HE}AI>p=9baVrZY&Nt9+JIle$qfnY`M>j~#alg~oaeXQO~EOERh=|g50|?0NK>|V z698NG0dap_)UI!PdW~SMj%)GCa|zam$?E5(xn+1}#wpOiT*BXbhj9Q|4_@Qm%XKvnD3e5xa z?(no$=g*m0-fX4@LPQ9|2Ru8n4NN z)2Z7jE0j0})W&xpjn?#uU|4aL(AL&mdrg0j>MpO+SwOHg`Qxh@q#i+(a>z1*^}>W* zac|I!fydV#Cb40LPZ$*zG+nPWV*AwY4l3jt?>cFkNIfR;RO&*y<~z~{VI`cH z#p2{M{it}>zPmJhXG2z*E5Id17+zo0bbud$C#r@^aRUTUw`~IHk$Ap(IXGT=wm3zy z)`V=VyR7j@ILv-F&LFJFzx`-9VIH<|B||leV*KL_jszZ;CNe|S^-QiXiHSu9I}oI> zoAgpfj_Vp}Aael6_Xs6@$~$dtkTDxtW3P)G}GLPsO% zsgklL%$B9&=quT%|Kv}<)0J-ZH?uxX_W=9&qHfOK+T!f|9zng;YhK}!UcWPV0>$Kb z!D{?`R7`{g+|NNSm+l+)_9TRl%=>SdyxF`hZZ7zWf%Nf5X(NVZ@Q0()-%Yn?k`lap z;kHP|;09?6%@m=*N=_dGoOnI!%Tv91Zv=Hvp?k>T>sQz#?`e>mO*{%mlqbu$a1RdT zvHF@O3g?A^jt|X5fOdm#B&ifIcxxIEEQ9zq6Y!^^>-`_!!d(G=vctb~j{ol)b+9DF zgk4CcSpIOI^=%7p@ESFf*F|Y7(ratI!y>wuP2M6}XG*-wkL#;)F4j3Y*CCj>sc2GQ ztpBmaz?rdNgFF^#rNxkTlszsJ1e}fWGeND!ooGN8%=O4=82R){1q?MN#%~qZc`bX2 z9ZEw&QLt)peW>+_DP|2Z-+-h2QxMqm!p3{ZqRV=h@fXBw9s|Nr|G$LEVthGZLqUhb zeaHiB(WrdWBcTb+d!o~p4IXjfF$7b4N|lLr@WX8axEO{9JKAcYE?@qZlO#sru(g&; zP)to$E{&39_!*iu(?*ILsv)P!2Fo#o2wU`Nt=TcVq#E;ZI1-tb(1r(`jOP|u^ZlOL z)@F_h$vRO?I1_Uji7D)l^XUV`4VTXUAUi#$ai^XD6KGkNaqCP>$V@bZI2>hS+~YLe zAz#kG<4E$+{p&WIp_*GS|6#Megr3guw`fT2h-x)yeJ<;n?Go{*OJwSV17oxO)1b|)_!TZks#Fw{qhG4T-nZ}8AKtf4 z8J|X5D}FO)S?eFkx`~XgjO~ z-PXwk_Nj6UPu4NaxCBnyjC<;>2fYhBAw-@~%m9kN)YEqW^fQGt|MTe|z7bjOpcf7l zcSJ;N;6>l7_-|*1YrH!@cpE8&h725;1@SnZZsm)D@@tK$3OKWimaASfy&QfMFrq(< zp&KuKpwaSh8}QoCI+_;#QxDS+8Zg0_t3^VrW+EXUiI`at{(jYe_PUb94hwLhi#H7` z);NwOtXscKaHBgIY@1Pf-MK2eIYW$yFN}AWZ3|)m{OKPw<7l^qi*nGF@KnsldOm@x zjI0Rw&2AN5b&mi0DgT@oV}M|Ohdc7Vs{il7DNr#5s8j%O?)}xh|C0WD!Th0Ogw_RhbBNT&V8MqPt_qemk`5*6ZztzD(Xy4P*(_fqO m0UrByU#+y(;Ik5!deL&X0#?4@Fgv-AXY76=>LBWzSN5V diff --git a/mixer/pixmaps/panner-sphere-92x92.png b/mixer/pixmaps/panner-sphere-92x92.png deleted file mode 100644 index dad8dc77ab937f502af9d6d7c19f5dabe3136010..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8210 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 -#include "AUX_Module.H" -#include "dsp.h" - -/* The purpose of this module is to provide auxiliary outputs, with - * gain. This allows one to create a 'send' type topology without - * having to use an extra strip to control the 'send' gain. */ - -AUX_Module::AUX_Module ( ) : JACK_Module ( false ) -{ - is_default( false ); - - _number = 0; - - { - Port p( this, Port::INPUT, Port::CONTROL, "Gain (dB)" ); - p.hints.type = Port::Hints::LINEAR; - p.hints.ranged = true; - p.hints.minimum = -70.0f; - p.hints.maximum = 6.0f; - p.hints.default_value = 0.0f; - - p.connect_to( new float ); - p.control_value( p.hints.default_value ); - - add_port( p ); - } - - log_create(); - - color( FL_DARK1 ); - - copy_label( "Aux" ); - - smoothing.sample_rate( sample_rate() ); -} - -AUX_Module::~AUX_Module ( ) -{ - configure_outputs(0); - delete (float*)control_input[0].buffer(); -} - - - -void -AUX_Module::get ( Log_Entry &e ) const -{ - e.add( ":number", number() ); - JACK_Module::get(e); -} - -void -AUX_Module::set ( Log_Entry &e ) -{ - for ( int i = 0; i < e.size(); ++i ) - { - const char *s, *v; - - e.get( i, &s, &v ); - - if ( ! ( strcmp( s, ":number" ) ) ) - { - number( atoi(v) ); - } - } - - JACK_Module::set(e); -} - -void -AUX_Module::number ( int n ) -{ - _number = n; - - char s[10]; - snprintf( s, sizeof(s), "aux-%c", 'A' + n ); - prefix( s ); - snprintf( s, sizeof(s), "Aux (%c)", 'A' + n ); - copy_label( s ); -} - -void -AUX_Module::handle_sample_rate_change ( nframes_t n ) -{ - smoothing.sample_rate( n ); -} - -void -AUX_Module::process ( nframes_t nframes ) -{ - if ( unlikely( bypass() ) ) - { - for ( unsigned int i = 0; i < audio_input.size(); ++i ) - { - if ( audio_input[i].connected() ) - buffer_fill_with_silence( (sample_t*)aux_audio_output[i].jack_port()->buffer(nframes), nframes ); - } - } - else - { - float gt = DB_CO( control_input[0].control_value() ); - - sample_t gainbuf[nframes]; - - bool use_gainbuf = smoothing.apply( gainbuf, nframes, gt ); - - if ( unlikely( use_gainbuf ) ) - { - for ( unsigned int i = 0; i < audio_input.size(); ++i ) - { - if ( audio_input[i].connected() ) - buffer_copy_and_apply_gain_buffer( (sample_t*)aux_audio_output[i].jack_port()->buffer(nframes), (sample_t*)audio_input[i].buffer(), gainbuf, nframes ); - } - - } - else - { - for ( unsigned int i = 0; i < audio_input.size(); ++i ) - { - if ( audio_input[i].connected() ) - buffer_copy_and_apply_gain( (sample_t*)aux_audio_output[i].jack_port()->buffer(nframes), (sample_t*)audio_input[i].buffer(), nframes, gt ); - } - } - } -} - -void -AUX_Module::draw ( void ) -{ - int W = 5; - - child(0)->size( w() - W, h() ); - Module::draw_box(x(),y(),w() - W,h()); - Module::draw_label(x(),y(),w() - W,h()); - - Module *m = this; - - fl_color( fl_darker( FL_FOREGROUND_COLOR ) ); - - int spacing, offset; - - spacing = h() / m->ninputs(); - offset = spacing / 2; - for ( int i = m->ninputs(); i--; ) - { - int xi = offset + ( spacing * i ); - fl_rectf( m->x() + m->w() - W, m->y() + xi, W, 2 ); - } -} - -bool -AUX_Module::configure_outputs ( int n ) -{ - int on = audio_output.size(); - - if ( n > on ) - { - for ( int i = on; i < n; ++i ) - { - add_port( Port( this, Port::OUTPUT, Port::AUDIO ) ); - } - } - else - { - for ( int i = on; i > n; --i ) - { - audio_output.back().disconnect(); - audio_output.pop_back(); - } - } - - return true; -} - -bool -AUX_Module::configure_inputs ( int n ) -{ - bool b = JACK_Module::configure_inputs( n ); - - if ( b ) - { - return configure_outputs( n ); - } - - return false; -} diff --git a/mixer/src/AUX_Module.H b/mixer/src/AUX_Module.H deleted file mode 100644 index e422a54..0000000 --- a/mixer/src/AUX_Module.H +++ /dev/null @@ -1,61 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2013 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include "JACK_Module.H" -#include "dsp.h" - -class AUX_Module : public JACK_Module -{ - int _number; - - Value_Smoothing_Filter smoothing; - -protected: - - virtual void get ( Log_Entry &e ) const; - virtual void set ( Log_Entry &e ); - -public: - - virtual const char *name ( void ) const { return "AUX"; } - - int can_support_inputs ( int n ) { return n > 0 ? n : -1; } - - virtual bool configure_outputs ( int n ); - virtual bool configure_inputs ( int n ); - - void number ( int n ); - int number ( void ) const { return _number; } - - AUX_Module ( ); - virtual ~AUX_Module ( ); - - LOG_CREATE_FUNC( AUX_Module ); - - virtual void handle_sample_rate_change ( nframes_t n ); - -protected: - - virtual void draw ( void ); - virtual void process ( nframes_t nframes ); - -}; - diff --git a/mixer/src/Chain.C b/mixer/src/Chain.C deleted file mode 100644 index d0b173a..0000000 --- a/mixer/src/Chain.C +++ /dev/null @@ -1,991 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2009 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -/* Filter chain. This would all be much simpler if we chose not to - * allow non 1:1 plugins to be mixed in a single chain... - * - * Supporting the mixture requires duplicating some inputs (to satisfy - * stereo input plugins reading mono outputs) and duplicating some - * plugins (to satisfy mono input plugins reading stereo outputs). - * - * Basically, what this means is that the intermediate number of - * buffers need not have any relation to the starting and ending - * buffer count. (Picture an ambisonic panner going into an ambisonic - * decoder (1:6:2). - * - * The chain will allocate enough buffers to hold data from the - * maximum number of channels used by a contained module. - * - * The process thread goes as follows: - * - * 1. Copy inputs to chain buffers. - * - * 2. process() each module in turn (reusing buffers in-place) (inputs - * will be copied or plugins duplicated as necessary) - * - * 3. Copy chain buffers to outputs. - * - * For chains where the number of channels never exceeds the maximum - * of the number of inputs and outputs, the first copy can be - * optimized out. - */ - -#include "const.h" -#include -#include -#include - -#include "Chain.H" -#include "Module.H" -#include "Meter_Module.H" -#include "JACK_Module.H" -#include "Gain_Module.H" -#include "Plugin_Module.H" -#include "Controller_Module.H" - -#include -#include -#include -#include -#include -#include "FL/Fl_Flowpack.H" -#include "FL/Fl_Scroll.H" -#include "FL/Fl_Packscroller.H" -#include -#include "FL/menu_popup.H" -#include "FL/test_press.H" - -#include "debug.h" -#include "Group.H" - -#include "Mixer_Strip.H" -#include -#include "Mixer.H" -extern char *instance_name; - - - -/* Chain::Chain ( int X, int Y, int W, int H, const char *L ) : */ -/* Fl_Group( X, Y, W, H, L) */ -Chain::Chain ( ) : Fl_Group( 0, 0, 100, 100, "") - -{ - /* not really deleting here, but reusing this variable */ - _deleting = true; - - int X = 0; - int Y = 0; - int W = 100; - int H = 100; - -/* _outs = 1; */ -/* _ins = 1; */ - - _configure_outputs_callback = NULL; - - _strip = NULL; - - _name = NULL; - - labelsize( 10 ); - align( FL_ALIGN_TOP ); - - { Fl_Flip_Button* o = tab_button = new Fl_Flip_Button( X, Y, W, 16, "chain/controls"); - o->type(1); - o->labelsize( 12 ); - o->callback( cb_handle, this ); - } - - Y += 18; - H -= 18; - - { Fl_Group *o = chain_tab = new Fl_Group( X, Y, W, H, "" ); - o->labeltype( FL_NO_LABEL ); - o->box( FL_FLAT_BOX ); -// o->color( fl_darker( FL_BACKGROUND_COLOR ) ); -// o->color( FL_BACKGROUND_COLOR ); -// o->box( FL_NO_BOX ); - { Fl_Packscroller *o = new Fl_Packscroller( X, Y, W, H ); - o->color( FL_BACKGROUND_COLOR ); -// o->box( FL_FLAT_BOX ); - o->box( FL_THIN_UP_BOX ); - o->type( Fl_Scroll::VERTICAL ); - { Fl_Pack *o = modules_pack = new Fl_Pack( X, Y, W, H ); - o->type( Fl_Pack::VERTICAL ); - o->spacing( 6 ); - o->end(); - Fl_Group::current()->resizable( o ); - } - o->end(); - } - o->end(); - } - { Fl_Group *o = control_tab = new Fl_Group( X, Y, W, H, "" ); - o->box( FL_FLAT_BOX ); - o->color( FL_BACKGROUND_COLOR ); - o->labeltype( FL_NO_LABEL ); - o->hide(); - { Fl_Scroll *o = new Fl_Scroll( X, Y, W, H ); - o->color( FL_BACKGROUND_COLOR ); - o->box( FL_NO_BOX ); - o->type( Fl_Scroll::VERTICAL ); - { Fl_Pack *o = controls_pack = new Fl_Pack( X, Y, W, H ); - o->type( Fl_Pack::VERTICAL ); - o->spacing( 5 ); -// o->color( FL_RED ); - o->end(); - Fl_Group::current()->resizable( o ); - } - o->end(); - Fl_Group::current()->resizable( o ); - } - o->end(); - o->hide(); - Fl_Group::current()->resizable( o ); - } - end(); - - log_create(); - - _deleting = false; -} - -Chain::~Chain ( ) -{ - DMESSAGE( "Destroying chain" ); - - log_destroy(); - - _deleting = true; - - client()->lock(); - - for ( unsigned int i = scratch_port.size(); i--; ) - free( (sample_t*)scratch_port[i].buffer() ); - - /* if we leave this up to FLTK, it will happen after we've - already destroyed the client */ - modules_pack->clear(); - controls_pack->clear(); - - client()->unlock(); -} - -Group * -Chain::client ( void ) -{ - return strip()->group(); -} - - - -void -Chain::get ( Log_Entry &e ) const -{ - e.add( ":strip", strip() ); - e.add( ":tab", tab_button->value() ? "controls" : "chain" ); -} - -void -Chain::set ( Log_Entry &e ) -{ - for ( int i = 0; i < e.size(); ++i ) - { - const char *s, *v; - - e.get( i, &s, &v ); - - if ( ! strcmp( s, ":tab" ) ) - { - tab_button->value( strcmp( v, "controls" ) == 0 ); - tab_button->do_callback(); - } - else if ( ! strcmp( s, ":strip" ) ) - { - int i; - sscanf( v, "%X", &i ); - Mixer_Strip *t = (Mixer_Strip*)Loggable::find( i ); - - assert( t ); - - t->chain( this ); - } - } -} - - - -void -Chain::log_children ( void ) const -{ - log_create(); - - for ( int i = 0; i < modules(); ++i ) - { - module(i)->log_create(); - } - - for ( int i = 0; i < controls_pack->children(); ++i ) - { - Controller_Module *cm = (Controller_Module*)controls_pack->child( i ); - - cm->log_create(); - } -} - -/* Fill this chain with JACK I/O, Gain, and Meter modules. */ -void -Chain::initialize_with_default ( void ) -{ - - { JACK_Module *m = new JACK_Module(); - m->is_default( true ); - m->chain( this ); - m->configure_outputs( 1 ); - add( m ); - } - - { Module *m = new Gain_Module(); - m->is_default( true ); - m->chain(this); - add( m ); - } - - { Module *m = new Meter_Module(); - m->is_default( true ); - add( m ); - } - - { JACK_Module *m = new JACK_Module(); - m->is_default( true ); - m->chain( this ); - add( m ); - } -} - - -void Chain::cb_handle(Fl_Widget* o) { - if ( o == tab_button ) - { - Fl_Flip_Button *fb = (Fl_Flip_Button*)o; - - if ( fb->value() == 0 ) - { - control_tab->hide(); - chain_tab->show(); - } - else - { - chain_tab->hide(); - control_tab->show(); - } - } -} - -void Chain::cb_handle(Fl_Widget* o, void* v) { - ((Chain*)(v))->cb_handle(o); -} - -void -Chain::remove ( Controller_Module *m ) -{ - DMESSAGE( "Removing controller module from chain" ); - - client()->lock(); - - m->disconnect(); - - controls_pack->remove( m ); - modules_pack->remove( m ); - - build_process_queue(); - - client()->unlock(); - - redraw(); -} - -void -Chain::send_feedback ( void ) -{ - for ( int i = 0; i < modules(); i++ ) - module(i)->send_feedback(); -} - -/* remove a module from the chain. this isn't guaranteed to succeed, - * because removing the module might result in an invalid routing */ -void -Chain::remove ( Module *m ) -{ - int i = modules_pack->find( m ); - - int ins = 0; - - if ( i != 0 ) - ins = module( i - 1 )->noutputs(); - - if ( ! can_configure_outputs( m, ins ) ) - { - fl_alert( "Can't remove module at this point because the resultant chain is invalid" ); - } - - client()->lock(); - - strip()->handle_module_removed( m ); - - modules_pack->remove( m ); - - configure_ports(); - - client()->unlock(); -} - -/* determine number of output ports, signal if changed. */ -void -Chain::configure_ports ( void ) -{ - int nouts = 0; - - client()->lock(); - - for ( int i = 0; i < modules(); ++i ) - { - module( i )->configure_inputs( nouts ); - nouts = module( i )->noutputs(); - } - - unsigned int req_buffers = required_buffers(); - - DMESSAGE( "required_buffers = %i", req_buffers ); - - if ( scratch_port.size() < req_buffers ) - { - for ( unsigned int i = scratch_port.size(); i--; ) - free(scratch_port[i].buffer()); - scratch_port.clear(); - - for ( unsigned int i = 0; i < req_buffers; ++i ) - { - Module::Port p( NULL, Module::Port::OUTPUT, Module::Port::AUDIO ); - p.set_buffer( buffer_alloc( client()->nframes() ) ); - buffer_fill_with_silence( (sample_t*)p.buffer(), client()->nframes() ); - scratch_port.push_back( p ); - } - } - - build_process_queue(); - - client()->unlock(); - - parent()->redraw(); -} - -/** invoked from the JACK latency callback... We need to update the latency values on this chains ports */ -void -Chain::set_latency ( JACK::Port::direction_e dir ) -{ - nframes_t tmax = 0; - nframes_t tmin = 0; - nframes_t added_min = 0; - nframes_t added_max = 0; - - for ( int i = 0; i < modules(); i++ ) - { - Module *m; - - if ( dir == JACK::Port::Input ) - m = module( i ); - else - m = module( (modules() - 1) - i ); - - nframes_t min,max; - min = max = 0; - - nframes_t a = m->get_module_latency(); - - added_min += a; - added_max += a; - - if ( dir == JACK::Port::Input ? m->aux_audio_input.size() : m->aux_audio_output.size() ) - { - m->get_latency( dir, &min, &max ); - - tmin = 0; - added_min = 0; - } - - if ( min > tmin ) - tmin = min; - if ( max > tmax ) - tmax = max; - - m->set_latency( dir, tmin + added_min, tmax + added_max ); - - } -} - -int -Chain::get_module_instance_number ( Module *m ) -{ - int n = 0; - - for ( int i = 0; i < modules() && module(i) != m; ++i ) - if ( ! strcmp( module(i)->label(), m->label() ) ) - n++; - - return n; -} - -/* calculate the minimum number of buffers required to satisfy this chain */ -int -Chain::required_buffers ( void ) -{ - int buffers = 0; - int outs = 0; - - for ( int i = 0; i < modules(); ++i ) - { - outs = module( i )->can_support_inputs( outs ); - - if ( outs > buffers ) - buffers = outs; - } - - return buffers; -} - -/* called by a module when it wants to alter the number of its - * outputs. Also used to test for chain validity when inserting / - * removing modules */ -bool -Chain::can_configure_outputs ( Module *m, int n ) const -{ - /* start at the requesting module */ - - int outs = n; - - int i = modules_pack->find( m ); - - if ( modules() - 1 == i ) - /* last module */ - return true; - - for ( i++ ; i < modules(); ++i ) - { - outs = module( i )->can_support_inputs( outs ); - - if ( outs < 0 ) - return false; - } - - return true; -} - -unsigned int -Chain::maximum_name_length ( void ) -{ - return JACK::Client::maximum_name_length() - ( strlen( instance_name ) + 1 ); -} - -void -Chain::freeze_ports ( void ) -{ - for ( int i = 0; i < modules(); i++ ) - { - Module *m = module(i); - m->freeze_ports(); - } -} - -void -Chain::thaw_ports ( void ) -{ - for ( int i = 0; i < modules(); i++ ) - { - Module *m = module(i); - m->thaw_ports(); - } -} - -/* rename chain... we have to let our modules know our name has - * changed so they can take the appropriate action (in particular the - * JACK module). */ -void -Chain::name ( const char *name ) -{ - _name = name; - - if ( strip()->group() ) - { - if ( strip()->group()->single() ) - strip()->group()->name(name); - } - - for ( int i = 0; i < modules(); ++i ) - { - module( i )->handle_chain_name_changed(); - } -} - -bool -Chain::add ( Module *m ) -{ - /* FIXME: hacky */ - if ( !strcmp( m->name(), "Controller" ) ) - return false; - else - return insert( NULL, m ); -} - -bool -Chain::add ( Controller_Module *m ) -{ - DMESSAGE( "Adding control" ); - add_control(m); - return true; -} - -bool -Chain::insert ( Module *m, Module *n ) -{ - client()->lock(); - - if ( !m ) - { - if ( modules() == 0 && n->can_support_inputs( 0 ) >= 0 ) - { - n->chain( this ); - n->configure_inputs( 0 ); - modules_pack->add( n ); - } - else if ( n->can_support_inputs( module( modules() - 1 )->noutputs() ) >= 0 ) - { - n->chain( this ); - n->configure_inputs( module( modules() - 1 )->noutputs() ); - modules_pack->add( n ); - } - else - { - DMESSAGE( "Module says it can't support %i inputs", module( modules() - 1 )->noutputs() ); - - goto err; - } - } - else - { - int i = modules_pack->find( m ); - - n->chain( this ); - - if ( 0 == i ) - { - /* inserting to head of chain*/ - if ( n->can_support_inputs( 0 ) >= 0 ) - n->configure_inputs( 0 ); - else - goto err; - } - else - { - if ( n->can_support_inputs( module( i - 1 )->noutputs() ) >= 0 ) - { - n->configure_inputs( module( i - 1 )->noutputs() ); - - m->configure_inputs( n->noutputs() ); - - for ( int j = i + 1; j < modules(); ++j ) - module( j )->configure_inputs( module( j - 1 )->noutputs() ); - } - else - goto err; - } - - modules_pack->insert( *n, i ); - } - - - strip()->handle_module_added( n ); - - configure_ports(); - - client()->unlock(); - - DMESSAGE( "Module \"%s\" has %i:%i audio and %i:%i control ports", - n->name(), - n->ninputs(), - n->noutputs(), - n->ncontrol_inputs(), - n->ncontrol_outputs() ); - - n->initialize(); - return true; - -err: - - client()->unlock(); - - DMESSAGE( "Insert failed" ); - - return false; -} - -/* add a control to the control strip. Assumed to already be connected! */ -void -Chain::add_control ( Controller_Module *m ) -{ - client()->lock(); - - controls_pack->add( m ); - - configure_ports(); - - client()->unlock(); - - controls_pack->redraw(); -} - -void -Chain::draw_connections ( Module *m ) -{ - int spacing; - int offset; - - int X, Y, W, H; - - ((Fl_Packscroller*)chain_tab->child( 0 ))->bbox( X, Y, W, H ); - - fl_push_clip( X, Y, W, H ); - - Fl_Color c = FL_FOREGROUND_COLOR; - fl_color( c ); - - if ( m->ninputs() ) - { - spacing = w() / m->ninputs(); - offset = spacing / 2; - - for ( int i = m->ninputs(); i--; ) - fl_rectf( m->x() + offset + ( spacing * i ), m->y() - 3, 2, 3 ); - } - - fl_color( fl_darker( c ) ); - - if ( m->noutputs() ) - { - spacing = w() / m->noutputs(); - offset = spacing / 2; - for ( int i = m->noutputs(); i--; ) - fl_rectf( m->x() + offset + ( spacing * i ), m->y() + m->h(), 2, 3 ); - } - - fl_pop_clip(); -} - -void -Chain::add_to_process_queue ( Module *m ) -{ - for ( std::list::const_iterator i = process_queue.begin(); i != process_queue.end(); ++i ) - if ( m == *i ) - return; - - process_queue.push_back( m ); -} - -/* run any time the internal connection graph might have - * changed... Tells the process thread what order modules need to be - * run in. */ -void -Chain::build_process_queue ( void ) -{ - process_queue.clear(); - - for ( int i = 0; i < modules(); ++i ) - { - Module *m = (Module*)module( i ); - - /* controllers */ - for ( unsigned int j = 0; j < m->control_input.size(); ++j ) - { - if ( m->control_input[j].connected() ) - { - add_to_process_queue( m->control_input[j].connected_port()->module() ); - } - } - - /* audio modules */ - add_to_process_queue( m ); - - /* indicators */ - for ( unsigned int j = 0; j < m->control_output.size(); ++j ) - { - if ( m->control_output[j].connected() ) - { - add_to_process_queue( m->control_output[j].connected_port()->module() ); - } - } - } - - /* connect all the ports to the buffers */ - for ( int i = 0; i < modules(); ++i ) - { - - Module *m = module( i ); - - for ( unsigned int j = 0; j < m->audio_input.size(); ++j ) - { - m->audio_input[j].set_buffer( scratch_port[j].buffer() ); - } - for ( unsigned int j = 0; j < m->audio_output.size(); ++j ) - { - m->audio_output[j].set_buffer( scratch_port[j].buffer() ); - } - - m->handle_port_connection_change(); - } - -/* DMESSAGE( "Process queue looks like:" ); */ - -/* for ( std::list::const_iterator i = process_queue.begin(); i != process_queue.end(); ++i ) */ -/* { */ -/* const Module* m = *i; */ - -/* if ( m->audio_input.size() || m->audio_output.size() ) */ -/* DMESSAGE( "\t%s", (*i)->name() ); */ -/* else if ( m->control_output.size() ) */ -/* DMESSAGE( "\t%s -->", (*i)->name() ); */ -/* else if ( m->control_input.size() ) */ -/* DMESSAGE( "\t%s <--", (*i)->name() ); */ - -/* { */ -/* char *s = m->get_parameters(); */ - -/* DMESSAGE( "(%s)", s ); */ - -/* delete[] s; */ -/* } */ -/* } */ -} - -void -Chain::strip ( Mixer_Strip * ms ) -{ - _strip = ms; -} - - - -void -Chain::draw ( void ) -{ - Fl_Group::draw(); - -/* if ( 0 == strcmp( "Chain", tabs->value()->label() ) ) */ - if ( chain_tab->visible() ) - for ( int i = 0; i < modules(); ++i ) - draw_connections( module( i ) ); -} - -void -Chain::resize ( int X, int Y, int W, int H ) -{ - Fl_Group::resize( X, Y, W, H ); - -/* this won't naturally resize because it's inside of an Fl_Scroll... */ - controls_pack->size( W, controls_pack->h() ); -} - -void -Chain::get_output_ports ( std::list &sl) -{ - for ( int i = 0; i < modules(); i++ ) - { - Module *m = module(i); - - for ( unsigned int j = 0; j < m->aux_audio_output.size(); j++ ) - { - char *s; - - asprintf( &s, "%s/%s", - "*", - m->aux_audio_output[j].jack_port()->name() ); - - sl.push_back( s ); - - free(s); - - if ( ! strip()->group()->single() ) - { - asprintf( &s, "%s/%s", - strip()->group()->name(), - m->aux_audio_output[j].jack_port()->name() ); - - - sl.push_back( s ); - - free(s); - } - } - } -} - -void -Chain::auto_connect_outputs ( void ) -{ - for ( int i = 0; i < modules(); i++ ) - { - module(i)->auto_connect_outputs(); - } -} - -void -Chain::auto_disconnect_outputs ( void ) -{ - for ( int i = 0; i < modules(); i++ ) - { - module(i)->auto_disconnect_outputs(); - } -} - - - - -/*****************/ -/* Import/Export */ -/*****************/ - -void -Chain::snapshot ( void *v ) -{ - ((Chain*)v)->snapshot(); -} - -void -Chain::snapshot ( void ) -{ - log_children(); -} - -bool -Chain::do_export ( const char *filename ) -{ - MESSAGE( "Exporting chain state" ); - Loggable::snapshot_callback( &Chain::snapshot, this ); - Loggable::snapshot( filename ); - return true; -} - - - -/**********/ -/* Client */ -/**********/ - -void -Chain::process ( nframes_t nframes ) -{ - for ( std::list::const_iterator i = process_queue.begin(); i != process_queue.end(); ++i ) - { - Module *m = *i; - - m->process( nframes ); - } -} - -void -Chain::buffer_size ( nframes_t nframes ) -{ - for ( unsigned int i = scratch_port.size(); i--; ) - free(scratch_port[i].buffer()); - scratch_port.clear(); - - configure_ports(); - - for ( int i = 0; i < modules(); ++i ) - { - Module *m = module(i); - - m->resize_buffers( nframes ); - } -} - -int -Chain::sample_rate_change ( nframes_t nframes ) -{ - Module::set_sample_rate ( nframes ); - for ( int i = 0; i < modules(); ++i ) - { - Module *m = module(i); - - m->handle_sample_rate_change( nframes ); - } - - return 0; -} - -/* handle jack port connection change */ -void -Chain::port_connect ( jack_port_id_t a, jack_port_id_t b, int connect ) -{ - if ( _deleting ) - return; - - /* this is called from JACK non-RT thread... */ - - if ( jack_port_is_mine( client()->jack_client(), jack_port_by_id( client()->jack_client(), a ) ) || - jack_port_is_mine( client()->jack_client(), jack_port_by_id( client()->jack_client(), b ) )) - { - Fl::awake( Chain::update_connection_status, this ); - } -} - -void -Chain::update ( void ) -{ - for ( int i = 0; i < controls_pack->children(); ++i ) - { - Controller_Module *cm = (Controller_Module*)controls_pack->child( i ); - cm->update(); - } - - for ( int i = 0; i < modules(); i++ ) - { - Module *m = module(i); - m->update(); - } -} - -void -Chain::update_connection_status ( void *v ) -{ - ((Chain*)v)->update_connection_status(); -} - -void -Chain::update_connection_status ( void ) -{ - for ( int i = 0; i < modules(); i++ ) - { - Module *m = module(i); - - if ( !strcmp( m->basename(), "JACK" ) ) - { - ((JACK_Module*)m)->update_connection_status(); - } - } -} diff --git a/mixer/src/Chain.H b/mixer/src/Chain.H deleted file mode 100644 index c11cdad..0000000 --- a/mixer/src/Chain.H +++ /dev/null @@ -1,149 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2009 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include -#include -#include - -#include "Module.H" -#include "JACK/Port.H" -#include -#include -#include "Loggable.H" -#include "Group.H" - -class Mixer_Strip; -class Fl_Flowpack; -class Fl_Flip_Button; -class Controller_Module; - -class Chain : public Fl_Group, public Loggable { - - Fl_Flip_Button *tab_button; - Fl_Pack *controls_pack; - Fl_Group *chain_tab; - Fl_Group *control_tab; - Fl_Pack *modules_pack; - - Mixer_Strip *_strip; - const char *_name; - - std::list process_queue; - - std::vector scratch_port; - - Fl_Callback *_configure_outputs_callback; - void *_configure_outputs_userdata; - - bool _deleting; - -private: - - static void snapshot ( void *v ); - void snapshot ( void ); - - void cb_handle(Fl_Widget*); - static void cb_handle(Fl_Widget*, void*); - - void draw_connections ( Module *m ); - void build_process_queue ( void ); - void add_to_process_queue ( Module *m ); - - static void update_connection_status ( void *v ); - void update_connection_status ( void ); - -protected: - - void get ( Log_Entry &e ) const; - void set ( Log_Entry &e ); - -public: - - void auto_connect_outputs ( void ); - void auto_disconnect_outputs ( void ); - - void get_output_ports ( std::list &sl); - - void port_connect ( jack_port_id_t a, jack_port_id_t b, int connect ); - void buffer_size ( nframes_t nframes ); - int sample_rate_change ( nframes_t nframes ); - void process ( nframes_t ); - - Chain ( int X, int Y, int W, int H, const char *L = 0 ); - Chain ( ); - virtual ~Chain ( ); - - void update ( void ); - void draw ( void ); - void resize ( int X, int Y, int W, int H ); - - Mixer_Strip *strip ( void ) const { return _strip; } - void strip ( Mixer_Strip *v ); - const char *name ( void ) const { return _name; } - void name ( const char *name ); - - void send_feedback ( void ); - - int get_module_instance_number ( Module *m ); - - void configure_ports ( void ); - int required_buffers ( void ); - - bool can_support_input_channels ( int n ); - - int modules ( void ) const { return modules_pack->children(); } - Module *module ( int n ) const { return (Module*)modules_pack->child( n ); } - void remove ( Controller_Module *m ); - void remove ( Module *m ); - bool add ( Module *m ); - bool add ( Controller_Module *m ); - bool insert ( Module *m, Module *n ); - void add_control ( Controller_Module *m ); - - bool do_export ( const char *filename ); - - void initialize_with_default ( void ); - - bool can_configure_outputs ( Module *m, int n ) const; - - void configure_outputs_callback ( Fl_Callback *cb, void *v ) - { - _configure_outputs_callback = cb; - _configure_outputs_userdata = v; - } - - void set_latency ( JACK::Port::direction_e ); - - Fl_Callback * configure_outputs_callback ( void ) const { return _configure_outputs_callback; } - - virtual void log_children ( void ) const; - - static unsigned int maximum_name_length ( void ); - - Group *client ( void ); - - void freeze_ports ( void ); - void thaw_ports ( void ); - -// void client ( Client * ); - - LOG_CREATE_FUNC( Chain ); -}; diff --git a/mixer/src/Controller_Module.C b/mixer/src/Controller_Module.C deleted file mode 100644 index 74eaca9..0000000 --- a/mixer/src/Controller_Module.C +++ /dev/null @@ -1,994 +0,0 @@ -/*******************************************************************************/ -/* Copyright (C) 2009 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "const.h" - -#include "Controller_Module.H" - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "FL/Fl_DialX.H" -#include "FL/Fl_Labelpad_Group.H" -#include "FL/Fl_Value_SliderX.H" -#include "Panner.H" -#include "FL/test_press.H" -#include "FL/menu_popup.H" - -#include "Chain.H" -#include "OSC/Endpoint.H" - -// needed for mixer->endpoint -#include "Mixer.H" -#include "Spatialization_Console.H" -#include "string_util.h" - - - -bool Controller_Module::learn_by_number = false; -bool Controller_Module::_learn_mode = false; - - -void -Controller_Module::take_focus ( void ) -{ - bool v = visible_focus(); - - if ( ! v ) - set_visible_focus(); - - Fl_Widget::take_focus(); - - if ( ! v ) - clear_visible_focus(); -} - -Controller_Module::Controller_Module ( bool is_default ) : Module( is_default, 50, 100, name() ) -{ -// label( "" ); - box( FL_NO_BOX ); - - _horizontal = true; - _pad = true; - control = 0; - control_value =0.0f; - - add_port( Port( this, Port::OUTPUT, Port::CONTROL ) ); - - _mode = GUI; - -// mode( GUI ); -// mode( CV ); -// configure_inputs( 1 ); - - end(); - -// clear_visible_focus(); - log_create(); -} - -Controller_Module::~Controller_Module ( ) -{ - log_destroy(); - - /* shutdown JACK port, if we have one */ - mode( GUI ); - -// disconnect(); -} - -void -Controller_Module::handle_chain_name_changed() -{ - if ( type() == SPATIALIZATION ) - { - if ( Mixer::spatialization_console ) - Mixer::spatialization_console->update(); - } - -// change_osc_path( generate_osc_path() ); -} - -void -Controller_Module::handle_control_disconnect ( Module::Port *p ) -{ - if ( type() == SPATIALIZATION ) - { - if ( Mixer::spatialization_console ) - Mixer::spatialization_console->update(); - } -} - -void -Controller_Module::disconnect ( void ) -{ - for ( unsigned int i = 0; i < control_output.size(); ++i ) - control_output[i].disconnect(); -} - - - -void -Controller_Module::get ( Log_Entry &e ) const -{ - Module::get( e ); - - Port *p = control_output[0].connected_port(); - - if ( !p ) - { - e.add( ":module", "" ); - e.add( ":port", "" ); - e.add( ":mode", "" ); - } - else - { - Module *m = p->module(); - - e.add( ":module", m ); - e.add( ":port", m->control_input_port_index( p ) ); - e.add( ":mode", mode() ); - } -} - -void -Controller_Module::set ( Log_Entry &e ) -{ - Module::set( e ); - - int port = -1; - Module *module = NULL; - - for ( int i = 0; i < e.size(); ++i ) - { - const char *s, *v; - - e.get( i, &s, &v ); - - if ( ! strcmp( s, ":port" ) ) - { - port = atoi( v ); - } - else if ( ! strcmp( s, ":module" ) ) - { - int i; - sscanf( v, "%X", &i ); - Module *t = (Module*)Loggable::find( i ); - - assert( t ); - - module = t; - } - } - - if ( port >= 0 && module ) - { - connect_to( &module->control_input[port] ); - module->chain()->add_control( this ); - label( module->control_input[port].name() ); - } - - for ( int i = 0; i < e.size(); ++i ) - { - const char *s, *v; - - e.get( i, &s, &v ); - - if ( ! strcmp( s, ":mode" ) ) - { - mode( (Mode)atoi( v ) ); - } - } - -} - - - -void -Controller_Module::mode ( Mode m ) -{ - if( mode() != CV && m == CV ) - { - if ( control_output[0].connected() ) - { - chain()->client()->lock(); - - Port *p = control_output[0].connected_port(); - - char prefix[512]; - snprintf( prefix, sizeof(prefix), "CV-%s", p->name() ); - - add_aux_cv_input( prefix, 0 ); - - chain()->client()->unlock(); - } - } - else if ( mode() == CV && m != CV ) - { - chain()->client()->lock(); - - aux_audio_input.back().jack_port()->shutdown(); - - delete aux_audio_input.back().jack_port(); - - aux_audio_input.pop_back(); - - chain()->client()->unlock(); - } - - _mode = m ; -} - - -bool -Controller_Module::connect_spatializer_radius_to ( Module *m ) -{ - Port *radius_port = NULL; - float radius_value = 0.0f; - - for ( unsigned int i = 0; i < m->control_input.size(); ++i ) - { - Port *p = &m->control_input[i]; - - if ( !strcasecmp( "Radius", p->name() ) ) - /* 90.0f == p->hints.maximum && */ - /* -90.0f == p->hints.minimum ) */ - { - radius_port = p; - radius_value = p->control_value(); - continue; - } - } - - if ( ! radius_port ) - return false; - - if ( control_output.size() != 3 ) - { - control_output.clear(); - add_port( Port( this, Port::OUTPUT, Port::CONTROL ) ); - add_port( Port( this, Port::OUTPUT, Port::CONTROL ) ); - add_port( Port( this, Port::OUTPUT, Port::CONTROL ) ); - } - - - control_output[2].connect_to( radius_port ); - - maybe_create_panner(); - - Panner *o = (Panner*)control; - - o->point( 0 )->radius( radius_value ); - - if ( Mixer::spatialization_console ) - Mixer::spatialization_console->update(); - - return true; -} - -void -Controller_Module::maybe_create_panner ( void ) -{ - if ( _type != SPATIALIZATION ) - { - clear(); - - Panner *o = new Panner( 0,0, 92,92 ); - - o->box(FL_FLAT_BOX); - o->color(FL_GRAY0); - o->selection_color(FL_BACKGROUND_COLOR); - o->labeltype(FL_NORMAL_LABEL); - o->labelfont(0); - o->labelcolor(FL_FOREGROUND_COLOR); - o->align(FL_ALIGN_TOP); - o->when(FL_WHEN_CHANGED); - label( "Spatialization" ); - - o->align(FL_ALIGN_TOP); - o->labelsize( 10 ); -// o->callback( cb_panner_value_handle, new callback_data( this, azimuth_port_number, elevation_port_number ) ); - - - o->callback( cb_spatializer_handle, this ); - - control = (Fl_Valuator*)o; - - if ( _pad ) - { - Fl_Labelpad_Group *flg = new Fl_Labelpad_Group( o ); - flg->position( x(), y() ); - flg->set_visible_focus(); - size( flg->w(), flg->h() ); - add( flg ); - } - else - { -// o->clear_visible_focus(); - o->resize( x(), y(), w(), h() ); - add( o ); - resizable( o ); - init_sizes(); - } - - _type = SPATIALIZATION; - } -} - -/** attempt to transform this controller into a spatialization - controller and connect to the given module's spatialization - control inputs. Returns true on success, false if given module - does not accept spatialization inputs. */ -bool -Controller_Module::connect_spatializer_to ( Module *m ) -{ - connect_spatializer_radius_to( m ); - - /* these are for detecting related parameter groups which can be - better represented by a single control */ - Port *azimuth_port = NULL; - float azimuth_value = 0.0f; - Port *elevation_port = NULL; - float elevation_value = 0.0f; - - for ( unsigned int i = 0; i < m->control_input.size(); ++i ) - { - Port *p = &m->control_input[i]; - - if ( !strcasecmp( "Azimuth", p->name() ) && - 180.0f == p->hints.maximum && - -180.0f == p->hints.minimum ) - { - azimuth_port = p; - azimuth_value = p->control_value(); - continue; - } - else if ( !strcasecmp( "Elevation", p->name() ) && - 90.0f == p->hints.maximum && - -90.0f == p->hints.minimum ) - { - elevation_port = p; - elevation_value = p->control_value(); - continue; - } - } - - if ( ! ( azimuth_port && elevation_port ) ) - return false; - - if ( control_output.size() != 3 ) - { - control_output.clear(); - add_port( Port( this, Port::OUTPUT, Port::CONTROL ) ); - add_port( Port( this, Port::OUTPUT, Port::CONTROL ) ); - add_port( Port( this, Port::OUTPUT, Port::CONTROL ) ); - } - - control_output[0].connect_to( azimuth_port ); - control_output[1].connect_to( elevation_port ); - - maybe_create_panner(); - - Panner *o = (Panner*)control; - - o->point( 0 )->azimuth( azimuth_value ); - o->point( 0 )->elevation( elevation_value ); - - if ( Mixer::spatialization_console ) - Mixer::spatialization_console->update(); - - return true; -} - -void -Controller_Module::connect_to ( Port *p ) -{ - control_output[0].connect_to( p ); - - clear(); - - Fl_Widget *w; - - if ( p->hints.type == Module::Port::Hints::BOOLEAN ) - { - Fl_Button *o = new Fl_Button( 0, 0, 40, 40, p->name() ); - w = o; - o->type( FL_TOGGLE_BUTTON ); - o->value( p->control_value() ); - o->selection_color( fl_color_average( FL_GRAY, FL_CYAN, 0.5 ) ); - - _type = TOGGLE; - - /* FIXME: hack */ - control = (Fl_Valuator*)o; - } - else if ( p->hints.type == Module::Port::Hints::INTEGER ) - { - - Fl_Counter *o = new Fl_Counter(0, 0, 58, 24, p->name() ); - control = o; - w = o; - - o->type(1); - o->step(1); - - if ( p->hints.ranged ) - { - o->minimum( p->hints.minimum ); - o->maximum( p->hints.maximum ); - } - - _type = SPINNER; - - o->value( p->control_value() ); - } - // else if ( p->hints.type == Module::Port::Hints::LOGARITHMIC ) - else - { - Fl_Value_SliderX *o = new Fl_Value_SliderX(0, 0, 30, 250, p->name() ); - control = o; - w = o; - - if ( ! _horizontal ) - { - o->size( 30, 250 ); - o->type(FL_VERT_NICE_SLIDER); - } - else - { - o->size(250,20); - o->type(FL_HOR_NICE_SLIDER); - } - -// o->type(4); - o->color( FL_BACKGROUND2_COLOR ); - o->selection_color( fl_color_average( FL_GRAY, FL_CYAN, 0.5 ) ); - o->minimum(1.5); - o->maximum(0); - o->value(1); -// o->textsize(9); - - if ( p->hints.ranged ) - { - if ( ! _horizontal ) - { - o->minimum( p->hints.maximum ); - o->maximum( p->hints.minimum ); - } - else - { - o->minimum( p->hints.minimum ); - o->maximum( p->hints.maximum ); - } - } - - o->precision(2); - - o->value( p->control_value() ); - - _type = SLIDER; - } - /* else */ - /* { */ - /* { Fl_DialX *o = new Fl_DialX( 0, 0, 50, 50, p->name() ); */ - /* w = o; */ - /* control = o; */ - - /* if ( p->hints.ranged ) */ - /* { */ - /* DMESSAGE( "Min: %f, max: %f", p->hints.minimum, p->hints.maximum ); */ - /* o->minimum( p->hints.minimum ); */ - /* o->maximum( p->hints.maximum ); */ - /* } */ - - /* o->color( fl_darker( FL_GRAY ) ); */ - /* o->selection_color( FL_WHITE ); */ - /* o->value( p->control_value() ); */ - /* } */ - - /* _type = KNOB; */ - /* } */ - - control_value = p->control_value(); - - w->clear_visible_focus(); - w->align(FL_ALIGN_TOP); - w->labelsize( 10 ); - w->callback( cb_handle, this ); - - if ( _pad ) - { - Fl_Labelpad_Group *flg = new Fl_Labelpad_Group( w ); - flg->set_visible_focus(); - size( flg->w(), flg->h() ); - flg->position( x(), y() ); - add( flg ); - resizable(flg); -// init_sizes(); - } - else - { - /* HACK: hide label */ - if ( _type == TOGGLE ) - { - w->align( FL_ALIGN_INSIDE ); - } - else - { - w->labeltype( FL_NO_LABEL ); - } - w->resize( x(), y(), this->w(), h() ); - add( w ); - resizable( w ); - init_sizes(); - } -} - -void -Controller_Module::update ( void ) -{ - /* we only need this in CV (JACK) mode, because with other forms - * of control the change happens in the GUI thread and we know it */ - if ( mode() != CV ) - return; - - /* ensures that port value change callbacks are run */ - if ( control && control_output.size() > 0 && control_output[0].connected() ) - control_output[0].connected_port()->control_value( control_value ); -} - -void -Controller_Module::cb_handle ( Fl_Widget *w, void *v ) -{ - ((Controller_Module*)v)->cb_handle( w ); -} - -void -Controller_Module::cb_handle ( Fl_Widget *w ) -{ - if ( type() == TOGGLE ) - { - control_value = ((Fl_Button*)w)->value(); - } - else - control_value = ((Fl_Valuator*)w)->value(); - - if ( control_output[0].connected() ) - control_output[0].connected_port()->control_value( control_value ); -} - - -void -Controller_Module::cb_spatializer_handle ( Fl_Widget *w, void *v ) -{ - ((Controller_Module*)v)->cb_spatializer_handle( w ); -} - -void -Controller_Module::cb_spatializer_handle ( Fl_Widget *w ) -{ - Panner *pan = (Panner*)w; - - if ( control_output[0].connected() && - control_output[1].connected() ) - { - control_output[0].connected_port()->control_value( pan->point( 0 )->azimuth() ); - control_output[1].connected_port()->control_value( pan->point( 0 )->elevation() ); - } - - if ( control_output[2].connected() ) - { - control_output[2].connected_port()->control_value( pan->point( 0 )->radius() ); - } -} - -void -Controller_Module::menu_cb ( Fl_Widget *w, void *v ) -{ - ((Controller_Module*)v)->menu_cb( (Fl_Menu_*) w ); -} - -void -Controller_Module::menu_cb ( const Fl_Menu_ *m ) -{ - char picked[256]; - - m->item_pathname( picked, sizeof( picked ) ); - - Logger log( this ); - - if ( ! strcmp( picked, "Mode/GUI + OSC" ) ) - mode( GUI ); - else if ( ! strcmp( picked, "Mode/Control Voltage (JACK)" ) ) - mode( CV ); - else if ( ! strcmp( picked, "/Remove" ) ) - command_remove(); - else if ( ! strncmp( picked, "Connect To/", strlen( "Connect To/" ) ) ) - { - char *peer_name = index( picked, '/' ) + 1; - - *index( peer_name, '/' ) = 0; - -// OSC::Signal s = (OSC::Signal*)m->mvalue()->user_data(); - const char *path = ((OSC::Signal*)m->mvalue()->user_data())->path(); - - /* if ( ! _osc_output()->is_connected_to( ((OSC::Signal*)m->mvalue()->user_data()) ) ) */ - /* { */ - /* _persistent_osc_connections.push_back( strdup(path) ); */ - - Port *p = control_output[0].connected_port(); - - if ( learn_by_number ) - mixer->osc_endpoint->add_translation( path, p->osc_number_path()); - else - mixer->osc_endpoint->add_translation( path, p->osc_path() ); - } - else if ( ! strncmp( picked, "Disconnect From/", strlen( "Disconnect From/" ) ) ) - { - /* char *peer_name = index( picked, '/' ) + 1; */ - - /* *index( peer_name, '/' ) = 0; */ - -// OSC::Signal s = (OSC::Signal*)m->mvalue()->user_data(); - const char *path = (const char*)m->mvalue()->user_data(); - - /* if ( ! _osc_output()->is_connected_to( ((OSC::Signal*)m->mvalue()->user_data()) ) ) */ - /* { */ - /* _persistent_osc_connections.push_back( strdup(path) ); */ - - // Port *p = control_output[0].connected_port(); - - mixer->osc_endpoint->del_translation( path ); - - /* if ( learn_by_number ) */ - /* { */ - /* char *our_path = p->osc_number_path(); */ - - /* mixer->osc_endpoint->add_translation( path, our_path ); */ - - /* free(our_path); */ - /* } */ - /* else */ - /* mixer->osc_endpoint->add_translation( path, p->osc_path() ); */ - } - - - - /* } */ - /* else */ - /* { */ - /* /\* timeline->osc->disconnect_signal( _osc_output(), path ); *\/ */ - - /* /\* for ( std::list::iterator i = _persistent_osc_connections.begin(); *\/ */ - /* /\* i != _persistent_osc_connections.end(); *\/ */ - /* /\* ++i ) *\/ */ - /* /\* { *\/ */ - /* /\* if ( !strcmp( *i, path ) ) *\/ */ - /* /\* { *\/ */ - /* /\* free( *i ); *\/ */ - /* /\* i = _persistent_osc_connections.erase( i ); *\/ */ - /* /\* break; *\/ */ - /* /\* } *\/ */ - /* /\* } *\/ */ - - /* //free( path ); */ - /* } */ - - - -} -static Fl_Menu_Button *peer_menu; -static const char *peer_prefix; - -void -Controller_Module::peer_callback( OSC::Signal *sig, OSC::Signal::State state, void *v ) -{ - char *s; - - DMESSAGE( "Paramter limits: %f %f", sig->parameter_limits().min, sig->parameter_limits().max ); - - /* only show outputs */ - if ( sig->direction() != OSC::Signal::Output ) - return; - - - /* only list CV signals for now */ - if ( ! ( sig->parameter_limits().min == 0.0 && - sig->parameter_limits().max == 1.0 ) ) - return; - - if ( ! v ) - { - /* if( state == OSC::Signal::Created ) */ - /* timeline->connect_osc(); */ - /* else */ - /* timeline->update_osc_connection_state(); */ - } - else - { - /* building menu */ -// const char *name = sig->peer_name(); - - assert( sig->path() ); - - char *path = strdup( sig->path() ); - - unescape_url( path ); - - asprintf( &s, "%s/%s", peer_prefix, path ); - - peer_menu->add( s, 0, NULL, (void*)( sig ), 0 ); - - /* FL_MENU_TOGGLE | */ - /* ( ((Controller_Module*)v)->_osc_output()->is_connected_to( sig ) ? FL_MENU_VALUE : 0 ) ); */ - - free( path ); - - free( s ); - } -} - -void -Controller_Module::add_osc_peers_to_menu ( Fl_Menu_Button *m, const char *prefix ) -{ - mixer->osc_endpoint->peer_signal_notification_callback( &Controller_Module::peer_callback, NULL ); - - peer_menu = m; - peer_prefix = prefix; - - mixer->osc_endpoint->list_peer_signals( this ); -} - -void -Controller_Module::add_osc_connections_to_menu ( Fl_Menu_Button *m, const char *prefix ) -{ - /* peer_menu = m; */ - const char *peer_prefix = prefix; - -// mixer->osc_endpoint->list_peer_signals( this ); - - Port *p = control_output[0].connected_port(); - - const char *number_path = p->osc_number_path(); - const char *name_path = p->osc_path(); - - const char *paths[] = { number_path,name_path,NULL }; - - for ( const char **cpath = paths; *cpath; cpath++ ) - { - const char ** conn = mixer->osc_endpoint->get_connections( *cpath ); - - if ( conn ) - { - for ( const char **s = conn; *s; s++ ) - { - /* building menu */ - - char *path = strdup( *s ); - - unescape_url( path ); - - char *ns; - asprintf( &ns, "%s/%s", peer_prefix, path ); - - peer_menu->add( ns, 0, NULL, const_cast(*s), 0 ); - - free( path ); -// free(*s); - } - - free( conn ); - } - } -} - -/** build the context menu for this control */ -Fl_Menu_Button & -Controller_Module::menu ( void ) -{ - static Fl_Menu_Button m( 0, 0, 0, 0, "Controller" ); - - m.clear(); - - if ( mode() == GUI ) - { - add_osc_peers_to_menu( &m, "Connect To" ); - add_osc_connections_to_menu( &m, "Disconnect From" ); - } - - m.add( "Mode/GUI + OSC", 0, 0, 0, FL_MENU_RADIO | ( mode() == GUI ? FL_MENU_VALUE : 0 )); - m.add( "Mode/Control Voltage (JACK)", 0, 0, 0, FL_MENU_RADIO | ( mode() == CV ? FL_MENU_VALUE : 0 )); - m.add( "Remove", 0, 0, 0, is_default() ? FL_MENU_INACTIVE : 0 ); - -// menu_set_callback( m.items(), &Controller_Module::menu_cb, (void*)this ); - m.callback( &Controller_Module::menu_cb, (void*)this ); - // m.copy( items, (void*)this ); - - return m; -} - -void -Controller_Module::draw ( void ) -{ - Fl_Group::draw(); - draw_box(x(),y(),w(),h()); - - if ( learn_mode() ) - { - fl_rectf( x(),y(),w(),h(), fl_color_add_alpha( FL_MAGENTA, 50 ) ); - } -} - -int -Controller_Module::handle ( int m ) -{ - - switch ( m ) - { - case FL_PUSH: - { - if ( learn_mode() ) - { - tooltip( "Now learning control. Move the desired control on your controller" ); - - //connect_to( &module->control_input[port] ); - Port *p = control_output[0].connected_port(); - - if ( p ) - { - const char * path = learn_by_number ? p->osc_number_path() : p->osc_path(); - - DMESSAGE( "Will learn %s", path ); - - mixer->osc_endpoint->learn( path ); - } - - return 1; - } - - if ( Fl::event_button3() ) - { - /* context menu */ - /* if ( type() != SPATIALIZATION ) */ - menu_popup( &menu() ); - - return 1; - } - else - return Fl_Group::handle( m ); - } - } - - return Fl_Group::handle( m ); -} - -void -Controller_Module::handle_control_changed ( Port *p ) -{ - /* ignore changes initiated while mouse is over widget */ - - if ( type() == SPATIALIZATION ) - { - if ( Mixer::spatialization_console ) - Mixer::spatialization_console->handle_control_changed( this ); - } - - if ( contains( Fl::pushed() ) ) - return; - - if ( p ) - control_value = p->control_value(); - - if ( control->value() == control_value ) - return; - - /* if ( control->value() != control_value ) */ - /* { */ - /* redraw(); */ - /* } */ - - if ( type() == SPATIALIZATION ) - { - Panner *pan = (Panner*)control; - - pan->point( 0 )->azimuth( control_output[0].control_value() ); - pan->point( 0 )->elevation( control_output[1].control_value() ); - - if ( control_output[2].connected() ) - { -// Port *pp = control_output[2].connected_port(); - float v = control_output[2].control_value(); -// float s = pp->hints.maximum - pp->hints.minimum; - - pan->point( 0 )->radius( v ); - } - if ( visible_r() ) - pan->redraw(); - } - else - { - if ( type() == TOGGLE ) - ((Fl_Button*)control)->value(control_value); - else - control->value(control_value); - } -} - -void -Controller_Module::command_remove ( void ) -{ - if ( is_default() ) - fl_alert( "Default modules may not be deleted." ); - else - { - chain()->remove( this ); - Fl::delete_widget( this ); - } -} - -/**********/ -/* Client */ -/**********/ - -void -Controller_Module::process ( nframes_t nframes ) -{ - THREAD_ASSERT( RT ); - - if ( type() == SPATIALIZATION ) - { - return; - } - - if ( control_output[0].connected() ) - { - float f = control_value; - - if ( mode() == CV ) - { - f = *((float*)aux_audio_input[0].jack_port()->buffer( nframes )); - - const Port *p = control_output[0].connected_port(); - - if (p->hints.ranged ) - { - // scale value to range. - // we assume that CV values are between 0 and 1 - - float scale = p->hints.maximum - p->hints.minimum; - float offset = p->hints.minimum; - - f = ( f * scale ) + offset; - } - } -// else -// f = *((float*)control_output[0].buffer()); - - *((float*)control_output[0].buffer()) = f; - - control_value = f; - } -} diff --git a/mixer/src/Controller_Module.H b/mixer/src/Controller_Module.H deleted file mode 100644 index 83973ba..0000000 --- a/mixer/src/Controller_Module.H +++ /dev/null @@ -1,127 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2009 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include "Module.H" -#include -#include "JACK/Port.H" -#include "OSC/Endpoint.H" - -class Fl_Menu_Button; -class Fl_Menu_; - -class Fl_Valuator; - -class Controller_Module : public Module -{ - - bool _pad; - bool _horizontal; - - volatile float control_value; - - Fl_Menu_Button & menu ( void ); - static void menu_cb ( Fl_Widget *w, void *v ); - void menu_cb ( const Fl_Menu_ *m ); - - - static void peer_callback( OSC::Signal *sig, OSC::Signal::State state, void *v ); - void peer_callback( OSC::Signal *sig, OSC::Signal::State state ); - void add_osc_peers_to_menu ( Fl_Menu_Button *m, const char *prefix ); - void add_osc_connections_to_menu ( Fl_Menu_Button *m, const char *prefix ); - -public: - - static bool _learn_mode; - - static bool learn_by_number; - static bool learn_mode ( void ) { return _learn_mode; } - static void learn_mode ( bool b ) { _learn_mode = b; } - - enum Mode { GUI, CV, OSC, MIDI }; - - enum Type { KNOB, - SLIDER, - SPINNER, - TOGGLE, - SPATIALIZATION }; - - Mode mode ( void ) const { return _mode; } - void mode ( Mode v ); - - void horizontal ( bool v ) { _horizontal = v; } - Type type ( void ) const { return _type; } - - Controller_Module ( bool is_default = false ); - virtual ~Controller_Module ( ); - - const char *name ( void ) const { return "Controller"; } - - int can_support_inputs ( int ) { return 0; } - bool configure_inputs ( int ) { return false; } - - void pad ( bool v ) { _pad = v; } - - static void cb_handle ( Fl_Widget *w, void *v ); - void cb_handle ( Fl_Widget *w ); - static void cb_spatializer_handle ( Fl_Widget *w, void *v ); - void cb_spatializer_handle ( Fl_Widget *w ); - - void connect_to ( Port *p ); - bool connect_spatializer_to ( Module *m ); - bool connect_spatializer_radius_to ( Module *m ); - void disconnect ( void ); - - void handle_control_changed ( Port *p ); - void handle_chain_name_changed ( void ); - void handle_control_disconnect ( Port *p ); - - virtual void command_remove ( void ); - - LOG_CREATE_FUNC( Controller_Module ); - - virtual void update ( void ); - - void process ( nframes_t nframes ); - - void draw ( void ); - - int handle ( int m ); - - void take_focus ( void ); -// void set_control_value ( float f ) { control_value = f; } - -protected: - - void get ( Log_Entry &e ) const; - void set ( Log_Entry &e ); - -private: - - void maybe_create_panner ( void ); - char *generate_osc_path ( void ); - void change_osc_path ( char *path ); - - Mode _mode; - Type _type; - - Fl_Valuator *control; - -}; diff --git a/mixer/src/DPM.C b/mixer/src/DPM.C deleted file mode 100644 index 35edf23..0000000 --- a/mixer/src/DPM.C +++ /dev/null @@ -1,256 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -/* a Digital Peak Meter, either horizontal or vertical. Color is a - gradient from min_color() to max_color(). box() is used to draw the - individual 'lights'. division() controls how many 'lights' there - are. value() is volume in dBFS */ - -#include "DPM.H" - -/* we cache the gradient for (probably excessive) speed */ -float DPM::_dim; -Fl_Color DPM::_gradient[128] = { (Fl_Color)0 }; -Fl_Color DPM::_dim_gradient[128]; - -#include -#include -#include - -#include -#include - -DPM::DPM ( int X, int Y, int W, int H, const char *L ) : - Meter( X, Y, W, H, L ) -{ - tooltip( peak_string ); - - _last_drawn_hi_segment = 0; - - pixels_per_segment( 4 ); - - type( FL_VERTICAL ); - -// resize( X, Y, W, H ); - - dim( 0.85f ); - - /* initialize gradients */ - if ( DPM::_gradient[ 0 ] == 0 ) - { - int breaks[] = {0,60,70,80,90,127}; - - Fl_Color cols[] = { - fl_rgb_color( 45,58,64), - fl_rgb_color( 84,181,195 ), - fl_rgb_color( 122,200,211 ), - fl_rgb_color( 178,213,212 ), - fl_rgb_color( 209,213,179 ), - fl_rgb_color( 250, 40, 30 ) - }; - - DPM::blend( 6, breaks, cols ); - } - - box( FL_FLAT_BOX ); - color( FL_BACKGROUND_COLOR ); - - resize( X,Y,W,H); -} - -/* which marks to draw beside meter */ -const int marks [] = { -70, -50, -40, -30, -20, -10, -3, 0, 4 }; - -void -DPM::draw_label ( void ) -{ - - /* dirty hack */ - if ( parent()->child( 0 ) == this ) - { - fl_font( FL_TIMES, 8 ); - fl_color( FL_WHITE ); - /* draw marks */ - char pat[5]; - if ( type() == FL_HORIZONTAL ) - { - for ( int i = sizeof( marks ) / sizeof( marks[0] ); i-- ; ) - { - sprintf( pat, "%d", marks[ i ] ); - - int v = w() * deflection( (float)marks[ i ] ); - - fl_draw( pat, x() + v, (y() + h() + 8), 19, 8, (Fl_Align) (FL_ALIGN_RIGHT | FL_ALIGN_TOP) ); - } - - } - else - { - for ( int i = sizeof( marks ) / sizeof( marks[0] ); i-- ; ) - { - sprintf( pat, "%d", marks[ i ] ); - - int v = h() * deflection( (float)marks[ i ] ); - - fl_draw( pat, x() - 20, (y() + h() - 4) - v, 19, 8, (Fl_Align) (FL_ALIGN_RIGHT | FL_ALIGN_TOP) ); - } - } - } -} - -void -DPM::resize ( int X, int Y, int W, int H ) -{ - int old_segments = _segments; - - Fl_Widget::resize( X, Y, W, H ); - - int tx,ty,tw,th; - bbox(tx,ty,tw,th); - - if ( type() == FL_HORIZONTAL ) - _segments = floor( tw / (double)_pixels_per_segment ); - else - _segments = floor( th / (double)_pixels_per_segment ); - - if ( old_segments != _segments ) - _last_drawn_hi_segment = 0; -} - -void DPM::bbox ( int &X, int &Y, int &W, int &H ) -{ - X = x() + 2; - Y = y() + 2; - W = w() - 4; - H = h() - 4; -} - -void -DPM::draw ( void ) -{ - snprintf( peak_string, sizeof( peak_string ), "%.1f", peak() ); - tooltip( peak_string ); - - int X,Y,W,H; - bbox(X,Y,W,H); - - int v = pos( value() ); - int pv = pos( peak() ); - - int clipv = pos( 0 ); - - int bh = H / _segments; - /* int bh = _pixels_per_segment; */ - /* int bw = _pixels_per_segment; */ - int bw = W / _segments; - - if ( damage() & FL_DAMAGE_ALL ) - { - draw_label(); - - draw_box( FL_FLAT_BOX, x(), y(), w(), h(), FL_DARK1 ); - } - - fl_push_clip( X, Y, W, H ); - - const int active = active_r(); - - int hi, lo; - - /* only draw as many segments as necessary */ - if ( damage() == FL_DAMAGE_USER1 ) - { - if ( v > _last_drawn_hi_segment ) - { - hi = v; - lo = _last_drawn_hi_segment; - } - else - { - hi = _last_drawn_hi_segment; - lo = v; - } - } - else - { - lo = 0; - hi = _segments; - } - - _last_drawn_hi_segment = v; - - for ( int p = lo; p <= hi; p++ ) - { - Fl_Color c; - - if ( p <= v ) - { - if ( p == clipv ) - c = fl_color_average( FL_YELLOW, div_color( p ), 0.40 ); - else - c = div_color( p ); - } - else if ( p == pv ) - c = div_color( p ); - else - c = dim_div_color( p ); - - if ( ! active ) - c = fl_inactive( c ); - - int yy = 0; - int xx = 0; - - if ( type() == FL_HORIZONTAL ) - { - xx = X + p * bw; - fl_rectf( X + (p * bw), Y, bw, H, c ); - } - else - { - yy = Y + H - ((p+1) * bh); - fl_rectf( X, yy, W, bh, c ); - } - - if ( _pixels_per_segment >= 3 ) - { - fl_color( FL_DARK1 ); - - if ( type() == FL_HORIZONTAL ) - { - fl_line( xx, Y, xx, Y + H - 1 ); - } - else - { - fl_line( X, yy, X + W - 1, yy ); - } - } - - /* } */ - /* else */ - /* { */ - /* if ( type() == FL_HORIZONTAL ) */ - /* fl_draw_box( box(), X + (p * bw), Y, bw, H, c ); */ - /* else */ - /* fl_draw_box( box(), X, Y + H - ((p + 1) * bh), W, bh, c ); */ - /* } */ - } - - fl_pop_clip(); -} diff --git a/mixer/src/DPM.H b/mixer/src/DPM.H deleted file mode 100644 index 03f24bb..0000000 --- a/mixer/src/DPM.H +++ /dev/null @@ -1,107 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include // for FL_HORIZONTAL and FL_VERTICAL - -#include "Meter.H" - -class DPM : public Meter -{ - char peak_string[10]; - - int _segments; - int _pixels_per_segment; - int _last_drawn_hi_segment; - - float _value; - - int pos ( float v ) - { - float pv = deflection( v ) * ( _segments - 1 ); - - return pv; - } - - static float _dim; - static Fl_Color _gradient[]; - static Fl_Color _dim_gradient[]; - - Fl_Color - div_color ( int i ) - { - return _gradient[ i * 127 / _segments ]; - } - - Fl_Color - dim_div_color ( int i ) - { - return _dim_gradient[ i * 127 / _segments ]; - } - - -protected: - - virtual void draw_label ( void ); - virtual void draw ( void ); - virtual void resize ( int, int, int, int ); - - void bbox ( int &X, int &Y, int &W, int &H ); - -public: - - DPM ( int X, int Y, int W, int H, const char *L = 0 ); - - void value ( float v ) - { - if ( _value != v ) - { - if ( pos( v ) != pos( _value ) ) - Meter::value( v ); - } - - _value = v; - } - - float value ( void ) const - { - return _value; - } - - void pixels_per_segment ( int v ) { _pixels_per_segment = v; } - - float dim ( void ) const { return _dim; } - void dim ( float v ) { _dim = v; if ( visible_r() ) redraw(); } - - static - void - blend ( int nbreaks, int* b, Fl_Color *c ) - { - for ( int i = 0; i < nbreaks - 1; i++ ) - { - int k = 0; - for ( int j = b[i]; j <= b[i+1]; j++, k++ ) - _gradient[ j ] = fl_color_average( c[i+1], c[i], ( k ) / (float)(b[i+1] - b[i] )); - } - - for ( int i = 0; i < 128; i++ ) - _dim_gradient[ i ] = fl_color_average( FL_BLACK, _gradient[ i ], _dim ); - } -}; diff --git a/mixer/src/Gain_Module.C b/mixer/src/Gain_Module.C deleted file mode 100644 index ecd5fe1..0000000 --- a/mixer/src/Gain_Module.C +++ /dev/null @@ -1,142 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2009 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include -#include - -#include "Gain_Module.H" - - - -Gain_Module::Gain_Module ( ) - : Module ( 50, 24, name() ) -{ - add_port( Port( this, Port::INPUT, Port::AUDIO ) ); - add_port( Port( this, Port::OUTPUT, Port::AUDIO ) ); - - { - Port p( this, Port::INPUT, Port::CONTROL, "Gain (dB)" ); - p.hints.type = Port::Hints::LINEAR; - p.hints.ranged = true; - p.hints.minimum = -70.0f; - p.hints.maximum = 6.0f; - p.hints.default_value = 0.0f; - - p.connect_to( new float ); - p.control_value( p.hints.default_value ); - - add_port( p ); - } - - { - Port p( this, Port::INPUT, Port::CONTROL, "Mute" ); - p.hints.type = Port::Hints::BOOLEAN; - p.hints.ranged = true; - p.hints.minimum = 0.0f; - p.hints.maximum = 1.0f; - p.hints.default_value = 0.0f; - - p.connect_to( new float ); - p.control_value( p.hints.default_value ); - - add_port( p ); - } - - end(); - - log_create(); - - smoothing.sample_rate( sample_rate() ); -} - -Gain_Module::~Gain_Module ( ) -{ - delete (float*)control_input[0].buffer(); - delete (float*)control_input[1].buffer(); - log_destroy(); -} - - - -bool -Gain_Module::configure_inputs ( int n ) -{ - audio_input.clear(); - audio_output.clear(); -// control_input.clear(); - - for ( int i = 0; i < n; ++i ) - { - add_port( Port( this, Port::INPUT, Port::AUDIO ) ); - add_port( Port( this, Port::OUTPUT, Port::AUDIO ) ); - } - - return true; -} - -void -Gain_Module::handle_sample_rate_change ( nframes_t n ) -{ - smoothing.sample_rate( n ); -} - - - -/**********/ -/* Engine */ -/**********/ - -void -Gain_Module::process ( nframes_t nframes ) -{ - - if ( unlikely( bypass() ) ) - { - /* nothing to do */ - } - else - { - const float gt = DB_CO( control_input[1].control_value() ? -90.f : control_input[0].control_value() ); - - sample_t gainbuf[nframes]; - - bool use_gainbuf = smoothing.apply( gainbuf, nframes, gt ); - - if ( unlikely( use_gainbuf ) ) - { - for ( int i = audio_input.size(); i--; ) - { - if ( audio_input[i].connected() && audio_output[i].connected() ) - { - sample_t *out = (sample_t*)audio_input[i].buffer(); - - buffer_apply_gain_buffer( out, gainbuf, nframes ); - } - } - } - else - for ( int i = audio_input.size(); i--; ) - { - if ( audio_input[i].connected() && audio_output[i].connected() ) - { - buffer_apply_gain( (sample_t*)audio_input[i].buffer(), nframes, gt ); - } - } - } -} diff --git a/mixer/src/Gain_Module.H b/mixer/src/Gain_Module.H deleted file mode 100644 index a8bf764..0000000 --- a/mixer/src/Gain_Module.H +++ /dev/null @@ -1,50 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2009 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include "Module.H" -#include "dsp.h" - -class Gain_Module : public Module -{ - Value_Smoothing_Filter smoothing; - -public: - - Gain_Module ( ); - Gain_Module ( const Gain_Module & rhs ); - virtual ~Gain_Module ( ); - - const char *name ( void ) const { return "Gain"; } - - int can_support_inputs ( int n ) { return n; } - bool configure_inputs ( int n ); - - LOG_CREATE_FUNC( Gain_Module ); - - MODULE_CLONE_FUNC( Gain_Module ); - - virtual void handle_sample_rate_change ( nframes_t n ); - -protected: - - virtual void process ( nframes_t nframes ); - -}; diff --git a/mixer/src/Group.C b/mixer/src/Group.C deleted file mode 100644 index 1f57642..0000000 --- a/mixer/src/Group.C +++ /dev/null @@ -1,303 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2013 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include -#include "Group.H" -#include "Chain.H" -#include "Mixer_Strip.H" -#include "Module.H" - -#include -extern char *instance_name; - -Group::Group ( ) -{ - _single =false; - _name = NULL; - _dsp_load = _load_coef = 0; -} - -Group::Group ( const char *name, bool single ) : Loggable ( !single ) -{ - _single = single; - _name = strdup(name); - _dsp_load = _load_coef = 0; - - // this->name( name ); - - /* FIXME: handle client creation error */ -/* if ( ! jack_name ) */ -/* { */ -/* _engine = NULL; */ - -/* // fl_alert( "Could not create JACK client. Perhaps the sound device already in use. In any event, now I'll die." ); */ -/* exit( 1 ); */ -/* // return false; */ -/* } */ -} - -Group::~Group ( ) -{ - DMESSAGE( "Destroying group" ); - - if ( _name ) - free( _name ); - - deactivate(); -} - - -void -Group::get ( Log_Entry &e ) const -{ - e.add( ":name", name() ); -} - -void -Group::set ( Log_Entry &e ) -{ - for ( int i = 0; i < e.size(); ++i ) - { - const char *s, *v; - - e.get( i, &s, &v ); - - if ( ! ( strcmp( s, ":name" ) ) ) - { - bool add = false; - if (!_name ) - add = true; - - _name = strdup(v); - - if ( add ) - mixer->add_group(this); - } - } -} - - - -/*************/ -/* Callbacks */ -/*************/ - -void -Group::latency ( jack_latency_callback_mode_t mode ) -{ - for ( std::list::iterator i = strips.begin(); - i != strips.end(); - i++ ) - { - if ( (*i)->chain() ) - (*i)->chain()->set_latency(mode == JackCaptureLatency ? JACK::Port::Input : JACK::Port::Output ); - } -} - -/* THREAD: RT */ -/** This is the jack xrun callback */ -int -Group::xrun ( void ) -{ - return 0; -} - -/* THREAD: RT */ -void -Group::freewheel ( bool starting ) -{ - if ( starting ) - DMESSAGE( "entering freewheeling mode" ); - else - DMESSAGE( "leaving freewheeling mode" ); -} - -/* THREAD: RT (non-RT) */ -int -Group::buffer_size ( nframes_t nframes ) -{ - recal_load_coef(); - - /* JACK calls this in the RT thread, even though it's a - * non-realtime operation. This mucks up our ability to do - * THREAD_ASSERT, so just lie and say this is the UI thread... */ - - _thread.set( "UI" ); - - for ( std::list::iterator i = strips.begin(); - i != strips.end(); - i++ ) - { - if ( (*i)->chain() ) - (*i)->chain()->buffer_size(nframes); - } - - _thread.set( "RT" ); - - return 0; -} - -/* THREAD: ?? */ -void -Group::port_connect( jack_port_id_t a, jack_port_id_t b, int connect ) -{ - for ( std::list::iterator i = strips.begin(); - i != strips.end(); - i++ ) - { - if ( (*i)->chain() ) - (*i)->chain()->port_connect( a, b, connect); - } -} - - -/* THREAD: RT */ -int -Group::process ( nframes_t nframes ) -{ - jack_time_t then = jack_get_time(); - - /* FIXME: wrong place for this */ - _thread.set( "RT" ); - - if ( ! trylock() ) - { - /* the data structures we need to access here (tracks and - * their ports, but not track contents) may be in an - * inconsistent state at the moment. Just punt and drop this - * buffer. */ - ++_buffers_dropped; - return 0; - } - - - /* since feedback loops are forbidden and outputs are - * summed, we don't care what order these are processed - * in */ - for ( std::list::iterator i = strips.begin(); - i != strips.end(); - i++ ) - { - if ( (*i)->chain() ) - (*i)->chain()->process(nframes); - } - - unlock(); - - _dsp_load = (float)(jack_get_time() - then ) * _load_coef; - - return 0; -} - -void -Group::recal_load_coef ( void ) -{ - _load_coef = 1.0f / ( nframes() / (float)sample_rate() * 1000000.0 ); -} -int -Group::sample_rate_changed ( nframes_t srate ) -{ - recal_load_coef(); - - for ( std::list::iterator i = strips.begin(); - i != strips.end(); - i++ ) - { - if ( (*i)->chain() ) - (*i)->chain()->sample_rate_change(srate); - } - - return 0; -} - -/* TRHEAD: RT */ -void -Group::thread_init ( void ) -{ - _thread.set( "RT" ); -} - -/* THREAD: RT */ -void -Group::shutdown ( void ) -{ -} - -/*******************/ -/* Group interface */ -/*******************/ - -void -Group::name ( const char *n ) -{ - if ( _name ) - free( _name ); - - char ename[512]; - - _name = strdup( n ); - - if ( _single ) - snprintf( ename, sizeof(ename), "%s/%s", instance_name, n ); - else - snprintf( ename, sizeof(ename), "%s (%s)", instance_name, n ); - - if ( !active() ) - { - Client::init( ename ); - Module::set_sample_rate( sample_rate() ); - } - else - { - Client::name( ename ); - } -} - -void -Group::add ( Mixer_Strip *o ) -{ - lock(); - if ( ! active() ) - { - /* to call init */ - char *n = strdup(name()); - name(n); - free(n); - } - if ( o->chain() ) - o->chain()->thaw_ports(); - - strips.push_back(o); - unlock(); -} - -void -Group::remove ( Mixer_Strip *o ) -{ - lock(); - strips.remove(o); - if ( o->chain() ) - o->chain()->freeze_ports(); - if ( strips.size() == 0 && active() ) - { - Client::close(); - } - unlock(); -} - diff --git a/mixer/src/Group.H b/mixer/src/Group.H deleted file mode 100644 index 5d3dd3d..0000000 --- a/mixer/src/Group.H +++ /dev/null @@ -1,102 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2013 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include -class Mixer_Strip; - -#include "Mutex.H" - -class Port; - -#include "JACK/Client.H" - -#include "Thread.H" -#include "Loggable.H" - -class Group : public Loggable, public JACK::Client, public Mutex -{ - bool _single; - char *_name; - - Thread _thread; /* only used for thread checking */ - - int _buffers_dropped; /* buffers dropped because of locking */ -/* int _buffers_dropped; /\* buffers dropped because of locking *\/ */ - - volatile float _dsp_load; - float _load_coef; - - int sample_rate_changed ( nframes_t srate ); - void shutdown ( void ); - int process ( nframes_t nframes ); - int xrun ( void ); - void freewheel ( bool yes ); - int buffer_size ( nframes_t nframes ); - void thread_init ( void ); - void port_connect ( jack_port_id_t a, jack_port_id_t b, int connect ); - virtual void latency ( jack_latency_callback_mode_t mode ); - - /* not allowed */ - Group ( const Group &rhs ); - Group & operator = ( const Group &rhs ); - - void request_locate ( nframes_t frame ); - - void recal_load_coef ( void ); - -protected: - - virtual void get ( Log_Entry &e ) const; - virtual void set ( Log_Entry &e ); - -private: - - friend class Port; - friend class Transport; - -public: - - LOG_CREATE_FUNC( Group ); - - float dsp_load ( void ) const { return _dsp_load; } - int nstrips ( void ) const { return strips.size(); } - int dropped ( void ) const { return _buffers_dropped; } - - Group ( ); - Group ( const char * name, bool single ); - virtual ~Group ( ); - - bool single ( void ) const { return _single; } - - const char * name ( void ) const { return _name; } - void name ( const char *n ); - - std::list strips; - - /* static void process ( nframes_t nframes, void *v ); */ - /* void process ( nframes_t nframes ); */ - - void add (Mixer_Strip*); - void remove (Mixer_Strip*); - - /* Engine *engine ( void ) { return _engine; } */ -}; - diff --git a/mixer/src/JACK_Module.C b/mixer/src/JACK_Module.C deleted file mode 100644 index 199f75c..0000000 --- a/mixer/src/JACK_Module.C +++ /dev/null @@ -1,730 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2009 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "const.h" - -#include - -#include -#include -#include -#include - -#include "dsp.h" - -#include "Chain.H" - -#include "JACK_Module.H" -#include - -#include -#include - -#include -#include -#include - -static Fl_PNG_Image *input_connector_image = NULL; -static Fl_PNG_Image *output_connector_image = NULL; - -extern char *instance_name; - -#include "Mixer.H" -#include "Group.H" - - -static JACK_Module *receptive_to_drop = NULL; - -const int MAX_PORTS = 16; - -JACK_Module::JACK_Module ( bool log ) - : Module ( 25, 25, name() ) -{ - _prefix = 0; - - _connection_handle_outputs[0][0] = 0; - _connection_handle_outputs[0][1] = 0; - _connection_handle_outputs[1][0] = 0; - _connection_handle_outputs[1][1] = 0; - - - align( FL_ALIGN_TOP | FL_ALIGN_INSIDE ); - - if ( log ) - { - /* FIXME: how do Controls find out that a connected value has changed? How does this work in ladspa? */ - { - Port p( this, Port::INPUT, Port::CONTROL, "Inputs" ); - p.hints.type = Port::Hints::INTEGER; - p.hints.minimum = 1; - p.hints.maximum = MAX_PORTS; - p.hints.ranged = true; - p.hints.visible = false; - - p.connect_to( new float ); - p.control_value_no_callback( 0 ); - - add_port( p ); - } - - { - Port p( this, Port::INPUT, Port::CONTROL, "Outputs" ); - p.hints.type = Port::Hints::INTEGER; - p.hints.minimum = 1; - p.hints.maximum = MAX_PORTS; - p.hints.ranged = true; - p.hints.visible = false; - - p.connect_to( new float ); - p.control_value_no_callback( 0 ); - - add_port( p ); - } - - color( FL_DARK1 ); - - log_create(); - } - - - { Fl_Scalepack *o = new Fl_Scalepack( x() + Fl::box_dx(box()), - y() + Fl::box_dy(box()), - w() - Fl::box_dw(box()), - h() - Fl::box_dh(box()) ); - o->type( Fl_Pack::VERTICAL ); - o->spacing(0); - - - { Fl_Scalepack *o = new Fl_Scalepack( x() + Fl::box_dx(box()), - y() + Fl::box_dy(box()), - w(), - 24 - Fl::box_dh(box()) ); - o->type( Fl_Pack::HORIZONTAL ); - - o->spacing( 0 ); - - - { Fl_Box *o = input_connection_handle = new Fl_Box( x(), y(), 18, 18 ); - o->tooltip( "Drag and drop to make and break JACK connections."); - o->hide(); - o->image( input_connector_image ? input_connector_image : input_connector_image = new Fl_PNG_Image( "input_connector", img_io_input_connector_10x10_png, img_io_input_connector_10x10_png_len ) ); - - } - - { Fl_Box *o = new Fl_Box( x() + 10, y(), w() - 20, h() ); - Fl_Group::current()->resizable(o); - } - - - { Fl_Button *o = dec_button = new Fl_Button( 0, 0, 12, h(), "-" ); - o->callback( cb_button, this ); - o->labelsize(10); - o->labelfont( FL_HELVETICA_BOLD ); - o->hide(); - } - { Fl_Button *o = inc_button = new Fl_Button( 0,0, 12, h(), "+" ); - o->labelsize(10); - o->labelfont( FL_HELVETICA_BOLD ); - o->callback( cb_button, this ); - o->hide(); - } - - { Fl_Box *o = output_connection_handle = new Fl_Box( x(), y(), 12, 12 ); - o->tooltip( "Drag and drop to make and break JACK connections."); - o->image( output_connector_image ? output_connector_image : output_connector_image = new Fl_PNG_Image( "output_connector", img_io_output_connector_10x10_png, img_io_output_connector_10x10_png_len ) ); - o->hide(); - } - - { Fl_Box *o = output_connection2_handle = new Fl_Box( x(), y(), 12, 12 ); - o->tooltip( "Drag and drop to make and break JACK connections."); - o->image( output_connector_image ? output_connector_image : output_connector_image = new Fl_PNG_Image( "output_connector", img_io_output_connector_10x10_png, img_io_output_connector_10x10_png_len ) ); - o->hide(); - } - - o->end(); - } - - { - Fl_Browser *o = connection_display = new Fl_Browser( 0, 0, w(), h() ); - o->has_scrollbar(Fl_Browser_::VERTICAL); - o->textsize( 10 ); - o->textcolor( FL_LIGHT3 ); - o->textfont( FL_COURIER ); - o->box( FL_FLAT_BOX ); - o->color( FL_DARK1 ); - // o->color( fl_color_add_alpha( fl_rgb_color( 10, 10, 10 ), 100 )); - - Fl_Group::current()->resizable(o); - } - o->end(); - resizable(o); - } - end(); -} - -JACK_Module::~JACK_Module ( ) -{ - log_destroy(); - configure_inputs( 0 ); - configure_outputs( 0 ); - if ( _prefix ) - free( _prefix ); -} - - - -void -JACK_Module::draw ( void ) -{ - Module::draw(); - if ( this == receptive_to_drop ) - { - Fl_Widget *o = input_connection_handle; - fl_draw_box( FL_OVAL_BOX, o->x(), o->y(), o->w(), o->h(), fl_color_add_alpha( FL_GREEN, 127 ) ); - } -} - -static std::list -get_connections_for_ports ( std::vector ports ) -{ - std::list names; - - for ( unsigned int i = 0; i < ports.size(); ++i ) - { - const char **connections = ports[i].jack_port()->connections(); - - if ( ! connections ) - return names; - - bool is_output = ports[i].jack_port()->direction() == JACK::Port::Output; - - for ( const char **c = connections; *c; c++ ) - { - char *client_id = 0; - char *strip_name = 0; - // char *client_name = 0; - - if ( 2 == sscanf( *c, "Non-Mixer.%m[^:/]/%m[^:]:", &client_id, &strip_name ) ) - { - free( client_id ); - char *s = NULL; - asprintf( &s, "%s%s", is_output ? "@r" : "", strip_name ); - free( strip_name ); - strip_name = s; - } - else if ( 2 == sscanf( *c, "Non-Mixer.%m[^:(] (%m[^:)]):", &client_id, &strip_name ) ) - { - free( client_id ); - char *s = NULL; - asprintf( &s, "%s%s", is_output ? "@r" : "", strip_name ); - free( strip_name ); - strip_name = s; - } - else if ( 2 == sscanf( *c, "Non-Timeline.%m[^:/]:%m[^/]/", &client_id, &strip_name ) ) - { - free( client_id ); - char *s = NULL; - asprintf( &s, "@C2%s%s", is_output ? "@r" : "", strip_name ); - free( strip_name ); - strip_name = s; - } - else if ( 2 == sscanf( *c, "Non-DAW.%m[^:/]:%m[^/]/", &client_id, &strip_name ) ) - { - free( client_id ); - char *s = NULL; - asprintf( &s, "@C2%s%s", is_output ? "@r" : "", strip_name ); - free( strip_name ); - strip_name = s; - } - else if ( 1 == sscanf( *c, "%m[^:]:", &strip_name ) ) - { - char *s = NULL; - asprintf( &s, "@C3%s%s", is_output ? "@r" : "", strip_name ); - free( strip_name ); - strip_name = s; - } - else - { - continue; - } - - for ( std::list::const_iterator j = names.begin(); - j != names.end(); - j++ ) - { - if ( !strcmp( j->c_str(), strip_name ) ) - { - goto skip; - } - } - - names.push_back( strip_name ); - - skip: - free( strip_name ); - - ; - - } - } - - names.sort(); - return names; -} - -void -JACK_Module::update_connection_status ( void ) -{ - /* do nothing when running in noui mode, as ->add will call some - * font measurement stuff which attempts to open the X display. */ - if ( ! fl_display ) - { - return; - } - - std::list output_names = get_connections_for_ports( aux_audio_output ); - std::list input_names = get_connections_for_ports( aux_audio_input ); - - connection_display->clear(); - - int n = 0; - for ( std::list::const_iterator j = input_names.begin(); - j != input_names.end(); - j++ ) - { - connection_display->add( j->c_str() ); - n++; - } - for ( std::list::const_iterator j = output_names.begin(); - j != output_names.end(); - j++ ) - { - connection_display->add( j->c_str() ); - n++; - } - - /* limit number of lines displayed */ - if ( n > 15 ) - n = 15; - - if ( n > 0 ) - size( w(), 26 + ( n * ( connection_display->incr_height() ) ) ); - else - size( w(), 24 ); - - parent()->parent()->redraw(); -} - -void -JACK_Module::cb_button ( Fl_Widget *w, void *v ) -{ - ((JACK_Module*)v)->cb_button( w ); -} - -void -JACK_Module::cb_button( Fl_Widget *w ) -{ - int n = audio_output.size(); - - Logger log(this); - - if ( w == dec_button ) - { - --n; - } - else if ( w == inc_button ) - { - ++n; - } - - control_input[1].control_value( n ); -} - -int -JACK_Module::can_support_inputs ( int ) -{ - return audio_output.size(); -} - - -void -JACK_Module::remove_aux_audio_outputs ( void ) -{ - for ( unsigned int i = aux_audio_output.size(); i--; ) - { - aux_audio_output.back().jack_port()->shutdown(); - aux_audio_output.pop_back(); - } -} - -bool -JACK_Module::configure_inputs ( int n ) -{ - if ( n > 0 ) - { - output_connection_handle->show(); - } - - if ( n < 1 || n > MAX_PORTS ) - return false; - - int on = audio_input.size(); - - if ( n > on ) - { - for ( int i = on; i < n; ++i ) - { - if ( add_aux_audio_output(_prefix, i ) ) - { - add_port( Port( this, Port::INPUT, Port::AUDIO ) ); - } - } - - mixer->maybe_auto_connect_output(&aux_audio_output.back()); - } - else - { - for ( int i = on; i > n; --i ) - { - audio_input.back().disconnect(); - audio_input.pop_back(); - aux_audio_output.back().disconnect(); - aux_audio_output.back().jack_port()->shutdown(); - delete aux_audio_output.back().jack_port(); - aux_audio_output.pop_back(); - - } - } - - _connection_handle_outputs[0][0] = 0; - _connection_handle_outputs[0][1] = aux_audio_output.size(); - - if ( is_default() ) - control_input[0].control_value_no_callback( n ); - - return true; -} - -bool -JACK_Module::configure_outputs ( int n ) -{ - int on = audio_output.size(); - - if ( n > MAX_PORTS ) - return false; - - if ( n > 0 ) - { - input_connection_handle->show(); - } - - if ( n > on ) - { - for ( int i = on; i < n; ++i ) - { - if ( add_aux_audio_input(_prefix, i ) ) - { - add_port( Port( this, Port::OUTPUT, Port::AUDIO ) ); - } - } - - mixer->auto_connect(); - } - else - { - for ( int i = on; i > n; --i ) - { - audio_output.back().disconnect(); - audio_output.pop_back(); - aux_audio_input.back().disconnect(); - aux_audio_input.back().jack_port()->shutdown(); - delete aux_audio_input.back().jack_port(); - aux_audio_input.pop_back(); - } - } - - if ( is_default() ) - control_input[1].control_value_no_callback( n ); - - if ( n > 0 && is_default() ) - { - dec_button->show(); - inc_button->show(); - } - - return true; -} - - -bool -JACK_Module::initialize ( void ) -{ - return true; -} - -void -JACK_Module::handle_control_changed ( Port *p ) -{ -// THREAD_ASSERT( UI ); - - if ( 0 == strcmp( p->name(), "Inputs" ) ) - { - DMESSAGE( "Adjusting number of inputs (JACK outputs)" ); - configure_inputs( p->control_value() ); - if ( chain() ) - chain()->configure_ports(); - } - else if ( 0 == strcmp( p->name(), "Outputs" ) ) - { - DMESSAGE( "Adjusting number of outputs (JACK inputs)" ); - - if ( ! chain() ) - { - configure_outputs( p->control_value() ); - } - else if ( chain()->can_configure_outputs( this, p->control_value() ) ) - { - configure_outputs( p->control_value() ); - chain()->configure_ports(); - } - else - { - p->connected_port()->control_value( noutputs() ); - } - } - - Module::handle_control_changed( p ); -} - -int -JACK_Module::handle ( int m ) -{ - static unsigned long _event_state = 0; - - unsigned long evstate = Fl::event_state(); - - switch ( m ) - { - case FL_PUSH: - if ( Fl::event_inside( output_connection_handle ) || - Fl::event_inside( output_connection2_handle ) || - Fl::event_inside( input_connection_handle ) ) - { - _event_state = evstate; - return 1; - } - - return Module::handle(m) || 1; - - case FL_RELEASE: - Fl::selection_owner(0); - receptive_to_drop = NULL; - - if ( Fl::event_inside( output_connection_handle ) || - Fl::event_inside( output_connection2_handle ) || - Fl::event_inside( input_connection_handle ) ) - { - if ( _event_state & FL_BUTTON3 ) - { - /* was a right click */ - // TODO: Pop up connection menu. - } - } - - return Module::handle(m) || 1; - case FL_DRAG: - { - if ( Fl::event_is_click() ) - return 1; - - int connection_handle = -1; - if ( Fl::event_inside( output_connection_handle ) ) - connection_handle = 0; - if ( Fl::event_inside( output_connection2_handle ) ) - connection_handle = 1; - - if ( Fl::event_button1() && - connection_handle >= 0 - && ! Fl::selection_owner() ) - { - DMESSAGE( "initiation of drag" ); - - char *s = (char*)malloc(256); - s[0] = 0; - - for ( unsigned int i = _connection_handle_outputs[connection_handle][0]; - i < aux_audio_output.size() && i < _connection_handle_outputs[connection_handle][1]; ++i ) - { - char *s2; - asprintf(&s2, "jack.port://%s\r\n", - aux_audio_output[i].jack_port()->jack_name() ); - - s = (char*)realloc( s, strlen( s ) + strlen( s2 ) + 1 ); - strcat( s, s2 ); - - free( s2 ); - } - - Fl::copy(s, strlen(s) + 1, 0); - - Fl::selection_owner(this); - - free( s ); - - Fl::dnd(); - - return 1; - } - - return 1; - } - /* we have to prevent Fl_Group::handle() from getting these, otherwise it will mess up Fl::belowmouse() */ - case FL_MOVE: - if ( Fl::event_inside( output_connection_handle ) || - Fl::event_inside( output_connection2_handle ) || - Fl::event_inside( input_connection_handle ) ) - { - fl_cursor( FL_CURSOR_HAND ); - } - else - fl_cursor( FL_CURSOR_DEFAULT ); - - Module::handle(m); - return 1; - case FL_ENTER: - case FL_DND_ENTER: - Module::handle(m); - return 1; - case FL_LEAVE: - case FL_DND_LEAVE: - Module::handle(m); - if ( this == receptive_to_drop ) - { - receptive_to_drop = NULL; - redraw(); - } - fl_cursor( FL_CURSOR_DEFAULT ); - return 1; - case FL_DND_RELEASE: - Fl::selection_owner(0); - receptive_to_drop = NULL; - redraw(); - return 1; - case FL_DND_DRAG: - { - if ( this == receptive_to_drop ) - return 1; - - if ( aux_audio_input.size() ) - { - - receptive_to_drop = this; - redraw(); - return 1; - } - - return 0; - } - case FL_PASTE: - { - receptive_to_drop = NULL; - redraw(); - - if ( ! Fl::event_inside( this ) ) - return 0; - - /* NOW we get the text... */ - const char *text = Fl::event_text(); - - DMESSAGE( "Got drop text \"%s\"",text); - - if ( strncmp( text, "jack.port://", strlen( "jack.port://" ) ) ) - { - return 0; - } - - std::vector port_names; - - char *port_name; - int end; - while ( sscanf( text, "jack.port://%m[^\r\n]\r\n%n", &port_name, &end ) > 0 ) - { - DMESSAGE( "Scanning %s", port_name ); - port_names.push_back( port_name ); - free(port_name ); - - text += end; - } - - for ( unsigned int i = 0; i < aux_audio_input.size() && i < port_names.size(); i++) - { - const char *pn = port_names[i].c_str(); - - JACK::Port *ji = aux_audio_input[i].jack_port(); - - if ( ji->connected_to( pn ) ) - { - - DMESSAGE( "Disconnecting from \"%s\"", pn ); - ji->disconnect( pn ); - } - else - { - DMESSAGE( "Connecting to %s", pn ); - ji->connect( pn ); - } - } - - Fl::selection_owner(0); - return 1; - } - } - - return Module::handle(m); -} - - -/**********/ -/* Engine */ -/**********/ - -void -JACK_Module::process ( nframes_t nframes ) -{ - for ( unsigned int i = 0; i < audio_input.size(); ++i ) - { - if ( audio_input[i].connected() ) - { - buffer_copy( (sample_t*)aux_audio_output[i].jack_port()->buffer(nframes), - (sample_t*)audio_input[i].buffer(), - nframes ); - } - - } - - for ( unsigned int i = 0; i < audio_output.size(); ++i ) - { - if ( audio_output[i].connected() ) - { - buffer_copy( (sample_t*)audio_output[i].buffer(), - (sample_t*)aux_audio_input[i].jack_port()->buffer(nframes), - nframes ); - } - } -} diff --git a/mixer/src/JACK_Module.H b/mixer/src/JACK_Module.H deleted file mode 100644 index 25e3d97..0000000 --- a/mixer/src/JACK_Module.H +++ /dev/null @@ -1,87 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2009 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -class Fl_Box; -class Fl_Browser; -#include "Module.H" -#include "JACK/Port.H" -#include - -class JACK_Module : public Module -{ - char *_prefix; - -protected: - - void prefix ( const char *s ) - { - if ( _prefix ) - free( _prefix ); - - _prefix = NULL; - - if ( s ) - _prefix = strdup( s ); - } - - Fl_Button * dec_button; - Fl_Button * inc_button; - Fl_Browser * connection_display; - Fl_Box * input_connection_handle; - Fl_Box * output_connection_handle; - Fl_Box * output_connection2_handle; - - static void cb_button ( Fl_Widget *w, void *v ); - void cb_button ( Fl_Widget *w ); - -protected: - - unsigned int _connection_handle_outputs[2][2]; - -public: - - void update_connection_status ( void ); - - JACK_Module ( bool log = true ); - virtual ~JACK_Module ( ); - - virtual const char *basename ( void ) const { return "JACK"; } - virtual const char *name ( void ) const { return "JACK"; } - virtual bool initialize ( void ); - - virtual void draw ( void ); - virtual int handle ( int m ); - - virtual int can_support_inputs ( int ); - void remove_aux_audio_outputs ( void ); - virtual bool configure_inputs ( int n ); - virtual bool configure_outputs ( int n ); - - virtual void handle_control_changed ( Port *p ); - - LOG_CREATE_FUNC( JACK_Module ); - - -protected: - - virtual void process ( nframes_t nframes ); - -}; diff --git a/mixer/src/LADSPAInfo.C b/mixer/src/LADSPAInfo.C deleted file mode 100644 index 8fc611e..0000000 --- a/mixer/src/LADSPAInfo.C +++ /dev/null @@ -1,828 +0,0 @@ -// -// LADSPAInfo.C - Class for indexing information on LADSPA Plugins -// -// Copyleft (C) 2002 Mike Rawes -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// - -// #include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#define HAVE_LIBLRDF 1 -#ifdef HAVE_LIBLRDF -#include -#endif - -#include "LADSPAInfo.h" - -using namespace std; - -LADSPAInfo::LADSPAInfo(bool override, - const char *path_list) -{ - if (strlen(path_list) > 0) { - m_ExtraPaths = strdup(path_list); - } else { - m_ExtraPaths = NULL; - } - m_LADSPAPathOverride = override; - - RescanPlugins(); -} - -LADSPAInfo::~LADSPAInfo() -{ - CleanUp(); -} - -void -LADSPAInfo::RescanPlugins(void) -{ -// Clear out what we've got - CleanUp(); - - if (!m_LADSPAPathOverride) { - // Get $LADPSA_PATH, if available - char *ladspa_path = getenv("LADSPA_PATH"); - if (ladspa_path) { - ScanPathList(ladspa_path, &LADSPAInfo::ExaminePluginLibrary); - - } else { - - cerr << "WARNING: LADSPA_PATH environment variable not set" << endl; - cerr << " Assuming /usr/lib/ladspa:/usr/local/lib/ladspa" << endl; - - ScanPathList("/usr/lib/ladspa:/usr/local/lib/ladspa", &LADSPAInfo::ExaminePluginLibrary); - } - } - -// Check any supplied extra paths - if (m_ExtraPaths) { - ScanPathList(m_ExtraPaths, &LADSPAInfo::ExaminePluginLibrary); - } - -// Do we have any plugins now? - if (m_Plugins.size() == 0) { - cerr << "WARNING: No plugins found" << endl; - } else { - cerr << m_Plugins.size() << " plugins found in " << m_Libraries.size() << " libraries" << endl; - -#ifdef HAVE_LIBLRDF - // Got some plugins. Now search for RDF data - lrdf_init(); - - char *rdf_path = getenv("LADSPA_RDF_PATH"); - - if (rdf_path) { - // Examine rdf info - ScanPathList(rdf_path, &LADSPAInfo::ExamineRDFFile); - - } else { - cerr << "WARNING: LADSPA_RDF_PATH environment variable not set" << endl; - cerr << " Assuming /usr/share/ladspa/rdf:/usr/local/share/ladspa/rdf" << endl; - - // Examine rdf info - ScanPathList("/usr/share/ladspa/rdf:/usr/local/share/ladspa/rdf", &LADSPAInfo::ExamineRDFFile); - } - MetadataRDFDescend(LADSPA_BASE "Plugin", 0); - - // See which plugins were not added to an rdf group, and add them - // all into the top level 'LADSPA' one - list rdf_p; - - // Get indices of plugins added to groups - for (vector::iterator ri = m_RDFURIs.begin(); ri != m_RDFURIs.end(); ri++) { - rdf_p.insert(rdf_p.begin(), ri->Plugins.begin(), ri->Plugins.end()); - } - - // Add all uncategorized plugins to top level group, subclassed by their - // library's basename. - rdf_p.unique(); - rdf_p.sort(); - unsigned long last_p = 0; - for (list::iterator p = rdf_p.begin(); p != rdf_p.end(); p++) { - if ((*p - last_p) > 1) { - for (unsigned long i = last_p + 1; i < *p; i++) { - // URI 0 is top-level "LADSPA" group - m_RDFURIs[0].Plugins.push_back(i); - } - } - last_p = *p; - } - while (++last_p < m_Plugins.size()) { - // URI 0 is top-level "LADSPA" group - m_RDFURIs[0].Plugins.push_back(last_p); - } - - lrdf_cleanup(); -#else - // No RDF. Add all plugins to top-level group - RDFURIInfo ri; - - ri.URI = ""; - ri.Label = "LADSPA"; - - m_RDFURIs.push_back(ri); - m_RDFLabelLookup["LADSPA"] = 0; - - for (unsigned long i = 0; i < m_Plugins.size(); i++) { - // Add plugin index - m_RDFURIs[0].Plugins.push_back(i); - } -#endif - } -} - -void -LADSPAInfo::UnloadAllLibraries(void) -{ -// Blank descriptors - for (vector::iterator i = m_Plugins.begin(); - i != m_Plugins.end(); i++) { - if (i->Descriptor) i->Descriptor = NULL; - } -// Unload DLLs, - for (vector::iterator i = m_Libraries.begin(); - i != m_Libraries.end(); i++) { - if (i->Handle) { - dlclose(i->Handle); - i->Handle = NULL; - } - i->RefCount = 0; - } -} - -const LADSPA_Descriptor * -LADSPAInfo::GetDescriptorByID(unsigned long unique_id) -{ - if (m_IDLookup.find(unique_id) == m_IDLookup.end()) { - cerr << "LADSPA Plugin ID " << unique_id << " not found!" << endl; - return NULL; - } - -// Got plugin index - unsigned long plugin_index = m_IDLookup[unique_id]; - - PluginInfo *pi = &(m_Plugins[plugin_index]); - LibraryInfo *li = &(m_Libraries[pi->LibraryIndex]); - - if (!(pi->Descriptor)) { - LADSPA_Descriptor_Function desc_func = GetDescriptorFunctionForLibrary(pi->LibraryIndex); - if (desc_func) pi->Descriptor = desc_func(pi->Index); - } - - if (pi->Descriptor) { - - // Success, so increment ref counter for library - li->RefCount++; - } - - return pi->Descriptor; -} - -void -LADSPAInfo::DiscardDescriptorByID(unsigned long unique_id) -{ - if (m_IDLookup.find(unique_id) == m_IDLookup.end()) { - cerr << "LADSPA Plugin ID " << unique_id << " not found!" << endl; - } else { - - // Get plugin index - unsigned long plugin_index = m_IDLookup[unique_id]; - - PluginInfo *pi = &(m_Plugins[plugin_index]); - LibraryInfo *li = &(m_Libraries[pi->LibraryIndex]); - - pi->Descriptor = NULL; - - // Decrement reference counter for library, and unload if last - if (li->RefCount > 0) { - li->RefCount--; - if (li->RefCount == 0) { - - // Unload library - dlclose(li->Handle); - li->Handle = NULL; - } - } - } -} - -// **************************************************************************** -// ** SSM Specific Functions ** -// **************************************************************************** - -unsigned long -LADSPAInfo::GetIDFromFilenameAndLabel(std::string filename, - std::string label) -{ - bool library_loaded = false; - - if (m_FilenameLookup.find(filename) == m_FilenameLookup.end()) { - cerr << "LADSPA Library " << filename << " not found!" << endl; - return 0; - } - - unsigned long library_index = m_FilenameLookup[filename]; - - if (!(m_Libraries[library_index].Handle)) library_loaded = true; - - LADSPA_Descriptor_Function desc_func = GetDescriptorFunctionForLibrary(library_index); - - if (!desc_func) { - return 0; - } - -// Search for label in library - const LADSPA_Descriptor *desc; - for (unsigned long i = 0; (desc = desc_func(i)) != NULL; i++) { - string l = desc->Label; - if (l == label) { - - // If we had to load the library, unload it - unsigned long id = desc->UniqueID; - if (library_loaded) { - dlclose(m_Libraries[library_index].Handle); - m_Libraries[library_index].Handle = NULL; - } - return id; - } - } - - cerr << "Plugin " << label << " not found in library " << filename << endl; - return 0; -} - -const vector -LADSPAInfo::GetMenuList(void) -{ - m_SSMMenuList.clear(); - - DescendGroup("", "LADSPA", 1); - - return m_SSMMenuList; -} - -const vector -LADSPAInfo::GetPluginInfo(void) -{ - return m_Plugins; -} - -unsigned long -LADSPAInfo::GetPluginListEntryByID(unsigned long unique_id) -{ - unsigned long j = 0; - for (vector::iterator i = m_SSMMenuList.begin(); - i != m_SSMMenuList.end(); i++, j++) { - if (i->UniqueID == unique_id) return j; - } - return m_SSMMenuList.size(); -} - -// **************************************************************************** -// ** Private Member Functions ** -// **************************************************************************** - -// Build a list of plugins by group, suitable for SSM LADSPA Plugin drop-down -// The top-level "LADSPA" group is not included - -void -LADSPAInfo::DescendGroup(string prefix, - const string group, - unsigned int depth) -{ - list groups = GetSubGroups(group); - - if (prefix.length() > 0) { - // Add an explicit '/' as we're creating sub-menus from groups - prefix += "/"; - } - - for (list::iterator g = groups.begin(); g != groups.end(); g++) { - string name; - - // Escape '/' and '|' characters - size_t x = g->find_first_of("/|"); - if (x == string::npos) { - name = *g; - } else { - size_t last_x = 0; - while (x < string::npos) { - name += g->substr(last_x, x - last_x) + '\\' + (*g)[x]; - last_x = x + 1; - x = g->find_first_of("/|", x + 1); - } - name += g->substr(last_x, x - last_x); - } - - DescendGroup(prefix + name, *g, depth + 1); - } - if (m_RDFLabelLookup.find(group) != m_RDFLabelLookup.end()) { - unsigned long uri_index = m_RDFLabelLookup[group]; - - // Create group for unclassified plugins - if (prefix.length() == 0) { - prefix = "Unclassified/"; - depth = depth + 1; - } - - // Temporary list (for sorting the plugins by name) - list plugins; - - for (vector::iterator p = m_RDFURIs[uri_index].Plugins.begin(); - p != m_RDFURIs[uri_index].Plugins.end(); p++) { - - PluginInfo *pi = &(m_Plugins[*p]); - string name; - - // Escape '/' and '|' characters - size_t x = pi->Name.find_first_of("/|"); - if (x == string::npos) { - name = pi->Name; - } else { - size_t last_x = 0; - while (x < string::npos) { - name += pi->Name.substr(last_x, x - last_x) + '\\' + pi->Name[x]; - last_x = x + 1; - x = pi->Name.find_first_of("/|", x + 1); - } - name += pi->Name.substr(last_x, x - last_x); - } - - PluginEntry pe; - - pe.Depth = depth; - pe.UniqueID = pi->UniqueID; - pe.Name = name; - pe.Category = prefix; - pe.Category = pe.Category.substr(0, pe.Category.size()-1); - - - plugins.push_back(pe); - } - plugins.sort(); - - // Deal with duplicates by numbering them - for (list::iterator i = plugins.begin(); - i != plugins.end(); ) { - string name = i->Name; - - i++; - unsigned long n = 2; - while ((i != plugins.end()) && (i->Name == name)) { - stringstream s; - s << n; - i->Name = name + " (" + s.str() + ")"; - n++; - i++; - } - } - - // Add all ordered entries to the Menu List - // This ensures that plugins appear after groups - for (list::iterator p = plugins.begin(); p != plugins.end(); p++) { - m_SSMMenuList.push_back(*p); - } - } -} - -// Get list of groups that are within given group. The root group is -// always "LADSPA" -list -LADSPAInfo::GetSubGroups(const string group) -{ - list groups; - unsigned long uri_index; - - if (m_RDFLabelLookup.find(group) == m_RDFLabelLookup.end()) { - return groups; - } else { - uri_index = m_RDFLabelLookup[group]; - } - - for (vector::iterator sg = m_RDFURIs[uri_index].Children.begin(); - sg != m_RDFURIs[uri_index].Children.end(); sg++) { - groups.push_back(m_RDFURIs[*sg].Label); - } - - groups.sort(); - - return groups; -} - -// Unload any loaded DLLs and clear vectors etc -void -LADSPAInfo::CleanUp(void) -{ - m_MaxInputPortCount = 0; - - m_IDLookup.clear(); - m_Plugins.clear(); - -// Unload loaded dlls - for (vector::iterator i = m_Libraries.begin(); - i != m_Libraries.end(); i++) { - if (i->Handle) dlclose(i->Handle); - } - - m_Libraries.clear(); - m_Paths.clear(); - - m_RDFURILookup.clear(); - m_RDFURIs.clear(); - - if (m_ExtraPaths) { - free(m_ExtraPaths); - m_ExtraPaths = NULL; - } -} - -// Given a colon-separated list of paths, examine the contents of each -// path, examining any regular files using the given member function, -// which currently can be: -// -// ExaminePluginLibrary - add plugin library info from plugins -// ExamineRDFFile - add plugin information from .rdf/.rdfs files -void -LADSPAInfo::ScanPathList(const char *path_list, - void (LADSPAInfo::*ExamineFunc)(const string, - const string)) -{ - const char *start; - const char *end; - int extra; - char *path; - string basename; - DIR *dp; - struct dirent *ep; - struct stat sb; - -// This does the same kind of thing as strtok, but strtok won't -// like the const - start = path_list; - while (*start != '\0') { - while (*start == ':') start++; - end = start; - while (*end != ':' && *end != '\0') end++; - - if (end - start > 0) { - extra = (*(end - 1) == '/') ? 0 : 1; - path = (char *)malloc(end - start + 1 + extra); - if (path) { - strncpy(path, start, end - start); - if (extra == 1) path[end - start] = '/'; - path[end - start + extra] = '\0'; - - dp = opendir(path); - if (!dp) { - cerr << "WARNING: Could not open path " << path << endl; - } else { - while ((ep = readdir(dp))) { - - // Stat file to get type - basename = ep->d_name; - if (!stat((path + basename).c_str(), &sb)) { - - // We only want regular files - if (S_ISREG(sb.st_mode)) (*this.*ExamineFunc)(path, basename); - } - } - closedir(dp); - } - free(path); - } - } - start = end; - } -} - -// Check given file is a valid LADSPA Plugin library -// -// If so, add path, library and plugin info -// to the m_Paths, m_Libraries and m_Plugins vectors. -// -void -LADSPAInfo::ExaminePluginLibrary(const string path, - const string basename) -{ - void *handle; - LADSPA_Descriptor_Function desc_func; - const LADSPA_Descriptor *desc; - string fullpath = path + basename; - -// We're not executing any code, so be lazy about resolving symbols - handle = dlopen(fullpath.c_str(), RTLD_LAZY); - - if (!handle) { - cerr << "WARNING: File " << fullpath - << " could not be examined" << endl; - cerr << "dlerror() output:" << endl; - cerr << dlerror() << endl; - } else { - - // It's a DLL, so now see if it's a LADSPA plugin library - desc_func = (LADSPA_Descriptor_Function)dlsym(handle, - "ladspa_descriptor"); - if (!desc_func) { - - // Is DLL, but not a LADSPA one - cerr << "WARNING: DLL " << fullpath - << " has no ladspa_descriptor function" << endl; - cerr << "dlerror() output:" << endl; - cerr << dlerror() << endl; - } else { - - // Got ladspa_descriptor, so we can now get plugin info - bool library_added = false; - unsigned long i = 0; - desc = desc_func(i); - while (desc) { - - // First, check that it's not a dupe - if (m_IDLookup.find(desc->UniqueID) != m_IDLookup.end()) { - unsigned long plugin_index = m_IDLookup[desc->UniqueID]; - unsigned long library_index = m_Plugins[plugin_index].LibraryIndex; - unsigned long path_index = m_Libraries[library_index].PathIndex; - - cerr << "WARNING: Duplicated Plugin ID (" - << desc->UniqueID << ") found:" << endl; - - cerr << " Plugin " << m_Plugins[plugin_index].Index - << " in library: " << m_Paths[path_index] - << m_Libraries[library_index].Basename - << " [First instance found]" << endl; - cerr << " Plugin " << i << " in library: " << fullpath - << " [Duplicate not added]" << endl; - } else { - if (CheckPlugin(desc)) { - - // Add path if not already added - unsigned long path_index; - vector::iterator p = find(m_Paths.begin(), m_Paths.end(), path); - if (p == m_Paths.end()) { - path_index = m_Paths.size(); - m_Paths.push_back(path); - } else { - path_index = p - m_Paths.begin(); - } - - // Add library info if not already added - if (!library_added) { - LibraryInfo li; - li.PathIndex = path_index; - li.Basename = basename; - li.RefCount = 0; - li.Handle = NULL; - m_Libraries.push_back(li); - - library_added = true; - } - - - // Add plugin info - PluginInfo pi; - pi.LibraryIndex = m_Libraries.size() - 1; - pi.Index = i; - pi.UniqueID = desc->UniqueID; - pi.Label = desc->Label; - pi.Name = desc->Name; - pi.Descriptor = NULL; - pi.Maker = desc->Maker; - pi.AudioInputs = 0; - pi.AudioOutputs = 0; - - // Find number of input ports - unsigned long in_port_count = 0; - for (unsigned long p = 0; p < desc->PortCount; p++) { - if (LADSPA_IS_PORT_INPUT(desc->PortDescriptors[p])) { - in_port_count++; - if ( LADSPA_IS_PORT_AUDIO(desc->PortDescriptors[p] ) ) - pi.AudioInputs++; - } - } - for (unsigned long p = 0; p < desc->PortCount; p++) { - if (LADSPA_IS_PORT_OUTPUT(desc->PortDescriptors[p])) { - - if ( LADSPA_IS_PORT_AUDIO(desc->PortDescriptors[p] ) ) - pi.AudioOutputs++; - } - } - - if (in_port_count > m_MaxInputPortCount) { - m_MaxInputPortCount = in_port_count; - - } - - m_Plugins.push_back(pi); - - // Add to index - m_IDLookup[desc->UniqueID] = m_Plugins.size() - 1; - - } else { - cerr << "WARNING: Plugin " << desc->UniqueID << " not added" << endl; - } - } - - - desc = desc_func(++i); - } - } - dlclose(handle); - } -} - -#ifdef HAVE_LIBLRDF -// Examine given RDF plugin meta-data file -void -LADSPAInfo::ExamineRDFFile(const std::string path, - const std::string basename) -{ - string fileuri = "file://" + path + basename; - - if (lrdf_read_file(fileuri.c_str())) { - cerr << "WARNING: File " << path + basename << " could not be parsed [Ignored]" << endl; - } -} - -// Recursively add rdf information for plugins that have been -// found from scanning LADSPA_PATH -void -LADSPAInfo::MetadataRDFDescend(const char * uri, - unsigned long parent) -{ - unsigned long this_uri_index; - -// Check URI not already added - if (m_RDFURILookup.find(uri) == m_RDFURILookup.end()) { - - // Not found - RDFURIInfo ri; - - ri.URI = uri; - - if (ri.URI == LADSPA_BASE "Plugin") { - - // Add top level group as "LADSPA" - // This will always happen, even if there are no .rdf files read by liblrdf - // or if there is no liblrdf support - ri.Label = "LADSPA"; - } else { - char * label = lrdf_get_label(uri); - if (label) { - ri.Label = label; - } else { - ri.Label = "(No label)"; - } - } - - // Add any instances found - lrdf_uris * instances = lrdf_get_instances(uri); - if (instances) { - for (unsigned long j = 0; j < instances->count; j++) { - unsigned long uid = lrdf_get_uid(instances->items[j]); - if (m_IDLookup.find(uid) != m_IDLookup.end()) { - ri.Plugins.push_back(m_IDLookup[uid]); - } - } - } - - lrdf_free_uris(instances); - - m_RDFURIs.push_back(ri); - this_uri_index = m_RDFURIs.size() - 1; - - m_RDFURILookup[ri.URI] = this_uri_index; - m_RDFLabelLookup[ri.Label] = this_uri_index; - - } else { - - // Already added - this_uri_index = m_RDFURILookup[uri]; - } - -// Only add parent - child info if this uri is NOT the first (root) uri - if (this_uri_index > 0) { - m_RDFURIs[this_uri_index].Parents.push_back(parent); - m_RDFURIs[parent].Children.push_back(this_uri_index); - } - - lrdf_uris * uris = lrdf_get_subclasses(uri); - - if (uris) { - for (unsigned long i = 0; i < uris->count; i++) { - MetadataRDFDescend(uris->items[i], this_uri_index); - } - } - - lrdf_free_uris(uris); -} -#endif - -bool -LADSPAInfo::CheckPlugin(const LADSPA_Descriptor *desc) -{ -#define test(t, m) { \ - if (!(t)) { \ - cerr << m << endl; \ - return false; \ - } \ -} - test(desc->instantiate, "WARNING: Plugin has no instatiate function"); - test(desc->connect_port, "WARNING: Warning: Plugin has no connect_port funciton"); - test(desc->run, "WARNING: Plugin has no run function"); - test(!(desc->run_adding != 0 && desc->set_run_adding_gain == 0), - "WARNING: Plugin has run_adding but no set_run_adding_gain"); - test(!(desc->run_adding == 0 && desc->set_run_adding_gain != 0), - "WARNING: Plugin has set_run_adding_gain but no run_adding"); - test(desc->cleanup, "WARNING: Plugin has no cleanup function"); - test(!LADSPA_IS_INPLACE_BROKEN(desc->Properties), - "WARNING: Plugin cannot use in place processing"); - test(desc->PortCount, "WARNING: Plugin has no ports"); - test(desc->Name, "WARNING: Plugin has no name" ); - - if ( strcmp( desc->Maker, "Tom Szilagyi" ) ) - { - /* The author of the TAP plugins has a very narrow - * interpretation of the HARD RT hint which differs from - * most everyone else, so we are left in the unfortunate - * position of having to ignore the hint for TAP plugins - * and consider them all RT safe */ - test(LADSPA_IS_HARD_RT_CAPABLE( desc->Properties ), "WARNING: Plugin is not RT capable" ); - } - - return true; -} - -LADSPA_Descriptor_Function -LADSPAInfo::GetDescriptorFunctionForLibrary(unsigned long library_index) -{ - LibraryInfo *li = &(m_Libraries[library_index]); - - if (!(li->Handle)) { - - // Need full path - string fullpath = m_Paths[li->PathIndex]; - fullpath.append(li->Basename); - - // Immediate symbol resolution, as plugin code is likely to be executed - li->Handle = dlopen(fullpath.c_str(), RTLD_NOW); - if (!(li->Handle)) { - - // Plugin library changed since last path scan - cerr << "WARNING: Plugin library " << fullpath << " cannot be loaded" << endl; - cerr << "Rescan of plugins recommended" << endl; - cerr << "dlerror() output:" << endl; - cerr << dlerror() << endl; - return NULL; - } - } - -// Got handle so now verify that it's a LADSPA plugin library - const LADSPA_Descriptor_Function desc_func = (LADSPA_Descriptor_Function)dlsym(li->Handle, - "ladspa_descriptor"); - if (!desc_func) { - - // Is DLL, but not a LADSPA one (changed since last path scan?) - cerr << "WARNING: DLL " << m_Paths[li->PathIndex] << li->Basename - << " has no ladspa_descriptor function" << endl; - cerr << "Rescan of plugins recommended" << endl; - cerr << "dlerror() output:" << endl; - cerr << dlerror() << endl; - - // Unload library - dlclose(li->Handle); - return NULL; - } - - return desc_func; -} diff --git a/mixer/src/LADSPAInfo.h b/mixer/src/LADSPAInfo.h deleted file mode 100644 index fbda43d..0000000 --- a/mixer/src/LADSPAInfo.h +++ /dev/null @@ -1,208 +0,0 @@ -// -// LADSPAInfo.h - Header file for LADSPA Plugin info class -// -// Copyleft (C) 2002 Mike Rawes -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// - -#ifndef __ladspa_info_h__ -#define __ladspa_info_h__ - -// #include - -#include -#include -#include -#include -#include - -class LADSPAInfo -{ -public: -// If override is false, examine $LADSPA_PATH -// Also examine supplied path list -// For all paths, add basic plugin information for later lookup, -// instantiation and so on. - LADSPAInfo(bool override = false, const char *path_list = ""); - -// Unload all loaded plugins and clean up - ~LADSPAInfo(); - -// ************************************************************************ -// Loading/Unloading plugin libraries -// -// At first, no library dlls are loaded. -// -// A plugin library may have more than one plugin descriptor. The -// descriptor is used to instantiate, activate, execute plugin instances. -// Administration of plugin instances are outwith the scope of this class, -// instead, descriptors are requested using GetDecriptorByID, and disposed -// of using DiscardDescriptorByID. -// -// Each library keeps a reference count of descriptors requested. A library -// is loaded when a descriptor is requested for the first time, and remains -// loaded until the number of discards matches the number of requests. - -// Rescan all paths in $LADSPA_PATH, as per constructor. -// This will also unload all libraries, and make any descriptors that -// have not been discarded with DiscardDescriptorByID invalid. - void RescanPlugins(void); - -// Unload all dlopened libraries. This will make any descriptors that -// have not been discarded with DiscardDescriptorByID invalid. - void UnloadAllLibraries(void); - -// Get descriptor of plugin with given ID. This increments the descriptor -// count for the corresponding library. - const LADSPA_Descriptor *GetDescriptorByID(unsigned long unique_id); - -// Notify that a descriptor corresponding to the given ID has been -// discarded. This decrements the descriptor count for the corresponding -// library. - void DiscardDescriptorByID(unsigned long unique_id); - -// ************************************************************************ -// SSM Specific options - -// Get unique ID of plugin identified by given library filename and label. -// This is for backwards compatibility with older versions of SSM where the -// path and label of the plugin was stored in the configuration - current -// versions store the Unique ID - unsigned long GetIDFromFilenameAndLabel(std::string filename, - std::string label); - -// Struct for plugin information returned by queries - struct PluginEntry - { - unsigned int Depth; - unsigned long UniqueID; - std::string Name; - std::string Category; - - bool operator<(const PluginEntry& pe) - { - return (Name GetMenuList(void); - - const std::vector GetPluginInfo(void); - -// Get the index in the above list for given Unique ID -// If not found, this returns the size of the above list - unsigned long GetPluginListEntryByID(unsigned long unique_id); - -// Get the number of input ports for the plugin with the most -// input ports - unsigned long GetMaxInputPortCount(void) { return m_MaxInputPortCount; } - -private: -// See LADSPAInfo.C for comments on these functions - void DescendGroup(std::string prefix, - const std::string group, - unsigned int depth); - std::list GetSubGroups(const std::string group); - - void CleanUp(void); - void ScanPathList(const char *path_list, - void (LADSPAInfo::*ExamineFunc)(const std::string, - const std::string)); - void ExaminePluginLibrary(const std::string path, - const std::string basename); - - bool CheckPlugin(const LADSPA_Descriptor *desc); - LADSPA_Descriptor_Function GetDescriptorFunctionForLibrary(unsigned long library_index); -#ifdef HAVE_LIBLRDF - void ExamineRDFFile(const std::string path, - const std::string basename); - void MetadataRDFDescend(const char *uri, - unsigned long parent); -#endif - -// For cached library information - struct LibraryInfo - { - unsigned long PathIndex; // Index of path in m_Paths - std::string Basename; // Filename - unsigned long RefCount; // Count of descriptors requested - void *Handle; // DLL Handle, NULL - }; - -// For cached RDF uri information - struct RDFURIInfo - { - std::string URI; // Full URI for use with lrdf - std::string Label; // Label - std::vector Parents; // Index of parents in m_RDFURIs - std::vector Children; // Indices of children in m_RDFURIs - std::vector Plugins; // Indices of plugins in m_Plugins - }; - -// Lookup maps - typedef std::map > IDMap; - - typedef std::map > StringMap; - - bool m_LADSPAPathOverride; - char *m_ExtraPaths; - -// LADSPA Plugin information database - std::vector m_Paths; - std::vector m_Libraries; - std::vector m_Plugins; - -// Plugin lookup maps - IDMap m_IDLookup; - -// RDF URI database - std::vector m_RDFURIs; - -// RDF URI lookup map - StringMap m_RDFURILookup; - -// RDF Label lookup map - StringMap m_RDFLabelLookup; - -// SSM specific data - std::vector m_SSMMenuList; - StringMap m_FilenameLookup; - unsigned long m_MaxInputPortCount; -}; - -#endif // __ladspa_info_h__ diff --git a/mixer/src/Meter.H b/mixer/src/Meter.H deleted file mode 100644 index ce61263..0000000 --- a/mixer/src/Meter.H +++ /dev/null @@ -1,101 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - - -/* Base class for all meters */ - -#include -#include -#include -#include "FL/test_press.H" - -class Meter : public Fl_Valuator -{ - - float _peak; - float _value; - -protected: - - virtual void draw ( void ) = 0; - virtual int handle ( int m ) - { - if ( m == FL_ENTER || m == FL_LEAVE ) - return 1; - else if ( m == FL_PUSH && test_press( FL_BUTTON1 )) - { - reset(); - return 1; - } - - return Fl_Valuator::handle( m ); - } - - float - deflection ( float db ) - { - float def = 0.0f; - - if ( db < -70.0f ) - def = 0.0f; - else if ( db < -60.0f ) - def = ( db + 70.0f ) * 0.25f; - else if ( db < -50.0f ) - def = ( db + 60.0f ) * 0.5f + 2.5f; - else if ( db < -40.0f ) - def = ( db + 50.0f ) * 0.75f + 7.5f; - else if ( db < -30.0f ) - def = ( db + 40.0f ) * 1.5f + 15.0f; - else if ( db < -20.0f ) - def = ( db + 30.0f ) * 2.0f + 30.0f; - else if ( db < 6.0f ) - def = ( db + 20.0f ) * 2.5f + 50.0f; - else - def = 115.0f; - - return def / 115.0f; - } - -public: - - Meter ( int X, int Y, int W, int H, const char *L = 0 ) : - Fl_Valuator( X, Y, W, H, L ) - { - _peak = _value = -80.0f; - } - - virtual ~Meter ( ) { } - - virtual void value ( float v ) - { - if ( visible_r() ) - damage( FL_DAMAGE_USER1 ); - - _value = v; - - if ( _value > _peak ) - _peak = _value; - } - - virtual float value ( void ) const { return _value; } - float peak ( void ) const { return _peak; } - - void reset ( void ) { _peak = -80.0f; redraw(); } - -}; diff --git a/mixer/src/Meter_Indicator_Module.C b/mixer/src/Meter_Indicator_Module.C deleted file mode 100644 index df23d3b..0000000 --- a/mixer/src/Meter_Indicator_Module.C +++ /dev/null @@ -1,267 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2010 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "Meter_Indicator_Module.H" - -#include - -#include -#include -#include -#include -#include -#include - -#include "FL/Fl_Dial.H" -#include "FL/Fl_Labelpad_Group.H" -#include "FL/Fl_Scalepack.H" - -#include "Chain.H" -#include "DPM.H" - -#include "FL/test_press.H" - - - -Meter_Indicator_Module::Meter_Indicator_Module ( bool is_default ) - : Module ( is_default, 50, 100, name() ) -{ - box( FL_FLAT_BOX ); - color( FL_BLACK ); - - _disable_context_menu = false; - _pad = true; - control_value = 0; - - add_port( Port( this, Port::INPUT, Port::CONTROL ) ); - - control_input[0].hints.visible = false; - - dpm_pack = new Fl_Scalepack( x(), y(), w(), h() ); - dpm_pack->color( FL_BACKGROUND_COLOR ); - dpm_pack->box( FL_FLAT_BOX ); - dpm_pack->type( FL_HORIZONTAL ); - - end(); - - control_value = new float[1]; - *control_value = -70.0f; - - align( (Fl_Align)(FL_ALIGN_CENTER | FL_ALIGN_INSIDE ) ); - - clear_visible_focus(); -} - -Meter_Indicator_Module::~Meter_Indicator_Module ( ) -{ - if ( control_value ) - { - delete[] control_value; - control_value = NULL; - } - - log_destroy(); -} - - - -void -Meter_Indicator_Module::get ( Log_Entry &e ) const -{ - - Port *p = control_input[0].connected_port(); - Module *m = p->module(); - - e.add( ":module", m ); - e.add( ":port", m->control_output_port_index( p ) ); - - Module::get( e ); -} - -void -Meter_Indicator_Module::set ( Log_Entry &e ) -{ - Module::set( e ); - - int port = -1; - Module *module = NULL; - - for ( int i = 0; i < e.size(); ++i ) - { - const char *s, *v; - - e.get( i, &s, &v ); - - if ( ! strcmp( s, ":port" ) ) - { - port = atoi( v ); - } - else if ( ! strcmp( s, ":module" ) ) - { - int i; - sscanf( v, "%X", &i ); - Module *t = (Module*)Loggable::find( i ); - - assert( t ); - - module = t; - } - } - - if ( port >= 0 && module ) - control_input[0].connect_to( &module->control_output[port] ); -} - - - -void -Meter_Indicator_Module::update ( void ) -{ - if ( control_input[0].connected() ) - { - // A little hack to detect that the connected module's number - // of control outs has changed. - Port *p = control_input[0].connected_port(); - - if ( dpm_pack->children() != p->hints.dimensions ) - { -/* engine->lock(); */ - - dpm_pack->clear(); - - control_value = new float[p->hints.dimensions]; - - for ( int i = p->hints.dimensions; i--; ) - { - - DPM *dpm = new DPM( x(), y(), w(), h() ); - dpm->type( FL_VERTICAL ); - - dpm_pack->add( dpm ); - - control_value[i] = -70.0f; - dpm->value( -70.0f ); - } - -/* engine->unlock(); */ - } - else - { - for ( int i = 0; i < dpm_pack->children(); ++i ) - { - ((DPM*)dpm_pack->child( i ))->value( control_value[i] ); - control_value[i] = -70.0f; - } - } - } -} - -void -Meter_Indicator_Module::connect_to ( Port *p ) -{ - control_input[0].connect_to( p ); - - /* DPM *o = new DPM( 10, 10, 10, 10 ); */ - /* o->type( FL_VERTICAL ); */ - - /* dpm_pack->add( o ); */ - - redraw(); -} - - - -int -Meter_Indicator_Module::handle ( int m ) -{ - switch ( m ) - { - case FL_PUSH: - { - if ( Fl::event_button3() && _disable_context_menu ) - return 0; - - if ( test_press( FL_BUTTON1 ) ) - { - /* don't let Module::handle eat our click */ - return Fl_Group::handle( m ); - } - } - } - - return Module::handle( m ); -} - - - -void -Meter_Indicator_Module::handle_control_changed ( Port *p ) -{ - THREAD_ASSERT( UI ); - - /* The engine is already locked by the UI thread at this point in - the call-graph, so we can be sure that process() won't be - executed concurrently. */ - if ( p->connected() ) - { - p = p->connected_port(); - - if ( dpm_pack->children() != p->hints.dimensions ) - { - dpm_pack->clear(); - - control_value = new float[p->hints.dimensions]; - - for ( int i = p->hints.dimensions; i--; ) - { - DPM *dpm = new DPM( x(), y(), w(), h() ); - dpm->type( FL_VERTICAL ); - align( (Fl_Align)(FL_ALIGN_CENTER | FL_ALIGN_INSIDE ) ); - - dpm_pack->add( dpm ); - dpm_pack->redraw(); - - control_value[i] = -70.0f; - dpm->value( -70.0f ); - } - - redraw(); - } - } -} - -/**********/ -/* Engine */ -/**********/ - -void -Meter_Indicator_Module::process ( nframes_t ) -{ - if ( control_input[0].connected() ) - { - Port *p = control_input[0].connected_port(); - - for ( int i = 0; i < p->hints.dimensions; ++i ) - { - float dB = ((float*)control_input[0].buffer())[i]; - if ( dB > control_value[i]) - control_value[i] = dB; - } - } -} diff --git a/mixer/src/Meter_Indicator_Module.H b/mixer/src/Meter_Indicator_Module.H deleted file mode 100644 index 960d17c..0000000 --- a/mixer/src/Meter_Indicator_Module.H +++ /dev/null @@ -1,83 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2009 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include "Module.H" -#include -#include "JACK/Port.H" - -class Fl_Valuator; -class Fl_Scalepack; - -class Meter_Indicator_Module : public Module -{ - Fl_Scalepack *dpm_pack; - - - bool _pad; - - volatile float *control_value; - - bool _disable_context_menu; - -public: - - virtual void update ( void ); - - void disable_context_menu ( bool b ) { _disable_context_menu = b; } - - void handle_control_changed ( Port *p ); - - Meter_Indicator_Module ( bool is_default = false ); - virtual ~Meter_Indicator_Module ( ); - - bool allows_external_control ( void ) const { return false; } - const char *name ( void ) const { return "Meter Indicator"; } - - int can_support_inputs ( int ) { return 0; } - bool configure_inputs ( int ) { return false; } - - void pad ( bool v ) { _pad = v; } - - static void cb_handle ( Fl_Widget *w, void *v ); - void cb_handle ( Fl_Widget *w ); - - void connect_to ( Port *p ); - - LOG_CREATE_FUNC( Meter_Indicator_Module ); - - void process ( nframes_t ); - -protected: - - void get ( Log_Entry &e ) const; - void set ( Log_Entry &e ); - - virtual void draw ( void ) - { -// draw_box(); - Fl_Group::draw(); - } - - virtual int handle ( int m ); - -private: - -}; diff --git a/mixer/src/Meter_Module.C b/mixer/src/Meter_Module.C deleted file mode 100644 index 30876b3..0000000 --- a/mixer/src/Meter_Module.C +++ /dev/null @@ -1,185 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2009 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "const.h" - -#include -#include -#include - -#include "FL/Fl_Scalepack.H" -#include "FL/test_press.H" - -#include "Meter_Module.H" -#include "DPM.H" -#include "JACK/Port.H" -#include "dsp.h" - - - -Meter_Module::Meter_Module ( ) - : Module ( 50, 100, name() ) -{ - box( FL_NO_BOX ); - dpm_pack = new Fl_Scalepack( x(), y(), w(), h() ); - dpm_pack->type( FL_HORIZONTAL ); - - control_value = 0; - - color( FL_BLACK ); - - end(); - - Port p( this, Port::OUTPUT, Port::CONTROL, "dB level" ); - p.hints.type = Port::Hints::LOGARITHMIC; - p.hints.ranged = true; - p.hints.maximum = 6.0f; - p.hints.minimum = -70.0f; - p.hints.dimensions = 1; - p.connect_to( new float[1] ); - p.control_value_no_callback( -70.0f ); - - add_port( p ); - - log_create(); -} - -Meter_Module::~Meter_Module ( ) -{ - if ( control_value ) - delete[] control_value; - - log_destroy(); -} - - - -void -Meter_Module::update ( void ) -{ - for ( int i = dpm_pack->children(); i--; ) - { - ((DPM*)dpm_pack->child( i ))->value( control_value[i] ); - control_value[i] = -70.0f; - } -} - -bool -Meter_Module::configure_inputs ( int n ) -{ - THREAD_ASSERT( UI ); - - int on = audio_input.size(); - - if ( n > on ) - { - for ( int i = on; i < n; ++i ) - { - DPM *dpm = new DPM( 0, 0, w(), h() ); - dpm->type( FL_VERTICAL ); - align( (Fl_Align)(FL_ALIGN_CENTER | FL_ALIGN_INSIDE ) ); - - dpm_pack->add( dpm ); - - add_port( Port( this, Port::INPUT, Port::AUDIO ) ); - add_port( Port( this, Port::OUTPUT, Port::AUDIO ) ); - - } - } - else - { - for ( int i = on; i > n; --i ) - { - DPM *dpm = (DPM*)dpm_pack->child( dpm_pack->children() - 1 ); - dpm_pack->remove( dpm ); - delete dpm; - - audio_input.back().disconnect(); - audio_input.pop_back(); - audio_output.back().disconnect(); - audio_output.pop_back(); - } - } - - control_output[0].hints.dimensions = n; - delete[] (float*)control_output[0].buffer(); - { - float *f = new float[n]; - - for ( int i = n; i--; ) - f[i] = -70.0f; - - control_output[0].connect_to( f ); - } - - if ( control_value ) - delete [] control_value; - - control_value = new float[n]; - for ( int i = n; i--; ) - control_value[i] = -70.0f; - - if ( control_output[0].connected() ) - control_output[0].connected_port()->module()->handle_control_changed( control_output[0].connected_port() ); - - return true; -} - - - -int -Meter_Module::handle ( int m ) -{ - switch ( m ) - { - case FL_PUSH: - { - int r = 0; - if ( test_press( FL_BUTTON1 ) ) - { - /* don't let Module::handle eat our click */ - r = Fl_Group::handle( m ); - } - return Module::handle( m ) || r; - } - } - - return Module::handle( m ); -} - - - -/**********/ -/* Engine */ -/**********/ - - -void -Meter_Module::process ( nframes_t nframes ) -{ - for ( unsigned int i = 0; i < audio_input.size(); ++i ) - { -// float dB = 20 * log10( get_peak_sample( (float*)audio_input[i].buffer(), nframes ) / 2.0f ); - float dB = 20 * log10( buffer_get_peak( (sample_t*) audio_input[i].buffer(), nframes ) ); - - ((float*)control_output[0].buffer())[i] = dB; - if (dB > control_value[i]) - control_value[i] = dB; - } -} diff --git a/mixer/src/Meter_Module.H b/mixer/src/Meter_Module.H deleted file mode 100644 index 2b3e72b..0000000 --- a/mixer/src/Meter_Module.H +++ /dev/null @@ -1,51 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2009 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include "Module.H" - -class Fl_Scalepack; - -class Meter_Module : public Module -{ - Fl_Scalepack *dpm_pack; - - volatile float *control_value; - -public: - - Meter_Module ( ); - virtual ~Meter_Module ( ); - - const char *name ( void ) const { return "Meter"; } - - int can_support_inputs ( int n ) { return n > 0 ? n : -1; } - bool configure_inputs ( int n ); - - LOG_CREATE_FUNC( Meter_Module ); - - virtual void update ( void ); - -protected: - - virtual int handle ( int m ); - virtual void process ( nframes_t nframes ); - virtual void draw ( void ) { draw_box(x(),y(),w(),h()); } -}; diff --git a/mixer/src/Mixer.C b/mixer/src/Mixer.C deleted file mode 100644 index 0969a9e..0000000 --- a/mixer/src/Mixer.C +++ /dev/null @@ -1,1310 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2009 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -/* This is the main mixer group. It contains and manages Mixer_Strips. */ -#include "const.h" - -#include "Mixer.H" -#include "Mixer_Strip.H" - -#include -#include -#include -#include -#include -#include -#include -#include "Project.H" -#include -#include -#include -#include -#include -#include -#include "file.h" -#include "Group.H" -#include -#include "debug.h" -#include -#include - -#include "OSC/Endpoint.H" -#include - -#include "Controller_Module.H" - -const double FEEDBACK_UPDATE_FREQ = 1.0f; - -extern char *user_config_dir; -extern char *instance_name; - -#include "debug.h" -#include "string_util.h" - -#include "NSM.H" -#include -#include "Chain.H" - -extern NSM_Client *nsm; - -Spatialization_Console *Mixer::spatialization_console = 0; - - - -void -Mixer::show_tooltip ( const char *s ) -{ - mixer->_status->label( s ); -} - -void -Mixer::hide_tooltip ( void ) -{ - mixer->_status->label( 0 ); -} - - -/************************/ -/* OSC Message Handlers */ -/************************/ - -#undef OSC_REPLY_OK -#undef OSC_REPLY_ERR -#undef OSC_REPLY - -#define OSC_REPLY_OK() ((OSC::Endpoint*)user_data)->send( lo_message_get_source( msg ), path, 0, "OK" ) -#define OSC_REPLY( value ) ((OSC::Endpoint*)user_data)->send( lo_message_get_source( msg ), path, value ) -#define OSC_REPLY_ERR(errcode, value) ((OSC::Endpoint*)user_data)->send( lo_message_get_source( msg ), path,errcode, value ) -#define OSC_ENDPOINT() ((OSC::Endpoint*)user_data) - -static int osc_add_strip ( const char *path, const char *, lo_arg **, int , lo_message msg, void *user_data ) -{ - OSC_DMSG(); - - Fl::lock(); - - ((Mixer*)(OSC_ENDPOINT())->owner)->command_add_strip(); - - Fl::unlock(); - - OSC_REPLY_OK(); - - return 0; -} - - int -Mixer::osc_non_hello ( const char *, const char *, lo_arg **, int , lo_message msg, void * ) -{ - mixer->handle_hello( msg ); - return 0; -} - - -void -Mixer::handle_hello ( lo_message msg ) -{ - int argc = lo_message_get_argc( msg ); - lo_arg **argv = lo_message_get_argv( msg ); - - if ( argc >= 4 ) - { - const char *url = &argv[0]->s; - const char *name = &argv[1]->s; - const char *version = &argv[2]->s; - const char *id = &argv[3]->s; - - MESSAGE( "Got hello from NON peer %s (%s) @ %s with ID \"%s\"", name, version, url, id ); - - mixer->osc_endpoint->handle_hello( id, url ); - } -} - -void -Mixer::say_hello ( void ) -{ - lo_message m = lo_message_new(); - - lo_message_add( m, "sssss", - "/non/hello", - osc_endpoint->url(), - APP_NAME, - VERSION, - instance_name ); - - nsm->broadcast( m ); - - lo_message_free( m ); -} - - - - -static -Fl_Menu_Item * -find_item( Fl_Menu_ *menu, const char *path ) - { - return const_cast(menu->find_item( path )); - } - -void -Mixer::sm_active ( bool b ) -{ - sm_blinker->value( b ); - sm_blinker->tooltip( nsm->session_manager_name() ); - - if ( b ) - { - find_item( menubar, "&Project/&Open" )->deactivate(); - find_item( menubar, "&Project/&New" )->deactivate(); - } -} - - -void -Mixer::redraw_windows ( void ) -{ - window()->redraw(); - - if ( Fl::first_window() ) - for ( Fl_Window *w = Fl::first_window(); ( w = Fl::next_window( w ) ); ) - w->redraw(); -} - -void Mixer::command_new ( void ) -{ - DMESSAGE( "New project" ); - - char *default_path = read_line( user_config_dir, "default_path" ); - - char *result_path = default_path; - - char *path = new_project_chooser( &result_path ); - - if ( path ) - { - if ( ! Project::create( path, NULL ) ) - fl_alert( "Error creating project!" ); - free( path ); - } - - load_project_settings(); - - update_menu(); - - if ( result_path != default_path ) - free(default_path); - - if ( result_path ) - { - write_line( user_config_dir, "default_path", result_path ); - free( result_path ); - } -} - -void Mixer::cb_menu(Fl_Widget* o) { - Fl_Menu_Bar *menu = (Fl_Menu_Bar*)o; - -/* const Fl_Menu_Item *mi = &menu->menu()[menu->value()]; */ - - char picked[256]; - // const char *picked = menu->text(); - - menu->item_pathname( picked, sizeof( picked ) ); - - DMESSAGE( "Picked %s", picked ); - - if (! strcmp( picked, "&Project/&New") ) - { - command_new(); - } - else if (! strcmp( picked, "&Project/&Open" ) ) - { - char *path = NULL; - -// read_line( user_config_dir, "default_path", &path ); - - const char *name = fl_dir_chooser( "Open Project", path ); - - free( path ); - - mixer->hide(); - - if ( int err = Project::open( name ) ) - { - fl_alert( "Error opening project: %s", Project::errstr( err ) ); - } - - update_menu(); - - mixer->show(); - } - else if (! strcmp( picked, "&Project/&Save" ) ) - { - command_save(); - } - else if (! strcmp( picked, "&Project/&Quit") ) - { - command_quit(); - } - else if ( !strcmp( picked, "&Mixer/&Add Strip" ) ) - { - command_add_strip(); - } - else if ( !strcmp( picked, "&Mixer/Add &N Strips" ) ) - { - const char *s = fl_input( "Enter number of strips to add" ); - - if ( s ) - { - for ( int i = atoi( s ); i > 0; i-- ) - command_add_strip(); - } - } - else if ( !strcmp( picked, "&Mixer/&Import Strip" ) ) - { - const char *s = fl_file_chooser( "Export strip to filename:", "*.strip", NULL, 0 ); - - if ( s ) - { - if (! Mixer_Strip::import_strip( s ) ) - fl_alert( "%s", "Failed to import strip!" ); - } - } - else if ( ! strcmp( picked, "&Project/Se&ttings/Learn/By Strip Name" ) ) - { - Controller_Module::learn_by_number = false; - } - else if ( ! strcmp( picked, "&Project/Se&ttings/Learn/By Strip Number" ) ) - { - Controller_Module::learn_by_number = true; - } - else if ( ! strcmp( picked, "&Remote Control/Start Learning" ) ) - { - Controller_Module::learn_mode( true ); - tooltip( "Now in learn mode. Click on a highlighted control to teach it something." ); - redraw(); - } - else if ( ! strcmp( picked, "&Remote Control/Stop Learning" ) ) - { - Controller_Module::learn_mode( false ); - tooltip( "Learning complete" ); - redraw(); - } - else if ( !strcmp( picked, "&Remote Control/Send State" ) ) - { - send_feedback(); - } - else if ( ! strcmp( picked, "&Remote Control/Clear All Mappings" ) ) - { - if ( 1 == fl_choice( "This will remove all mappings, are you sure?", "No", "Yes", NULL ) ) - { - command_clear_mappings(); - } - } - else if ( !strcmp( picked, "&Mixer/Paste" ) ) - { - Fl::paste(*this); - } - else if (! strcmp( picked, "&Project/Se&ttings/&Rows/One") ) - { - rows( 1 ); - } - else if (! strcmp( picked, "&Project/Se&ttings/&Rows/Two") ) - { - rows( 2 ); - } - else if (! strcmp( picked, "&Project/Se&ttings/&Rows/Three") ) - { - rows( 3 ); - } - else if (! strcmp( picked, "&Mixer/&Spatialization Console") ) - { - if ( ! spatialization_console ) - { - Spatialization_Console *o = new Spatialization_Console(); - spatialization_console = o; - } - - if ( ! menu->mvalue()->value() ) - spatialization_console->hide(); - else - spatialization_console->show(); - } - else if (! strcmp( picked, "&Project/Se&ttings/Make Default") ) - { - save_default_project_settings(); - } - else if (! strcmp( picked, "&View/&Theme") ) - { - fl_theme_chooser(); - } - else if ( ! strcmp( picked, "&Mixer/Swap &Fader//Signal View" ) ) - { - command_toggle_fader_view(); - } - else if ( ! strcmp( picked, "&Help/&About" ) ) - { - About_Dialog ab( PIXMAP_PATH "/non-mixer/icon-256x256.png" ); - - ab.logo_box->label( VERSION ); - - ab.title->label( "Non Mixer" ); - - ab.copyright->label( "Copyright (C) 2008-2013 Jonathan Moore Liles" ); - ab.credits->label( - "Non Mixer was written from scratch by\n" - "Jonathan Moore Liles for his own use\n" - "(see the manual).\n" - "\n" - "Nobody planned. Nobody helped.\n" - "You can help now by donating time, money,\n" - "and/or replacing the rest of Linux Audio\n" - "with fast, light, reliable alternatives.\n" ); - - ab.website_url->label( "http://non.tuxfamily.org" ); - - ab.run(); - } - else if ( !strcmp( picked, "&Help/&Manual" )) - { - char *pat; - - asprintf( &pat, "file://%s.html", DOCUMENT_PATH "/non-mixer/MANUAL" ); - - open_url( pat ); - - free( pat ); - } -} - -void Mixer::cb_menu(Fl_Widget* o, void* v) { - ((Mixer*)(v))->cb_menu(o); -} - -void Mixer::update_frequency ( float v ) -{ - _update_interval = 1.0f / v; - - Fl::remove_timeout( &Mixer::update_cb, this ); - Fl::add_timeout( _update_interval, &Mixer::update_cb, this ); -} - -void -Mixer::update_cb ( void *v ) -{ - ((Mixer*)v)->update_cb(); -} - -void -Mixer::update_cb ( void ) -{ - Fl::repeat_timeout( _update_interval, &Mixer::update_cb, this ); - - if ( active_r() && visible_r() ) - { - for ( int i = 0; i < mixer_strips->children(); i++ ) - { - ((Mixer_Strip*)mixer_strips->child(i))->update(); - } - } -} - - -static void -progress_cb ( int p, void *v ) -{ - static int oldp = 0; - - if ( p != oldp ) - { - oldp = p; - if ( nsm ) - { - nsm->progress( p / 100.0f ); - } - Fl::check(); - } -} - -void -Mixer::save_default_project_settings ( void ) -{ - char path[256]; - snprintf( path, sizeof( path ), "%s/%s", user_config_dir, ".default_project_settings" ); - - ((Fl_Menu_Settings*)menubar)->dump( menubar->find_item( "&Project/Se&ttings" ), path ); -} - -void -Mixer::load_default_project_settings ( void ) -{ - char path[256]; - snprintf( path, sizeof( path ), "%s/%s", user_config_dir, ".default_project_settings" ); - - ((Fl_Menu_Settings*)menubar)->load( menubar->find_item( "&Project/Se&ttings" ), path ); -} - -void -Mixer::reset_project_settings ( void ) -{ - rows(1); - - load_default_project_settings(); -} - -void -Mixer::save_project_settings ( void ) -{ - if ( ! Project::open() ) - return; - - ((Fl_Menu_Settings*)menubar)->dump( menubar->find_item( "&Project/Se&ttings" ), "options" ); -} - -void -Mixer::load_project_settings ( void ) -{ - reset_project_settings(); - -// if ( Project::open() ) - ((Fl_Menu_Settings*)menubar)->load( menubar->find_item( "&Project/Se&ttings" ), "options" ); - - update_menu(); -} - -Mixer::Mixer ( int X, int Y, int W, int H, const char *L ) : - Fl_Group( X, Y, W, H, L ) -{ - Loggable::dirty_callback( &Mixer::handle_dirty, this ); - Loggable::progress_callback( progress_cb, NULL ); - - Fl_Tooltip::hoverdelay( 0 ); - Fl_Tooltip::delay( 0 ); - fl_show_tooltip = &Mixer::show_tooltip; - fl_hide_tooltip = &Mixer::hide_tooltip; - /* Fl_Tooltip::size( 11 ); */ - /* Fl_Tooltip::textcolor( FL_FOREGROUND_COLOR ); */ - /* Fl_Tooltip::color( fl_color_add_alpha( FL_DARK1, 0 ) ); */ -// fl_tooltip_docked = 1; - -// _groups.resize(16); - - _rows = 1; - _strip_height = 0; - box( FL_FLAT_BOX ); - labelsize( 96 ); - { Fl_Group *o = new Fl_Group( X, Y, W, 24 ); - - { Fl_Menu_Bar *o = menubar = new Fl_Menu_Bar( X, Y, W, 24 ); - o->add( "&Project/&New" ); - o->add( "&Project/&Open" ); - o->add( "&Project/Se&ttings/&Rows/One", '1', 0, 0, FL_MENU_RADIO | FL_MENU_VALUE ); - o->add( "&Project/Se&ttings/&Rows/Two", '2', 0, 0, FL_MENU_RADIO ); - o->add( "&Project/Se&ttings/&Rows/Three", '3', 0, 0, FL_MENU_RADIO ); - o->add( "&Project/Se&ttings/Learn/By Strip Number", 0, 0, 0, FL_MENU_RADIO ); - o->add( "&Project/Se&ttings/Learn/By Strip Name", 0, 0, 0, FL_MENU_RADIO | FL_MENU_VALUE ); - o->add( "&Project/Se&ttings/Make Default", 0,0,0); - o->add( "&Project/&Save", FL_CTRL + 's', 0, 0 ); - o->add( "&Project/&Quit", FL_CTRL + 'q', 0, 0 ); - o->add( "&Mixer/&Add Strip", 'a', 0, 0 ); - o->add( "&Mixer/Add &N Strips" ); - o->add( "&Mixer/&Import Strip" ); - o->add( "&Mixer/Paste", FL_CTRL + 'v', 0, 0 ); - o->add( "&Mixer/&Spatialization Console", FL_F + 8, 0, 0, FL_MENU_TOGGLE ); - o->add( "&Mixer/Swap &Fader//Signal View", FL_ALT + 'f', 0, 0, FL_MENU_TOGGLE ); -// o->add( "&Mixer/&Signal View", FL_ALT + 's', 0, 0, FL_MENU_TOGGLE ); - o->add( "&Remote Control/Start Learning", FL_F + 9, 0, 0 ); - o->add( "&Remote Control/Stop Learning", FL_F + 10, 0, 0 ); - o->add( "&Remote Control/Send State" ); - o->add( "&Remote Control/Clear All Mappings", 0, 0, 0 ); - o->add( "&View/&Theme", 0, 0, 0 ); - o->add( "&Help/&Manual" ); - o->add( "&Help/&About" ); - o->callback( cb_menu, this ); - } - { Fl_Box *o = project_name = new Fl_Box( X + 150, Y, W, 24 ); - o->labelfont( FL_HELVETICA_ITALIC ); - o->label( 0 ); - o->align( FL_ALIGN_INSIDE | FL_ALIGN_CENTER ); - o->labeltype( FL_SHADOW_LABEL ); - Fl_Group::current()->resizable( o ); - } - { sm_blinker = new Fl_Button( ( X + W) - 37, Y + 4, 35, 15, "SM"); - sm_blinker->box(FL_ROUNDED_BOX); - sm_blinker->down_box(FL_ROUNDED_BOX); - sm_blinker->color(FL_DARK2); - sm_blinker->selection_color((Fl_Color)93); - sm_blinker->labeltype(FL_NORMAL_LABEL); - sm_blinker->labelfont(3); - sm_blinker->labelsize(14); - sm_blinker->labelcolor(FL_DARK3); - sm_blinker->align(Fl_Align(FL_ALIGN_CENTER)); - sm_blinker->when(FL_WHEN_RELEASE); - sm_blinker->deactivate(); - - } // Fl_Blink_Button* sm_blinker - o->end(); - } - { Fl_Scroll *o = scroll = new Fl_Scroll( X, Y + 24, W, H - ( 100 ) ); - o->box( FL_FLAT_BOX ); -// o->type( Fl_Scroll::HORIZONTAL_ALWAYS ); -// o->box( Fl_Scroll::BOTH ); - { - Fl_Flowpack *o = mixer_strips = new Fl_Flowpack( X, Y + 24, W, H - ( 18*2 + 24 )); -// label( "Non-Mixer" ); - align( (Fl_Align)(FL_ALIGN_CENTER | FL_ALIGN_INSIDE) ); - o->flow( false ); - o->box( FL_FLAT_BOX ); - o->type( Fl_Pack::HORIZONTAL ); - o->hspacing( 2 ); - o->vspacing( 2 ); - o->end(); - Fl_Group::current()->resizable( o ); - } - o->end(); - Fl_Group::current()->resizable( o ); - } - { Fl_Box *o = _status = new Fl_Box( X, Y + H - 18, W, 18 ); - o->align( FL_ALIGN_LEFT | FL_ALIGN_INSIDE ); - o->labelsize( 10 ); - o->box( FL_FLAT_BOX ); - o->color( FL_DARK1 ); - } - end(); - - resize( X,Y,W,H ); - - update_frequency( 15 ); - - Fl::add_timeout( FEEDBACK_UPDATE_FREQ, send_feedback_cb, this ); - - update_menu(); - - load_options(); -} - -/* translate message addressed to strip number to appropriate strip */ -int -Mixer::osc_strip_by_number ( const char *path, const char *types, lo_arg **argv, int argc, lo_message msg, void *user_data ) -{ - int n; - char *rem; - char *client_name; - - OSC::Endpoint *ep = (OSC::Endpoint*)user_data; - - if ( 3 != sscanf( path, "%m[^/]/strip#/%d/%m[^\n]", &client_name, &n, &rem ) ) - return -1; - - Mixer_Strip *o = mixer->track_by_number( n ); - - if ( ! o ) - { - DMESSAGE( "No strip by number %i", n ); - return 0; - } - - char *new_path; - - asprintf( &new_path, "%s/strip/%s/%s", client_name, o->name(), rem ); - - free( rem ); - - lo_send_message( ep->address(), new_path, msg ); - - free( new_path ); - - return 0; -} - -void -Mixer::load_translations ( void ) -{ - FILE *fp = fopen( "mappings", "r" ); - - if ( ! fp ) - { - WARNING( "Error opening mappings file for reading" ); - return; - } - - char *to; - char *from; - - while ( 2 == fscanf( fp, "%m[^|> ] |> %m[^ \n]\n", &from, &to ) ) - { - osc_endpoint->add_translation( from, to ); - free(from); - free(to); - } - - fclose( fp ); -} - -void -Mixer::save_translations ( void ) -{ - FILE *fp = fopen( "mappings", "w" ); - - if ( ! fp ) - { - WARNING( "Error opening mappings file for writing" ); - return; - } - - for ( int i = 0; i < osc_endpoint->ntranslations(); i++ ) - { - const char *to; - const char *from; - - if ( osc_endpoint->get_translation( i, &to, &from ) ) - { - fprintf( fp, "%s |> %s\n", to, from ); - } - } - - fclose( fp ); -} - -int -Mixer::init_osc ( const char *osc_port ) -{ - osc_endpoint = new OSC::Endpoint(); - - if ( int r = osc_endpoint->init( LO_UDP, osc_port ) ) - return r; - - osc_endpoint->owner = this; - - printf( "OSC=%s\n", osc_endpoint->url() ); - - osc_endpoint->add_method( "/non/hello", "ssss", &Mixer::osc_non_hello, osc_endpoint, "" ); - -// - osc_endpoint->add_method( "/non/mixer/add_strip", "", osc_add_strip, osc_endpoint, "" ); - - osc_endpoint->start(); - - osc_endpoint->add_method( NULL, NULL, osc_strip_by_number, osc_endpoint, ""); - - return 0; -} - - -Mixer::~Mixer ( ) -{ - DMESSAGE( "Destroying mixer" ); - - save_options(); - - Fl::remove_timeout( &Mixer::update_cb, this ); - - Fl::remove_timeout( &Mixer::send_feedback_cb, this ); - -/* FIXME: teardown */ - mixer_strips->clear(); -} - -void -Mixer::add_group ( Group *g ) -{ - groups.push_back( g ); - - for ( int i = mixer_strips->children(); i--; ) - ((Mixer_Strip*)mixer_strips->child(i))->update_group_choice(); -} - -void -Mixer::remove_group ( Group *g ) -{ - groups.remove(g); - - for ( int i = mixer_strips->children(); i--; ) - ((Mixer_Strip*)mixer_strips->child(i))->update_group_choice(); -} - -void Mixer::resize ( int X, int Y, int W, int H ) -{ - Fl_Group::resize( X, Y, W, H ); - - scroll->resize( X, Y + 24, W, H - 24 - 18 ); - - mixer_strips->resize( X, Y + 24, W, H - (18*2) - 24 ); - - rows( _rows ); -} - -void Mixer::add ( Mixer_Strip *ms ) -{ - MESSAGE( "Add mixer strip \"%s\"", ms->name() ); - - mixer_strips->add( ms ); - - ms->size( ms->w(), _strip_height ); - ms->redraw(); - ms->take_focus(); -} - -int -Mixer::find_strip ( const Mixer_Strip *m ) const -{ - return mixer_strips->find( m ); -} - -void -Mixer::quit ( void ) -{ - /* TODO: save project? */ - - while ( Fl::first_window() ) Fl::first_window()->hide(); -} - - -void -Mixer::insert ( Mixer_Strip *ms, Mixer_Strip *before ) -{ -// mixer_strips->remove( ms ); - mixer_strips->insert( *ms, before ); -// scroll->redraw(); -} -void -Mixer::insert ( Mixer_Strip *ms, int i ) -{ - Mixer_Strip *before = (Mixer_Strip*)mixer_strips->child( i ); - - insert( ms, before); -} - -void -Mixer::move_left ( Mixer_Strip *ms ) -{ - int i = mixer_strips->find( ms ); - - if ( i > 0 ) - insert( ms, i - 1 ); - - /* FIXME: do better */ - mixer_strips->redraw(); -} - -void -Mixer::move_right ( Mixer_Strip *ms ) -{ - int i = mixer_strips->find( ms ); - - if ( i < mixer_strips->children() - 1 ) - insert( ms, i + 2 ); - - /* FIXME: do better */ - mixer_strips->redraw(); -} - -void Mixer::remove ( Mixer_Strip *ms ) -{ - MESSAGE( "Remove mixer strip \"%s\"", ms->name() ); - - mixer_strips->remove( ms ); - - ms->group()->remove( ms ); - - if ( parent() ) - parent()->redraw(); -} - - -Mixer_Strip * -Mixer::event_inside ( void ) -{ - for ( int i = mixer_strips->children(); i--; ) - if ( Fl::event_inside( mixer_strips->child(i) ) ) - return (Mixer_Strip*)mixer_strips->child(i); - - return NULL; -} - -bool -Mixer::contains ( Mixer_Strip *ms ) -{ - return ms->parent() == mixer_strips; -} - -/* set the ideal number of rows... All may not actually fit. */ -void -Mixer::rows ( int ideal_rows ) -{ - int sh = 0; - - int actual_rows = 1; - - /* calculate how many rows will actually fit */ - int can_fit = scroll->h() / ( Mixer_Strip::min_h() ); - - actual_rows = can_fit > 0 ? can_fit : 1; - - if ( actual_rows > ideal_rows ) - actual_rows = ideal_rows; - - /* calculate strip height */ - if ( actual_rows > 1 ) - { - sh = ( scroll->h() / (float)actual_rows ) - ( mixer_strips->vspacing() * ( actual_rows - 2 )); - mixer_strips->flow(true); - } - else - actual_rows = 1; - - if ( 1 == actual_rows ) - { - sh = (scroll->h() - 18); - mixer_strips->flow( false ); - } - - int tw = 0; - - for ( int i = 0; i < mixer_strips->children(); ++i ) - { - Mixer_Strip *t = (Mixer_Strip*)mixer_strips->child( i ); - - t->size( t->w(), sh ); - - tw += t->w() + mixer_strips->hspacing(); - } - - if ( actual_rows > 1 ) - mixer_strips->size( scroll->w() - 18, mixer_strips->h() ); - else - mixer_strips->size( tw, sh ); - - _rows = ideal_rows; - - if ( _strip_height != sh ); - { - mixer_strips->redraw(); - scroll->redraw(); - _strip_height = sh; - } -} - -int -Mixer::nstrips ( void ) const -{ - return mixer_strips->children(); -} - -/** retrun a pointer to the track named /name/, or NULL if no track is named /name/ */ -Mixer_Strip * -Mixer::track_by_name ( const char *name ) -{ - for ( int i = mixer_strips->children(); i-- ; ) - { - Mixer_Strip *t = (Mixer_Strip*)mixer_strips->child( i ); - - if ( ! strcmp( name, t->name() ) ) - return t; - } - - return NULL; -} -/** retrun a pointer to the track named /name/, or NULL if no track is named /name/ */ -Mixer_Strip * -Mixer::track_by_number ( int n ) -{ - if ( n < 0 || n >= mixer_strips->children() ) - return NULL; - - return (Mixer_Strip*)mixer_strips->child(n); -} - -/** return a malloc'd string representing a unique name for a new track */ -char * -Mixer::get_unique_track_name ( const char *name ) -{ - char pat[256]; - - strcpy( pat, name ); - - for ( int i = 1; track_by_name( pat ); ++i ) - snprintf( pat, sizeof( pat ), "%s.%d", name, i ); - - return strdup( pat ); -} - -Group * -Mixer::group_by_name ( const char *name ) -{ - for ( std::list::iterator i = groups.begin(); - i != groups.end(); - i++ ) - if ( !strcmp( (*i)->name(), name )) - return *i; - - return NULL; -} - -char * -Mixer::get_unique_group_name ( const char *name ) -{ - char pat[256]; - - strcpy( pat, name ); - - for ( int i = 1; group_by_name( pat ); ++i ) - snprintf( pat, sizeof( pat ), "%s.%d", name, i ); - - return strdup( pat ); -} - -void -Mixer::handle_dirty ( int d, void *v ) -{ - //Mixer *m = (Mixer*)v; - if ( !nsm ) - return; - - if ( d == 1 ) - nsm->is_dirty(); - else if ( d == 0 ) - nsm->is_clean(); -} - - -void -Mixer::snapshot ( void ) -{ - if ( spatialization_console ) - spatialization_console->log_create(); - - for ( std::list::iterator i = groups.begin(); i != groups.end(); ++i ) - (*i)->log_create(); - - for ( int i = 0; i < mixer_strips->children(); ++i ) - ((Mixer_Strip*)mixer_strips->child( i ))->log_children(); -} - - -void -Mixer::new_strip ( void ) -{ - add( new Mixer_Strip( get_unique_track_name( "Unnamed" ) ) ); -} - -bool -Mixer::save ( void ) -{ - MESSAGE( "Saving state" ); - Loggable::snapshot_callback( &Mixer::snapshot, this ); - Loggable::snapshot( "snapshot" ); - - save_translations(); - return true; -} - -static const char options_filename[] = "options"; - -void -Mixer::load_options ( void ) -{ -// save options - - /* char *path; */ - /* asprintf( &path, "%s/options", user_config_dir ); */ - /* ((Fl_Menu_Settings*)menubar)->load( menubar->find_item( "&Options" ), path ); */ - /* free( path ); */ -} - -void -Mixer::save_options ( void ) -{ - /* char *path; */ - /* asprintf( &path, "%s/%s", user_config_dir, options_filename ); */ - /* ((Fl_Menu_Settings*)menubar)->dump( menubar->find_item( "&Options" ), path ); */ - /* free( path ); */ -} - -void -Mixer::update_menu ( void ) -{ - project_name->label( Project::name() ); - - const_cast(menubar->find_item( "&Mixer/&Spatialization Console" )) - ->flags = FL_MENU_TOGGLE | ( ( spatialization_console && spatialization_console->shown() ) ? FL_MENU_VALUE : 0 ); -} - -void -Mixer::send_feedback_cb ( void *v ) -{ - Mixer *m = (Mixer*)v; - - m->send_feedback(); - - Fl::repeat_timeout( FEEDBACK_UPDATE_FREQ, send_feedback_cb, v ); -} - -/** unconditionally send feedback to all mapped controls. This is - * useful for updating the state of an external controller. */ -void -Mixer::send_feedback ( void ) -{ - for ( int i = 0; i < mixer_strips->children(); i++ ) - { - ((Mixer_Strip*)mixer_strips->child(i))->send_feedback(); - } -} - - - -int -Mixer::handle ( int m ) -{ - - if ( Fl_Group::handle( m ) ) - return 1; - - switch ( m ) - { - case FL_PASTE: - { - if ( ! Fl::event_inside( this ) ) - return 0; - - const char *text = Fl::event_text(); - - char *file; - - if ( ! sscanf( text, "file://%m[^\r\n]\n", &file ) ) - { - WARNING( "invalid drop \"%s\"\n", text ); - return 0; - } - - unescape_url( file ); - - printf( "pasted file \"%s\"\n", file ); - - if (! Mixer_Strip::import_strip( file ) ) - fl_alert( "%s", "Failed to import strip!" ); - - return 1; - } - } - - return 0; -} - -#include - -std::list -Mixer::get_auto_connect_targets ( void ) -{ - std::list sl; - std::list rl; - - for ( int i = mixer_strips->children(); i--; ) - { - ((Mixer_Strip*)mixer_strips->child(i))->get_output_ports(sl); - } - - for ( std::list::iterator i = sl.begin(); i != sl.end(); i++ ) - { - char *s = strdup( i->c_str() ); - - *rindex( s, '/' ) = 0; - - if ( !index( s, '/' ) ) - { - char *o; - asprintf( &o, "%s/mains", s ); - free(s); - s = o; - } - - if ( std::find( rl.begin(), rl.end(), s ) == rl.end() ) - { - rl.push_back( s ); - } - - free(s); - } - - return rl; -} - -void -Mixer::auto_connect ( void ) -{ - if ( Project::is_opening() ) - /* it's more efficient to do this once at the end rather than as we go. */ - return; - - DMESSAGE("Full auto-connect cycle" ); - - /* give strips with group affinity the first shot */ - for ( int i = 0; i < mixer_strips->children(); i++ ) - { - Mixer_Strip *s = ((Mixer_Strip*)mixer_strips->child(i)); - - if ( s->has_group_affinity() ) - s->auto_connect_outputs(); - } - - /* now do that catch-alls, first one wins! */ - for ( int i = 0; i < mixer_strips->children(); i++ ) - { - Mixer_Strip *s = ((Mixer_Strip*)mixer_strips->child(i)); - - if ( ! s->has_group_affinity() ) - s->auto_connect_outputs(); - } -} - -void -Mixer::maybe_auto_connect_output ( Module::Port *p ) -{ - if ( Project::is_opening() ) - /* it's more efficient to do this once at the end rather than as we go. */ - return; - -// DMESSAGE( "Single output auto connect cycle" ); - - /* give strips with group affinity the first shot */ - for ( int i = 0; i < mixer_strips->children(); i++ ) - { - Mixer_Strip *s = ((Mixer_Strip*)mixer_strips->child(i)); - - if ( s->has_group_affinity() ) - if ( s->maybe_auto_connect_output( p ) ) - return; - } - - /* now do that catch-alls, first one wins! */ - for ( int i = 0; i < mixer_strips->children(); i++ ) - { - Mixer_Strip *s = ((Mixer_Strip*)mixer_strips->child(i)); - - if ( ! s->has_group_affinity() ) - if ( s->maybe_auto_connect_output( p ) ) - return; - } -} -/************/ -/* Commands */ -/************/ - -void -Mixer::command_toggle_fader_view ( void ) -{ - for ( int i = 0; i < mixer_strips->children(); i++ ) - { - Mixer_Strip *s = ((Mixer_Strip*)mixer_strips->child(i)); - s->command_toggle_fader_view(); - } -} - -void -Mixer::command_clear_mappings ( void ) -{ - osc_endpoint->clear_translations(); -} - -bool -Mixer::command_save ( void ) -{ - if ( ! Project::open() ) - { - command_new(); - update_menu(); - } - - save_project_settings(); - - return Project::save(); -} - -bool -Mixer::command_load ( const char *path, const char *display_name ) -{ - mixer->deactivate(); - - Project::close(); - - char *pwd = (char*)malloc( PATH_MAX + 1 ); - getcwd( pwd, PATH_MAX ); - chdir( path ); - load_project_settings(); - chdir( pwd ); - free( pwd ); - - if ( Project::open( path ) ) - { - // fl_alert( "Error opening project specified on commandline: %s", Project::errstr( err ) ); - return false; - } - - if ( display_name ) - Project::name( display_name ); - - load_translations(); - - update_menu(); - - auto_connect(); - - mixer->activate(); - - return true; -} - -bool -Mixer::command_new ( const char *path, const char *display_name ) -{ - if ( ! Project::create( path, "" ) ) - return false; - - if ( display_name ) - Project::name( display_name ); - - load_project_settings(); - - update_menu(); - - return true; -// fl_alert( "Error creating project!" ); -} - -void -Mixer::command_quit ( void ) -{ - if ( Loggable::dirty() ) - { - int i = fl_choice( "There have been changes since the last save. Quitting now will discard them", "Discard", "Cancel", NULL ); - - if ( i != 0 ) - return; - } - - quit(); -} - -/* */ - -void -Mixer::command_add_strip ( void ) -{ - new_strip(); -} diff --git a/mixer/src/Mixer.H b/mixer/src/Mixer.H deleted file mode 100644 index c86109b..0000000 --- a/mixer/src/Mixer.H +++ /dev/null @@ -1,176 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2009 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include -#include -#include -#include -#include -#include "Mixer_Strip.H" - -#include "Thread.H" - -class Fl_Blink_Button; -class Fl_Flowpack; -class Fl_Menu_Bar; -class Spatialization_Console; -namespace OSC { class Endpoint; } -#include -class Group; - -class Mixer : public Fl_Group -{ - -public: - - OSC::Endpoint *osc_endpoint; - Fl_Button *sm_blinker; - -private: - - float _update_interval; - - static void show_tooltip ( const char *s ); - static void hide_tooltip ( void ); - - int _rows; - int _strip_height; - - Fl_Color system_colors[3]; - - Mixer_Strip* track_by_name ( const char *name ); - - void snapshot ( void ); - static void snapshot ( void *v ) { ((Mixer*)v)->snapshot(); } - - void cb_menu(Fl_Widget*); - static void cb_menu(Fl_Widget*, void*); - - Fl_Menu_Bar *menubar; - Fl_Scroll *scroll; - Fl_Pack *pack; - Fl_Box *project_name; - Fl_Box *_status; - - Fl_Flowpack *mixer_strips; - - void load_options ( void ); - void save_options ( void ); - void save_translations ( void ); - void load_translations ( void ); - - static void send_feedback_cb ( void *v ); - void send_feedback ( void ); - void redraw_windows ( void ); - - static void handle_dirty ( int, void *v ); - - static int osc_non_hello ( const char *, const char *, lo_arg **, int , lo_message msg, void * ); - static int osc_strip_by_number ( const char *, const char *, lo_arg **, int , lo_message msg, void * ); - - static void update_cb ( void * ); - void update_cb ( void ); - - -public: - - void auto_connect ( void ); - void maybe_auto_connect_output ( Module::Port *p ); - std::list get_auto_connect_targets ( void ); - Group * group_by_name ( const char * name ); - char *get_unique_group_name ( const char *name ); - - std::list groups; - Group *group ( int n ); - void add_group ( Group *g ); - void remove_group ( Group *g ); - - void update_menu ( void ); - - static Spatialization_Console *spatialization_console; - - int nstrips ( void ) const; - Mixer_Strip* track_by_number ( int n ); - - void update_frequency ( float f ); - - void status ( const char *s ) { - if ( s ) _status->copy_label( s ); - else _status->label(0); - _status->redraw(); } - - virtual int handle ( int m ); - - char * get_unique_track_name ( const char *name ); - - int min_h ( void ) const { return Mixer_Strip::min_h() + (18 * 2); } - - void rows ( int n ); - virtual void resize ( int X, int Y, int W, int H ); - - void new_strip ( void ); - void add ( Mixer_Strip *ms ); - void remove ( Mixer_Strip *ms ); - void move_left ( Mixer_Strip *ms ); - void move_right ( Mixer_Strip *ms ); - void insert ( Mixer_Strip *ms, Mixer_Strip *before ); - void insert ( Mixer_Strip *ms, int i ); - bool contains ( Mixer_Strip *ms ); - Mixer_Strip * event_inside ( void ); - int find_strip ( const Mixer_Strip *m ) const; - - bool save ( void ); - void quit ( void ); - - Mixer ( int X, int Y, int W, int H, const char *L ); - virtual ~Mixer(); - - void handle_hello ( lo_message msg ); - - void announce ( const char *nash_url, const char *process_name ); - - int init_osc ( const char* osc_port ); - - void sm_active ( bool b ); - - void say_hello ( void ); - - void save_default_project_settings ( void ); - void load_default_project_settings ( void ); - void reset_project_settings ( void ); - void save_project_settings ( void ); - void load_project_settings ( void ); - -public: - - void command_toggle_fader_view ( void ); - void command_clear_mappings ( void ); - void command_new ( void ); - bool command_save ( void ); - bool command_load ( const char *path, const char *display_name = 0 ); - bool command_new ( const char *path, const char *display_name = 0 ); - void command_quit ( void ); - - void command_add_strip ( void ); - -}; - -extern Mixer* mixer; diff --git a/mixer/src/Mixer_Strip.C b/mixer/src/Mixer_Strip.C deleted file mode 100644 index 88dffa0..0000000 --- a/mixer/src/Mixer_Strip.C +++ /dev/null @@ -1,1263 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2009 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -/* Mixer strip control. Handles GUI and control I/O for this strip. */ - -/* A mixer strip is home to some (JACK) input ports, a fader, some - * meters, and a filter chain which can terminate either at the input - * to the spacializer or some (JACK) output ports. Since mixer strips - * are not necessarily in a 1:1 association with Non-DAW tracks, there - * is no need for busses per se. If you want to route the output of - * several strips into a single fader or filter chain, then you just - * gives those strips JACK outputs and connect them to the common - * inputs. This mechanism can also do away with the need for 'sends' - * and 'inserts'. - - */ -/* Each mixer strip comprises a fader and a panner */ - -#include "Project.H" -#include "Mixer_Strip.H" -#include -#include -#include "debug.h" - - -#include "FL/Fl_Flowpack.H" -#include -#include -#include -#include -#include "Mixer.H" - -#include "Chain.H" -#include "Gain_Module.H" -#include "Meter_Module.H" -#include "Controller_Module.H" -#include "Meter_Indicator_Module.H" -#include "debug.h" -#include "FL/focus_frame.H" -#include -#include "FL/test_press.H" -#include "FL/menu_popup.H" -#include -#include -#include "Group.H" -#include "FL/focus_frame.H" - -extern Mixer *mixer; - - - -/* add a new mixer strip (with default configuration) */ -Mixer_Strip::Mixer_Strip( const char *strip_name ) : Fl_Group( 0, 0, 120, 600 ) -{ - label( strdup( strip_name ) ); - labeltype( FL_NO_LABEL ); - - init(); - - _group = new Group(strip_name, true); - - _group->add( this ); - - chain( new Chain() ); - - _chain->initialize_with_default(); - - _chain->configure_ports(); - - color( (Fl_Color)rand() ); - -// name( strdup( strip_name ) ); - - log_create(); -} - -/* virgin strip created from journal */ -Mixer_Strip::Mixer_Strip() : Fl_Group( 0, 0, 120, 600 ) -{ - init(); - - log_create(); -} - -Mixer_Strip::~Mixer_Strip ( ) -{ - DMESSAGE( "Destroying mixer strip" ); - -// _chain->engine()->lock(); - - log_destroy(); - - mixer->remove( this ); - - /* make sure this gets destroyed before the chain */ - fader_tab->clear(); - - delete _chain; - _chain = NULL; -} - - - -void -Mixer_Strip::get ( Log_Entry &e ) const -{ - e.add( ":name", name() ); - e.add( ":width", width_button->value() ? "wide" : "narrow" ); - e.add( ":tab", tab_button->value() ? "signal" : "fader" ); - e.add( ":color", (unsigned long)color()); - /* since the default controllers aren't logged, we have to store - * this setting as part of the mixer strip */ - e.add( ":gain_mode", gain_controller->mode() ); - e.add( ":mute_mode", mute_controller->mode() ); - if ( ! _group->single() ) - e.add( ":group", _group ); - else - e.add( ":group", (Loggable*)0 ); - e.add( ":auto_input", _auto_input ); - e.add( ":manual_connection", _manual_connection ); -} - -void -Mixer_Strip::set ( Log_Entry &e ) -{ - for ( int i = 0; i < e.size(); ++i ) - { - const char *s, *v; - - e.get( i, &s, &v ); - - if ( ! strcmp( s, ":name" ) ) - name( v ); - else if ( ! strcmp( s, ":width" ) ) - { - width_button->value( strcmp( v, "wide" ) == 0 ); - width_button->do_callback(); - } - else if ( ! strcmp( s, ":tab" ) ) - { - tab_button->value( strcmp( v, "signal" ) == 0 ); - tab_button->do_callback(); - } - else if ( ! strcmp( s, ":color" ) ) - { - color( (Fl_Color)atoll( v ) ); - redraw(); - } - else if ( ! strcmp( s, ":gain_mode" ) ) - { - _gain_controller_mode = atoi( v ); - } - else if ( ! strcmp( s, ":mute_mode" ) ) - { - _mute_controller_mode = atoi( v ); - } - else if ( ! strcmp( s, ":auto_input" ) ) - { - auto_input( v ); - } - else if ( ! strcmp( s, ":manual_connection" ) ) - { - manual_connection( atoi( v ) ); - } - else if ( ! strcmp( s, ":group" ) ) - { - int i; - sscanf( v, "%X", &i ); - - if ( i ) - { - Group *t = (Group*)Loggable::find( i ); - - /* Because of strip copy/paste and import, we can't assure that the group will exist by ID*/ -// assert( t ); - - group( t ); - } - else - group( 0 ); - } - } - - if ( ! _group ) - group(0); - - if ( ! mixer->contains( this ) ) - mixer->add( this ); -} - -void -Mixer_Strip::log_children ( void ) const -{ - log_create(); - - _chain->log_children(); -} - -void -Mixer_Strip::color ( Fl_Color c ) -{ - _color = c; - color_box->color( _color ); - color_box->redraw(); -} - -Fl_Color -Mixer_Strip::color ( void ) const -{ - return _color; -} - -void -Mixer_Strip::chain ( Chain *c ) -{ - if ( _chain ) - delete _chain; - - _chain = c; - - c->strip( this ); - - Fl_Group *g = signal_tab; - - c->resize( g->x(), g->y(), g->w(), g->h() ); - g->add( c ); - g->resizable( c ); - - c->labelsize( 10 ); - c->align( FL_ALIGN_TOP ); - c->color( FL_RED ); - c->configure_outputs_callback( configure_outputs, this ); - c->name( name() ); - - /* FIXME: don't hardcode this list of modules */ - spatialization_controller->chain( c ); - gain_controller->chain( c ); - mute_controller->chain( c ); - jack_input_controller->chain( c ); - meter_indicator->chain( c ); -} - - -void Mixer_Strip::cb_handle(Fl_Widget* o) { - // parent()->parent()->damage( FL_DAMAGE_ALL, x(), y(), w(), h() ); - // DMESSAGE( "Callback for %s", o->label() ); - - if ( o == tab_button ) - { - if ( tab_button->value() == 0 ) - { - fader_tab->resize( tab_group->x(), tab_group->y(), tab_group->w(), tab_group->h() ); - fader_tab->show(); - signal_tab->hide(); - tab_group->resizable( fader_tab ); - } - else - { - signal_tab->resize( tab_group->x(), tab_group->y(), tab_group->w(), tab_group->h() ); - signal_tab->show(); - fader_tab->hide(); - tab_group->resizable( signal_tab ); - } - - set_spatializer_visibility(); - } - else if ( o == close_button ) - { - if ( Fl::event_shift() || 1 == fl_choice( "Are you sure you want to remove this strip?\n\n(this action cannot be undone)", "Cancel", "Remove", NULL ) ) - command_close(); - } - else if ( o == name_field ) - { - name( name_field->value() ); - Fl::focus( this ); - } - else if ( o == width_button ) - { - if ( width_button->value() ) - size( 220, h() ); - else - size( 96, h() ); - - if ( parent() ) - parent()->parent()->redraw(); - } - else if ( o == output_connection_button ) - { - if ( output_connection_button->value() == 1 ) - o->label( output_connection_button->mvalue()->label() ); - else - o->label( NULL ); - - manual_connection( output_connection_button->value() ); - -// _manual_connection = output_connection_button->value(); - } - else if ( o == group_choice ) - { - // group(group_choice->value()); - Group *g = NULL; - - if ( group_choice->value() == group_choice->size() - 2 ) - { - /* create a new group */ - const char *s = fl_input( "Name for Group:" ); - if ( !s ) - return; - - char *n = mixer->get_unique_group_name( s ); - - g = new Group( n, false ); - - free( n ); - - mixer->add_group( g ); - } - else - { - g = (Group*)group_choice->mvalue()->user_data(); - } - - group(g); - } -} - -void Mixer_Strip::cb_handle(Fl_Widget* o, void* v) { - ((Mixer_Strip*)(v))->cb_handle(o); -} - -void -Mixer_Strip::group ( Group *g ) -{ - if ( !g && _group && _group->single() ) - return; - - if ( _group ) - { - _group->remove(this); - if ( ! _group->nstrips() ) - { - if ( ! _group->single() ) - mixer->remove_group( _group ); - - delete _group; - - _group = NULL; - } - } - - if ( ! g ) - g = new Group(name(), true); - - const Fl_Menu_Item *menu = group_choice->menu(); - - for ( unsigned int i = 0; menu[i].text; i++ ) - if ( menu[i].user_data() == g ) - group_choice->value( i ); - -// group_choice->color( (Fl_Color)n ); -// group_choice->value( n ); - - _group = g; - - g->add(this); -} - -void -Mixer_Strip::name ( const char *name ) -{ - if ( this->name() && !strcmp( name, this->name() ) ) - return; - - name = mixer->get_unique_track_name( name ); - - char *s = strdup( name ); - - if ( strlen( s ) > Chain::maximum_name_length() ) - { - s[Chain::maximum_name_length() - 1] = '\0'; - - fl_alert( "Name \"%s\" is too long, truncating to \"%s\"", name, s ); - } - - name_field->value( s ); - label( s ); - if ( _chain ) - _chain->name( s ); -} - -void -Mixer_Strip::configure_outputs ( Fl_Widget *, void *v ) -{ - ((Mixer_Strip*)v)->configure_outputs(); -} - -void -Mixer_Strip::configure_outputs ( void ) -{ - DMESSAGE( "Got signal to configure outputs" ); -} - -void -Mixer_Strip::set_spatializer_visibility ( void ) -{ - if ( fader_tab->visible() && spatialization_controller->is_controlling() ) - { - spatialization_controller->show(); - spatialization_label->show(); - } - else - { - spatialization_controller->hide(); - spatialization_label->hide(); - } -} - -/* called by the chain to let us know that a module has been added */ -void -Mixer_Strip::handle_module_added ( Module *m ) -{ - if ( m->is_default() ) - { - DMESSAGE( "Connecting controls to default module \"%s\"", m->name() ); - - /* connect default modules to their default controllers/indicators */ - if ( 0 == strcmp( m->name(), "JACK" ) && m->ninputs() == 0 ) - { - if ( !jack_input_controller->control_output[0].connected() ) - jack_input_controller->connect_to( &m->control_input[1] ); - } - else if ( 0 == strcmp( m->name(), "Gain" ) ) - { - gain_controller->connect_to( &m->control_input[0] ); - gain_controller->mode( (Controller_Module::Mode)_gain_controller_mode ); - mute_controller->connect_to( &m->control_input[1] ); - mute_controller->mode( (Controller_Module::Mode)_mute_controller_mode ); - } - else if ( 0 == strcmp( m->name(), "Meter" ) ) - { - meter_indicator->connect_to( &m->control_output[0] ); - } - } - else - { - if ( spatialization_controller->connect_spatializer_to( m ) ) - { - DMESSAGE( "Connected spatializer to module \"%s\"", m->name() ); - set_spatializer_visibility(); - } - } -} - - -/* called by the chain to let us know that a module has been removed */ -void -Mixer_Strip::handle_module_removed ( Module *m ) -{ - if ( spatialization_controller->control_output[0].connected() && - spatialization_controller->control_output[0].connected_port()->module() == m ) - { - set_spatializer_visibility(); - DMESSAGE( "Module \"%s\" disconnected from spatialization controller", m->label() ); - } -} - -/* update GUI with values from RT thread */ -void -Mixer_Strip::update ( void ) -{ - THREAD_ASSERT( UI ); - - meter_indicator->update(); - gain_controller->update(); - mute_controller->update(); - - if ( _chain ) - { - _chain->update(); - } - if ( group() ) - { - if ( ( _dsp_load_index++ % 10 ) == 0 ) - { - float l = group()->dsp_load(); - - dsp_load_progress->value( l ); - - { - char pat[20]; - snprintf( pat, sizeof(pat), "%.1f%%", l * 100.0f ); - dsp_load_progress->copy_tooltip( pat ); - } - - if ( l <= 0.15f ) - dsp_load_progress->color2( fl_rgb_color( 127,127,127 ) ); - else - dsp_load_progress->color2( FL_RED ); - } - } -} - -void -Mixer_Strip::init ( ) -{ - selection_color( FL_YELLOW ); - _manual_connection = 0; - _auto_input = 0; - _mute_controller_mode = 0; - _gain_controller_mode = 0; - _chain = 0; - _group = 0; - - _dsp_load_index = 0; - - box( FL_FLAT_BOX ); - labeltype( FL_NO_LABEL ); - - Fl_Group::color( FL_BACKGROUND_COLOR ); - - set_visible_focus(); - - { Fl_Scalepack *o = new Fl_Scalepack( 2, 2, 116, 595 ); - o->type( FL_VERTICAL ); - o->spacing( 2 ); - - { Fl_Box *o = color_box = new Fl_Box( 0,0, 25, 10 ); - o->box(FL_FLAT_BOX); - o->tooltip( "Drag and drop to move strip" ); - } - - { Fl_Pack *o = new Fl_Pack( 2, 2, 114, 100 ); - o->type( Fl_Pack::VERTICAL ); - o->spacing( 2 ); - { - Fl_Sometimes_Input *o = new Fl_Sometimes_Input( 2, 2, 144, 15 ); - name_field = o; - - o->up_box( FL_NO_BOX ); - o->box( FL_FLAT_BOX ); - o->selection_color( FL_BLACK ); - o->labeltype( FL_NO_LABEL ); - o->labelcolor( FL_GRAY0 ); - o->textcolor( FL_FOREGROUND_COLOR ); - o->textsize( 12 ); - o->value( name() ); - o->callback( cb_handle, (void*)this ); - } - { Fl_Scalepack *o = new Fl_Scalepack( 7, 143, 110, 18 ); - o->type( Fl_Pack::HORIZONTAL ); - - { Fl_Flip_Button* o = width_button = new Fl_Flip_Button(61, 183, 45, 22, "[]/[-]"); - o->type(1); - o->tooltip( "Switch between wide and narrow views" ); - o->labelfont( FL_COURIER_BOLD ); - o->labelsize(10); - o->callback( ((Fl_Callback*)cb_handle), this ); - o->when(FL_WHEN_RELEASE); - } - - { Fl_Button* o = close_button = new Fl_Button(7, 143, 35, 25, "X"); - o->tooltip( "Remove strip" ); - o->type(0); - o->labelfont( FL_COURIER_BOLD ); - o->selection_color( FL_RED ); - o->labelsize(10); - o->when( FL_WHEN_RELEASE ); - o->callback( ((Fl_Callback*)cb_handle), this ); - } // Fl_Button* o - - o->end(); - } // Fl_Group* o - { Fl_Progress* o = dsp_load_progress = new Fl_Progress(61, 183, 45, 14, "group dsp"); - o->box(FL_BORDER_BOX); - o->type(FL_HORIZONTAL); - o->labelsize( 9 ); - o->minimum( 0 ); -// o->maximum( 0.25f ); - o->maximum( 1 ); - o->color(fl_rgb_color( 10,10,10 ) ); - o->color2(FL_CYAN); - } - { Fl_Choice* o = group_choice = new Fl_Choice(61, 183, 45, 22); - o->tooltip( "Create or assign group" ); - o->labeltype(FL_NO_LABEL); - o->labelsize(10); - o->textsize(10); - o->add("---"); - o->value(0); - o->callback( ((Fl_Callback*)cb_handle), this ); - } - { Fl_Scalepack *o = new Fl_Scalepack( 0,0, 45, 22 ); - o->type( FL_HORIZONTAL ); - { Fl_Flip_Button* o = tab_button = new Fl_Flip_Button(61, 183, 45, 22, "Fadr/Signl"); - o->tooltip( "Switch between fader and signal views" ); - o->type(1); - o->labelsize( 10 ); - o->callback( ((Fl_Callback*)cb_handle), this ); - o->when(FL_WHEN_RELEASE); - } - { Controller_Module *o = mute_controller = new Controller_Module( true ); - o->pad( false ); - o->size( 45, 22 ); - } - o->end(); - } - o->end(); - } - -/* { Fl_Scalepack *o = new Fl_Scalepack( 2, 103, 114, 490 ); */ -/* o->type( FL_VERTICAL ); */ -// o->box( FL_FLAT_BOX ); -// o->color( FL_BACKGROUND_COLOR ); - { Fl_Group *o = tab_group = new Fl_Group( 2, 116, 105, 330 ); - o->box( FL_NO_BOX ); - { Fl_Group *o = fader_tab = new Fl_Group( 2, 116, 105, 330, "Fader" ); - o->box( FL_NO_BOX ); - o->labeltype( FL_NO_LABEL ); - { Fl_Pack *o = new Fl_Pack( 2, 116, 105, 15 ); - o->type( FL_VERTICAL ); - { - Controller_Module *m = jack_input_controller = new Controller_Module( true ); - m->labeltype( FL_NO_LABEL ); - m->chain( _chain ); - m->pad( false ); - m->size( 105, 15 ); - } - o->resizable(0); - o->end(); - } - { Fl_Scalepack* o = new Fl_Scalepack(2, 135, 105, 311 ); - // o->box( FL_BORDER_BOX ); -// o->color( FL_RED ); - o->spacing( 20 ); - o->type( Fl_Scalepack::HORIZONTAL ); - { Controller_Module *o = gain_controller = new Controller_Module( true ); - o->horizontal(false); - o->clear_visible_focus(); - o->pad( false ); - o->size( 33, 100 ); - } - { Meter_Indicator_Module *o = meter_indicator = new Meter_Indicator_Module( true ); - o->disable_context_menu( true ); - o->pad( false ); - o->size( 38, 100 ); - Fl_Group::current()->resizable(o); - } - o->end(); - Fl_Group::current()->resizable(o); - } // Fl_Group* o - o->end(); - Fl_Group::current()->resizable(o); - } - { Fl_Group *o = signal_tab = new Fl_Group( 2, 116, 105, 330 ); - o->box( FL_NO_BOX ); - o->labeltype( FL_NO_LABEL ); - o->hide(); - o->end(); - } - o->end(); - Fl_Group::current()->resizable( o ); - } -/* { Fl_Pack *o = panner_pack = new Fl_Pack( 2, 465, 114, 40 ); */ -/* o->spacing( 2 ); */ -/* o->type( Fl_Pack::VERTICAL ); */ - { Fl_Box *o = spatialization_label = new Fl_Box( 0, 0, 100, 12 ); - o->align( (Fl_Align)(FL_ALIGN_BOTTOM | FL_ALIGN_INSIDE) ); - o->labelsize( 10 ); - o->hide(); - o->label( "Spatialization" ); - } - { Controller_Module *o = spatialization_controller = new Controller_Module( true ); - o->hide(); - o->label( 0 ); - o->pad( false ); - o->size( 92,92 ); - } -/* o->end(); */ -/* } */ - - { Fl_Menu_Button *o = output_connection_button = new Fl_Menu_Button( 0, 0, 10, 18 ); - o->labelsize( 9 ); - o->add("- auto -"); - o->add("- manual -"); - o->align( FL_ALIGN_CLIP ); - o->labelcolor( FL_YELLOW ); - o->callback( cb_handle, this ); - o->hide(); - } - - o->end(); - } - - end(); - - color( FL_BLACK ); - - size( 96, h() ); - - update_group_choice(); -// redraw(); - - // _chain->configure_ports(); -} - -void -Mixer_Strip::update_group_choice ( void ) -{ - Fl_Choice *o = group_choice; - - o->clear(); - o->add( "---" ); - - for ( std::list::iterator i = mixer->groups.begin(); i != mixer->groups.end(); ) - { - Group *g = *i; - - i++; - - if ( i == mixer->groups.end() ) - { - o->add( g->name(), 0, 0, (void*)g, FL_MENU_DIVIDER ); - break; - } - else - o->add( g->name(), 0, 0, (void*)g ); - } - - o->add( "New Group" ); - - const Fl_Menu_Item *menu = o->menu(); - - if ( ! group() || ( group() && group()->single() ) ) - o->value(0); - else - { - for ( unsigned int i = 0; menu[i].text; i++ ) - if ( menu[i].user_data() == group() ) - o->value( i ); - } -} - -void -Mixer_Strip::draw ( void ) -{ - /* don't bother drawing anything else, all we're doing is drawing the focus. */ -// if ( damage() & ~FL_DAMAGE_USER1 ) - Fl_Group::draw(); - - if ( focused_r( this ) ) - draw_focus_frame( x(),y(),w(),h(), Fl_Group::selection_color() ); - /* else */ - /* clear_focus_frame( x(),y(),w(),h(), FL_BACKGROUND_COLOR ); */ -} - -/*****************/ -/* Import/Export */ -/*****************/ - -void -Mixer_Strip::snapshot ( void *v ) -{ - ((Mixer_Strip*)v)->snapshot(); -} - -void -Mixer_Strip::snapshot ( void ) -{ - log_children(); -} - -bool -Mixer_Strip::export_strip ( const char *filename ) -{ - MESSAGE( "Exporting chain state" ); - Loggable::snapshot_callback( &Mixer_Strip::snapshot, this ); - Loggable::snapshot( filename ); - return true; -} - -bool -Mixer_Strip::import_strip ( const char *filename ) -{ - MESSAGE( "Importing new chain state" ); - Loggable::begin_relative_id_mode(); - int r = Loggable::replay( filename ); - Loggable::end_relative_id_mode(); - return r; -} - - - - - -void -Mixer_Strip::menu_cb ( const Fl_Menu_ *m ) -{ - char picked[256]; - - m->item_pathname( picked, sizeof( picked ) ); - - Logger log( this ); - - if ( ! strcmp( picked, "Width/Narrow" ) ) - command_width( false ); - else if ( ! strcmp( picked, "Width/Wide" ) ) - command_width( true ); - else if ( ! strcmp( picked, "View/Fader" ) ) - command_view( false ); - else if ( ! strcmp( picked, "View/Signal" ) ) - command_view( true ); - else if ( ! strcmp( picked, "/Move Left" ) ) - command_move_left(); - else if ( ! strcmp( picked, "/Move Right" ) ) - command_move_right(); - else if ( ! strcmp( picked, "/Rename" ) ) - { - ((Fl_Sometimes_Input*)name_field)->take_focus(); - } - else if ( ! strcmp( picked, "/Copy" ) ) - { - export_strip( "clipboard.strip" ); - - char *s; - asprintf( &s, "file://%s/%s\r\n", Project::path(), "clipboard.strip" ); - - Fl::copy( s, strlen(s), 0 ); - - free(s); - } - else if ( ! strcmp( picked, "/Color" ) ) - { - unsigned char r, g, b; - - Fl::get_color( color(), r, g, b ); - - if ( fl_color_chooser( "Strip Color", r, g, b ) ) - color( fl_rgb_color( r, g, b ) ); - - redraw(); - } - else if ( !strcmp( picked, "/Export Strip" ) ) - { - char *suggested_name; - asprintf( &suggested_name, "%s.strip", name() ); - - const char *s = fl_file_chooser( "Export strip to filename:", "*.strip", suggested_name, 0 ); - - free( suggested_name ); - - if ( s ) - export_strip( s ); - - fl_message( "Strip exported." ); - } - else if ( ! strcmp( picked, "/Remove" ) ) - { - if ( Fl::event_shift() || 1 == fl_choice( "Are you sure you want to remove this strip?\n\n(this action cannot be undone)", "Cancel", "Remove", NULL ) ) - command_close(); - } - else if ( ! strcmp( picked, "/Gain" ) ) - { - gain_controller->take_focus(); - } - else if ( ! strcmp( picked, "/Mute" ) ) - { - ((Fl_Button*)mute_controller->child(0))->value( ! - ((Fl_Button*)mute_controller->child(0))->value()); - - } - else if ( ! strcmp( picked, "Auto Output/On" ) ) - { - manual_connection( false ); - } - else if ( ! strcmp( picked, "Auto Output/Off" ) ) - { - manual_connection( true ); - } - else if ( ! strncmp( picked, "Auto Input/", strlen( "Auto Input/" ) )) - { - const char *s = index( picked, '/' ) + 1; - - if ( ! strcmp( s, "Off" ) ) - auto_input( NULL ); - else - auto_input( s ); - } -} - -void -Mixer_Strip::menu_cb ( Fl_Widget *w, void *v ) -{ - ((Mixer_Strip*)v)->menu_cb( (Fl_Menu_*) w ); -} - -void -Mixer_Strip::auto_input ( const char *s ) -{ - if ( _auto_input ) - free( _auto_input ); - - _auto_input = NULL; - - if ( s ) - _auto_input = strdup( s ); - - mixer->auto_connect(); -} - -void -Mixer_Strip::manual_connection ( bool b ) -{ - _manual_connection = b; - output_connection_button->value(b); - - if ( chain() ) - { - if ( b ) - chain()->auto_disconnect_outputs(); - else - chain()->auto_connect_outputs(); - } -} - -static bool matches_pattern ( const char *pattern, Module::Port *p ) -{ - char group_name[256]; - char port_group[256]; - - if ( 2 == sscanf( pattern, "%[^/]/%[^\n]", group_name, port_group )) - { - if ( strcmp( group_name, "*" ) && - strcmp( group_name, p->module()->chain()->strip()->group()->name() )) - { - /* group mismatch */ - return false; - } - - /* group matches... try port group */ - if ( ! strcmp( port_group, "mains" ) ) - { - if ( index( p->jack_port()->name(), '/' ) ) - return false; - else - return true; - } - else - { - const char *pn = p->jack_port()->name(); - const char *n = rindex( pn, '/' ); - - if ( n ) - { -// *n = 0; - if ( ! strncmp( port_group, pn, ( n - 1 ) - pn ) ) - return true; - else - return false; - } - else - return false; - } - } - - return false; -} - - -#include "JACK_Module.H" - -void -Mixer_Strip::auto_connect_outputs ( void ) -{ - chain()->auto_connect_outputs(); -} - -bool -Mixer_Strip::has_group_affinity ( void ) const -{ - return _auto_input && strncmp( _auto_input, "*/", 2 ); -} - -bool -Mixer_Strip::maybe_auto_connect_output ( Module::Port *p ) -{ - if ( p->module()->chain()->strip()->_manual_connection ) - return true; - - if ( p->module()->chain()->strip() == this ) - /* don't auto connect to self! */ - return false; - - if ( ! _auto_input ) - { - /* break any previous connection between this port and this module */ - p->disconnect_from_strip(this); - } - - if ( _auto_input && matches_pattern( _auto_input, p ) ) - { - /* break any prior auto-connection */ - p->disconnect(); - - // FIXME: Find a better way to get the port index. - const char* jack_name = p->jack_port()->jack_name(); - - /* get port number */ - const char *s = rindex( jack_name, '-' ); - unsigned int n = atoi( s + 1 ) - 1; - - /* FIXME: safe assumption? */ - JACK_Module *m = (JACK_Module*)chain()->module(0); - - if ( !m ) - { - /* no jack module in the chian... may be in the process of adding the JACK module to the chain... i.e in log replay when loading a project. */ - return false; - } - - if ( n >= m->aux_audio_input.size() ) - { -// DMESSAGE( "No port to connect to at this index"); - return false; - } - - m->aux_audio_input[n].connect_to( p ); - - if ( p->module()->is_default() ) - { - /* only do this for mains */ - p->module()->chain()->strip()->output_connection_button->copy_label( name() ); - p->module()->chain()->strip()->output_connection_button->labelcolor( FL_FOREGROUND_COLOR ); - } - - return true; - } - - return false; -} - -/** build the context menu */ -Fl_Menu_Button & -Mixer_Strip::menu ( void ) const -{ - static Fl_Menu_Button m( 0, 0, 0, 0, "Strip" ); - static char label[256]; - - snprintf( label, sizeof(label), "Strip/%s", name() ); - m.label( label ); - -// int c = output.size(); - - m.clear(); - - std::list sl = mixer->get_auto_connect_targets(); - - - m.add( "Auto Output/On", 0, 0, 0, FL_MENU_RADIO | ( _manual_connection ? 0 : FL_MENU_VALUE ) ); - m.add( "Auto Output/Off", 0, 0, 0, FL_MENU_RADIO | ( ! _manual_connection ? 0 : FL_MENU_VALUE ) ); - m.add( "Auto Input/Off", 0, 0, 0, FL_MENU_DIVIDER | FL_MENU_RADIO | ( _auto_input ? 0 : FL_MENU_VALUE ) ); - - for ( std::list::iterator i = sl.begin(); i != sl.end(); i++ ) - { - char *s; - asprintf( &s, "Auto Input/%s", i->c_str() ); - - m.add( s, 0,0,0, FL_MENU_RADIO | ( _auto_input && !strcmp( _auto_input, i->c_str() ) ? FL_MENU_VALUE : 0 )); - free(s ); - } - - m.add( "Width/Narrow", 'n', 0, 0, FL_MENU_RADIO | ( ! width_button->value() ? FL_MENU_VALUE : 0 )); - m.add( "Width/Wide", 'w', 0, 0, FL_MENU_RADIO | ( width_button->value() ? FL_MENU_VALUE : 0 ) ); - m.add( "View/Fader", 'f', 0, 0, FL_MENU_RADIO | ( 0 == tab_button->value() ? FL_MENU_VALUE : 0 ) ); - m.add( "View/Signal", 's', 0, 0, FL_MENU_RADIO | ( 1 == tab_button->value() ? FL_MENU_VALUE : 0 ) ); - m.add( "Mute", 'm', 0, 0, 0 ); -// ( 1 == mute_controller->control_output[0].connected_port()->control_value() ? FL_MENU_VALUE : 0 ) ); - m.add( "Gain", 'g', 0, 0 ); - m.add( "Move Left", '[', 0, 0 ); - m.add( "Move Right", ']', 0, 0 ); - m.add( "Color", 0, 0, 0 ); - m.add( "Copy", FL_CTRL + 'c', 0, 0 ); - m.add( "Export Strip", 0, 0, 0 ); - m.add( "Rename", FL_CTRL + 'n', 0, 0 ); - m.add( "Remove", FL_Delete, 0, 0 ); - - menu_set_callback( const_cast(m.menu()), &Mixer_Strip::menu_cb, (void*)this ); - - return m; -} - -Controller_Module * -Mixer_Strip::spatializer ( void ) -{ - return spatialization_controller; -} - -void -Mixer_Strip::get_output_ports ( std::list &ports ) -{ - _chain->get_output_ports(ports); -} - -int -Mixer_Strip::handle ( int m ) -{ - static int _button = 0; - - Logger log( this ); - - static Fl_Widget *dragging = NULL; - - if ( Fl_Group::handle( m ) ) - return 1; - - switch ( m ) - { - case FL_FOCUS: - damage( FL_DAMAGE_USER1 ); - return 1; - case FL_UNFOCUS: - damage( FL_DAMAGE_USER1 ); - return 1; - } - - /* if ( m == FL_PUSH ) */ - /* take_focus(); */ - - switch ( m ) - { - case FL_KEYBOARD: - { - if ( Fl::event_key() == FL_Menu ) - { - menu_popup( &menu(), x(), y() ); - return 1; - } - else - return menu().test_shortcut() != 0; - break; - } - case FL_PUSH: - if ( Fl::event_button1() && Fl::event_inside( color_box ) ) - dragging = this; - else - dragging = NULL; - - _button = Fl::event_button(); - - return 1; - - break; - - case FL_DRAG: - return 1; - break; - case FL_RELEASE: - if ( dragging == this && ! Fl::event_is_click() ) - { - mixer->insert( this, mixer->event_inside() ); - /* FIXME: do better! */ - mixer->redraw(); - dragging = NULL; - return 1; - } - - dragging = NULL; - - int b = _button; - _button = 0; - - /* if ( 1 == b ) */ - /* { */ - /* take_focus(); */ - /* } */ - /* else */ - if ( 3 == b ) - { - menu_popup( &menu() ); - return 1; - } - break; - } - - return 0; -} - -void -Mixer_Strip::send_feedback ( void ) -{ - if ( _chain ) - _chain->send_feedback(); -} - -int -Mixer_Strip::number ( void ) const -{ - return mixer->find_strip( this ); -} - -/************/ -/* Commands */ -/************/ - -void -Mixer_Strip::command_toggle_fader_view ( void ) -{ - tab_button->value( ! tab_button->value() ); - tab_button->do_callback(); -} - -void -Mixer_Strip::command_move_left ( void ) -{ - mixer->move_left( this ); -} - -void -Mixer_Strip::command_move_right ( void ) -{ - mixer->move_right( this ); -} - -void -Mixer_Strip::command_close ( void ) -{ - Fl::delete_widget( this ); -} - -void -Mixer_Strip::command_rename ( const char * s ) -{ - name( s ); -} - -void -Mixer_Strip::command_width ( bool b ) -{ - width_button->value( b ); - width_button->do_callback(); -} - -void -Mixer_Strip::command_view ( bool b ) -{ - tab_button->value( b ); - tab_button->do_callback(); -} diff --git a/mixer/src/Mixer_Strip.H b/mixer/src/Mixer_Strip.H deleted file mode 100644 index ce7967a..0000000 --- a/mixer/src/Mixer_Strip.H +++ /dev/null @@ -1,188 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2010 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include -#include "DPM.H" -#include "Panner.H" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -#include "../FL/Fl_Sometimes_Input.H" - -#include "Loggable.H" -class Chain; -class Fl_Flowpack; -class Controller_Module; -class Meter_Indicator_Module; -class Module; -class Fl_Flip_Button; -class Fl_Input; -class Fl_Menu_; -class Fl_Menu_Button; -class Fl_Choice; -class Group; - -#include "Module.H" - -class Mixer_Strip : public Fl_Group, public Loggable { - -public: - - static int min_h ( void ) { return 333; } - - Mixer_Strip( const char *strip_name ); - Mixer_Strip(); /* for log create */ - virtual ~Mixer_Strip(); - - void chain ( Chain *c ); - Chain *chain ( void ) { return _chain; } - - virtual void log_children ( void ) const; - - virtual void color ( Fl_Color c ); - virtual Fl_Color color ( void ) const; - - LOG_CREATE_FUNC( Mixer_Strip ); - - static void configure_outputs ( Fl_Widget *o, void *v ); - void configure_outputs ( void ); - - bool configure_ports ( int n ); - - void handle_module_added ( Module *m ); - void handle_module_removed ( Module *m ); - - void update ( void ); - - void name ( const char *name ); - const char *name ( void ) const { return label(); } - -private: - - char *_auto_input; - void auto_input ( const char *s ); - - unsigned int _dsp_load_index; - - /* used to defer setting the mode of the gain controller until the - chain has been added and the controller connected to a default - module */ - int _gain_controller_mode; - int _mute_controller_mode; - bool _manual_connection; - - Fl_Menu_Button *output_connection_button; - Fl_Flip_Button *width_button; - Fl_Flip_Button *tab_button; - Fl_Button *close_button; - Fl_Input *name_field; - Fl_Choice *group_choice; - - Fl_Flowpack *controls_pack; - Fl_Group *tab_group; - Fl_Group *signal_tab; - Fl_Group *fader_tab; - Fl_Pack *panner_pack; - - Chain *_chain; - Group *_group; - - Fl_Box *spatialization_label; - Controller_Module *gain_controller; - Controller_Module *mute_controller; - Controller_Module *jack_input_controller; - Controller_Module *spatialization_controller; - Meter_Indicator_Module *meter_indicator; - - Fl_Progress *dsp_load_progress; - - Fl_Box *color_box; - - nframes_t nframes; - - Fl_Color _color; - - void init ( ); - void cb_handle(Fl_Widget*); - static void cb_handle(Fl_Widget*, void*); - - void set_tab ( void ); - - void update_port_names ( void ); - - void menu_cb ( const Fl_Menu_ *m ); - static void menu_cb ( Fl_Widget *w, void *v ); - Fl_Menu_Button & menu ( void ) const; - - static void snapshot ( void *v ); - void snapshot ( void ); - bool export_strip ( const char *filename ); - - void set_spatializer_visibility ( void ); - -protected: - - void get ( Log_Entry &e ) const; - void set ( Log_Entry &e ); - - virtual int handle ( int m ); - virtual void draw ( void ); - -public: - - void manual_connection ( bool b ); - bool has_group_affinity ( void ) const; - void auto_connect_outputs ( void ); - bool maybe_auto_connect_output ( Module::Port *p ); - - void get_output_ports ( std::list &ports ); - - void update_group_choice ( void ); - - Controller_Module *spatializer ( void ); - - Group *group ( void ) { return _group;} - - // int group ( void ) const; - void group ( Group * ); - void send_feedback ( void ); - int number ( void ) const; - static bool import_strip ( const char *filename ); - - void command_toggle_fader_view ( void ); - void command_move_left ( void ); - void command_move_right ( void ); - void command_close ( void ); - void command_rename ( const char * s ); - void command_width ( bool b ); - void command_view ( bool b ); - -}; diff --git a/mixer/src/Module.C b/mixer/src/Module.C deleted file mode 100644 index ea712d3..0000000 --- a/mixer/src/Module.C +++ /dev/null @@ -1,1426 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2009 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "Module.H" -#include -#include - -#include -#include -#include - -#include "Module_Parameter_Editor.H" -#include "Chain.H" - -#include "JACK_Module.H" -#include "Gain_Module.H" -#include "Mono_Pan_Module.H" -#include "Meter_Module.H" -#include "Plugin_Module.H" -#include "AUX_Module.H" -#include "Spatializer_Module.H" - -#include "FL/focus_frame.H" -#include -#include "FL/test_press.H" -#include "FL/menu_popup.H" -#include "Mixer.H" - -#include "Plugin_Chooser.H" -#include "OSC/Endpoint.H" - -#include "string_util.h" - - - -nframes_t Module::_sample_rate = 0; -Module *Module::_copied_module_empty = 0; -char *Module::_copied_module_settings = 0; - - - -Module::Module ( int W, int H, const char *L ) : Fl_Group( 0, 0, W, H, L ) -{ - init(); -} - -Module::Module ( bool is_default, int W, int H, const char *L ) : Fl_Group( 0, 0, W, H, L ), Loggable( !is_default ) -{ - init(); - - this->is_default( is_default ); -} - -Module::Module ( ) : Fl_Group( 0, 0, 50, 50, "Unnamed" ) -{ - init(); -} - -Module::~Module ( ) -{ - /* we assume that the client for this chain is already locked */ - - if ( _editor ) - { - delete _editor; - _editor = NULL; - } - - for ( unsigned int i = 0; i < audio_input.size(); ++i ) - audio_input[i].disconnect(); - for ( unsigned int i = 0; i < audio_output.size(); ++i ) - audio_output[i].disconnect(); - for ( unsigned int i = 0; i < aux_audio_input.size(); ++i ) - { - aux_audio_input[i].disconnect(); - aux_audio_input[i].jack_port()->shutdown(); - delete aux_audio_input[i].jack_port(); - } - for ( unsigned int i = 0; i < aux_audio_output.size(); ++i ) - { - aux_audio_output[i].disconnect(); - aux_audio_output[i].jack_port()->shutdown(); - delete aux_audio_output[i].jack_port(); - } - for ( unsigned int i = 0; i < control_input.size(); ++i ) - { - /* destroy connected Controller_Module */ - if ( control_input[i].connected() ) - { - Module *o = (Module*)control_input[i].connected_port()->module(); - - if ( ! o->is_default() ) - { - control_input[i].disconnect(); - - DMESSAGE( "Deleting connected module %s", o->label() ); - - delete o; - } - else - { - control_input[i].disconnect(); - } - - } - - control_input[i].destroy_osc_port(); - } - for ( unsigned int i = 0; i < control_output.size(); ++i ) - control_output[i].disconnect(); - - audio_input.clear(); - audio_output.clear(); - - control_input.clear(); - control_output.clear(); - - if ( parent() ) - parent()->remove( this ); -} - - - - -void -Module::init ( void ) -{ - - /* we use pointers to these vector elements for port auto connection stuff and need to prevent reallocation from invalidating them. */ - audio_input.reserve(16); - audio_output.reserve(16); - control_input.reserve(16); - control_output.reserve(16); - aux_audio_input.reserve(16); - aux_audio_output.reserve(16); - -// _latency = 0; - _is_default = false; - _editor = 0; - _chain = 0; - _instances = 1; - _bypass = 0; - - box( FL_UP_BOX ); - labeltype( FL_NO_LABEL ); - align( FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); - set_visible_focus(); - selection_color( FL_YELLOW ); - - labelsize(12); - color( fl_rgb_color( 122,190,200 ) ); - tooltip(); -} - -void -Module::update_tooltip ( void ) -{ - char *s; - asprintf( &s, "Left click to edit parameters; Ctrl + left click to select; right click or MENU key for menu. (info: latency: %lu)", (unsigned long) get_module_latency() ); - - copy_tooltip(s); - free(s); -} - -void -Module::get ( Log_Entry &e ) const -{ -// e.add( ":name", label() ); -// e.add( ":color", (unsigned long)color()); - { - char *s = get_parameters(); - if ( strlen( s ) ) - e.add( ":parameter_values", s ); - delete[] s; - } - e.add( ":is_default", is_default() ); - e.add( ":chain", chain() ); - e.add( ":active", ! bypass() ); -} - -bool -Module::copy ( void ) const -{ - Module *m = clone_empty(); - - if ( ! m ) - { - DMESSAGE( "Module \"%s\" doesn't support cloning", name() ); - return false; - } - - Log_Entry *ne = new Log_Entry(); - - _copied_module_empty = m; - - { - Log_Entry e; - get( e ); - - for ( int i = 0; i < e.size(); ++i ) - { - const char *s, *v; - - e.get( i, &s, &v ); - - /* we don't want this module to get added to the current - chain... */ - if ( !( !strcmp( s, ":chain" ) || - !strcmp( s, ":is_default" ) ) ) - { - DMESSAGE( "%s = %s", s, v ); - ne->add_raw( s, v ); - } - } - } - - _copied_module_settings = ne->print(); - - return true; -} - -void -Module::paste_before ( void ) -{ - Module *m = _copied_module_empty; - - Log_Entry le( _copied_module_settings ); - le.remove( ":chain" ); - - char *print = le.print(); - - DMESSAGE( "Pasting settings: %s", print ); - - free( print ); - - m->set( le ); - - if ( ! chain()->insert( this, m ) ) - { - fl_alert( "Copied module cannot be inserted at this point in the chain" ); - } - - free( _copied_module_settings ); - _copied_module_settings = NULL; - _copied_module_empty = NULL; - - /* set up for another paste */ - m->copy(); -} - - - -void -Module::Port::disconnect_from_strip ( Mixer_Strip *o ) -{ - for ( std::list::iterator i = _connected.begin(); i != _connected.end(); i++ ) - { - Port *p = *i; - - if ( p->module()->chain()->strip() == o ) - { - /* iterator about to be invalidated... */ - i = _connected.erase(i); - - disconnect(p); - } - } -} - -const char * -Module::Port::osc_number_path ( void ) -{ - if ( ! _scaled_signal ) - return NULL; - - int n = _module->chain()->strip()->number(); - - if ( _by_number_path && n == _by_number_number ) - return _by_number_path; - - if ( _by_number_path ) - free( _by_number_path ); - - char *rem; - char *client_name; - char *strip_name; - - if ( 3 != sscanf( _scaled_signal->path(), "%m[^/]/strip/%m[^/]/%m[^\n]", &client_name, &strip_name, &rem ) ) - return NULL; - - free( strip_name ); - - char *path; - asprintf( &path, "%s/strip#/%i/%s", client_name, n, rem ); - - free( client_name ); - free( rem ); - - _by_number_path = path; - _by_number_number = n; - - return path; -} - -void -Module::Port::send_feedback ( void ) -{ - float f = control_value(); - - if ( hints.ranged ) - { - // scale value to range. - - float scale = hints.maximum - hints.minimum; - float offset = hints.minimum; - - f = ( f - offset ) / scale; - } - - if ( f > 1.0 ) - f = 1.0; - else if ( f < 0.0 ) - f = 0.0; - - if ( _scaled_signal ) - { - /* send feedback for by_name signal */ - mixer->osc_endpoint->send_feedback( _scaled_signal->path(), f ); - - /* send feedback for by number signal */ - mixer->osc_endpoint->send_feedback( osc_number_path(), f ); - } -} - -void -Module::send_feedback ( void ) -{ - for ( int i = 0; i < ncontrol_inputs(); i++ ) - control_input[i].send_feedback(); -} - -void -Module::handle_control_changed ( Port *p ) -{ - if ( _editor ) - _editor->handle_control_changed ( p ); - - p->send_feedback(); -} - -/* bool */ -/* Module::Port::connected_osc ( void ) const */ -/* { */ -/* if ( _scaled_signal ) */ -/* return _scaled_signal->connected(); */ -/* else */ -/* return false; */ -/* } */ - -char * -Module::Port::generate_osc_path () -{ - const Port *p = this; - - char *path = NULL; - - // /strip/STRIPNAME/MODULENAME/CONTROLNAME - - if ( ! p->hints.visible ) - { - return NULL; - } - - int n = module()->chain()->get_module_instance_number( module() ); - - if ( n > 0 ) - asprintf( &path, "/strip/%s/%s.%i/%s", module()->chain()->name(), p->module()->label(), n, p->name() ); - else - asprintf( &path, "/strip/%s/%s/%s", module()->chain()->name(), p->module()->label(), p->name() ); - - char *s = escape_url( path ); - - free( path ); - - path = s; - - return path; -} - -void -Module::Port::handle_signal_connection_state_changed ( OSC::Signal *, void *o ) -{ - ((Module::Port*)o)->module()->redraw(); -} - -void -Module::Port::change_osc_path ( char *path ) -{ - if ( path ) - { - char *scaled_path = path; - char *unscaled_path = NULL; - - asprintf( &unscaled_path, "%s/unscaled", path ); - - if ( NULL == _scaled_signal ) - { - float scaled_default = 0.5f; - - if ( hints.ranged ) - { - float scale = hints.maximum - hints.minimum; - float offset = hints.minimum; - - scaled_default = ( hints.default_value - offset ) / scale; - } - - _scaled_signal = mixer->osc_endpoint->add_signal( scaled_path, - OSC::Signal::Input, - 0.0, 1.0, scaled_default, - &Module::Port::osc_control_change_cv, this ); - - - _scaled_signal->connection_state_callback( handle_signal_connection_state_changed, this ); - - _unscaled_signal = mixer->osc_endpoint->add_signal( unscaled_path, - OSC::Signal::Input, - hints.minimum, hints.maximum, hints.default_value, - &Module::Port::osc_control_change_exact, this ); - } - else - { - DMESSAGE( "Renaming OSC signals" ); - - _scaled_signal->rename( scaled_path ); - _unscaled_signal->rename( unscaled_path ); - } - - free( unscaled_path ); - /* this was path, it's ok to free because it was malloc()'d in generate_osc_path */ - free( scaled_path ); - } -} - - -int -Module::Port::osc_control_change_exact ( float v, void *user_data ) -{ - Module::Port *p = (Module::Port*)user_data; - - Fl::lock(); - - float f = v; - - if ( p->hints.ranged ) - { - if ( f > p->hints.maximum ) - f = p->hints.maximum; - else if ( f < p->hints.minimum ) - f = p->hints.minimum; - - if ( Hints::BOOLEAN == p->hints.type ) - f = f > (p->hints.maximum - (p->hints.maximum - p->hints.minimum)) * 0.5f ? - p->hints.maximum : - p->hints.minimum; - } - - - p->control_value( f ); - - Fl::unlock(); - -// mixer->osc_endpoint->send( lo_message_get_source( msg ), "/reply", path, f ); - - return 0; -} - -int -Module::Port::osc_control_change_cv ( float v, void *user_data ) -{ - Module::Port *p = (Module::Port*)user_data; - - float f = v; - - Fl::lock(); - - // clamp value to control voltage range. - if ( f > 1.0 ) - f = 1.0; - else if ( f < 0.0 ) - f = 0.0; - - if ( p->hints.ranged ) - { - if ( Hints::BOOLEAN == p->hints.type ) - f = f > 0.5f ? p->hints.maximum : p->hints.minimum; - - // scale value to range. - - float scale = p->hints.maximum - p->hints.minimum; - float offset = p->hints.minimum; - - f = ( f * scale ) + offset; - } - - p->control_value( f ); - - Fl::unlock(); -// mixer->osc_endpoint->send( lo_message_get_source( msg ), "/reply", path, f ); - - return 0; -} - - -void -Module::set ( Log_Entry &e ) -{ - for ( int i = 0; i < e.size(); ++i ) - { - const char *s, *v; - - e.get( i, &s, &v ); - - if ( ! ( strcmp( s, ":is_default" ) ) ) - { - is_default( atoi( v ) ); - } - else if ( ! strcmp( s, ":chain" ) ) - { - /* This trickiness is because we may need to know the name of - our chain before we actually get added to it. */ - int i; - sscanf( v, "%X", &i ); - Chain *t = (Chain*)Loggable::find( i ); - - assert( t ); - - chain( t ); - } - } - - for ( int i = 0; i < e.size(); ++i ) - { - const char *s, *v; - - e.get( i, &s, &v ); - -/* if ( ! strcmp( s, ":name" ) ) */ -/* label( v ); */ - if ( ! strcmp( s, ":parameter_values" ) ) - { - set_parameters( v ); - } - else if ( ! ( strcmp( s, ":active" ) ) ) - { - bypass( ! atoi( v ) ); - } - else if ( ! strcmp( s, ":chain" ) ) - { - int i; - sscanf( v, "%X", &i ); - Chain *t = (Chain*)Loggable::find( i ); - - assert( t ); - - t->add( this ); - } - } -} - - - - -void -Module::chain ( Chain *v ) -{ - if ( _chain != v ) - { - DMESSAGE( "Adding module %s in to chain %s", label(), v ? v->name() : "NULL" ); - - _chain = v; - - for ( int i = 0; i < ncontrol_inputs(); ++i ) - { - control_input[i].update_osc_port(); - } - } - else - { - DMESSAGE( "Module %s already belongs to chain %s", label(), v ? v->name() : "NULL" ); - } -} - -/* return a string serializing this module's parameter settings. The - format is 1.0:2.0:... Where 1.0 is the value of the first control - input, 2.0 is the value of the second control input etc. -*/ -char * -Module::get_parameters ( void ) const -{ - char *s = new char[1024]; - s[0] = 0; - char *sp = s; - - if ( control_input.size() ) - { - for ( unsigned int i = 0; i < control_input.size(); ++i ) - sp += snprintf( sp, 1024 - (sp - s),"%f:", control_input[i].control_value() ); - - *(sp - 1) = '\0'; - } - - return s; -} - -void -Module::set_parameters ( const char *parameters ) -{ - char *s = strdup( parameters ); - - char *start = s; - unsigned int i = 0; - for ( char *sp = s; ; ++sp ) - { - if ( ':' == *sp || '\0' == *sp ) - { - char was = *sp; - - *sp = '\0'; - - DMESSAGE( start ); - - if ( i < control_input.size() ) - control_input[i].control_value( atof( start ) ); - else - { - WARNING( "Module has no parameter at index %i", i ); - break; - } - - i++; - - if ( '\0' == was ) - break; - - start = sp + 1; - } - } - - free( s ); -} - - - -void -Module::draw_box ( int tx, int ty, int tw, int th ) -{ - fl_color( fl_contrast( FL_FOREGROUND_COLOR, color() ) ); - - fl_push_clip( tx, ty, tw, th ); - - Fl_Color c = color(); - - if ( ! active_r() ) - c = fl_inactive( c ); - - int spacing = w() / instances(); - for ( int i = instances(); i--; ) - { - fl_draw_box( box(), tx + (spacing * i), ty, tw / instances(), th, c ); - } - - - if ( audio_input.size() && audio_output.size() ) - { - /* maybe draw control indicators */ - if ( control_input.size() ) - { - fl_draw_box( FL_ROUNDED_BOX, tx + 4, ty + 4, 5, 5, is_being_controlled() ? FL_YELLOW : fl_inactive( FL_YELLOW ) ); - - /* fl_draw_box( FL_ROUNDED_BOX, tx + 4, ty + th - 8, 5, 5, is_being_controlled_osc() ? FL_YELLOW : fl_inactive( FL_YELLOW ) ); */ - } - - if ( control_output.size() ) - fl_draw_box( FL_ROUNDED_BOX, tx + tw - 8, ty + 4, 5, 5, is_controlling() ? FL_YELLOW : fl_inactive( FL_YELLOW ) ); - } - - fl_push_clip( tx + Fl::box_dx(box()), ty + Fl::box_dy(box()), tw - Fl::box_dw(box()), th - Fl::box_dh(box()) ); - - Fl_Group::draw_children(); - - fl_pop_clip(); - - if ( focused_r( this ) ) - draw_focus_frame( tx,ty,tw,th, selection_color() ); - - fl_pop_clip(); -} - -#include "SpectrumView.H" -#include - - -bool -Module::show_analysis_window ( void ) -{ - /* use a large window for more accuracy at low frequencies */ - nframes_t nframes = sample_rate() / 2; - float *buf = new float[nframes]; - - memset( buf, 0, sizeof(float) * nframes ); - - buf[0] = 1; - - if ( ! get_impulse_response( buf, nframes ) ) - { - // return false; - } - - Fl_Double_Window *w = new Fl_Double_Window( 1000, 500 ); - - { - SpectrumView * o = new SpectrumView( 25,25, 1000 - 50, 500 - 50, label() ); - o->labelsize(10); - o->align(FL_ALIGN_RIGHT|FL_ALIGN_TOP); - o->sample_rate( sample_rate() ); - o->data( buf, nframes ); - } - - w->end(); - - w->show(); - - while ( w->shown() ) - Fl::wait(); - - delete w; - - return true; -} - -void -Module::draw_label ( int tx, int ty, int tw, int th ) -{ - bbox( tx, ty, tw, th ); - - if ( ! label() ) - return; - - char *lab = strdup( label() ); - - Fl_Color c = fl_contrast( FL_FOREGROUND_COLOR, color() ); - - fl_color( active_r() && ! bypass() ? c : fl_inactive(c) ); - - fl_font( FL_HELVETICA, labelsize() ); - - char *di = strstr( lab, " -" ); - - if ( ! di ) - di = strstr( lab, " " ); - - if ( di ) - *di = '\0'; - - int LW = fl_width( lab ); - char *s = NULL; - - bool initial = true; - if ( LW > tw ) - { - s = new char[strlen(lab) + 1]; - char *sp = s; - const char *lp = lab; - - for ( ; *lp; ++lp ) - { - bool skip = false; - - switch ( *lp ) - { - case ' ': - initial = true; - skip = false; - break; - case 'i': case 'e': case 'o': case 'u': case 'a': - skip = ! initial; - initial = false; - break; - default: - skip = false; - initial = false; - break; - } - - if ( ! skip ) - *(sp++) = *lp; - } - - *sp = '\0'; - - } - - fl_draw( s ? s : lab, tx, ty, tw, th, align() | FL_ALIGN_CLIP ); - - if ( bypass() ) - { - fl_color( fl_color_add_alpha( fl_color(), 127 ) ); - fl_line_style( FL_SOLID, 2 ); - fl_line( tx, ty + th * 0.5, tx + tw, ty + th * 0.5 ); - fl_line_style( FL_SOLID, 0 ); - } - - - free(lab); - - if ( s ) - delete[] s; -} - -void -Module::insert_menu_cb ( const Fl_Menu_ *m ) -{ - - const char * picked = m->mvalue()->label(); - - DMESSAGE("picked = %s", picked ); - - Module *mod = NULL; - - if ( !strcmp( picked, "Aux" ) ) - { - int n = 0; - for ( int i = 0; i < chain()->modules(); i++ ) - { - if ( !strcmp( chain()->module(i)->name(), "AUX" ) ) - n++; - } - - AUX_Module *jm = new AUX_Module(); - jm->chain( chain() ); - jm->number( n ); - jm->configure_inputs( ninputs() ); - jm->configure_outputs( ninputs() ); - jm->initialize(); - - mod = jm; - } - if ( !strcmp( picked, "Spatializer" ) ) - { - int n = 0; - for ( int i = 0; i < chain()->modules(); i++ ) - { - if ( !strcmp( chain()->module(i)->name(), "Spatializer" ) ) - n++; - } - - if ( n == 0 ) - { - Spatializer_Module *jm = new Spatializer_Module(); - - jm->chain( chain() ); -// jm->number( n ); -// jm->configure_inputs( ninputs() ); -// jm->configure_outputs( ninputs() ); - jm->initialize(); - - mod = jm; - } - } - else if ( !strcmp( picked, "Gain" ) ) - mod = new Gain_Module(); - /* else if ( !strcmp( picked, "Spatializer" ) ) */ - /* mod = new Spatializer_Module(); */ - else if ( !strcmp( picked, "Meter" ) ) - mod = new Meter_Module(); - else if ( !strcmp( picked, "Mono Pan" )) - mod = new Mono_Pan_Module(); - else if ( !strcmp(picked, "Plugin" )) - { - unsigned long id = Plugin_Chooser::plugin_chooser( this->ninputs() ); - - if ( id == 0 ) - return; - - Plugin_Module *m = new Plugin_Module(); - - m->load( id ); - - mod = m; - } - - if ( mod ) - { - if ( ! chain()->insert( this, mod ) ) - { - fl_alert( "Cannot insert this module at this point in the chain" ); - delete mod; - return; - } - - redraw(); - } -} - -void -Module::insert_menu_cb ( Fl_Widget *w, void *v ) -{ - ((Module*)v)->insert_menu_cb( (Fl_Menu_*) w ); -} - -void -Module::menu_cb ( const Fl_Menu_ *m ) -{ - char picked[256]; - - if ( ! m->mvalue() || m->mvalue()->flags & FL_SUBMENU_POINTER || m->mvalue()->flags & FL_SUBMENU ) - return; - - strncpy( picked, m->mvalue()->label(), sizeof( picked ) ); - -// m->item_pathname( picked, sizeof( picked ) ); - - DMESSAGE( "%s", picked ); - - Logger log( this ); - - if ( ! strcmp( picked, "Edit Parameters" ) ) - command_open_parameter_editor(); - else if ( ! strcmp( picked, "Bypass" ) ) - { - if ( ! bypassable() ) - { - fl_alert( "Due to its channel configuration, this module cannot be bypassed." ); - } - else - { - bypass( !bypass() ); - redraw(); - } - } - else if ( ! strcmp( picked, "Cut" ) ) - { - if ( copy() ) - { - chain()->remove( this ); - Fl::delete_widget( this ); - } - } - else if ( ! strcmp( picked, "Copy" ) ) - { - copy(); - } - else if ( ! strcmp( picked, "Paste" ) ) - { - paste_before(); - } - else if ( ! strcmp( picked, "Show Analysis" ) ) - { - show_analysis_window(); - } - else if ( ! strcmp( picked, "Remove" ) ) - command_remove(); -} - -void -Module::menu_cb ( Fl_Widget *w, void *v ) -{ - ((Module*)v)->menu_cb( (Fl_Menu_*) w ); -} - -/** build the context menu */ -Fl_Menu_Button & -Module::menu ( void ) const -{ - static Fl_Menu_Button m( 0, 0, 0, 0, "Module" ); - static Fl_Menu_Button *insert_menu = NULL; - - if ( ! insert_menu ) - { - insert_menu = new Fl_Menu_Button( 0, 0, 0, 0 ); - - insert_menu->add( "Gain", 0, 0 ); - insert_menu->add( "Meter", 0, 0 ); - insert_menu->add( "Mono Pan", 0, 0 ); - insert_menu->add( "Aux", 0, 0 ); - insert_menu->add( "Spatializer", 0, 0 ); - insert_menu->add( "Plugin", 0, 0 ); - - insert_menu->callback( &Module::insert_menu_cb, (void*)this ); - } - - m.clear(); - - m.add( "Insert", 0, &Module::menu_cb, (void*)this, 0); - m.add( "Insert", 0, &Module::menu_cb, const_cast< Fl_Menu_Item *>( insert_menu->menu() ), FL_SUBMENU_POINTER ); - m.add( "Edit Parameters", ' ', &Module::menu_cb, (void*)this, 0 ); - m.add( "Show Analysis", 's', &Module::menu_cb, (void*)this, 0); - m.add( "Bypass", 'b', &Module::menu_cb, (void*)this, FL_MENU_TOGGLE | ( bypass() ? FL_MENU_VALUE : 0 ) ); - m.add( "Cut", FL_CTRL + 'x', &Module::menu_cb, (void*)this, is_default() ? FL_MENU_INACTIVE : 0 ); - m.add( "Copy", FL_CTRL + 'c', &Module::menu_cb, (void*)this, is_default() ? FL_MENU_INACTIVE : 0 ); - m.add( "Paste", FL_CTRL + 'v', &Module::menu_cb, (void*)this, _copied_module_empty ? 0 : FL_MENU_INACTIVE ); - - m.add( "Remove", FL_Delete, &Module::menu_cb, (void*)this ); - -// menu_set_callback( menu, &Module::menu_cb, (void*)this ); - m.callback( &Module::insert_menu_cb, (void*)this ); - - return m; -} - -void -Module::handle_chain_name_changed ( ) -{ - // pass it along to our connected Controller_Modules, if any. - for ( int i = 0; i < ncontrol_inputs(); ++i ) - { - if ( control_input[i].connected() ) - control_input[i].connected_port()->module()->handle_chain_name_changed(); - - control_input[i].update_osc_port(); - } - - if ( ! chain()->strip()->group()->single() ) - { - /* we have to rename our JACK ports... */ - for ( unsigned int i = 0; i < aux_audio_input.size(); i++ ) - { - aux_audio_input[i].jack_port()->trackname( chain()->name() ); - aux_audio_input[i].jack_port()->rename(); - } - for ( unsigned int i = 0; i < aux_audio_output.size(); i++ ) - { - aux_audio_output[i].jack_port()->trackname( chain()->name() ); - aux_audio_output[i].jack_port()->rename(); - } - } -} - -int -Module::handle ( int m ) -{ - static unsigned long _event_state = 0; - - unsigned long evstate = Fl::event_state(); - - switch ( m ) - { - case FL_ENTER: -// Fl::focus(this); - case FL_LEAVE: - return 1; - } - - if ( Fl_Group::handle( m ) ) - return 1; - - switch ( m ) - { - case FL_KEYBOARD: - { - if ( Fl::event_key() == FL_Menu ) - { - menu_popup( &menu(), x(), y() ); - return 1; - } - else - return menu().test_shortcut() != 0; - } - case FL_PUSH: - take_focus(); - _event_state = evstate; - return 1; - // if ( Fl::visible_focus() && handle( FL_FOCUS )) Fl::focus(this); - case FL_DRAG: - _event_state = evstate; - return 1; - case FL_RELEASE: - { - unsigned long e = _event_state; - _event_state = 0; - - if ( ! Fl::event_inside( this ) ) - return 1; - - if ( ( e & FL_BUTTON1 ) && ( e & FL_CTRL ) ) - { - Fl::focus(this); - return 1; - } - else if ( e & FL_BUTTON1 ) - { - command_open_parameter_editor(); - return 1; - } - else if ( e & FL_BUTTON3 && e & FL_CTRL ) - { - command_remove(); - return 1; - } - else if ( e & FL_BUTTON3 ) - { - menu_popup( &menu() ); - return 1; - } - else if ( e & FL_BUTTON2 ) - { - if ( !bypassable() ) - { - fl_alert( "Due to its channel configuration, this module cannot be bypassed." ); - } - else - { - bypass( !bypass() ); - redraw(); - } - return 1; - } - /* else */ - /* { */ - /* take_focus(); */ - /* } */ - - return 0; - } - case FL_FOCUS: - case FL_UNFOCUS: - redraw(); - return 1; - } - - return 0; -} - -/*************/ -/* AUX Ports */ -/*************/ - - -static char * -generate_port_name ( const char *aux, int direction, int n ) -{ - char *s; - asprintf( &s, "%s%s%s-%i", - aux ? aux : "", - aux ? "/" : "", - direction == JACK::Port::Input ? "in" : "out", - n + 1 ); - - return s; -} - -static void -jack_port_activation_error ( JACK::Port *p ) -{ - fl_alert( "Could not activate JACK port \"%s\"", p->name() ); -} - -/* freeze/disconnect all jack ports--used when changing groups */ -void -Module::freeze_ports ( void ) -{ - // pass it along to our connected Controller_Modules, if any. - for ( int i = 0; i < ncontrol_inputs(); ++i ) - { - if ( control_input[i].connected() ) - control_input[i].connected_port()->module()->freeze_ports(); - } - - for ( unsigned int i = 0; i < aux_audio_input.size(); ++i ) - { - aux_audio_input[i].jack_port()->freeze(); - aux_audio_input[i].jack_port()->shutdown(); - } - - for ( unsigned int i = 0; i < aux_audio_output.size(); ++i ) - { - aux_audio_output[i].jack_port()->freeze(); - aux_audio_output[i].jack_port()->shutdown(); - } -} - -/* rename and thaw all jack ports--used when changing groups */ -void -Module::thaw_ports ( void ) -{ - // pass it along to our connected Controller_Modules, if any. - for ( int i = 0; i < ncontrol_inputs(); ++i ) - { - if ( control_input[i].connected() ) - control_input[i].connected_port()->module()->thaw_ports(); - } - - const char *trackname = chain()->strip()->group()->single() ? NULL : chain()->name(); - - for ( unsigned int i = 0; i < aux_audio_input.size(); ++i ) - { - /* if we're entering a group we need to add the chain name - * prefix and if we're leaving one, we need to remove it */ - - aux_audio_input[i].jack_port()->client( chain()->client() ); - aux_audio_input[i].jack_port()->trackname( trackname ); - aux_audio_input[i].jack_port()->thaw(); - } - - for ( unsigned int i = 0; i < aux_audio_output.size(); ++i ) - { - /* if we're entering a group we won't actually be using our - * JACK output ports anymore, just mixing into the group outputs */ - aux_audio_output[i].jack_port()->client( chain()->client() ); - aux_audio_output[i].jack_port()->trackname( trackname ); - aux_audio_output[i].jack_port()->thaw(); - - mixer->maybe_auto_connect_output( &aux_audio_output[i] ); - } -} - -void -Module::auto_connect_outputs ( void ) -{ - for ( unsigned int i = 0; i < aux_audio_output.size(); ++i ) - { - mixer->maybe_auto_connect_output( &aux_audio_output[i] ); - } -} - -void -Module::auto_disconnect_outputs ( void ) -{ - for ( unsigned int i = 0; i < aux_audio_output.size(); ++i ) - { - Module::Port *p = &aux_audio_output[i]; - - if ( p->connected_port() ) - { - p->connected_port()->jack_port()->disconnect( p->jack_port()->jack_name() ); - p->disconnect(); - } - } -} - -void -Module::get_latency ( JACK::Port::direction_e dir, nframes_t *min, nframes_t *max ) const -{ - nframes_t tmin = JACK_MAX_FRAMES >> 1; - nframes_t tmax = 0; - - const std::vector *ports; - - if ( dir == JACK::Port::Input ) - ports = &aux_audio_input; - else - ports = &aux_audio_output; - - if ( ports->size() ) - { - for ( unsigned int i = 0; i < ports->size(); i++ ) - { - /* if ( ! ports->[i].jack_port()->connected() ) */ - /* continue; */ - - nframes_t min,max; - - (*ports)[i].jack_port()->get_latency( dir, &min, &max ); - - if ( min < tmin ) - tmin = min; - if ( max > tmax ) - tmax = max; - } - } - else - { - tmin = 0; - } - - *min = tmin; - *max = tmax; -} - -void -Module::set_latency ( JACK::Port::direction_e dir, nframes_t min, nframes_t max ) -{ - if ( dir == JACK::Port::Output ) - { - for ( unsigned int i = 0; i < aux_audio_input.size(); i++ ) - aux_audio_input[i].jack_port()->set_latency( dir, min, max ); - } - else - { - for ( unsigned int i = 0; i < aux_audio_output.size(); i++ ) - aux_audio_output[i].jack_port()->set_latency( dir, min, max ); - } -} - - -bool -Module::add_aux_port ( bool input, const char *prefix, int i, JACK::Port::type_e type ) -{ - const char *trackname = chain()->strip()->group()->single() ? NULL : chain()->name(); - - JACK::Port::direction_e direction = input ? JACK::Port::Input : JACK::Port::Output; - - char *portname = generate_port_name( prefix, direction, i ); - - JACK::Port *po = new JACK::Port( chain()->client(), trackname, portname, direction, type ); - - free(portname); - - if ( ! po->activate() ) - { - jack_port_activation_error( po ); - return false; - } - - if ( po->valid() ) - { - if ( input ) - { - Module::Port mp( (Module*)this, Module::Port::INPUT, Module::Port::AUX_AUDIO ); - - mp.jack_port( po ); - - aux_audio_input.push_back( mp ); - } - else - { - Module::Port mp( (Module*)this, Module::Port::OUTPUT, Module::Port::AUX_AUDIO ); - - mp.jack_port( po ); - - aux_audio_output.push_back( mp ); - } - } - else - { - delete po; - return false; - } - - return true; -} - -bool -Module::add_aux_audio_output( const char *prefix, int i ) -{ - bool r = add_aux_port ( false, prefix, i , JACK::Port::Audio); - - if ( r ) - mixer->maybe_auto_connect_output( &aux_audio_output.back() ); - - return r; -} - -bool -Module::add_aux_audio_input( const char *prefix, int i ) -{ - return add_aux_port ( true, prefix, i , JACK::Port::Audio); -} - -bool -Module::add_aux_cv_input( const char *prefix, int i ) -{ - return add_aux_port ( true, prefix, i , JACK::Port::CV); -} - - -/************/ -/* Commands */ -/************/ - -void -Module::command_open_parameter_editor ( void ) -{ - if ( _editor ) - { - _editor->show(); - } - else if ( ncontrol_inputs() && nvisible_control_inputs() ) - { - DMESSAGE( "Opening module parameters for \"%s\"", label() ); - _editor = new Module_Parameter_Editor( this ); - - _editor->show(); - } -} - -void -Module::command_activate ( void ) -{ - bypass( false ); -} - -void -Module::command_deactivate ( void ) -{ - bypass( true ); -} - -void -Module::command_remove ( void ) -{ - if ( is_default() ) - fl_alert( "Default modules may not be deleted." ); - else - { - chain()->remove( this ); - Fl::delete_widget( this ); - } -} diff --git a/mixer/src/Module.H b/mixer/src/Module.H deleted file mode 100644 index 8eebc82..0000000 --- a/mixer/src/Module.H +++ /dev/null @@ -1,578 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2009 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include -#include - -#include -#include "debug.h" -#include - -#include "Thread.H" - -#include "Loggable.H" -#include "JACK/Port.H" -#include "OSC/Endpoint.H" -#include -#include - -class Chain; -class Module_Parameter_Editor; -class Fl_Menu_; -class Fl_Menu_Button; -class Fl_Button; -class Mixer_Strip; - -class Module : public Fl_Group, public Loggable { - - int _ins; - int _outs; - int _instances; - nframes_t _nframes; - Chain *_chain; - bool _is_default; - - static nframes_t _sample_rate; - static Module *_copied_module_empty; - static char *_copied_module_settings; - - void init ( void ); - - void insert_menu_cb ( const Fl_Menu_ *m ); - static void insert_menu_cb ( Fl_Widget *w, void *v ); - - void menu_cb ( const Fl_Menu_ *m ); - static void menu_cb ( Fl_Widget *w, void *v ); - Fl_Menu_Button & menu ( void ) const; - - bool copy ( void ) const; - void paste_before ( void ); - -protected: - - Module_Parameter_Editor *_editor; - - volatile bool _bypass; - -public: - - virtual nframes_t get_module_latency ( void ) const { return 0; } - - virtual void get_latency ( JACK::Port::direction_e dir, nframes_t *min, nframes_t *max ) const; - virtual void set_latency ( JACK::Port::direction_e dir, nframes_t min, nframes_t max ); - - /* true if this module was added by default and not under normal user control */ - bool is_default ( void ) const { return _is_default; } - void is_default ( bool v ) { _is_default = v; } - - virtual void update ( void ) {} - - virtual void update_tooltip ( void ); - - class Port - { - - /* support multiple connection for audio ports (many to one, one to many, many to many). - control ports only support one to one and one to many. */ - - - /* char *type_names[] = { "Audio", "Control" }; */ - /* char *direction_names[] = { "Input", "Output" }; */ - - void update_connected_port_buffer ( void ) - { - if ( connected() ) - connected_port()->_buf = _buf; - } - - public: - - enum Direction { INPUT, OUTPUT }; - enum Type { AUDIO, CONTROL, AUX_AUDIO }; - - /* hints for control ports (specifically control inputs) */ - struct Hints - { - enum Type { LINEAR, LOGARITHMIC, BOOLEAN, INTEGER }; - - Type type; - bool ranged; - float minimum; - float maximum; - float default_value; - int dimensions; - bool visible; - - Hints ( ) - { - type = LINEAR; - ranged = false; - minimum = 0; - maximum = 1; /* FIXME: totally bogus, but some - * plugins (SWH delays) don't - * provide an upper bound. */ - default_value = 0.0f; - dimensions = 1; - visible = true; - } - }; - - static int osc_control_change_exact ( float v, void *user_data ); - static int osc_control_change_cv ( float v, void *user_data ); - - Hints hints; - - Port ( Module *module, Direction direction, Type type, const char *name = 0 ) - { - _name = name; - _direction = direction; - _type = type; - _buf = 0; - _nframes = 0; - _module = module; - _scaled_signal = 0; - _unscaled_signal = 0; - _by_number_path = 0; - _by_number_number = -1; - _jack_port = 0; - } - - Port ( const Port& p ) - { - _name = p._name; - _direction = p._direction; - _type = p._type; - _buf = p._buf; - _nframes = p._nframes; - _module = p._module; - hints = p.hints; - _scaled_signal = p._scaled_signal; - _unscaled_signal = p._unscaled_signal; - _by_number_path = 0; - _by_number_number = -1; - _jack_port = p._jack_port; - } - - virtual ~Port ( ) - { - if ( _by_number_path ) - free( _by_number_path ); - _by_number_path = NULL; - } - - const char *name ( void ) const { return _name; } - Type type ( void ) const { return _type; } - Direction direction ( void ) const { return _direction; } - - Module * module ( void ) const { return _module; } - nframes_t nframes ( void ) const { return _nframes; } - - void buffer ( void *buf, nframes_t nframes ) { _buf = buf; _nframes = nframes; }; - void *buffer ( void ) const { return _buf; } - - OSC::Signal *scaled_signal ( void ) { return _scaled_signal; } - - int _by_number_number; - char *_by_number_path; - - const char *osc_path ( ) - { - if ( _scaled_signal ) - return _scaled_signal->path(); - else - return NULL; - } - - const char *osc_number_path ( void ); - - void update_osc_port ( ) - { -// if ( INPUT == _direction ) - change_osc_path( generate_osc_path() ); - } - - void destroy_osc_port ( ) - { - delete _unscaled_signal; - delete _scaled_signal; - - _unscaled_signal = _scaled_signal = NULL; - } - - void control_value_no_callback ( float f ) - { - /* can also be called from the OSC thread */ - ASSERT( Thread::is( "UI" ) || Thread::is( "OSC" ), - "Function called from wrong thread! (is %s)", Thread::current()->name() ); - - if ( buffer() ) - { - *((float*)buffer()) = f; - } - } - - void control_value ( float f ) - { - control_value_no_callback( f ); - _module->handle_control_changed( this ); - if ( connected() ) - connected_port()->_module->handle_control_changed( connected_port() ); - } - - float control_value ( void ) const - { - if ( buffer() ) - return *((float*)buffer()); - else - return 0.0f; - } - - bool connected ( void ) const { - if ( _type == Port::AUDIO ) - /* internal audio ports are considered connected by the buffer setting */ - return _buf != 0; - else - /* control and external audio ports belong to a graph */ - return _connected.size() > 0; - } - bool connected_osc ( void ) const; - - Port *connected_port ( void ) const - { - ASSERT( _type == Port::CONTROL, "Operation only available for control ports" ); - return _connected.size() == 0 ? NULL : _connected.front(); - } - - void connect_to ( Port *to ) - { - if ( _type != Port::AUX_AUDIO ) - { - _buf = to->_buf; - } - - if ( jack_port() && to->jack_port() ) - jack_port()->connect( to->jack_port()->jack_name() ); - - if ( std::find(_connected.begin(),_connected.end(),to) == _connected.end() ) - { - _connected.push_back(to); - to->_connected.push_back(this); - } - } - - - /* disconnect this port from any ports of modules belonging to strip /o/ */ - void disconnect_from_strip ( Mixer_Strip *o ); - - void connect_to ( void *buf ) - { - ASSERT( _type == Port::CONTROL, "Operation only available for control ports" ); - _buf = buf; - update_connected_port_buffer(); - } - - void set_buffer ( void *buf ) - { - ASSERT( _type != Port::CONTROL, "Operation only available for audio ports" ); - _buf = buf; - } - - void send_feedback ( void ); - - bool connected_to ( Port *p ) - { - return std::find( _connected.begin(), _connected.end(), p ) != _connected.end(); - } - - /* disconnect from specified port */ - void disconnect ( Port *p ) - { - if ( ! connected_to(p) ) - return; - - if ( _type == Port::CONTROL && p->_module ) - p->_module->handle_control_disconnect( this ); - - if ( jack_port() && p->jack_port() ) - jack_port()->disconnect( p->jack_port()->jack_name() ); - - _connected.remove(p); - p->_connected.remove(this); - } - - /* disconnect from *all* connected ports */ - void disconnect ( void ) - { - if ( _connected.size() ) - { - for ( std::list::iterator i = _connected.begin(); i != _connected.end(); i++ ) - { - Port *p = *i; - - /* iterator about to be invalidated... */ - i = _connected.erase(i); - - disconnect(p); - } - } - } - - void jack_port ( JACK::Port *v ) { _jack_port = v; } - JACK::Port *jack_port ( void ) const { return _jack_port; } - - private: - - char *generate_osc_path ( void ); - void change_osc_path ( char *path ); - - std::list _connected; - Type _type; - Direction _direction; - const char *_name; - void *_buf; - nframes_t _nframes; - Module *_module; - /* used for auxilliary I/Os */ - JACK::Port *_jack_port; - - OSC::Signal *_scaled_signal; - OSC::Signal *_unscaled_signal; - - static void handle_signal_connection_state_changed ( OSC::Signal *, void *o ); - }; - - void bbox ( int &X, int &Y, int &W, int &H ) - { - X += + 5; - Y += 5; - W -= 10; - H -= 10; - } - - Module ( int W, int H, const char *L = 0 ); - Module ( ); - Module ( bool is_default, int W, int H, const char *L = 0 ); - - virtual ~Module ( ); - - LOG_NAME_FUNC( Module ); - - nframes_t nframes ( void ) const { return _nframes; } - virtual void resize_buffers ( nframes_t v ) { _nframes = v; } - - - int instances ( void ) const { return _instances; } - void instances ( int i ) { _instances = i; } - - bool is_being_controlled ( void ) const - { - for ( nframes_t i = control_input.size(); i--; ) - if ( control_input[i].connected() ) - return true; - return false; - } - - bool is_controlling ( void ) const - { - for ( nframes_t i = control_output.size(); i--; ) - if ( control_output[i].connected() ) - return true; - return false; - } - - /* bool */ - /* is_being_controlled_osc ( void ) const */ - /* { */ - /* for ( nframes_t i = control_input.size(); i--; ) */ - /* if ( control_input[i].connected_osc() ) */ - /* return true; */ - /* return false; */ - /* } */ - - virtual const char *name ( void ) const = 0; - virtual const char *basename ( void ) const { return "Module"; } - - std::vector audio_input; - std::vector audio_output; - std::vector control_input; - std::vector control_output; - std::vector aux_audio_input; - std::vector aux_audio_output; - - void add_port ( const Port &p ) - { - if ( p.type() == Port::AUDIO && p.direction() == Port::INPUT ) - audio_input.push_back( p ); - else if ( p.type() == Port::AUDIO && p.direction() == Port::OUTPUT ) - audio_output.push_back( p ); - else if ( p.type() == Port::CONTROL && p.direction() == Port::INPUT ) - control_input.push_back( p ); - else if ( p.type() == Port::CONTROL && p.direction() == Port::OUTPUT ) - control_output.push_back( p ); - } - - int noutputs ( void ) const - { - return audio_output.size(); - } - - int ninputs ( void ) const - { - return audio_input.size(); - } - - int ncontrol_inputs ( void ) const - { - return control_input.size(); - } - - int ncontrol_outputs ( void ) const - { - return control_output.size(); - } - - int nvisible_control_inputs ( void ) const - { - int n = 0; - for ( std::vector::const_iterator i = control_input.begin(); - i != control_input.end(); - i++ ) - if ( i->hints.visible ) - n++; - - return n; - } - - virtual bool bypass ( void ) const { return _bypass; } - virtual void bypass ( bool v ) { _bypass = v; } - - virtual bool bypassable ( void ) const - { - return ninputs() == noutputs() || - ( ninputs() == 1 && noutputs() == 2 ); - } - - int control_input_port_index ( Port *p ) - { - for ( nframes_t i = control_input.size(); i--; ) - if ( &control_input[i] == p ) - return i; - - return -1; - } - - int control_output_port_index ( Port *p ) - { - for ( nframes_t i = control_output.size(); i--; ) - if ( &control_output[i] == p ) - return i; - - return -1; - } - - Chain *chain ( void ) const { return _chain; } - void chain ( Chain * v ); - - char *get_parameters ( void ) const; - void set_parameters ( const char * ); - - bool show_analysis_window ( void ); - - void send_feedback ( void ); - virtual bool initialize ( void ) { return true; } - - /* for the given number of inputs, return how many outputs this - * plugin would have. -1 if this plugin can't support so many - * inputs. */ - virtual int can_support_inputs ( int n ) = 0; - /* called by the chain whenever we need to adjust our input - * channel configuration, but only if can_support_inputs() returns - * true */ - virtual bool configure_inputs ( int n ) = 0; - - virtual void process ( nframes_t ) = 0; - - /* called whenever the module is initialized or when the sample rate is changed at runtime */ - virtual void handle_sample_rate_change ( nframes_t sample_rate ) {} - - /* called whenever the value of a control port is changed. - This can be used to take appropriate action from the GUI thread */ - virtual void handle_control_changed ( Port * ); - virtual void handle_control_disconnect ( Port * ) {} - /* called whenever the name of the chain changes (usually because - * the name of the mixer strip changed). */ - virtual void handle_chain_name_changed (); - - virtual void handle_port_connection_change () {} - - /* module should create a new context, run against this impulse, - * and return true if there's anything worth reporting */ - virtual bool get_impulse_response ( sample_t *buf, nframes_t nframes ) - { - return false; - } - -#define MODULE_CLONE_FUNC(class) \ - virtual Module *clone_empty ( void ) const \ - { \ - return new class (); \ - } - - virtual Module *clone_empty ( void ) const { return NULL; } - Module *clone ( Chain *dest ) const; - Module *clone ( void ) const; - -protected: - - void draw_connections ( void ); - void draw_label ( int X, int Y, int W, int H ); - void draw_box ( int X, int Y, int W, int H ); - - virtual void draw ( void ) { Module::draw_box(x(),y(),w(),h()); Module::draw_label(x(),y(),w(),h()); } - virtual int handle ( int m ); - - virtual void get ( Log_Entry &e ) const; - virtual void set ( Log_Entry &e ); - - bool add_aux_port ( bool input, const char *prefix, int n , JACK::Port::type_e type ); - -public: - nframes_t sample_rate ( void ) const { return Module::_sample_rate; } - - - void auto_connect_outputs(); - void auto_disconnect_outputs(); - - void freeze_ports ( void ); - void thaw_ports ( void ); - - bool add_aux_audio_output ( const char *prefix, int n ); - bool add_aux_audio_input ( const char *prefix, int n ); - bool add_aux_cv_input ( const char *prefix, int n ); - - static void set_sample_rate ( nframes_t srate ) { _sample_rate = srate; } - - void command_open_parameter_editor(); - virtual void command_activate ( void ); - virtual void command_deactivate ( void ); - virtual void command_remove ( void ); - -}; diff --git a/mixer/src/Module_Parameter_Editor.C b/mixer/src/Module_Parameter_Editor.C deleted file mode 100644 index fbd3e72..0000000 --- a/mixer/src/Module_Parameter_Editor.C +++ /dev/null @@ -1,671 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2009 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include "FL/Fl_Flowpack.H" -#include "FL/Fl_Labelpad_Group.H" -#include "FL/Fl_Value_SliderX.H" -#include "FL/Fl_DialX.H" -#include -#include "Module.H" -#include "Module_Parameter_Editor.H" -#include "Controller_Module.H" -#include "Chain.H" -#include "Panner.H" -#include -#include "debug.h" -#include - -#include "FL/test_press.H" -#include "FL/menu_popup.H" - - -#include "SpectrumView.H" -#include "string.h" - -bool -Module_Parameter_Editor::is_probably_eq ( void ) -{ - const char *name = _module->label(); - - return strcasestr( name, "eq" ) || - strcasestr( name, "filter" ) || - strcasestr( name, "parametric" ) || - strcasestr( name, "band" ); -} - -Module_Parameter_Editor::Module_Parameter_Editor ( Module *module ) : Fl_Double_Window( 900,240) -{ - _module = module; - _resized = false; - _min_width = 100; - - char lab[256]; - if ( strcmp( module->name(), module->label() ) ) - { - snprintf( lab, sizeof( lab ), "%s : %s", module->name(), module->label() ); - } - else - strcpy( lab, module->label() ); - - char title[512]; - snprintf( title, sizeof( title ), "%s - %s - %s", "Mixer", module->chain()->name(), lab ); - - copy_label( title ); - -// fl_font( FL_HELVETICA, 14 ); - - _min_width = 30 + fl_width( module->label() ); - - { Fl_Group *o = new Fl_Group( 0, 0, w(), 25 ); - o->label( module->label() ); - o->labelfont( 2 ); - o->labeltype( FL_SHADOW_LABEL ); - o->labelsize( 14 ); - o->align( FL_ALIGN_TOP | FL_ALIGN_RIGHT | FL_ALIGN_INSIDE ); - - { Fl_Menu_Button *o = mode_choice = new Fl_Menu_Button( 0, 0, 25, 25 ); - o->add( "Knobs" ); - o->add( "Horizontal Sliders" ); - o->add( "Vertical Sliders" ); - o->label( NULL ); - o->value( 1 ); - o->when( FL_WHEN_CHANGED ); - o->callback( cb_mode_handle, this ); - } - o->resizable(0); - o->end(); - } - - { Fl_Scroll *o = control_scroll = new Fl_Scroll( 0, 40, w(), h() - 40 ); - { Fl_Group *o = new Fl_Group( 0, 40, w(), h() - 40 ); - { Fl_Flowpack *o = control_pack = new Fl_Flowpack( 50, 40, w() - 100, h() - 40 ); - o->type( FL_HORIZONTAL ); - o->flow( true ); - o->vspacing( 5 ); - o->hspacing( 5 ); - - o->end(); - } - o->resizable( 0 ); - o->end(); - } - o->end(); - } - resizable(control_scroll); - - end(); - - make_controls(); -} - -Module_Parameter_Editor::~Module_Parameter_Editor ( ) -{ -} - - - -void -Module_Parameter_Editor::update_spectrum ( void ) -{ - nframes_t sample_rate = _module->sample_rate(); - - SpectrumView *o = spectrum_view; - - o->sample_rate( sample_rate ); - - nframes_t nframes = sample_rate / 10; - - float *buf = new float[nframes]; - - memset( buf, 0, sizeof(float) * nframes ); - - buf[0] = 1; - - bool show = false; - - if ( ! _module->get_impulse_response( buf, nframes ) ) - show = is_probably_eq(); - else - show = true; - - o->data( buf, nframes ); - - if ( show && ! o->parent()->visible() ) - { - o->parent()->show(); - update_control_visibility(); - } - - o->redraw(); -} - -void -Module_Parameter_Editor::make_controls ( void ) -{ - Module *module = _module; - - control_pack->clear(); - - { SpectrumView *o = spectrum_view = new SpectrumView( 25, 40, 300, 240, "Spectrum" ); - o->labelsize(9); - o->align(FL_ALIGN_TOP); - - - Fl_Labelpad_Group *flg = new Fl_Labelpad_Group( (Fl_Widget*)o ); - - flg->hide(); - - control_pack->add( flg ); - } - - - controls_by_port.clear(); - - /* these are for detecting related parameter groups which can be - better represented by a single control */ - azimuth_port_number = -1; - float azimuth_value = 0.0f; - elevation_port_number = -1; - float elevation_value = 0.0f; - radius_port_number = -1; - float radius_value = 0.0f; - - Fl_Color fc = fl_color_add_alpha( FL_CYAN, 200 ); - Fl_Color bc = FL_BACKGROUND2_COLOR; - - controls_by_port.resize( module->control_input.size() ); - - if ( mode_choice->value() == 1 ) - { - control_pack->vspacing( 1 ); - control_pack->hspacing( 10 ); - control_pack->flow(true); - control_pack->flowdown(true); - control_pack->type( FL_HORIZONTAL ); - control_pack->size( 900, 240 ); - } - else if ( mode_choice->value() == 2 ) - { - control_pack->vspacing( 10 ); - control_pack->hspacing( 10 ); - control_pack->flow(true); - control_pack->flowdown(false); - control_pack->type( FL_HORIZONTAL ); - control_pack->size( 900, 250 ); - } - else if ( mode_choice->value() == 0 ) - { - control_pack->vspacing( 10 ); - control_pack->hspacing( 10 ); - control_pack->flow(true); - control_pack->flowdown(true); - control_pack->type( FL_HORIZONTAL ); - control_pack->size( 700, 50 ); - - } - - for ( unsigned int i = 0; i < module->control_input.size(); ++i ) - { - Fl_Widget *w; - - Module::Port *p = &module->control_input[i]; - - /* if ( !p->hints.visible ) */ - /* continue; */ - - if ( !strcasecmp( "Azimuth", p->name() ) && - 180.0f == p->hints.maximum && - -180.0f == p->hints.minimum ) - { - azimuth_port_number = i; - azimuth_value = p->control_value(); - continue; - } - else if ( !strcasecmp( "Elevation", p->name() ) && - 90.0f == p->hints.maximum && - -90.0f == p->hints.minimum ) - { - elevation_port_number = i; - elevation_value = p->control_value(); - continue; - } - else if ( !strcasecmp( "Radius", p->name() ) ) - { - radius_port_number = i; - radius_value = p->control_value(); - continue; - } - - if ( p->hints.type == Module::Port::Hints::BOOLEAN ) - { - Fl_Button *o = new Fl_Button( 0, 0, 24, 24, p->name() ); - w = o; - o->selection_color( fc ); - o->type( FL_TOGGLE_BUTTON ); - o->value( p->control_value() ); - o->align(FL_ALIGN_TOP); - } - else if ( p->hints.type == Module::Port::Hints::INTEGER ) - { - - Fl_Counter *o = new Fl_Counter(0, 0, 58, 24, p->name() ); - w = o; - - o->type(1); - o->step(1); - o->align(FL_ALIGN_TOP); - - if ( p->hints.ranged ) - { - o->minimum( p->hints.minimum ); - o->maximum( p->hints.maximum ); - } - - o->value( p->control_value() ); - - } - else - { - if ( mode_choice->value() == 0 ) - { - Fl_DialX *o = new Fl_DialX( 0, 0, 60, 60, p->name() ); - w = o; - - if ( p->hints.ranged ) - { - DMESSAGE( "Min: %f, max: %f", p->hints.minimum, p->hints.maximum ); - - o->minimum( p->hints.minimum ); - o->maximum( p->hints.maximum ); - } - o->color( bc ); - o->selection_color( fc ); - o->value( p->control_value() ); - o->align(FL_ALIGN_TOP); - o->box( FL_DOWN_BOX ); - - /* a couple of plugins have ridiculously small units */ - float r = fabs( p->hints.maximum - p->hints.minimum ); - - if ( r <= 0.01f ) - o->precision( 4 ); - else if ( r <= 0.1f ) - o->precision( 3 ); - else if ( r <= 100.0f ) - o->precision( 2 ); - else if ( r <= 5000.0f ) - o->precision( 1 ); - /* else if ( r <= 10000.0f ) */ - /* o->precision( 1 ); */ - else - o->precision( 0 ); - - } - else - { - Fl_Value_SliderX *o = new Fl_Value_SliderX( 0, 0, 120, 24, p->name() ); - w = o; - - if ( mode_choice->value() == 1 ) - { - o->type( FL_HORIZONTAL ); - - o->align( FL_ALIGN_RIGHT ); - o->size( 200, 24 ); - if ( p->hints.ranged ) - { - o->minimum( p->hints.minimum ); - o->maximum( p->hints.maximum ); - } - } - else - { - o->type( FL_VERTICAL ); - o->align(FL_ALIGN_TOP); - - o->size( 24, 200 ); - /* have to reverse the meaning of these to get the - * orientation of the slider right */ - o->maximum( p->hints.minimum ); - o->minimum( p->hints.maximum ); - } - if ( p->hints.type & Module::Port::Hints::LOGARITHMIC ) - o->log(true); - - o->precision( 2 ); - /* a couple of plugins have ridiculously small units */ - float r = fabs( p->hints.maximum - p->hints.minimum ); - - if ( r <= 0.01f ) - o->precision( 4 ); - else if ( r <= 0.1f ) - o->precision( 3 ); - else if ( r <= 100.0f ) - o->precision( 2 ); - else if ( r <= 5000.0f ) - o->precision( 1 ); - /* else if ( r <= 10000.0f ) */ - /* o->precision( 1 ); */ - else - o->precision( 0 ); - - o->textsize( 8 ); -// o->box( FL_NO_BOX ); - o->slider( FL_UP_BOX ); - o->color( bc ); - o->selection_color( fc ); - o->value( p->control_value() ); - } - - } -// w->align(FL_ALIGN_TOP); - w->labelsize( 10 ); - - controls_by_port[i] = w; - - w->copy_tooltip( p->osc_path() ); - - _callback_data.push_back( callback_data( this, i ) ); - - if ( p->hints.type == Module::Port::Hints::BOOLEAN ) - w->callback( cb_button_handle, &_callback_data.back() ); - else - w->callback( cb_value_handle, &_callback_data.back() ); - - { - Fl_Labelpad_Group *flg = new Fl_Labelpad_Group( w ); - - flg->set_visible_focus(); - - control_pack->add( flg ); - } - - } - - if ( azimuth_port_number >= 0 && elevation_port_number >= 0 ) - { - Panner *o = new Panner( 0,0, 502,502 ); - o->box(FL_FLAT_BOX); - o->color(FL_GRAY0); - o->selection_color(FL_BACKGROUND_COLOR); - o->labeltype(FL_NORMAL_LABEL); - o->labelfont(0); - o->labelcolor(FL_FOREGROUND_COLOR); - o->align(FL_ALIGN_TOP); - o->when(FL_WHEN_CHANGED); - o->label( "Spatialization" ); - o->labelsize( 10 ); - - _callback_data.push_back( callback_data( this, azimuth_port_number, elevation_port_number, radius_port_number ) ); - o->callback( cb_panner_value_handle, &_callback_data.back() ); - - o->point( 0 )->azimuth( azimuth_value ); - o->point( 0 )->elevation( elevation_value ); - if ( radius_port_number >= 0 ) - { - o->point( 0 )->radius_enabled = true; - o->point( 0 )->radius( radius_value ); - } - - Fl_Labelpad_Group *flg = new Fl_Labelpad_Group( o ); - - flg->resizable(o); - control_pack->add( flg ); - - controls_by_port[azimuth_port_number] = o; - controls_by_port[elevation_port_number] = o; - if ( radius_port_number >= 0 ) - controls_by_port[radius_port_number] = o; - } - - update_spectrum(); - - update_control_visibility(); -} - -void -Module_Parameter_Editor::update_control_visibility ( void ) -{ - for ( unsigned int i = 0; i < _module->control_input.size(); ++i ) - { - const Module::Port *p = &_module->control_input[i]; - - if ( p->hints.visible ) - controls_by_port[i]->parent()->show(); - else - controls_by_port[i]->parent()->hide(); - } - - control_pack->dolayout(); - - int width = control_pack->w() + 100; - int height = control_pack->h() + 60; - - if ( width < _min_width ) - width = _min_width; - - control_pack->parent()->size( control_pack->w() + 100, control_pack->h() ); - - control_scroll->scroll_to(0, 0 ); - - size( width, height ); - size_range( width, height, width, height ); - -} - -void -Module_Parameter_Editor::cb_value_handle ( Fl_Widget *w, void *v ) -{ - callback_data *cd = (callback_data*)v; - - cd->base_widget->set_value( cd->port_number[0], ((Fl_Valuator*)w)->value() ); -} - -void -Module_Parameter_Editor::cb_button_handle ( Fl_Widget *w, void *v ) -{ - callback_data *cd = (callback_data*)v; - - cd->base_widget->set_value( cd->port_number[0], ((Fl_Button*)w)->value() ); -} - - -void -Module_Parameter_Editor::cb_panner_value_handle ( Fl_Widget *w, void *v ) -{ - callback_data *cd = (callback_data*)v; - - cd->base_widget->set_value( cd->port_number[0], ((Panner*)w)->point( 0 )->azimuth() ); - cd->base_widget->set_value( cd->port_number[1], ((Panner*)w)->point( 0 )->elevation() ); - cd->base_widget->set_value( cd->port_number[2], ((Panner*)w)->point( 0 )->radius() ); - -} - -void -Module_Parameter_Editor::cb_mode_handle ( Fl_Widget *, void *v ) -{ - ((Module_Parameter_Editor*)v)->make_controls(); -} - -void -Module_Parameter_Editor::bind_control ( int i ) -{ - Module::Port *p = &_module->control_input[i]; - - if ( p->connected() ) - /* can only bind once */ - return; - - Controller_Module *o = new Controller_Module(); - o->label( p->name() ); - o->chain( _module->chain() ); - o->horizontal( true ); - o->connect_to( p ); - - _module->chain()->add_control( o ); - _module->redraw(); -} - -/* Display changes initiated via automation or from other parts of the GUI */ -void -Module_Parameter_Editor::handle_control_changed ( Module::Port *p ) -{ - int i = _module->control_input_port_index( p ); - - Fl_Widget *w = controls_by_port[i]; - - if ( i == azimuth_port_number || - i == elevation_port_number || - i == radius_port_number ) - { - Panner *_panner = (Panner*)w; - - if ( i == azimuth_port_number ) - _panner->point(0)->azimuth( p->control_value() ); - else if ( i == elevation_port_number ) - _panner->point(0)->elevation( p->control_value() ); - else if ( i == radius_port_number ) - _panner->point(0)->radius( p->control_value() ); - - _panner->redraw(); - - return; - } - - - if ( p->hints.type == Module::Port::Hints::BOOLEAN ) - { - Fl_Button *v = (Fl_Button*)w; - - v->value( p->control_value() ); - } - else - { - Fl_Valuator *v = (Fl_Valuator*)w; - - v->value( p->control_value() ); - } - - update_spectrum(); -} - - -void -Module_Parameter_Editor::reload ( void ) -{ -// make_controls(); - update_control_visibility(); - redraw(); -} - -void -Module_Parameter_Editor::set_value (int i, float value ) -{ - if ( i >= 0 ) - { - _module->control_input[i].control_value( value ); - if ( _module->control_input[i].connected() ) - _module->control_input[i].connected_port()->module()->handle_control_changed( _module->control_input[i].connected_port() ); - } - - update_spectrum(); -// _module->handle_control_changed( &_module->control_input[i] ); -} - -void -Module_Parameter_Editor::menu_cb ( Fl_Widget *w, void *v ) -{ - ((Module_Parameter_Editor*)v)->menu_cb((Fl_Menu_*)w); -} - -void -Module_Parameter_Editor::menu_cb ( Fl_Menu_* m ) -{ - char picked[256]; - - if ( ! m->mvalue() || m->mvalue()->flags & FL_SUBMENU_POINTER || m->mvalue()->flags & FL_SUBMENU ) - return; - - strncpy( picked, m->mvalue()->label(), sizeof( picked ) ); - -// m->item_pathname( picked, sizeof( picked ) ); - - DMESSAGE( "%s", picked ); - - if ( ! strcmp( picked, "Bind" ) ) - { - bind_control( _selected_control ); - } -} - -Fl_Menu_Button & -Module_Parameter_Editor::menu ( void ) const -{ - static Fl_Menu_Button m( 0, 0, 0, 0, "Control" ); - - m.clear(); - - m.add( "Bind", 0, 0, 0, FL_MENU_RADIO | (_module->control_input[_selected_control].connected() ? FL_MENU_VALUE : 0 )); -// m.add( "Unbind", 0, &Module::menu_cb, this, 0, FL_MENU_RADIO ); - - m.callback( menu_cb, (void*)this ); - - return m; -} - -int -Module_Parameter_Editor::handle ( int m ) -{ - switch ( m ) - { - case FL_PUSH: - if ( test_press( FL_BUTTON3 ) ) - { - for ( unsigned int i = 0; i < controls_by_port.size(); i++ ) - { - if ( Fl::event_inside( controls_by_port[i] ) ) - { - _selected_control = i; - - Fl_Menu_Button &m = menu(); - - menu_popup(&m,Fl::event_x(), Fl::event_y()); - - return 1; - } - } - return 0; - } - - } - - return Fl_Group::handle(m); -} diff --git a/mixer/src/Module_Parameter_Editor.H b/mixer/src/Module_Parameter_Editor.H deleted file mode 100644 index ab3f2fb..0000000 --- a/mixer/src/Module_Parameter_Editor.H +++ /dev/null @@ -1,112 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2009 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include - -class Fl_Pack; -class Fl_Flowpack; -class Module; -class Fl_Menu_Button; -class Panner; -class Fl_Scroll; -class SpectrumView; - -#include -#include - -class Module_Parameter_Editor : public Fl_Double_Window -{ - Module *_module; - - struct callback_data - { - Module_Parameter_Editor *base_widget; - - int port_number[3]; - - callback_data ( Module_Parameter_Editor *base_widget, int port_number ) - { - this->base_widget = base_widget; - this->port_number[0] = port_number; - this->port_number[1] = -1; - this->port_number[2] = -1; - } - - callback_data ( Module_Parameter_Editor *base_widget, int port_number1, int port_number2 ) - { - this->base_widget = base_widget; - this->port_number[0] = port_number1; - this->port_number[1] = port_number2; - this->port_number[2] = -1; - } - - callback_data ( Module_Parameter_Editor *base_widget, int port_number1, int port_number2, int port_number3 ) - { - this->base_widget = base_widget; - this->port_number[0] = port_number1; - this->port_number[1] = port_number2; - this->port_number[2] = port_number3; - } - - }; - - void update_control_visibility ( void ); - static void cb_button_handle ( Fl_Widget *w, void *v ); - static void cb_value_handle ( Fl_Widget *w, void *v ); - static void cb_panner_value_handle ( Fl_Widget *w, void *v ); - static void cb_mode_handle ( Fl_Widget *w, void *v ); - static void cb_bound_handle ( Fl_Widget *w, void *v ); - void set_value (int i, float value ); - void bind_control ( int i ); - void make_controls ( void ); - void update_spectrum ( void ); - - bool is_probably_eq ( void ); - - static void menu_cb ( Fl_Widget *w, void *v ); - void menu_cb ( Fl_Menu_ *m ); - - SpectrumView *spectrum_view; - Fl_Scroll *control_scroll; - Fl_Flowpack *control_pack; - Fl_Menu_Button *mode_choice; - bool _resized; - int _min_width; - int _selected_control; - - int azimuth_port_number; - int elevation_port_number; - int radius_port_number; - - std::list _callback_data; - std::vector controls_by_port; - - Fl_Menu_Button &menu ( void ) const; - -public: - - void reload ( void ); - void handle_control_changed ( Module::Port *p ); - - int handle ( int m ); - Module_Parameter_Editor ( Module *module ); - virtual ~Module_Parameter_Editor ( ); -}; diff --git a/mixer/src/Mono_Pan_Module.C b/mixer/src/Mono_Pan_Module.C deleted file mode 100644 index 9eac660..0000000 --- a/mixer/src/Mono_Pan_Module.C +++ /dev/null @@ -1,121 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2009 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "const.h" - -#include -#include - -#include "Mono_Pan_Module.H" - - - -Mono_Pan_Module::Mono_Pan_Module ( ) - : Module ( 50, 24, name() ) -{ - Port p( this, Port::INPUT, Port::CONTROL, "Pan" ); - p.hints.ranged = true; - p.hints.minimum = -1.0f; - p.hints.maximum = 1.0f; - p.hints.default_value = 0.0f; - - p.connect_to( new float ); - p.control_value( p.hints.default_value ); - - add_port( p ); - - add_port( Port( this, Port::INPUT, Port::AUDIO ) ); - add_port( Port( this, Port::OUTPUT, Port::AUDIO ) ); - add_port( Port( this, Port::OUTPUT, Port::AUDIO ) ); - - end(); - - log_create(); - - smoothing.sample_rate( sample_rate() ); -} - -Mono_Pan_Module::~Mono_Pan_Module ( ) -{ - delete (float*)control_input[0].buffer(); - log_destroy(); -} - - - -void -Mono_Pan_Module::handle_sample_rate_change ( nframes_t n ) -{ - smoothing.sample_rate( n ); -} - -bool -Mono_Pan_Module::configure_inputs ( int ) -{ - return true; -} - - - -/**********/ -/* Engine */ -/**********/ - -void -Mono_Pan_Module::process ( nframes_t nframes ) -{ - if ( unlikely( bypass() ) ) - { - buffer_copy( (sample_t*)audio_output[1].buffer(), (sample_t*)audio_input[0].buffer(), nframes ); - } - else - { - const float gt = (control_input[0].control_value() + 1.0f) * 0.5f; - - sample_t gainbuf[nframes]; - bool use_gainbuf = smoothing.apply( gainbuf, nframes, gt ); - - if ( unlikely( use_gainbuf ) ) - { - /* right channel */ - - buffer_copy_and_apply_gain_buffer( (sample_t*)audio_output[1].buffer(), - (sample_t*)audio_input[0].buffer(), - gainbuf, - nframes ); - - /* left channel */ - for ( nframes_t i = 0; i < nframes; i++ ) - gainbuf[i] = 1.0f - gainbuf[i]; - - buffer_apply_gain_buffer( (sample_t*)audio_output[0].buffer(), gainbuf, nframes ); - } - else - { - /* right channel */ - buffer_copy_and_apply_gain( (sample_t*)audio_output[1].buffer(), - (sample_t*)audio_input[0].buffer(), - nframes, - gt ); - - /* left channel */ - buffer_apply_gain( (sample_t*)audio_output[0].buffer(), nframes, 1.0f - gt); - } - } -} diff --git a/mixer/src/Mono_Pan_Module.H b/mixer/src/Mono_Pan_Module.H deleted file mode 100644 index 7ede987..0000000 --- a/mixer/src/Mono_Pan_Module.H +++ /dev/null @@ -1,49 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2009 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include "Module.H" -#include "dsp.h" - -class Mono_Pan_Module : public Module -{ - Value_Smoothing_Filter smoothing; - -public: - - Mono_Pan_Module ( ); - virtual ~Mono_Pan_Module ( ); - - const char *name ( void ) const { return "Mono Pan"; } - - int can_support_inputs ( int n ) { return ( n == 1 ) ? 2 : -1; } - bool configure_inputs ( int n ); - - LOG_CREATE_FUNC( Mono_Pan_Module ); - - MODULE_CLONE_FUNC( Mono_Pan_Module ); - - virtual void handle_sample_rate_change ( nframes_t n ); - -protected: - - virtual void process ( nframes_t nframes ); - -}; diff --git a/mixer/src/NSM.C b/mixer/src/NSM.C deleted file mode 100644 index b1083f6..0000000 --- a/mixer/src/NSM.C +++ /dev/null @@ -1,121 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2012 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "const.h" -#include "debug.h" -#include "Mixer.H" -#include "NSM.H" -#include "Project.H" - -#include "OSC/Endpoint.H" - -extern char *instance_name; -extern Mixer *mixer; - -extern NSM_Client *nsm; - -NSM_Client::NSM_Client ( ) -{ -} - -int command_open ( const char *name, const char *display_name, const char *client_id, char **out_msg ); -int command_save ( char **out_msg ); - -int -NSM_Client::command_broadcast ( const char *path, lo_message msg ) -{ -// int argc = lo_message_get_argc( msg ); -// lo_arg **argv = lo_message_get_argv( msg ); - - if ( !strcmp( path, "/non/hello" ) ) - { - mixer->handle_hello( msg ); - return 0; - } - else - return -1; - -} - - -int -NSM_Client::command_save ( char **out_msg ) -{ - Fl::lock(); - - int r = ERR_OK; - - if ( ! mixer->command_save() ) - { - *out_msg = strdup( "Failed to save for unknown reason"); - return r = ERR_GENERAL; - } - - Fl::unlock(); - - return r; -} - -int -NSM_Client::command_open ( const char *name, const char *display_name, const char *client_id, char **out_msg ) -{ - Fl::lock(); - - if ( instance_name ) - free( instance_name ); - - instance_name = strdup( client_id ); - - mixer->osc_endpoint->name( client_id ); - - int r = ERR_OK; - - if ( Project::validate( name ) ) - { - if ( ! mixer->command_load( name, display_name ) ) - { - *out_msg = strdup( "Failed to load for unknown reason" ); - r = ERR_GENERAL; - } - } - else - { - if ( ! mixer->command_new( name, display_name ) ) - { - *out_msg = strdup( "Failed to load for unknown reason" ); - r = ERR_GENERAL; - } - } - - mixer->say_hello(); - - Fl::unlock(); - - return r; -} - -void -NSM_Client::command_active ( bool active ) -{ - Fl::lock(); - - mixer->sm_active( active ); - - Fl::unlock(); -} diff --git a/mixer/src/NSM.H b/mixer/src/NSM.H deleted file mode 100644 index b289c00..0000000 --- a/mixer/src/NSM.H +++ /dev/null @@ -1,40 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2012 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include "NSM/Client.H" - -class NSM_Client : public NSM::Client -{ - -public: - - NSM_Client ( ); - ~NSM_Client ( ) { }; - -protected: - - int command_open ( const char *name, const char *display_name, const char *client_id, char **out_msg ); - int command_save ( char **out_msg ); - - void command_active ( bool active ); - - int command_broadcast ( const char *path, lo_message msg ); -}; diff --git a/mixer/src/Panner.C b/mixer/src/Panner.C deleted file mode 100644 index c48e852..0000000 --- a/mixer/src/Panner.C +++ /dev/null @@ -1,553 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "Panner.H" -#include -#include -#include -#include -// #include - -#include -#include - -#include "debug.h" - -/* 2D Panner widget. Supports various multichannel configurations. */ - -Panner::Point *Panner::drag; -int Panner::_range_mode = 1; -int Panner::_projection_mode = 0; - -Panner::Panner ( int X, int Y, int W, int H, const char *L ) : - Fl_Group( X, Y, W, H, L ) -{ - _bg_image = 0; - _bg_image_scaled = 0; - _bg_image_projection = 0; -// _projection = POLAR; - _points.push_back( Point( 1, 0 ) ); - - static float ranges[] = { 1,3,5,10,15 }; - { Fl_Choice *o = _range_choice = new Fl_Choice(X + 40,Y + H - 18,75,18,"Range:"); - o->box(FL_UP_FRAME); - o->down_box(FL_DOWN_FRAME); - o->textsize(9); - o->labelsize(9); - o->align(FL_ALIGN_LEFT); - o->add("1 Meter",0,0,&ranges[0]); - o->add("3 Meters",0,0,&ranges[1]); - o->add("5 Meters",0,0,&ranges[2]); - o->add("10 Meters",0,0,&ranges[3]); - o->add("15 Meters",0,0,&ranges[4]); - o->value(_range_mode); - o->callback( cb_mode, this ); - } - - { Fl_Choice *o = _projection_choice = new Fl_Choice(X + W - 75,Y + H - 18,75,18,"Projection:"); - o->box(FL_UP_FRAME); - o->down_box(FL_DOWN_FRAME); - o->textsize(9); - o->labelsize(9); - o->align(FL_ALIGN_LEFT); - o->add("Spherical"); - o->add("Planar"); - o->value(_projection_mode); - o->callback( cb_mode, this ); - } - - end(); -} - -Panner::~Panner ( ) -{ - if ( _bg_image ) - { - if ( _bg_image_scaled ) - delete _bg_image; - else - ((Fl_Shared_Image*)_bg_image)->release(); - } -} - -static int find_numeric_menu_item( const Fl_Menu_Item *menu, int n ) -{ - for ( unsigned int i = 0; menu[i].text; i++ ) - { - if ( atoi( menu[i].text ) == n ) - return i; - } - - return -1; -} - -void -Panner::cb_mode ( Fl_Widget *w, void *v ) -{ - ((Panner*)v)->cb_mode( w ); -} - -void -Panner::cb_mode ( Fl_Widget *w ) -{ - if ( w == _range_choice ) - _range_mode = _range_choice->value(); - else if ( w == _projection_choice ) - _projection_mode = _projection_choice->value(); -} - -void -Panner::range ( float v ) -{ - int i = find_numeric_menu_item( _range_choice->menu(), v ); - - _range_choice->value( i ); - - _range_mode = i; -} - -/** set X, Y, W, and H to the bounding box of point /p/ in screen coords */ -void -Panner::point_bbox ( const Point *p, int *X, int *Y, int *W, int *H ) const -{ - int tx, ty, tw, th; - - bbox( tx, ty, tw, th ); - - float px, py; - float s = 1.0f; - - if ( projection() == POLAR ) - { - project_polar( p, &px, &py, &s ); - } - else - { - project_ortho( p, &px, &py, &s ); - } - - const float htw = float(tw)*0.5f; - const float hth = float(th)*0.5f; - - - *W = *H = tw * s; - - if ( *W < 8 ) - *W = 8; - if ( *H < 8 ) - *H = 8; - - *X = tx + (htw * px + htw) - *W/2; - *Y = ty + (hth * py + hth) - *H/2; - -} - -Panner::Point * -Panner::event_point ( void ) -{ - for ( int i = _points.size(); i--; ) - { - - int px, py, pw, ph; - - Point *p = &_points[ i ]; - - if ( ! p->visible ) - continue; - - point_bbox( p, &px, &py, &pw, &ph ); - -// printf( "%d, %d -- %d %d %d %d\n", Fl::event_x(), Fl::event_y(), px, py, pw, ph ); - - if ( Fl::event_inside( px, py, pw, ph ) ) - return p; - } - - return NULL; -} - - -void -Panner::draw_the_box ( int tx, int ty, int tw, int th ) -{ - draw_box(); - - Fl_Image *i = 0; - - if ( _bg_image && ( _bg_image->h() != th || projection() != _bg_image_projection ) ) - { - if ( _bg_image_scaled ) - delete _bg_image; - else - ((Fl_Shared_Image*)_bg_image)->release(); - - _bg_image = 0; - } - - if ( ! _bg_image ) - { - if ( projection() == POLAR ) - { - if ( th <= 92 ) - i = Fl_Shared_Image::get( PIXMAP_PATH "/non-mixer/panner-sphere-92x92.png" ); - else if ( th <= 502 ) - i = Fl_Shared_Image::get( PIXMAP_PATH "/non-mixer/panner-sphere-502x502.png" ); - else if ( th <= 802 ) - i = Fl_Shared_Image::get( PIXMAP_PATH "/non-mixer/panner-sphere-802x802.png" ); - } - else - { - if ( th <= 92 ) - i = Fl_Shared_Image::get( PIXMAP_PATH "/non-mixer/panner-plane-92x92.png" ); - else if ( th <= 502 ) - i = Fl_Shared_Image::get( PIXMAP_PATH "/non-mixer/panner-plane-502x502.png" ); - else if ( th <= 802 ) - i = Fl_Shared_Image::get( PIXMAP_PATH "/non-mixer/panner-plane-802x802.png" ); - } - - if ( i && i->h() != th ) - { - Fl_Image *scaled = i->copy( th, th ); - - _bg_image = scaled; - _bg_image_scaled = true; - } - else - { - _bg_image = i; - _bg_image_scaled = false; - } - } - - _bg_image_projection = projection(); - - if ( _bg_image ) - _bg_image->draw( tx, ty ); -} - -/** translate angle /a/ into x/y coords and place the result in /X/ and /Y/ */ -void -Panner::project_polar ( const Point *p, float *X, float *Y, float *S ) const -{ - float xp = 0.0f; - float yp = 0.0f; - float zp = 8.0f; - - float x = 0 - p->y; - float y = 0 - p->x; - float z = 0 - p->z; - - x /= range(); - y /= range(); - z /= range(); - - *X = ((x-xp) / (z + zp)) * (zp); - *Y = ((y-yp) / (z + zp)) * (zp); - *S = (0.025f / (z + zp)) * (zp); -} - -/** translate angle /a/ into x/y coords and place the result in /X/ and /Y/ */ -void -Panner::project_ortho ( const Point *p, float *X, float *Y, float *S ) const -{ - const float x = ( 0 - p->y ) / range(); - const float y = ( 0 - p->x ) / range(); -// const float z = p->z; - -// float zp = 4.0f; - - *X = x; - *Y = y; - - *S = 0.025f; -} - - -void -Panner::set_ortho ( Point *p, float x, float y ) -{ - y = 0 - y; - - y *= 2; - x *= 2; - - p->x = (y) * range(); - p->y = (0 - x) * range(); -} - -void -Panner::set_polar ( Point *p, float x, float y ) -{ - /* FIXME: not quite the inverse of the projection... */ - x = 0 - x; - y = 0 - y; - x *= 2; - y *= 2; - - float r = powf( x,2 ) + powf(y,2 ); - float X = ( 2 * x ) / ( 1 + r ); - float Y = ( 2 * y ) / ( 1 + r ); - float Z = ( -1 + r ) / ( 1 + r ); - - float S = p->radius() / range(); - - X *= S; - Y *= S; - Z *= S; - - p->azimuth( -atan2f( X,Y ) * ( 180 / M_PI ) ); - - if ( p->elevation() > 0.0f ) - p->elevation( -atan2f( Z, sqrtf( powf(X,2) + powf( Y, 2 ))) * ( 180 / M_PI ) ); - else - p->elevation( atan2f( Z, sqrtf( powf(X,2) + powf( Y, 2 ))) * ( 180 / M_PI ) ); -} - - - -void -Panner::set_polar_radius ( Point *p, float x, float y ) -{ - y = 0 - y; - - float r = sqrtf( powf( y, 2 ) + powf( x, 2 ) ); - - if ( r > 1.0f ) - r = 1.0f; - - r *= range() * 2; - - if ( r > range() ) - r = range(); - - p->radius( r ); -} - -void -Panner::draw ( void ) -{ - int tw, th, tx, ty; - - bbox( tx, ty, tw, th ); - - fl_push_clip( x(),y(),w(),h() ); - - draw_the_box( tx, ty, tw, th ); - -// draw_box(); - draw_label(); - - /* if ( _bypassed ) */ - /* { */ - /* draw_box(); */ - /* fl_color( 0 ); */ - /* fl_font( FL_HELVETICA, 12 ); */ - /* fl_draw( "(bypass)", x(), y(), w(), h(), FL_ALIGN_CENTER ); */ - /* goto done; */ - /* } */ - - /* tx += b; */ - /* ty += b; */ - /* tw -= b * 2; */ - /* th -= b * 2; */ - - fl_line_style( FL_SOLID, 1 ); - - fl_color( FL_WHITE ); - - for ( unsigned int i = 0; i < _points.size(); i++ ) - { - Point *p = &_points[i]; - - if ( ! p->visible ) - continue; - - Fl_Color c = fl_color_add_alpha( p->color, 100 ); - - fl_color(c); - - int px, py, pw, ph; - point_bbox( p, &px, &py, &pw, &ph ); - - { - float po = 5; - - fl_push_clip( px - ( po * 12 ), - py - ( po * 12 ), - pw + ( po * 24 ), ph + (po * 24 )); - - fl_pie( px + 5, py + 5, pw - 10, ph - 10, 0, 360 ); - - - fl_pie( px, py, pw, ph, 0, 360 ); - - fl_pop_clip(); - - if ( projection() == POLAR ) - { - - fl_color( fl_color_average( fl_rgb_color( 127,127,127 ), p->color, 0.50 ) ); - fl_begin_loop(); - fl_circle( tx + tw/2, ty + th/2, tw/2.0f * ( ( p->radius() / range() ))); - fl_end_loop(); - } - - } - - const char *s = p->label; - - fl_color( fl_color_add_alpha( fl_rgb_color( 220,255,255 ), 127 ) ); - fl_font( FL_HELVETICA_BOLD_ITALIC, 10 ); - fl_draw( s, px + 20, py + 1, 50, ph - 1, FL_ALIGN_LEFT ); - - if ( tw > 100 ) - { - char pat[50]; - snprintf( pat, sizeof(pat), "%.1f°:%.1f° %.1fm", p->azimuth(), p->elevation(), p->radius() ); - -// fl_color( fl_color_add_alpha( fl_rgb_color( 220,255,255 ), 127 ) ); - fl_font( FL_COURIER, 9 ); - - fl_draw( pat, px + 20, py + 15, 50, ph - 1, FL_ALIGN_LEFT | FL_ALIGN_WRAP ); - - /* fl_font( FL_HELVETICA_ITALIC, 9 ); */ - /* snprintf(pat, sizeof(pat), "range: %.1f meters", range() ); */ - /* fl_draw( pat, tx, ty, tw, th, FL_ALIGN_LEFT | FL_ALIGN_BOTTOM | FL_ALIGN_INSIDE ); */ - - /* if ( _projection == POLAR ) */ - /* { */ - /* fl_draw( "Polar perspective; azimuth, elevation and radius input. Right click controls radius.", tx, ty, tw, th, FL_ALIGN_BOTTOM | FL_ALIGN_RIGHT | FL_ALIGN_INSIDE ); */ - /* } */ - /* else */ - /* { */ - /* fl_draw( "Polar orthographic; angle and distance input.", tx, ty, tw, th, FL_ALIGN_BOTTOM | FL_ALIGN_RIGHT | FL_ALIGN_INSIDE ); */ - /* } */ - } - - } - - if ( tw > 200 ) - draw_children(); - - fl_line_style( FL_SOLID, 0 ); - - fl_pop_clip(); -} - -/* return the current gain setting for the path in/out */ -Panner::Point * -Panner::point( int i ) -{ - return &_points[ i ]; -} - -int -Panner::handle ( int m ) -{ - int r = Fl_Group::handle( m ); - - switch ( m ) - { - case FL_ENTER: - case FL_LEAVE: - _projection_choice->value(_projection_mode); - _range_choice->value(_range_mode); - redraw(); - return 1; - case FL_PUSH: - { - if ( Fl::event_button1() || Fl::event_button3() ) - drag = event_point(); - - if ( Fl::event_button2() ) - { - /* if ( _projection == POLAR ) */ - /* _projection = ORTHO; */ - /* else */ - /* _projection = POLAR; */ - } - return 1; - } - case FL_RELEASE: - if ( drag ) - { - do_callback(); - drag = NULL; - redraw(); - return 1; - } - else - return 0; - case FL_MOUSEWHEEL: - { -/* Point *p = event_point(); */ - -/* if ( p ) */ -/* drag = p; */ - -/* if ( drag ) */ -/* { */ -/* // drag->elevation( drag->elevation() + Fl::event_dy()); */ -/* drag->elevation( 0 - drag->elevation() ); */ -/* do_callback(); */ -/* redraw(); */ -/* return 1; */ -/* } */ - - return 1; - } - case FL_DRAG: - { - if ( ! drag ) - return 0; - - int tx, ty, tw, th; - bbox( tx, ty, tw, th ); - - float X = (float(Fl::event_x() - tx) / tw ) - 0.5f; - float Y = (float(Fl::event_y() - ty) / th) - 0.5f; - - if ( Fl::event_button1() ) - { - if ( POLAR == projection() ) - set_polar( drag,X,Y ); - else - { - if ( fabsf( X ) < 0.5f && - fabsf( Y ) < 0.5f ) - set_ortho( drag, X,Y ); - } - } - else - set_polar_radius( drag,X,Y ); - - if ( when() & FL_WHEN_CHANGED ) - do_callback(); - - damage(FL_DAMAGE_EXPOSE); - - return 1; - } - - } - - return r; - -// return 0; -} diff --git a/mixer/src/Panner.H b/mixer/src/Panner.H deleted file mode 100644 index 8bb8e5e..0000000 --- a/mixer/src/Panner.H +++ /dev/null @@ -1,209 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include -#include -#include -#include -#include -#include -#include -using namespace std; - -class Panner : public Fl_Group -{ - Fl_Choice *_range_choice; - Fl_Choice *_projection_choice; - - Fl_Image *_bg_image; - bool _bg_image_scaled; - int _bg_image_projection; - - void draw_grid( int,int,int,int); - void draw_the_box( int, int, int, int ); - - static int _range_mode; - static int _projection_mode; - -public: - - struct Point - { - float x,y,z; - - const char *label; - void *userdata; - Fl_Color color; - bool visible; - bool radius_enabled; - - Point ( ) { - x = 1; - y = 0; - z = 0; - label = 0; - visible = 1; - color = FL_WHITE; - radius_enabled = false; - } - - Point ( float D, float A ) - { - radius( D ); - azimuth( A ); - label = 0; - visible = 1; - color = FL_WHITE; - radius_enabled = false; - } - - static inline void spherical_to_cartesian (float a, float e, float &x, float &y, float &z ) - { - a *= M_PI / 180.0f; - e *= M_PI / 180.0f; - - z = sinf(e); - const float ce = cosf(e); - x = ce * cosf(-a); - y = ce * sinf(-a); - } - - float azimuth ( void ) const { - return -atan2f( y,x ) * ( 180 / M_PI ); - } - float elevation ( void ) const { - return atan2f(z,sqrtf(powf(x,2)+powf(y,2)) ) * ( 180 / M_PI ); - } - float radius ( void ) const { - if ( ! radius_enabled ) - return 1.0f; - else - return sqrtf(powf(x,2)+powf(y,2)+powf(z,2)); - } - - void azimuth ( float v ) - { - float r = radius(); - - spherical_to_cartesian( v, elevation(), x,y,z ); - x *= r; - y *= r; - z *= r; - } - - void elevation ( float v ) - { - float r = radius(); - - spherical_to_cartesian( azimuth(), v, x,y,z ); - x *= r; - y *= r; - z *= r; - } - - - void radius ( float v ) - { - if (! radius_enabled ) - return; - - float r = v; - - spherical_to_cartesian( azimuth(), elevation(), x,y,z ); - - x *= r; - y *= r; - z *= r; - } - }; - -private: - - vector _points; - - static int _configs[][12]; - - void bbox ( int &X, int &Y, int &W, int &H ) const - { - W = w() - Fl::box_dw( box() ); - H = h() - Fl::box_dh( box() ); - X = x() + Fl::box_dx( box() ); - Y = y() + Fl::box_dy( box() ); - - int S = W > H ? H : W; - - if ( W > H ) - X += ( (W/2) - (S/2) ); - else if ( H > W ) - Y += ( (H/2) - (S/2) ); - - W = H = S; - } - - void point_bbox ( const Point *p, int *X, int *Y, int *W, int *H ) const; - - Point * event_point ( void ); - Point angle_to_axes ( float a ); - - static Point * drag; - - void set_polar ( Point *p, float x, float y ); - void set_ortho ( Point *p, float x, float y ); - void set_polar_radius ( Point *p, float x, float y ); - void project_polar ( const Point *p, float *X, float *Y, float *S ) const; - void project_ortho ( const Point *p, float *X, float *Y, float *S ) const; - - static void cb_mode ( Fl_Widget *w, void *v ); - void cb_mode ( Fl_Widget *w ); - -protected: - - virtual void draw ( void ); - virtual int handle ( int ); - -public: - - enum { POLAR, ORTHO }; - - int projection ( void ) const { return _projection_mode; } - void projection ( int v ) { _projection_choice->value(v); _projection_mode = v; } - - Panner ( int X, int Y, int W, int H, const char *L = 0 ); - - float range ( void ) const { return *((float*)_range_choice->menu()[_range_mode].user_data()); } - void range ( float v ); - - void clear_points ( void ) { _points.clear(); } - - void add_point( Panner::Point &p ) - { - _points.push_back( p ); - } - - virtual ~Panner ( ); - - Panner::Point *point ( int i ); - - int points ( void ) const { return _points.size(); } - - Panner::Point *pushed ( void ) { return drag; } - -}; diff --git a/mixer/src/Plugin_Chooser.C b/mixer/src/Plugin_Chooser.C deleted file mode 100644 index ea50226..0000000 --- a/mixer/src/Plugin_Chooser.C +++ /dev/null @@ -1,442 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2013 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include -#include -#include -#include -#include "Plugin_Chooser_UI.H" -#include "Plugin_Module.H" -#include "Plugin_Chooser.H" -#include "stdio.h" -#include -#include - -#include - -static std::vector _plugin_rows; - -unsigned long -Plugin_Chooser::plugin_chooser ( int ninputs ) -{ - Plugin_Chooser *o = new Plugin_Chooser( 0,0,735,500,"Plugin Chooser"); - - o->ui->inputs_input->value( ninputs ); - - o->search( "", "", "Any", ninputs, 0, o->ui->favorites_button->value() ); - - o->show(); - - while ( o->shown() ) - Fl::wait(); - - unsigned long picked = o->value(); - - delete o; - - return picked; -} - -void -Plugin_Chooser::search ( const char *name, const char *author, const char *category, int ninputs, int noutputs, bool favorites ) -{ - _plugin_rows.clear(); - - for ( std::list::iterator i = _plugins.begin(); i != _plugins.end(); i++ ) - { - Plugin_Module::Plugin_Info *p = &(*i); - - if ( strcasestr( p->name.c_str(), name ) && - strcasestr( p->author.c_str(), author ) ) - { - if ( ! - ((( ( ninputs == 0 || ninputs == p->audio_inputs || ( ninputs == 1 && p->audio_inputs == 2 ) ) ) && - ( noutputs == 0 || noutputs == p->audio_outputs )) || - ( p->audio_inputs == 1 && p->audio_outputs == 1 ) ) ) - continue; - - if ( p->audio_outputs == 0 || p->audio_inputs == 0 ) - /* we don't support these */ - continue; - - if ( favorites > 0 && ! p->favorite ) - continue; - - if ( strcmp( category, "Any" ) ) - { - if ( !p->category.c_str() && strcmp( category, "Unclassified" )) - continue; - - if (strncmp( p->category.c_str(), category, strlen( category ))) - continue; - } - - _plugin_rows.push_back( p ); - } - } - - ui->table->rows( _plugin_rows.size() ); -} - -void -Plugin_Chooser::cb_handle ( Fl_Widget *w, void *v ) -{ - ((Plugin_Chooser*)v)->cb_handle( w ); -} - -void -Plugin_Chooser::cb_handle ( Fl_Widget *w ) -{ - if ( w == ui->all_button ) - { - ui->favorites_button->value( !ui->all_button->value() ); - } - - { - char picked[512]; - ui->category_choice->item_pathname( picked, sizeof( picked ) ); - - search( ui->name_input->value(), - ui->author_input->value(), - picked[0] == '/' ? &picked[1] : picked, - ui->inputs_input->value(), - ui->outputs_input->value(), - ui->favorites_button->value() ); - } -} - -class Plugin_Table : public Fl_Table_Row -{ -protected: - void draw_cell(TableContext context, // table cell drawing - int R=0, int C=0, int X=0, int Y=0, int W=0, int H=0); -public: - Plugin_Table(int x, int y, int w, int h, const char *l=0) : Fl_Table_Row(x,y,w,h,l) - { - end(); - } - ~Plugin_Table() { } -}; - -void Plugin_Table::draw_cell(TableContext context, - int R, int C, int X, int Y, int W, int H) -{ - const char *headings[] = { "Fav.", "Name", "Author", "Type", "In", "Out" }; - - static char s[40]; - - switch ( context ) - { - case CONTEXT_STARTPAGE: - fl_font(FL_HELVETICA, 12); - return; - - case CONTEXT_COL_HEADER: - fl_push_clip(X, Y, W, H); - { - fl_draw_box(FL_THIN_UP_BOX, X, Y, W, H, col_header_color()); - fl_color(FL_FOREGROUND_COLOR); - fl_draw(headings[C], X, Y, W, H, FL_ALIGN_CENTER); - } - fl_pop_clip(); - return; - - case CONTEXT_ROW_HEADER: - return; - - case CONTEXT_CELL: - { - fl_font(FL_HELVETICA, 12); - - const char *s2 = (char*)s; - Fl_Align a = FL_ALIGN_CENTER; - int symbol = 0; - Fl_Color c = FL_FOREGROUND_COLOR; - switch ( C ) - { - case 0: - sprintf( s, "%s", "@circle" ); - c = _plugin_rows[R]->favorite ? FL_LIGHT2 : FL_BLACK; - symbol = 1; - fl_font(FL_HELVETICA, 9 ); - break; - case 1: - a = FL_ALIGN_LEFT; - s2 = _plugin_rows[R]->name.c_str(); - break; - case 2: - a = FL_ALIGN_LEFT; - s2 = _plugin_rows[R]->author.c_str(); - break; - case 3: - s2 = _plugin_rows[R]->type; - break; - case 4: - sprintf( s, "%i", _plugin_rows[R]->audio_inputs ); - break; - case 5: - sprintf( s, "%i", _plugin_rows[R]->audio_outputs ); - break; - } - - fl_color( row_selected(R) ? selection_color() : FL_DARK1); - fl_rectf(X, Y, W, H); - fl_color(color()); - fl_rect(X, Y, W, H); - - X+=4; - W-=8; - Y+=4; - H-=8; - - fl_push_clip(X, Y, W, H); - - fl_color(c); - fl_draw(s2, X, Y, W, H, a, 0, symbol ); - - fl_pop_clip(); - return; - } - - case CONTEXT_TABLE: - fprintf(stderr, "TABLE CONTEXT CALLED\n"); - return; - - case CONTEXT_ENDPAGE: - case CONTEXT_RC_RESIZE: - case CONTEXT_NONE: - return; - } -} - -void -Plugin_Chooser::cb_table ( Fl_Widget *w, void *v ) -{ - ((Plugin_Chooser*)v)->cb_table(w); -} - -void -Plugin_Chooser::cb_table ( Fl_Widget *w ) -{ - Fl_Table_Row *o = (Fl_Table_Row*)w; - - int R = o->callback_row(); - int C = o->callback_col(); - - Fl_Table::TableContext context = o->callback_context(); - - if ( context == Fl_Table::CONTEXT_CELL ) - { - if ( C == 0 ) - { - _plugin_rows[R]->favorite = ! _plugin_rows[R]->favorite; - o->redraw(); - } - else - { - _value = _plugin_rows[R]->id; - hide(); - } - } -} - -extern char *user_config_dir; - -static FILE *open_favorites( const char *mode ) -{ - char *path; - - asprintf( &path, "%s/%s", user_config_dir, "favorite_plugins" ); - - FILE *fp = fopen( path, mode ); - - free( path ); - - return fp; -} - -int -Plugin_Chooser::load_favorites ( void ) -{ - FILE *fp = open_favorites( "r" ); - - if ( !fp ) - { - return 0; - } - - unsigned long id; - char *type; - int favorites = 0; - - while ( 2 == fscanf( fp, "%m[^:]:%lu\n", &type, &id ) ) - { - for ( std::list::iterator i = _plugins.begin(); - i != _plugins.end(); - i++ ) - { - if ( !strcmp( (*i).type, type ) && - (*i).id == id ) - { - (*i).favorite = 1; - - favorites++; - } - } - - free(type); - } - - fclose(fp); - - return favorites; -} - -void -Plugin_Chooser::save_favorites ( void ) -{ - FILE *fp = open_favorites( "w" ); - - if ( !fp ) - return; - - for ( std::list::iterator i = _plugins.begin(); - i != _plugins.end(); - i++ ) - { - if ( (*i).favorite ) - { - fprintf( fp, "%s:%lu\n", i->type, i->id ); - } - } - - fclose( fp ); -} - -void -Plugin_Chooser::load_categories ( void ) -{ - ui->category_choice->add( "Any" ); - - std::list categories; - - for ( std::list::iterator i = _plugins.begin(); - i != _plugins.end(); - i++ ) - { - if ( i->category.c_str() ) - { - categories.push_back(i->category); - } - } - - categories.sort(); - - - for ( std::list::const_iterator i = categories.begin(); - i != categories.end(); - i++ ) - { - ui->category_choice->add( i->c_str() ); - } - - ui->category_choice->value( 0 ); -} - -Plugin_Chooser::Plugin_Chooser ( int X,int Y,int W,int H, const char *L ) - : Fl_Double_Window ( X,Y,W,H,L ) -{ - set_modal(); - _value = 0; - - _plugins = Plugin_Module::get_all_plugins(); - - - { - Plugin_Chooser_UI *o = ui = new Plugin_Chooser_UI(X,Y,W,H); - - o->name_input->callback( &Plugin_Chooser::cb_handle, this ); - o->name_input->when( FL_WHEN_CHANGED ); - - - o->author_input->callback( &Plugin_Chooser::cb_handle, this ); - o->author_input->when( FL_WHEN_CHANGED ); - - - o->inputs_input->callback( &Plugin_Chooser::cb_handle, this ); - o->inputs_input->when( FL_WHEN_CHANGED ); - - o->outputs_input->callback( &Plugin_Chooser::cb_handle, this ); - o->outputs_input->when( FL_WHEN_CHANGED ); - - o->favorites_button->callback( &Plugin_Chooser::cb_handle, this ); - o->favorites_button->when( FL_WHEN_CHANGED ); - - o->all_button->callback( &Plugin_Chooser::cb_handle, this ); - o->all_button->when( FL_WHEN_CHANGED ); - - - o->category_choice->callback( &Plugin_Chooser::cb_handle, this ); - o->category_choice->when( FL_WHEN_CHANGED ); - - { - Plugin_Table *o = new Plugin_Table(ui->table->x(),ui->table->y(),ui->table->w(),ui->table->h() ); - ui->table_group->add(o); - ui->table_group->resizable(o); - delete ui->table; - ui->table = o; - /* ui->scalepack->add( o ); */ - /* ui->scalepack->resizable( o ); */ - o->col_header(1); - o->col_resize(1); - o->row_resize(1); - o->cols(6); - o->col_resize_min(4); - o->col_width(0,30); - o->col_width(1,350 - 7); - o->col_width(2,200); - o->col_width(3,75); - o->col_width(4,30); - o->col_width(5,30); - o->color(FL_BLACK); - o->box(FL_NO_BOX); - o->when(FL_WHEN_CHANGED); - o->callback( &Plugin_Chooser::cb_table, this ); - - } - - resizable(o); - } - size_range( 735, 300, 735, 0 ); - - end(); - - load_categories(); - - if ( load_favorites() ) - { - ui->all_button->value(0); - ui->favorites_button->value(1); - } -} - -Plugin_Chooser::~Plugin_Chooser( ) -{ - save_favorites(); -} diff --git a/mixer/src/Plugin_Chooser.H b/mixer/src/Plugin_Chooser.H deleted file mode 100644 index ce67564..0000000 --- a/mixer/src/Plugin_Chooser.H +++ /dev/null @@ -1,58 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2013 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include -#include "Plugin_Module.H" -#include - -class Plugin_Chooser_UI; -class Plugin_Chooser : public Fl_Double_Window -{ - Plugin_Chooser_UI *ui; - - std::list _plugins; - - static void cb_handle ( Fl_Widget *w, void *v ); - void cb_handle ( Fl_Widget *w ); - static void cb_table ( Fl_Widget *w, void *v ); - void cb_table ( Fl_Widget *w ); - - void search ( const char *name, const char *author, const char *category, int ninputs, int noutputs, bool favorites ); - - unsigned long _value; - - int load_favorites ( void ); - - void save_favorites ( void ); - - void load_categories ( void ); -public: - - unsigned long value ( void ) const { return _value; } - - Plugin_Chooser ( int X,int Y,int W,int H, const char *L=0 ); - - virtual ~Plugin_Chooser( ); - - static unsigned long plugin_chooser ( int ninputs ); -}; - - diff --git a/mixer/src/Plugin_Chooser_UI.fl b/mixer/src/Plugin_Chooser_UI.fl deleted file mode 100644 index 811242d..0000000 --- a/mixer/src/Plugin_Chooser_UI.fl +++ /dev/null @@ -1,68 +0,0 @@ -# data file for the Fltk User Interface Designer (fluid) -version 1.0300 -header_name {.h} -code_name {.cxx} -decl {\#include } {public global -} - -decl {\#include } {public global -} - -widget_class Plugin_Chooser_UI { - label {Plugin Selector} open - xywh {825 389 735 500} type Double resizable size_range {740 0 740 0} visible -} { - Fl_Group {} {open - xywh {10 5 155 20} - } { - Fl_Round_Button all_button { - label {&All} - xywh {10 5 50 20} type Radio down_box ROUND_DOWN_BOX shortcut 0x80061 value 1 - } - Fl_Round_Button favorites_button { - label {&Favorites} - xywh {65 5 100 20} type Radio down_box ROUND_DOWN_BOX shortcut 0x80066 - } - } - Fl_Group {} {open - xywh {5 29 725 77} box UP_FRAME - code0 {o->resizable(0);} - } { - Fl_Input name_input { - label {Name:} selected - xywh {75 38 300 24} labelsize 12 textsize 13 - } - Fl_Input author_input { - label {Author:} - xywh {435 39 210 22} labelsize 12 textsize 13 - } - Fl_Value_Input outputs_input { - label {Outputs:} - xywh {693 70 30 24} labelsize 12 - } - Fl_Value_Input inputs_input { - label {Inputs:} - xywh {693 39 30 24} labelsize 12 - } - Fl_Choice category_choice { - label {Category:} open - xywh {75 70 405 24} down_box BORDER_BOX labelsize 12 textsize 12 - } {} - } - Fl_Group table_group {open - xywh {5 115 725 380} resizable - } { - Fl_Table table {open - xywh {5 115 725 380} resizable - } {} - } - Fl_Choice type_choice { - label {Type:} open - xywh {530 70 95 24} down_box BORDER_BOX labelsize 12 textsize 12 - } { - MenuItem {} { - label LADSPA - xywh {0 -68 34 18} - } - } -} diff --git a/mixer/src/Plugin_Module.C b/mixer/src/Plugin_Module.C deleted file mode 100644 index f281c39..0000000 --- a/mixer/src/Plugin_Module.C +++ /dev/null @@ -1,880 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2009 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -/* Filter module. Can host LADPSA Plugins, or can be inherited from to make internal - modules with special features and appearance. */ - -#include "const.h" - -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include "Plugin_Module.H" - -#include "debug.h" - -#define HAVE_LIBLRDF 1 -#include "LADSPAInfo.h" - -#include "Chain.H" -//#include "Client/Client.H" - -#include - -#include - - - -static LADSPAInfo *ladspainfo; -Thread* Plugin_Module::plugin_discover_thread; - -/* keep this out of the header to avoid spreading ladspa.h dependency */ -struct Plugin_Module::ImplementationData -{ - const LADSPA_Descriptor *descriptor; -// std::vector m_LADSPABufVec; - std::vector handle; -}; - - - -Plugin_Module::Plugin_Module ( ) : Module( 50, 35, name() ) -{ - init(); - - end(); - - log_create(); -} - -Plugin_Module::~Plugin_Module ( ) -{ - log_destroy(); - plugin_instances( 0 ); -} - - - -void -Plugin_Module::get ( Log_Entry &e ) const -{ -// char s[512]; -// snprintf( s, sizeof( s ), "ladspa:%lu", _idata->descriptor->UniqueID ); - e.add( ":plugin_id", _idata->descriptor->UniqueID ); - - /* these help us display the module on systems which are missing this plugin */ - e.add( ":plugin_ins", _plugin_ins ); - e.add( ":plugin_outs", _plugin_outs ); - - Module::get( e ); -} - -void -Plugin_Module::set ( Log_Entry &e ) -{ - for ( int i = 0; i < e.size(); ++i ) - { - const char *s, *v; - - e.get( i, &s, &v ); - - if ( ! strcmp( s, ":plugin_id" ) ) - { - load( (unsigned long) atoll ( v ) ); - } - else if ( ! strcmp( s, ":plugin_ins" ) ) - { - _plugin_ins = atoi( v ); - } - else if ( ! strcmp( s, ":plugin_outs" ) ) - { - _plugin_outs = atoi( v ); - } - } - - Module::set( e ); -} - - - -void -Plugin_Module::init ( void ) -{ - _latency = 0; - _last_latency = 0; - _idata = new Plugin_Module::ImplementationData(); - _idata->handle.clear(); - /* module will be bypassed until plugin is loaded */ - _bypass = true; - _crosswire = false; - - align( (Fl_Align)FL_ALIGN_CENTER | FL_ALIGN_INSIDE ); -// color( (Fl_Color)fl_color_average( FL_MAGENTA, FL_WHITE, 0.5f ) ); - - int tw, th, tx, ty; - - bbox( tx, ty, tw, th ); -} - -void -Plugin_Module::update ( void ) -{ - if ( _last_latency != _latency ) - { - DMESSAGE( "Plugin latency changed to %lu", (unsigned long)_latency ); - - chain()->client()->recompute_latencies(); - } - - _last_latency = _latency; - - update_tooltip(); -} - -int -Plugin_Module::can_support_inputs ( int n ) -{ - /* this is the simple case */ - if ( plugin_ins() == n ) - return plugin_outs(); - /* e.g. MONO going into STEREO */ - /* we'll duplicate our inputs */ - else if ( n < plugin_ins() && - 1 == n ) - { - return plugin_outs(); - } - /* e.g. STEREO going into MONO */ - /* we'll run multiple instances of the plugin */ - else if ( n > plugin_ins() && - ( plugin_ins() == 1 && plugin_outs() == 1 ) ) - { - return n; - } - - return -1; -} - -bool -Plugin_Module::configure_inputs( int n ) -{ - unsigned int inst = _idata->handle.size(); - - if ( ninputs() != n ) - { - _crosswire = false; - - if ( n != ninputs() ) - { - if ( 1 == n && plugin_ins() > 1 ) - { - DMESSAGE( "Cross-wiring plugin inputs" ); - _crosswire = true; - - audio_input.clear(); - - for ( int i = n; i--; ) - audio_input.push_back( Port( this, Port::INPUT, Port::AUDIO ) ); - } - else if ( n >= plugin_ins() && - ( plugin_ins() == 1 && plugin_outs() == 1 ) ) - { - DMESSAGE( "Running multiple instances of plugin" ); - - audio_input.clear(); - audio_output.clear(); - - for ( int i = n; i--; ) - { - add_port( Port( this, Port::INPUT, Port::AUDIO ) ); - add_port( Port( this, Port::OUTPUT, Port::AUDIO ) ); - } - - inst = n; - } - else if ( n == plugin_ins() ) - { - DMESSAGE( "Plugin input configuration is a perfect match" ); - } - else - { - DMESSAGE( "Unsupported input configuration" ); - return false; - } - } - } - - if ( loaded() ) - { - bool b = bypass(); - if ( inst != _idata->handle.size() ) - { - if ( !b ) - deactivate(); - - if ( plugin_instances( inst ) ) - instances( inst ); - else - return false; - - if ( !b ) - activate(); - } - } - - return true; -} - -void * -Plugin_Module::discover_thread ( void * ) -{ - THREAD_ASSERT( Plugin_Discover ); - - DMESSAGE( "Discovering plugins in the background" ); - - ladspainfo = new LADSPAInfo(); - - return NULL; -} - -/* Spawn a background thread for plugin discovery */ -void -Plugin_Module::spawn_discover_thread ( void ) -{ - if ( plugin_discover_thread ) - { - FATAL( "Plugin discovery thread is already running or has completed" ); - } - - plugin_discover_thread = new Thread( "Plugin_Discover" ); - - plugin_discover_thread->clone( &Plugin_Module::discover_thread, NULL ); -} - -void -Plugin_Module::join_discover_thread ( void ) -{ - plugin_discover_thread->join(); -} - -/* return a list of available plugins */ -std::list -Plugin_Module::get_all_plugins ( void ) -{ - if ( !ladspainfo ) - { - if ( ! plugin_discover_thread ) - ladspainfo = new LADSPAInfo(); - else - plugin_discover_thread->join(); - } - - std::vector plugins = ladspainfo->GetPluginInfo(); - - std::list pr; - - int j = 0; - for (std::vector::iterator i=plugins.begin(); - i!=plugins.end(); i++, j++) - { - Plugin_Info pi; - - // pi[j].path = i->Name.c_str(); - pi.path = NULL; - pi.id = i->UniqueID; - pi.author = i->Maker; - pi.name = i->Name; - pi.audio_inputs = i->AudioInputs; - pi.audio_outputs = i->AudioOutputs; - pi.category = "Unclassified"; - pr.push_back( pi ); - } - - pr.sort(); - - const std::vector pe = ladspainfo->GetMenuList(); - - for (std::vector::const_iterator i= pe.begin(); - i !=pe.end(); i++ ) - { - for ( std::list::iterator j = pr.begin(); j != pr.end(); j++ ) - { - if ( j->id == i->UniqueID ) - { - j->category = i->Category; - } - } - } - - return pr; -} - -bool -Plugin_Module::plugin_instances ( unsigned int n ) -{ - if ( _idata->handle.size() > n ) - { - for ( int i = _idata->handle.size() - n; i--; ) - { - DMESSAGE( "Destroying plugin instance" ); - - LADSPA_Handle h = _idata->handle.back(); - - if ( _idata->descriptor->deactivate ) - _idata->descriptor->deactivate( h ); - if ( _idata->descriptor->cleanup ) - _idata->descriptor->cleanup( h ); - - _idata->handle.pop_back(); - } - } - else if ( _idata->handle.size() < n ) - { - for ( int i = n - _idata->handle.size(); i--; ) - { - LADSPA_Handle h; - - DMESSAGE( "Instantiating plugin... with sample rate %lu", (unsigned long)sample_rate()); - - if ( ! (h = _idata->descriptor->instantiate( _idata->descriptor, sample_rate() ) ) ) - { - WARNING( "Failed to instantiate plugin" ); - return false; - } - - DMESSAGE( "Instantiated: %p", h ); - - _idata->handle.push_back( h ); - - DMESSAGE( "Connecting control ports..." ); - - int ij = 0; - int oj = 0; - for ( unsigned int k = 0; k < _idata->descriptor->PortCount; ++k ) - { - if ( LADSPA_IS_PORT_CONTROL( _idata->descriptor->PortDescriptors[k] ) ) - { - if ( LADSPA_IS_PORT_INPUT( _idata->descriptor->PortDescriptors[k] ) ) - _idata->descriptor->connect_port( h, k, (LADSPA_Data*)control_input[ij++].buffer() ); - else if ( LADSPA_IS_PORT_OUTPUT( _idata->descriptor->PortDescriptors[k] ) ) - _idata->descriptor->connect_port( h, k, (LADSPA_Data*)control_output[oj++].buffer() ); - } - } - - // connect ports to magic bogus value to aid debugging. - for ( unsigned int k = 0; k < _idata->descriptor->PortCount; ++k ) - if ( LADSPA_IS_PORT_AUDIO( _idata->descriptor->PortDescriptors[k] ) ) - _idata->descriptor->connect_port( h, k, (LADSPA_Data*)0x42 ); - - } - } - - return true; -} - -void -Plugin_Module::bypass ( bool v ) -{ - if ( v != bypass() ) - { - if ( v ) - deactivate(); - else - activate(); - } -} - -nframes_t -Plugin_Module::get_module_latency ( void ) const -{ - for ( unsigned int i = ncontrol_outputs(); i--; ) - { - if ( !strcasecmp( "latency", control_output[i].name() ) ) - { - return control_output[i].control_value(); - } - } - - return 0; -} - -bool -Plugin_Module::load ( unsigned long id ) -{ - if ( !ladspainfo ) - { - if ( ! plugin_discover_thread ) - ladspainfo = new LADSPAInfo(); - else - plugin_discover_thread->join(); - } - - _idata->descriptor = ladspainfo->GetDescriptorByID( id ); - - _plugin_ins = _plugin_outs = 0; - - if ( ! _idata->descriptor ) - { - /* unknown plugin ID */ - WARNING( "Unknown plugin ID: %lu", id ); - label( "----" ); - return false; - } - - label( _idata->descriptor->Name ); - - if ( _idata->descriptor ) - { - if ( LADSPA_IS_INPLACE_BROKEN( _idata->descriptor->Properties ) ) - { - WARNING( "Cannot use this plugin because it is incapable of processing audio in-place" ); - return false; - } - - /* else if ( ! LADSPA_IS_HARD_RT_CAPABLE( _idata->descriptor->Properties ) ) */ - /* { */ - /* WARNING( "Cannot use this plugin because it is incapable of hard real-time operation" ); */ - /* return false; */ - /* } */ - - MESSAGE( "Name: %s", _idata->descriptor->Name ); - - for ( unsigned int i = 0; i < _idata->descriptor->PortCount; ++i ) - { - if ( LADSPA_IS_PORT_AUDIO( _idata->descriptor->PortDescriptors[i] ) ) - { - if ( LADSPA_IS_PORT_INPUT( _idata->descriptor->PortDescriptors[i] ) ) - { - add_port( Port( this, Port::INPUT, Port::AUDIO, _idata->descriptor->PortNames[ i ] ) ); - _plugin_ins++; - } - else if (LADSPA_IS_PORT_OUTPUT(_idata->descriptor->PortDescriptors[i])) - { - _plugin_outs++; - add_port( Port( this, Port::OUTPUT, Port::AUDIO, _idata->descriptor->PortNames[ i ] ) ); - } - } - } - - MESSAGE( "Plugin has %i inputs and %i outputs", _plugin_ins, _plugin_outs); - - for ( unsigned int i = 0; i < _idata->descriptor->PortCount; ++i ) - { - if ( LADSPA_IS_PORT_CONTROL( _idata->descriptor->PortDescriptors[i] ) ) - { - Port::Direction d = Port::INPUT; - - if ( LADSPA_IS_PORT_INPUT( _idata->descriptor->PortDescriptors[i] ) ) - { - d = Port::INPUT; - } - else if ( LADSPA_IS_PORT_OUTPUT( _idata->descriptor->PortDescriptors[i] ) ) - { - d = Port::OUTPUT; - } - - Port p( this, d, Port::CONTROL, _idata->descriptor->PortNames[ i ] ); - - p.hints.default_value = 0; - - LADSPA_PortRangeHintDescriptor hd = _idata->descriptor->PortRangeHints[i].HintDescriptor; - - if ( LADSPA_IS_HINT_BOUNDED_BELOW(hd) ) - { - p.hints.ranged = true; - p.hints.minimum = _idata->descriptor->PortRangeHints[i].LowerBound; - if ( LADSPA_IS_HINT_SAMPLE_RATE(hd) ) - { - p.hints.minimum *= sample_rate(); - } - } - if ( LADSPA_IS_HINT_BOUNDED_ABOVE(hd) ) - { - p.hints.ranged = true; - p.hints.maximum = _idata->descriptor->PortRangeHints[i].UpperBound; - if ( LADSPA_IS_HINT_SAMPLE_RATE(hd) ) - { - p.hints.maximum *= sample_rate(); - } - } - - if ( LADSPA_IS_HINT_HAS_DEFAULT(hd) ) - { - - float Max=1.0f, Min=-1.0f, Default=0.0f; - int Port=i; - - // Get the bounding hints for the port - LADSPA_PortRangeHintDescriptor HintDesc=_idata->descriptor->PortRangeHints[Port].HintDescriptor; - if (LADSPA_IS_HINT_BOUNDED_BELOW(HintDesc)) - { - Min=_idata->descriptor->PortRangeHints[Port].LowerBound; - if (LADSPA_IS_HINT_SAMPLE_RATE(HintDesc)) - { - Min*=sample_rate(); - } - } - if (LADSPA_IS_HINT_BOUNDED_ABOVE(HintDesc)) - { - Max=_idata->descriptor->PortRangeHints[Port].UpperBound; - if (LADSPA_IS_HINT_SAMPLE_RATE(HintDesc)) - { - Max*=sample_rate(); - } - } - -#ifdef LADSPA_VERSION -// We've got a version of the header that supports port defaults - if (LADSPA_IS_HINT_HAS_DEFAULT(HintDesc)) { - // LADSPA_HINT_DEFAULT_0 is assumed anyway, so we don't check for it - if (LADSPA_IS_HINT_DEFAULT_1(HintDesc)) { - Default = 1.0f; - } else if (LADSPA_IS_HINT_DEFAULT_100(HintDesc)) { - Default = 100.0f; - } else if (LADSPA_IS_HINT_DEFAULT_440(HintDesc)) { - Default = 440.0f; - } else { - // These hints may be affected by SAMPLERATE, LOGARITHMIC and INTEGER - if (LADSPA_IS_HINT_DEFAULT_MINIMUM(HintDesc) && - LADSPA_IS_HINT_BOUNDED_BELOW(HintDesc)) { - Default=_idata->descriptor->PortRangeHints[Port].LowerBound; - } else if (LADSPA_IS_HINT_DEFAULT_MAXIMUM(HintDesc) && - LADSPA_IS_HINT_BOUNDED_ABOVE(HintDesc)) { - Default=_idata->descriptor->PortRangeHints[Port].UpperBound; - } else if (LADSPA_IS_HINT_BOUNDED_BELOW(HintDesc) && - LADSPA_IS_HINT_BOUNDED_ABOVE(HintDesc)) { - // These hints require both upper and lower bounds - float lp = 0.0f, up = 0.0f; - float min = _idata->descriptor->PortRangeHints[Port].LowerBound; - float max = _idata->descriptor->PortRangeHints[Port].UpperBound; - if (LADSPA_IS_HINT_DEFAULT_LOW(HintDesc)) { - lp = 0.75f; - up = 0.25f; - } else if (LADSPA_IS_HINT_DEFAULT_MIDDLE(HintDesc)) { - lp = 0.5f; - up = 0.5f; - } else if (LADSPA_IS_HINT_DEFAULT_HIGH(HintDesc)) { - lp = 0.25f; - up = 0.75f; - } - - if (LADSPA_IS_HINT_LOGARITHMIC(HintDesc)) { - - p.hints.type = Port::Hints::LOGARITHMIC; - - if (min==0.0f || max==0.0f) { - // Zero at either end means zero no matter - // where hint is at, since: - // log(n->0) -> Infinity - Default = 0.0f; - } else { - // Catch negatives - bool neg_min = min < 0.0f ? true : false; - bool neg_max = max < 0.0f ? true : false; - - if (!neg_min && !neg_max) { - Default = exp(::log(min) * lp + ::log(max) * up); - } else if (neg_min && neg_max) { - Default = -exp(::log(-min) * lp + ::log(-max) * up); - } else { - // Logarithmic range has asymptote - // so just use linear scale - Default = min * lp + max * up; - } - } - } else { - Default = min * lp + max * up; - } - } - if (LADSPA_IS_HINT_SAMPLE_RATE(HintDesc)) { - Default *= sample_rate(); - } - } - - if (LADSPA_IS_HINT_INTEGER(HintDesc)) { - if ( p.hints.ranged && - 0 == (int)p.hints.minimum && - 1 == (int)p.hints.maximum ) - p.hints.type = Port::Hints::BOOLEAN; - else - p.hints.type = Port::Hints::INTEGER; - Default = floorf(Default); - } - if (LADSPA_IS_HINT_TOGGLED(HintDesc)){ - p.hints.type = Port::Hints::BOOLEAN; - } - } -#else - Default = 0.0f; -#endif - p.hints.default_value = Default; - } - - float *control_value = new float; - - *control_value = p.hints.default_value; - - p.connect_to( control_value ); - - add_port( p ); - - DMESSAGE( "Plugin has control port \"%s\" (default: %f)", _idata->descriptor->PortNames[ i ], p.hints.default_value ); - } - } - } - else - { - WARNING( "Failed to load plugin" ); - return false; - } - - int instances = plugin_instances( 1 ); - - if ( instances ) - { - bypass( false ); - } - - return instances; -} - -void -Plugin_Module::set_input_buffer ( int n, void *buf ) -{ - LADSPA_Handle h; - - if ( instances() > 1 ) - { - h = _idata->handle[n]; - n = 0; - } - else - h = _idata->handle[0]; - - for ( unsigned int i = 0; i < _idata->descriptor->PortCount; ++i ) - if ( LADSPA_IS_PORT_INPUT( _idata->descriptor->PortDescriptors[i] ) && - LADSPA_IS_PORT_AUDIO( _idata->descriptor->PortDescriptors[i] ) ) - if ( n-- == 0 ) - _idata->descriptor->connect_port( h, i, (LADSPA_Data*)buf ); -} - -bool -Plugin_Module::loaded ( void ) const -{ - return _idata->descriptor; -} - -void -Plugin_Module::set_output_buffer ( int n, void *buf ) -{ - LADSPA_Handle h; - - if ( instances() > 1 ) - { - h = _idata->handle[n]; - n = 0; - } - else - h = _idata->handle[0]; - - for ( unsigned int i = 0; i < _idata->descriptor->PortCount; ++i ) - if ( LADSPA_IS_PORT_OUTPUT( _idata->descriptor->PortDescriptors[i] ) && - LADSPA_IS_PORT_AUDIO( _idata->descriptor->PortDescriptors[i] ) ) - if ( n-- == 0 ) - _idata->descriptor->connect_port( h, i, (LADSPA_Data*)buf ); -} - -void -Plugin_Module::activate ( void ) -{ - if ( !loaded() ) - return; - - DMESSAGE( "Activating plugin \"%s\"", label() ); - - if ( !bypass() ) - FATAL( "Attempt to activate already active plugin" ); - - if ( chain() ) - chain()->client()->lock(); - - if ( _idata->descriptor->activate ) - for ( unsigned int i = 0; i < _idata->handle.size(); ++i ) - _idata->descriptor->activate( _idata->handle[i] ); - - _bypass = false; - - if ( chain() ) - chain()->client()->unlock(); -} - -void -Plugin_Module::deactivate( void ) -{ - if ( !loaded() ) - return; - - DMESSAGE( "Deactivating plugin \"%s\"", label() ); - - if ( chain() ) - chain()->client()->lock(); - - _bypass = true; - - if ( _idata->descriptor->deactivate ) - for ( unsigned int i = 0; i < _idata->handle.size(); ++i ) - _idata->descriptor->deactivate( _idata->handle[i] ); - - if ( chain() ) - chain()->client()->unlock(); -} - -void -Plugin_Module::handle_port_connection_change ( void ) -{ -// DMESSAGE( "Connecting audio ports" ); - - if ( loaded() ) - { - if ( _crosswire ) - { - for ( int i = 0; i < plugin_ins(); ++i ) - set_input_buffer( i, audio_input[0].buffer() ); - } - else - { - for ( unsigned int i = 0; i < audio_input.size(); ++i ) - set_input_buffer( i, audio_input[i].buffer() ); - } - - for ( unsigned int i = 0; i < audio_output.size(); ++i ) - set_output_buffer( i, audio_output[i].buffer() ); - } -} - - - -bool -Plugin_Module::get_impulse_response ( sample_t *buf, nframes_t nframes ) -{ - apply( buf, nframes ); - - if ( buffer_is_digital_black( buf + 1, nframes - 1 )) - /* no impulse response... */ - return false; - - return true; -} - -/** Instantiate a temporary version of the plugin, and run it (in place) against the provided buffer */ -bool -Plugin_Module::apply ( sample_t *buf, nframes_t nframes ) -{ -// actually osc or UI THREAD_ASSERT( UI ); - - LADSPA_Handle h; - - if ( ! (h = _idata->descriptor->instantiate( _idata->descriptor, sample_rate() ) ) ) - { - WARNING( "Failed to instantiate plugin" ); - return false; - } - - int ij = 0; - int oj = 0; - for ( unsigned int k = 0; k < _idata->descriptor->PortCount; ++k ) - { - if ( LADSPA_IS_PORT_CONTROL( _idata->descriptor->PortDescriptors[k] ) ) - { - if ( LADSPA_IS_PORT_INPUT( _idata->descriptor->PortDescriptors[k] ) ) - _idata->descriptor->connect_port( h, k, (LADSPA_Data*)control_input[ij++].buffer() ); - else if ( LADSPA_IS_PORT_OUTPUT( _idata->descriptor->PortDescriptors[k] ) ) - _idata->descriptor->connect_port( h, k, (LADSPA_Data*)control_output[oj++].buffer() ); - } - } - - - if ( _idata->descriptor->activate ) - _idata->descriptor->activate( h ); - - int tframes = 512; - float tmp[tframes]; - - memset( tmp, 0, sizeof( float ) * tframes ); - - for ( unsigned int k = 0; k < _idata->descriptor->PortCount; ++k ) - if ( LADSPA_IS_PORT_AUDIO( _idata->descriptor->PortDescriptors[k] ) ) - _idata->descriptor->connect_port( h, k, tmp ); - - - /* flush any parameter interpolation */ - _idata->descriptor->run( h, tframes ); - - for ( unsigned int k = 0; k < _idata->descriptor->PortCount; ++k ) - if ( LADSPA_IS_PORT_AUDIO( _idata->descriptor->PortDescriptors[k] ) ) - _idata->descriptor->connect_port( h, k, buf ); - - /* run for real */ - _idata->descriptor->run( h, nframes ); - - if ( _idata->descriptor->deactivate ) - _idata->descriptor->deactivate( h ); - if ( _idata->descriptor->cleanup ) - _idata->descriptor->cleanup( h ); - - return true; -} -/**********/ -/* Client */ -/**********/ - -void -Plugin_Module::process ( nframes_t nframes ) -{ - handle_port_connection_change(); - - if ( unlikely( bypass() ) ) - { - /* If this is a mono to stereo plugin, then duplicate the input channel... */ - /* There's not much we can do to automatically support other configurations. */ - if ( ninputs() == 1 && noutputs() == 2 ) - { - buffer_copy( (sample_t*)audio_output[1].buffer(), (sample_t*)audio_input[0].buffer(), nframes ); - } - - _latency = 0; - } - else - { - for ( unsigned int i = 0; i < _idata->handle.size(); ++i ) - _idata->descriptor->run( _idata->handle[i], nframes ); - - _latency = get_module_latency(); - } -} - - diff --git a/mixer/src/Plugin_Module.H b/mixer/src/Plugin_Module.H deleted file mode 100644 index 7409e8d..0000000 --- a/mixer/src/Plugin_Module.H +++ /dev/null @@ -1,154 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2009 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include "Module.H" -#include "Loggable.H" - -class Fl_Menu_Button; -class Thread; - -class Plugin_Module : public Module { - - static Thread *plugin_discover_thread; - -public: - - class Plugin_Info - { - public: - const char *path; - unsigned long id; - std::string name; - std::string author; - std::string category; - int audio_inputs; - int audio_outputs; - const char *type; - bool favorite; - - Plugin_Info ( ) - { - path = 0; - id = 0; - - audio_inputs = 0; - audio_outputs = 0; - type = "LADSPA"; - favorite = 0; - } - - - bool operator< ( const Plugin_Info &rhs ) { - return strcmp( name.c_str(), rhs.name.c_str() ) < 1; - } - }; - - bool load ( unsigned long id ); - -private: - - volatile nframes_t _latency; - nframes_t _last_latency; - - void init ( void ); - - void bbox ( int &X, int &Y, int &W, int &H ) - { - X = x(); - Y = y() + 5; - W = w(); - H = h() - 10; - } - - void cb_handle(Fl_Widget*); - static void cb_handle(Fl_Widget*, void*); - - Fl_Button *close_button; - - struct ImplementationData; - - ImplementationData *_idata; - - int _plugin_ins; - int _plugin_outs; - bool _crosswire; - - static void *discover_thread ( void * ); - - - void set_input_buffer ( int n, void *buf ); - void set_output_buffer ( int n, void *buf ); - void set_control_buffer ( int n, void *buf ); - void activate ( void ); - void deactivate ( void ); - - bool apply ( sample_t *buf, nframes_t nframes ); - void process ( unsigned long nframes ); - - bool plugin_instances ( unsigned int ); - - void connect_ports ( void ); - - bool loaded ( void ) const; - -public: - - virtual bool get_impulse_response ( sample_t *buf, nframes_t nframes ); - - virtual nframes_t get_module_latency ( void ) const; - - virtual void update ( void ); - - static std::list get_all_plugins ( void ); - - static void spawn_discover_thread ( void ); - static void join_discover_thread ( void ); - - Plugin_Module ( ); - virtual ~Plugin_Module(); - - int plugin_ins ( void ) const { return _plugin_ins; } - int plugin_outs ( void ) const { return _plugin_outs; } - - void select_plugin ( unsigned long id ); - - const char *name ( void ) const { return "Plugin"; } - - int can_support_inputs ( int ); - bool configure_inputs ( int ); - - virtual bool bypass ( void ) const { return _bypass; } - virtual void bypass ( bool v ); - - virtual void process ( nframes_t ); - - void handle_port_connection_change ( void ); - - LOG_CREATE_FUNC( Plugin_Module ); - - MODULE_CLONE_FUNC( Plugin_Module ); - -protected: - - void get ( Log_Entry &e ) const; - void set ( Log_Entry &e ); - -}; diff --git a/mixer/src/Project.C b/mixer/src/Project.C deleted file mode 100644 index 777704c..0000000 --- a/mixer/src/Project.C +++ /dev/null @@ -1,350 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -/* Routings for opening/closing/creation of projects. All the actual - project state belongs to Timeline and other classes. */ - -/* Project management routines. */ - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "Loggable.H" -#include "Project.H" - -#include - -#include "const.h" -#include "debug.h" -#include "file.h" - -#include "Mixer.H" - -const int PROJECT_VERSION = 1; - - - -const char *Project::_errstr[] = -{ - "Not a Non-Mixer project", - "Locked by another process", - "Access denied", - "Incompatible project version" -}; - -char Project::_name[256]; -char Project::_created_on[40]; -char Project::_path[512]; -bool Project::_is_open = false; -bool Project::_is_opening = false; -int Project::_lockfd = 0; - - - -/***********/ -/* Private */ -/***********/ - -void -Project::set_name ( const char *name ) -{ - strcpy( Project::_name, name ); - - if ( Project::_name[ strlen( Project::_name ) - 1 ] == '/' ) - Project::_name[ strlen( Project::_name ) - 1 ] = '\0'; - - char *s = rindex( Project::_name, '/' ); - - s = s ? s + 1 : Project::_name; - - memmove( Project::_name, s, strlen( s ) + 1 ); - - for ( s = Project::_name; *s; ++s ) - if ( *s == '_' || *s == '-' ) - *s = ' '; -} - -void -Project::name ( const char *name ) -{ - strcpy( Project::_name, name ); -} - -bool -Project::write_info ( void ) -{ - FILE *fp; - - if ( ! ( fp = fopen( "info", "w" ) ) ) - { - WARNING( "could not open project info file for writing." ); - return false; - } - - char s[40]; - - if ( ! *_created_on ) - { - time_t t = time( NULL ); - ctime_r( &t, s ); - s[ strlen( s ) - 1 ] = '\0'; - } - else - strcpy( s, _created_on ); - - fprintf( fp, "created by\n\t%s\ncreated on\n\t%s\nversion\n\t%d\n", - APP_TITLE " " VERSION, - s, - PROJECT_VERSION ); - - fclose( fp ); - - return true; -} - -bool -Project::read_info ( int *version, char **creation_date, char **created_by ) -{ - FILE *fp; - - if ( ! ( fp = fopen( "info", "r" ) ) ) - { - WARNING( "could not open project info file for reading." ); - return false; - } - - *version = 0; - *creation_date = 0; - *created_by = 0; - - char *name, *value; - - while ( fscanf( fp, "%m[^\n]\n\t%m[^\n]\n", &name, &value ) == 2 ) - { - MESSAGE( "Info: %s = %s", name, value ); - - if ( ! strcmp( name, "version" ) ) - *version = atoi( value ); - else if ( ! strcmp( name, "created on" ) ) - *creation_date = strdup( value ); - else if ( ! strcmp( name, "created by" ) ) - *created_by = strdup( value ); - - free( name ); - free( value ); - } - - fclose( fp ); - - return true; -} - -/**********/ -/* Public */ -/**********/ - -/** Save out any settings and unjournaled state... */ -bool -Project::save ( void ) -{ - if ( ! open() ) - return true; - -// tle->save_timeline_settings(); - - int r = mixer->save(); - -// Loggable::clear_dirty(); - - return r; -// return Loggable::save_unjournaled_state(); -} - - -/** Close the project (reclaiming all memory) */ -bool -Project::close ( void ) -{ - if ( ! open() ) - return true; - - if ( ! save() ) - return false; - - Loggable::close(); -/* // write_info(); */ - - _is_open = false; - - *Project::_name = '\0'; - *Project::_created_on = '\0'; - - release_lock( &_lockfd, ".lock" ); - - return true; -} - -/** Ensure a project is valid before opening it... */ -bool -Project::validate ( const char *name ) -{ - bool r = true; - - char pwd[512]; - - fl_filename_absolute( pwd, sizeof( pwd ), "." ); - - if ( chdir( name ) ) - { - WARNING( "Cannot change to project dir \"%s\"", name ); - return false; - } - - if ( ! exists( "info" ) || - ! exists( "snapshot" )) - { - WARNING( "Not a Non-Mixer project: \"%s\"", name ); - r = false; - } - - chdir( pwd ); - - return r; -} - -/** Try to open project /name/. Returns 0 if sucsessful, an error code - * otherwise */ -int -Project::open ( const char *name ) -{ - if ( ! validate( name ) ) - return E_INVALID; - - close(); - - chdir( name ); - - if ( ! acquire_lock( &_lockfd, ".lock" ) ) - return E_LOCKED; - - int version; - char *creation_date; - char *created_by; - - if ( ! read_info( &version, &creation_date, &created_by ) ) - return E_INVALID; - - if ( strncmp( created_by, APP_TITLE, strlen( APP_TITLE ) ) ) - return E_INVALID; - - if ( version != PROJECT_VERSION ) - return E_VERSION; - - _is_opening = true; - - if ( ! Loggable::replay( "snapshot" ) ) - return E_INVALID; - - if ( creation_date ) - { - strcpy( _created_on, creation_date ); - free( creation_date ); - } - else - *_created_on = 0; - - - getcwd( _path, sizeof( _path ) ); - - set_name( _path ); - - _is_open = true; - - _is_opening = false; -// tle->load_timeline_settings(); - -// timeline->zoom_fit(); - -// Loggable::clear_dirty(); - - MESSAGE( "Loaded project \"%s\"", name ); - - return 0; -} - -/** Create a new project /name/ from existing template - * /template_name/ */ -bool -Project::create ( const char *name, const char *template_name ) -{ - if ( exists( name ) ) - { - WARNING( "Project already exists" ); - return false; - } - - close(); - - if ( mkdir( name, 0777 ) ) - { - WARNING( "Cannot create project directory: %s", name ); - return false; - } - - if ( chdir( name ) ) - { - FATAL( "WTF? Cannot change to new project directory" ); - return false; - } - -// mkdir( "sources", 0777 ); - creat( "snapshot", 0666 ); - - /* TODO: copy template */ - - write_info(); - - if ( open( name ) == 0 ) - { -// /* add the bare essentials */ -// timeline->beats_per_minute( 0, 120 ); -// timeline->time( 0, 4, 4 ); - - MESSAGE( "Created project \"%s\" from template \"%s\"", name, template_name ); - return true; - } - else - { - WARNING( "Failed to open newly created project" ); - return false; - } -} - -/** Replace the journal with a snapshot of the current state */ -void -Project::compact ( void ) -{ - Loggable::compact(); -} diff --git a/mixer/src/Project.H b/mixer/src/Project.H deleted file mode 100644 index 42328dc..0000000 --- a/mixer/src/Project.H +++ /dev/null @@ -1,66 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008, 2010 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -const char template_dir[] = "share/non-daw/templates"; -const char user_template_dir[] = "~/.non-daw/templates"; - -#include "types.h" - -class Project -{ - - static int _lockfd; - static bool _is_open; - static bool _is_opening; - static char _name[256]; - static char _path[512]; - static char _created_on[40]; - - static bool write_info ( void ); - static bool read_info ( int *version, char **creation_date, char **created_by ); - static void set_name ( const char *name ); - static const char *_errstr[]; - -public: - - enum - { - E_INVALID = -1, - E_LOCKED = -2, - E_PERM = -3, - E_SAMPLERATE = -4, - E_VERSION = -5 - }; - - static const char *errstr ( int n ) { return _errstr[ ( 0 - n ) - 1 ]; } - - static const char *name ( void ) { return Project::_name; } - static void name ( const char *v ); - static void compact ( void ); - static bool close ( void ); - static bool save ( void ); - static bool validate ( const char *name ); - static int open ( const char *name ); - static bool open ( void ) { return _is_open; } - static bool create ( const char *name, const char *template_name ); - - static const char *path ( void ) { return _path; } - static const char *created_on ( void ) { return _created_on; } - static const bool is_opening ( void ) { return _is_opening; } -}; diff --git a/mixer/src/Spatialization_Console.C b/mixer/src/Spatialization_Console.C deleted file mode 100644 index e82527a..0000000 --- a/mixer/src/Spatialization_Console.C +++ /dev/null @@ -1,229 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2009 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include - -#include -#include -#include -#include - -#include - -#include "Module.H" -#include "Spatialization_Console.H" -#include "Controller_Module.H" -#include "Chain.H" -#include "Panner.H" -#include "Mixer_Strip.H" -#include "Mixer.H" - -#include "debug.h" -#include - - - -Spatialization_Console::Spatialization_Console ( void ) : Fl_Double_Window( 850, 850 ) -{ - _resized = false; - - label( "Spatialization Console" ); - - labelfont( FL_HELVETICA ); - labelsize( 14 ); - - int padding = 48; - int S = 802; - - if ( fl_display ) - /* don't open the display in noui mode... */ - { - int sx, sy, sw, sh; - - Fl::screen_xywh( sx, sy, sw, sh ); - - if ( sw < 850 || sh < 850 ) - { - /* if screen isn't big enough, use smaller version of control */ - S = 502; - } - } - - panner = new Panner( 25,25, S, S ); - panner->callback( cb_panner_value_handle, this ); - panner->when( FL_WHEN_CHANGED ); - - size( S + padding, S + padding ); - - callback( cb_window, this ); - end(); - - make_controls(); - - mixer->spatialization_console = this; -} - -Spatialization_Console::~Spatialization_Console ( ) -{ -// controls_by_port.clear(); - mixer->spatialization_console = NULL; - -} - - -void -Spatialization_Console::get ( Log_Entry &e ) const -{ - e.add( ":range", panner->range() ); - e.add( ":projection", panner->projection() ); - e.add( ":shown", ((const Fl_Double_Window*)this)->shown() ); -} - -void -Spatialization_Console::set ( Log_Entry &e ) -{ - for ( int i = 0; i < e.size(); ++i ) - { - const char *s, *v; - - e.get( i, &s, &v ); - - if ( ! ( strcmp( s, ":range" ) ) ) - panner->range( atoi( v ) ); - if ( ! ( strcmp( s, ":projection" ) ) ) - panner->projection( atoi( v ) ); - else if ( ! ( strcmp( s, ":shown" ) ) ) - { - if ( atoi( v ) ) - { - if ( fl_display ) - { - show(); - } - } - else - hide(); - } - } -} - - - -void -Spatialization_Console::cb_window ( Fl_Widget *w, void *v ) -{ - ((Spatialization_Console*)v)->cb_window(w); -} - -void -Spatialization_Console::cb_window ( Fl_Widget *w ) -{ - w->hide(); - mixer->update_menu(); -} - - - -void -Spatialization_Console::make_controls ( void ) -{ - panner->clear_points(); - - for ( int i = 0; i < mixer->nstrips(); i++ ) - { - Mixer_Strip *o = mixer->track_by_number( i ); - - if ( o->spatializer() ) - { - Panner::Point p; - - p.color = o->color(); - p.userdata = o->spatializer(); - p.label = o->name(); - - if ( o->spatializer()->is_controlling() ) - { - p.visible = true; - - p.azimuth( o->spatializer()->control_output[0].control_value() ); - p.elevation( o->spatializer()->control_output[1].control_value() ); - if ( o->spatializer()->control_output[2].connected() ) - { - p.radius_enabled = true; - p.radius( o->spatializer()->control_output[2].control_value() ); - } - } - else - p.visible = false; - - panner->add_point(p); - } - } - - panner->redraw(); -} - -void -Spatialization_Console::cb_panner_value_handle ( Fl_Widget *w, void *v ) -{ -// callback_data *cd = (callback_data*)v; - - Spatialization_Console *sc = (Spatialization_Console*)v; - - Panner::Point *p = sc->panner->pushed(); - - Controller_Module *cm = (Controller_Module*)p->userdata; - - cm->control_output[0].control_value( p->azimuth() ); - cm->control_output[1].control_value( p->elevation() ); - if ( p->radius_enabled ) - cm->control_output[2].control_value( p->radius() ); -} - -/* Display changes initiated via automation or from other parts of the GUI */ -void -Spatialization_Console::handle_control_changed ( Controller_Module *m ) -{ - if ( Fl::pushed() == panner ) - return; - - for ( int i = 0; i < panner->points(); i++ ) - { - Panner::Point *p = panner->point(i); - - if ( p->userdata == m ) - { - p->azimuth( m->control_output[0].control_value() ); - p->elevation( m->control_output[1].control_value() ); - if ( p->radius_enabled ) - p->radius( m->control_output[2].control_value() ); - - if ( panner->visible_r() ) - panner->redraw(); - - break; - } - } -} - -void -Spatialization_Console::update ( void ) -{ - make_controls(); -} diff --git a/mixer/src/Spatialization_Console.H b/mixer/src/Spatialization_Console.H deleted file mode 100644 index 5ca0274..0000000 --- a/mixer/src/Spatialization_Console.H +++ /dev/null @@ -1,66 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2009 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include -#include -#include "Loggable.H" - -class Fl_Pack; -class Fl_Flowpack; -class Module; -class Fl_Menu_Button; -class Panner; -class Controller_Module; -#include - -class Spatialization_Console : public Loggable, public Fl_Double_Window -{ - Panner *panner; - - static void cb_panner_value_handle ( Fl_Widget *w, void *v ); - void make_controls ( void ); - - static void cb_window ( Fl_Widget *w, void *v ); - static void cb_window ( Fl_Widget *w ); - - bool _resized; - - int azimuth_port_number; - int elevation_port_number; - - std::vector controls_by_port; - -protected: - - virtual void get ( Log_Entry &e ) const; - virtual void set ( Log_Entry &e ); - -public: - - LOG_CREATE_FUNC( Spatialization_Console ); - - void handle_control_changed ( Controller_Module *m ); - - void update ( void ); - - Spatialization_Console ( ); - virtual ~Spatialization_Console ( ); -}; diff --git a/mixer/src/Spatializer_Module.C b/mixer/src/Spatializer_Module.C deleted file mode 100644 index 5649053..0000000 --- a/mixer/src/Spatializer_Module.C +++ /dev/null @@ -1,862 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2013 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include -#include -#include "Spatializer_Module.H" -#include "dsp.h" -#include "Module_Parameter_Editor.H" - -static const float max_distance = 15.0f; - -#include - -class filter -{ -protected: - - float _sample_rate; - float _w; - float _last_output; - float _last_cutoff; - float _amount_of_current; - float _amount_of_last; - bool _bypass; - - void recalculate ( float cutoff ) - { - _last_cutoff = cutoff; - - if (_last_cutoff <= 10 ) - { - _bypass = true; - } - else if (_last_cutoff > _sample_rate * 0.5f ) - { - _bypass = true; - } - else - { - const float c = 2.0f - cosf(_w * _last_cutoff); - _amount_of_last = c - sqrtf(c * c - 1.0f); - _amount_of_current = 1 - _amount_of_last; - - _bypass = false; - } - } - -public: - - void sample_rate ( nframes_t srate ) - { - _sample_rate = srate; - _w = (2 * M_PI) / (float)srate; - } - - filter () - { - _last_output = 0; - _last_cutoff = 0; - _w = 0; - _sample_rate = 0; - _amount_of_current = 0; - _amount_of_last = 0; - _bypass = false; - } - - - void - run_lowpass ( float *buf, float cutoff, nframes_t nframes ) - { - if (cutoff != _last_cutoff) - { - recalculate( cutoff ); - } - - if ( !_bypass ) - { - while ( nframes-- ) - { - *buf = _last_output = (_amount_of_current * *buf + _amount_of_last * _last_output); - buf++; - } - } - } - - void - run_highpass ( float *buf, float cutoff, nframes_t nframes ) - { - if (cutoff != _last_cutoff) - { - recalculate( cutoff ); - } - - if ( !_bypass ) - { - while ( nframes-- ) - { - _last_output = ((_amount_of_current * *buf) + (_amount_of_last * _last_output)); - *buf = *buf - _last_output; - buf++; - } - } - } - -}; - -class delay -{ - unsigned int _sample_rate; - float *_buffer; - long _write_index; - unsigned int _buffer_mask; - float _max_delay; - nframes_t _samples_since_motion; - nframes_t _interpolation_delay_samples; - float _interpolation_delay_coeff; - -public: - - void sample_rate ( float srate ) - { - if ( _buffer ) - free( _buffer ); - - unsigned int size, minsize; - minsize = (unsigned long)(srate * _max_delay); - - size = 1; - while (size < minsize) - size <<= 1; - - _buffer = (float *)calloc(size, sizeof(float)); - - _buffer_mask = size - 1; - - _sample_rate = srate; - - _write_index = 0; - - _interpolation_delay_samples = 0.2f * srate; - _interpolation_delay_coeff = 1.0f / (float)_interpolation_delay_samples; - } - - - delay ( float max_delay ) - { - _interpolation_delay_samples = 0; - _interpolation_delay_coeff = 0; - _samples_since_motion = 0; - _max_delay = max_delay; - _write_index = 0; - _sample_rate = 0; - _buffer = 0; - _buffer_mask =0; - } - - ~delay ( ) - { - if ( _buffer ) - free( _buffer ); - } - - void run ( float *buf, float *delaybuf, float delay, nframes_t nframes ) - { - const nframes_t min_delay_samples = 4; - - - if ( delaybuf ) - { - for (nframes_t i = 0; i < nframes; i++ ) - { - float delay_samples = delaybuf[i] * _sample_rate; - - if ( delay_samples > _buffer_mask + 1 ) - delay_samples = _buffer_mask; - else if ( delay_samples < min_delay_samples ) - delay_samples = min_delay_samples; - - long idelay_samples = (long)delay_samples; - const float frac = delay_samples - idelay_samples; - const long read_index = _write_index - idelay_samples; - - _buffer[_write_index++ & _buffer_mask] = buf[i]; - - const float read = interpolate_cubic (frac, - _buffer[(read_index-1) & _buffer_mask], - _buffer[read_index & _buffer_mask], - _buffer[(read_index+1) & _buffer_mask], - _buffer[(read_index+2) & _buffer_mask]); - - buf[i] = read; - } - - _samples_since_motion = 0; - } - else - { - float delay_samples = delay * _sample_rate; - - if ( delay_samples > _buffer_mask + 1 ) - delay_samples = _buffer_mask; - else if ( delay_samples < min_delay_samples ) - delay_samples = min_delay_samples; - - long idelay_samples = (long)delay_samples; - - if ( _samples_since_motion >= _interpolation_delay_samples ) - { - /* switch to non-interpolating mode */ - for (nframes_t i = 0; i < nframes; i++ ) - { - const long read_index = _write_index - idelay_samples; - - _buffer[_write_index++ & _buffer_mask] = buf[i]; - - const float read = _buffer[read_index & _buffer_mask]; - - buf[i] = read; - } - } - else - { - /* linearly interpolate our way to an integer sample delay */ - - float frac = delay_samples - idelay_samples; - - const float scale = 1.0f - (_samples_since_motion * _interpolation_delay_coeff); - - for (nframes_t i = 0; i < nframes; i++ ) - { - const long read_index = _write_index - idelay_samples; - - _buffer[_write_index++ & _buffer_mask] = buf[i]; - - frac *= scale; - - const float read = interpolate_cubic (frac, - _buffer[(read_index-1) & _buffer_mask], - _buffer[read_index & _buffer_mask], - _buffer[(read_index+1) & _buffer_mask], - _buffer[(read_index+2) & _buffer_mask]); - - buf[i] = read; - } - - _samples_since_motion += nframes; - } - } - } -}; - -class ambisonic_panner -{ - /* last values */ - float _x, _y, _z; - - /* for stereo */ - float _xr, _yr; - - static inline void spherical_to_cartesian (float a, float e, float &x, float &y, float &z ) - { - a *= DEG2RAD; - e *= DEG2RAD; - - z = sinf(e); - const float ce = cosf(e); - x = ce * cosf(-a); - y = ce * sinf(-a); - } - -public: - - ambisonic_panner ( ) - { - _x = _y = _z = _xr = _yr = 1.0f; - } - - void - run_mono ( float *in, - float *out_w, float *out_x, float *out_y, float *out_z, - float a, float e, - nframes_t nframes ) - { - float x = _x; - float y = _y; - float z = _z; - - spherical_to_cartesian( a, e, _x, _y, _z ); - - const float c = 1.0f / (float)nframes; - - /* calculate increment for linear interpolation */ - const float dx = (_x - x) * c; - const float dy = (_y - y) * c; - const float dz = (_z - z) * c; - - while ( nframes-- ) - { - x += dx; - y += dy; - z += dz; - - const float t = *in++; - - *out_w++ = ONEOVERSQRT2 * t; - *out_x++ = x * t; - *out_y++ = y * t; - *out_z++ = z * t; - } - } - - void - run_stereo ( float *in_l, float *in_r, - float *out_w, float *out_x, float *out_y, float *out_z, - float a, float e, float w, - nframes_t nframes ) - { - float x = _x; - float y = _y; - float z = _z; - float xr = _xr; - float yr = _yr; - - w *= 0.5f; - - spherical_to_cartesian( a - w, e, _x, _y, _z ); - spherical_to_cartesian( a + w, e, _xr, _yr, _z ); - - const float c = 1.0f / (float)nframes; - - /* calculate increment for linear interpolation */ - const float dx = (_x - x) * c; - const float dy = (_y - y) * c; - const float dz = (_z - z) * c; - const float dxr = (_xr - xr) * c; - const float dyr = (_yr - yr) * c; - - while ( nframes-- ) - { - x += dx; - y += dy; - z += dz; - xr += dxr; - yr += dyr; - - const float L = *in_l++; - const float R = *in_r++; - - const float LR = L + R; - - *out_w++ = ONEOVERSQRT2 * LR; - *out_x++ = x * L + xr * R; - *out_y++ = y * L + yr * R; - *out_z++ = z * LR; - } - } -}; - - - -Spatializer_Module::Spatializer_Module ( ) : JACK_Module ( false ) -{ - is_default( false ); - - _panner = 0; - _early_panner = 0; - - { - Port p( this, Port::INPUT, Port::CONTROL, "Azimuth" ); - p.hints.type = Port::Hints::LINEAR; - p.hints.ranged = true; - p.hints.minimum = -180.0f; - p.hints.maximum = 180.0f; - p.hints.default_value = 0.0f; - - p.connect_to( new float ); - p.control_value( p.hints.default_value ); - - add_port( p ); - } - - { - Port p( this, Port::INPUT, Port::CONTROL, "Elevation" ); - p.hints.type = Port::Hints::LINEAR; - p.hints.ranged = true; - p.hints.minimum = -90.0f; - p.hints.maximum = 90.0f; - p.hints.default_value = 0.0f; - - p.connect_to( new float ); - p.control_value( p.hints.default_value ); - - add_port( p ); - } - - { - Port p( this, Port::INPUT, Port::CONTROL, "Radius" ); - p.hints.type = Port::Hints::LINEAR; - p.hints.ranged = true; - p.hints.minimum = 0.0f; - p.hints.maximum = max_distance; - p.hints.default_value = 1.0f; - - p.connect_to( new float ); - p.control_value( p.hints.default_value ); - - add_port( p ); - } - - { - Port p( this, Port::INPUT, Port::CONTROL, "Highpass (Hz)" ); - p.hints.type = Port::Hints::LINEAR; - p.hints.ranged = true; - p.hints.minimum = 0.0f; - p.hints.maximum = 600.0f; - p.hints.default_value = 0.0f; - p.hints.visible = false; - - p.connect_to( new float ); - p.control_value( p.hints.default_value ); - - add_port( p ); - } - - { - Port p( this, Port::INPUT, Port::CONTROL, "Width" ); - p.hints.type = Port::Hints::LINEAR; - p.hints.ranged = true; - p.hints.minimum = -90.0f; - p.hints.maximum = 90.0f; - p.hints.default_value = 90.0f; - p.connect_to( new float ); - p.control_value( p.hints.default_value ); - - add_port( p ); - } - - { - Port p( this, Port::INPUT, Port::CONTROL, "Angle" ); - p.hints.type = Port::Hints::LINEAR; - p.hints.ranged = true; - p.hints.minimum = -180.0f; - p.hints.maximum = +180.0f; - p.hints.default_value = 0.0f; - p.connect_to( new float ); - p.control_value( p.hints.default_value ); - - add_port( p ); - } - - { - Port p( this, Port::INPUT, Port::CONTROL, "Advanced Options" ); - p.hints.type = Port::Hints::BOOLEAN; - p.hints.ranged = true; - p.hints.minimum = 0.0f; - p.hints.maximum = 1.0f; - p.hints.default_value = 0.0f; - p.connect_to( new float ); - p.control_value( p.hints.default_value ); - - add_port( p ); - } - - { - Port p( this, Port::INPUT, Port::CONTROL, "Speed of Sound" ); - p.hints.type = Port::Hints::BOOLEAN; - p.hints.ranged = true; - p.hints.minimum = 0.0f; - p.hints.maximum = 1.0f; - p.hints.default_value = 1.0f; - p.hints.visible = false; - p.connect_to( new float ); - p.control_value( p.hints.default_value ); - - add_port( p ); - } - - { - Port p( this, Port::INPUT, Port::CONTROL, "Late Gain (dB)" ); - p.hints.type = Port::Hints::LOGARITHMIC; - p.hints.ranged = true; - p.hints.minimum = -70.0f; - p.hints.maximum = 6.0f; - p.hints.default_value = 0.0f; - p.hints.visible = false; - p.connect_to( new float ); - p.control_value( p.hints.default_value ); - - add_port( p ); - } - - { - Port p( this, Port::INPUT, Port::CONTROL, "Early Gain (dB)" ); - p.hints.type = Port::Hints::LOGARITHMIC; - p.hints.ranged = true; - p.hints.minimum = -70.0f; - p.hints.maximum = 6.0f; - p.hints.default_value = 0.0f; - p.hints.visible = false; - p.connect_to( new float ); - p.control_value( p.hints.default_value ); - - add_port( p ); - } - - log_create(); - - _panner = new ambisonic_panner(); - _early_panner = new ambisonic_panner(); - - labelsize(9); - - color( FL_DARK1 ); - - copy_label( "Spatializer" ); - align(FL_ALIGN_LEFT|FL_ALIGN_TOP|FL_ALIGN_INSIDE); - - gain_smoothing.sample_rate( sample_rate() ); - late_gain_smoothing.sample_rate( sample_rate() ); - early_gain_smoothing.sample_rate( sample_rate() ); - delay_smoothing.cutoff( 0.5f ); - delay_smoothing.sample_rate( sample_rate() ); -} - -Spatializer_Module::~Spatializer_Module ( ) -{ - configure_inputs(0); - delete _early_panner; - delete _panner; - for ( unsigned int i = 0; i < control_input.size(); i++ ) - delete (float*)control_input[i].buffer(); -} - - - - -void -Spatializer_Module::handle_sample_rate_change ( nframes_t n ) -{ - gain_smoothing.sample_rate( n ); - delay_smoothing.sample_rate( n ); - early_gain_smoothing.sample_rate( n ); - late_gain_smoothing.sample_rate( n ); - - for ( unsigned int i = 0; i < audio_input.size(); i++ ) - { - _lowpass[i]->sample_rate( n ); - _highpass[i]->sample_rate( n ); - _delay[i]->sample_rate( n ); - } -} - -void -Spatializer_Module::draw ( void ) -{ - int W = 5; - - child(0)->size( w() - W, h() ); - Module::draw_box(x(),y(),w() - W,h()); - Module::draw_label(x() + 4,y(),w() - W,h()); - - Module *m = this; - - fl_color( fl_darker( FL_FOREGROUND_COLOR ) ); - - int spacing, offset; - - int ni = aux_audio_output.size(); - - spacing = h() / ni; - offset = spacing / 2; - for ( int i = ni; i--; ) - { - int xi = offset + ( spacing * i ); - fl_rectf( m->x() + m->w() - W, m->y() + xi, W, 2 ); - } -} - -void -Spatializer_Module::process ( nframes_t nframes ) -{ - float azimuth = control_input[0].control_value(); - float elevation = control_input[1].control_value(); - float radius = control_input[2].control_value(); - float highpass_freq = control_input[3].control_value(); - float width = control_input[4].control_value(); - float angle = control_input[5].control_value(); -// bool more_options = control_input[6].control_value(); - bool speed_of_sound = control_input[7].control_value() > 0.5f; - float late_gain = DB_CO( control_input[8].control_value() ); - float early_gain = DB_CO( control_input[9].control_value() ); - - control_input[3].hints.visible = highpass_freq != 0.0f; - - float delay_seconds = 0.0f; - - if ( speed_of_sound && radius > 1.0f ) - delay_seconds = ( radius - 1.0f ) / 340.29f; - - /* direct sound follows inverse square law */ - /* but it's just the inverse as far as SPL goes */ - - /* let's not go nuts... */ - if ( radius < 0.01f ) - radius = 0.01f; - - float gain = 1.0f / radius; - - /* float cutoff_frequency = gain * LOWPASS_FREQ; */ - - sample_t gainbuf[nframes]; - sample_t delaybuf[nframes]; - - bool use_gainbuf = false; - bool use_delaybuf = delay_smoothing.apply( delaybuf, nframes, delay_seconds ); - - for ( unsigned int i = 0; i < audio_input.size(); i++ ) - { - sample_t *buf = (sample_t*) audio_input[i].buffer(); - - /* frequency effects */ - _highpass[i]->run_highpass( buf, highpass_freq, nframes ); - - /* send to late reverb */ - if ( i == 0 ) - buffer_copy( (sample_t*)aux_audio_output[0].jack_port()->buffer(nframes), buf, nframes ); - else - buffer_mix( (sample_t*)aux_audio_output[0].jack_port()->buffer(nframes), buf, nframes ); - - } - - { - use_gainbuf = late_gain_smoothing.apply( gainbuf, nframes, late_gain ); - - /* gain effects */ - if ( unlikely( use_gainbuf ) ) - buffer_apply_gain_buffer( (sample_t*)aux_audio_output[0].jack_port()->buffer(nframes), gainbuf, nframes ); - else - buffer_apply_gain( (sample_t*)aux_audio_output[0].jack_port()->buffer(nframes), nframes, late_gain ); - } - - float early_angle = azimuth - angle; - if ( early_angle > 180.0f ) - early_angle = -180 - ( early_angle - 180 ); - else if ( early_angle < -180.0f ) - early_angle = 180 - ( early_angle + 180 ); - - /* send to early reverb */ - if ( audio_input.size() == 1 ) - { - _early_panner->run_mono( (sample_t*)audio_input[0].buffer(), - (sample_t*)aux_audio_output[1].jack_port()->buffer(nframes), - (sample_t*)aux_audio_output[2].jack_port()->buffer(nframes), - (sample_t*)aux_audio_output[3].jack_port()->buffer(nframes), - (sample_t*)aux_audio_output[4].jack_port()->buffer(nframes), - azimuth + angle, - elevation, - nframes ); - } - else - { - _early_panner->run_stereo( (sample_t*)audio_input[0].buffer(), - (sample_t*)audio_input[1].buffer(), - (sample_t*)aux_audio_output[1].jack_port()->buffer(nframes), - (sample_t*)aux_audio_output[2].jack_port()->buffer(nframes), - (sample_t*)aux_audio_output[3].jack_port()->buffer(nframes), - (sample_t*)aux_audio_output[4].jack_port()->buffer(nframes), - azimuth + angle, - elevation, - width, - nframes ); - } - - { - use_gainbuf = early_gain_smoothing.apply( gainbuf, nframes, early_gain ); - - for ( int i = 1; i < 5; i++ ) - { - /* gain effects */ - if ( unlikely( use_gainbuf ) ) - buffer_apply_gain_buffer( (sample_t*)aux_audio_output[i].jack_port()->buffer(nframes), gainbuf, nframes ); - else - buffer_apply_gain( (sample_t*)aux_audio_output[i].jack_port()->buffer(nframes), nframes, early_gain ); - } - } - - float corrected_angle = fabs( angle ) - (fabs( width ) * 0.5f); - - if ( corrected_angle < 0.0f ) - corrected_angle = 0.0f; - - float cutoff_frequency = ( 1.0f / ( 1.0f + corrected_angle ) ) * 300000.0f; - - use_gainbuf = gain_smoothing.apply( gainbuf, nframes, gain ); - - for ( unsigned int i = 0; i < audio_input.size(); i++ ) - { - /* gain effects */ - if ( unlikely( use_gainbuf ) ) - buffer_apply_gain_buffer( (sample_t*)audio_input[i].buffer(), gainbuf, nframes ); - else - buffer_apply_gain( (sample_t*)audio_input[i].buffer(), nframes, gain ); - - /* frequency effects */ - _lowpass[i]->run_lowpass( (sample_t*)audio_input[i].buffer(), cutoff_frequency, nframes ); - - /* delay effects */ - if ( likely( speed_of_sound ) ) - { - if ( unlikely( use_delaybuf ) ) - _delay[i]->run( (sample_t*)audio_input[i].buffer(), delaybuf, 0, nframes ); - else - _delay[i]->run( (sample_t*)audio_input[i].buffer(), 0, delay_seconds, nframes ); - } - } - - /* now do direct outputs */ - if ( audio_input.size() == 1 ) - { - _panner->run_mono( (sample_t*)audio_input[0].buffer(), - (sample_t*)audio_output[0].buffer(), - (sample_t*)audio_output[1].buffer(), - (sample_t*)audio_output[2].buffer(), - (sample_t*)audio_output[3].buffer(), - azimuth, - elevation, - nframes ); - } - else - { - _panner->run_stereo( (sample_t*)audio_input[0].buffer(), - (sample_t*)audio_input[1].buffer(), - (sample_t*)audio_output[0].buffer(), - (sample_t*)audio_output[1].buffer(), - (sample_t*)audio_output[2].buffer(), - (sample_t*)audio_output[3].buffer(), - azimuth, - elevation, - width, - nframes ); - } -} - -void -Spatializer_Module::handle_control_changed ( Port *p ) -{ - if ( p == &control_input[6] ) - { - bool v = p->control_value(); - - control_input[7].hints.visible = v; - control_input[8].hints.visible = v; - control_input[9].hints.visible = v; - - DMESSAGE( "reloading" ); - if ( _editor ) - _editor->reload(); - } -} - -bool -Spatializer_Module::configure_inputs ( int n ) -{ - output_connection_handle->show(); - output_connection_handle->tooltip( "Late Reverb" ); - output_connection2_handle->show(); - output_connection2_handle->tooltip( "Early Reverb" ); - - int on = audio_input.size(); - - if ( n > on ) - { - for ( int i = n - on; i--; ) - { - { filter *o = new filter(); - o->sample_rate( sample_rate() ); - _lowpass.push_back( o ); - } - - { - filter *o = new filter(); - o->sample_rate( sample_rate() ); - _highpass.push_back( o ); - } - { - delay *o = new delay( max_distance / 340.29f ); - o->sample_rate( sample_rate() ); - _delay.push_back( o ); - } - - add_port( Port( this, Port::INPUT, Port::AUDIO ) ); - } - } - else if ( n < on ) - { - - for ( int i = on - n; i--; ) - { - delete _lowpass.back(); - _lowpass.pop_back(); - delete _highpass.back(); - _highpass.pop_back(); - delete _delay.back(); - _delay.pop_back(); - - audio_input.pop_back(); - } - } - -// control_input[4].hints.visible = audio_input.size() == 2; - - control_input[4].hints.default_value = audio_input.size() == 2 ? 90.0f : 0.0f; - - if ( n == 0 ) - { - remove_aux_audio_outputs(); - audio_output.clear(); - audio_input.clear(); - } - else - { - if ( audio_output.size() != 4 ) - { - for ( int i = 0; i < 4; i++ ) - { - add_port( Port( this, Port::OUTPUT, Port::AUDIO ) ); - } - } - - if ( aux_audio_output.size() != 5 ) - { - add_aux_audio_output( "late reverb", 0 ); - add_aux_audio_output( "early reverb", 0 ); - add_aux_audio_output( "early reverb", 1 ); - add_aux_audio_output( "early reverb", 2 ); - add_aux_audio_output( "early reverb", 3 ); - } - } - - _connection_handle_outputs[0][0] = 0; - _connection_handle_outputs[0][1] = 1; - _connection_handle_outputs[1][0] = 1; - _connection_handle_outputs[1][1] = aux_audio_output.size(); - - return true; -} diff --git a/mixer/src/Spatializer_Module.H b/mixer/src/Spatializer_Module.H deleted file mode 100644 index 45a4699..0000000 --- a/mixer/src/Spatializer_Module.H +++ /dev/null @@ -1,67 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2013 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include "JACK_Module.H" -#include "dsp.h" -#include - -class filter; -class delay; -class ambisonic_panner; -class Spatializer_Module : public JACK_Module -{ - Value_Smoothing_Filter gain_smoothing; - Value_Smoothing_Filter delay_smoothing; - Value_Smoothing_Filter late_gain_smoothing; - Value_Smoothing_Filter early_gain_smoothing; - - std::vector _lowpass; - std::vector _highpass; - std::vector _delay; - - ambisonic_panner *_panner; - ambisonic_panner *_early_panner; - -public: - - virtual const char *name ( void ) const { return "Spatializer"; } - - int can_support_inputs ( int n ) { return n > 0 && n < 3 ? 4 : -1; } - - virtual bool configure_inputs ( int n ); - - Spatializer_Module ( ); - virtual ~Spatializer_Module ( ); - - LOG_CREATE_FUNC( Spatializer_Module ); - - MODULE_CLONE_FUNC(Spatializer_Module); - - virtual void handle_sample_rate_change ( nframes_t n ); - virtual void handle_control_changed ( Port *p ); - virtual void draw ( void ); - -protected: - - virtual void process ( nframes_t nframes ); - -}; - diff --git a/mixer/src/SpectrumView.C b/mixer/src/SpectrumView.C deleted file mode 100644 index bfd5792..0000000 --- a/mixer/src/SpectrumView.C +++ /dev/null @@ -1,370 +0,0 @@ -/*******************************************************************************/ -/* Copyright (C) 2013 Mark McCurry */ -/* Copyright (C) 2013 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "SpectrumView.H" -#include -#include - -#include - -#include -#include -#include -#include - -#include - -static std::map _cached_plan; - -float SpectrumView::_fmin = 0; -float SpectrumView::_fmax = 0; -unsigned int SpectrumView::_sample_rate = 0; - -void -SpectrumView::clear_bands ( void ) -{ - if ( _bands ) - delete[] _bands; - - _bands = NULL; -} - -void -SpectrumView::data ( float *data, unsigned int nframes ) -{ - if ( _data ) - delete[] _data; - - _data = data; - _nframes = nframes; - - clear_bands(); - - redraw(); -} - -void -SpectrumView::clear_plans ( void ) -{ - /* invalidate all plans */ - - for ( std::map::iterator i = _cached_plan.begin(); - i != _cached_plan.end(); - i++ ) - { - delete[] i->second; - } - - _cached_plan.clear(); -} - -void -SpectrumView::sample_rate ( unsigned int sample_rate ) -{ - if ( _sample_rate != sample_rate ) - { - _sample_rate = sample_rate; - _fmin = 10; - /* _fmax = 28000; */ - /* /\* if ( _fmax > _sample_rate * 0.5f ) *\/ */ - _fmax = _sample_rate * 0.5f; - - clear_plans(); - } -} - - -#define min(a,b) (a b=log(Fmin)/log(10) - // log10(Fmax)=a+b -> a=log(Fmax)/log(10)-b - - const float b = logf(Fmin)/logf(10); - const float a = logf(Fmax)/logf(10)-b; - - //Evaluate at set frequencies - const float one_over_samples = 1.0f / samples; - const float one_over_samplerate = 1.0f / Fs; - - for(unsigned i=0; i -0.001) - { - fl_line(xloc*W+x(), y(), xloc*W+x(), y()+H); - - if ( j == 1 || j == 2 || j == 5 ) - { - sprintf(label, "%0.f%s", freq < 1000.0 ? freq : freq / 1000.0, freq < 1000.0 ? "" : "k" ); - int sx = x() + xloc*W + 1; - if ( sx < x() * W - 20 ) - fl_draw(label, sx, y()+h()); - } - } - } - } - - /* draw 0dB line */ - { - fl_line_style(FL_DASH,0); - float i = ((_dbmax-_dbmin)+_dbmin) / (_dbmax-_dbmin); - - int level = y()+H*i; - - fl_color(fl_color_add_alpha(fl_rgb_color(240,240,240), 60 )); - fl_line(x(), level, x()+W, level); - fl_line_style(FL_SOLID,0); - } -} - -void -SpectrumView::draw_curve ( void ) -{ - if ( !_bands ) - return; - - int W = w() - padding_right; - - //Build lines - float inc = 1.0f / (float)W; - - float fx = 0; - for( int i = 0; i < W; i++, fx += inc ) - fl_vertex(fx, 1.0f - _bands[i]); -} - -void -SpectrumView::draw ( void ) -{ - //Clear Widget - Fl_Box::draw(); - - int W = w() - padding_right; - int H = h() - padding_bottom; - - if ( !_bands ) { - analyze_data( W ); - } - - //Draw grid - fl_color(fl_color_add_alpha(fl_rgb_color( 100,100,100), 50 )); - - draw_semilog(); - - fl_push_clip( x(),y(),W,H); - - - fl_color(fl_color_add_alpha( selection_color(), 20 )); - - fl_push_matrix(); - fl_translate( x(), y() + 2 ); - fl_scale( W,H- 2 ); - - fl_begin_polygon(); - - fl_vertex(0.0,1.0); - - draw_curve(); - - fl_vertex(1.0,1.0); - - fl_end_polygon(); - - fl_color(fl_color_add_alpha( selection_color(), 100 )); - fl_begin_line(); - fl_line_style(FL_SOLID,2); - - /* fl_vertex(0.0,1.0); */ - - draw_curve(); - - /* fl_vertex(1.0,1.0); */ - - fl_end_line(); - - fl_pop_matrix(); - - fl_line_style(FL_SOLID,0); - - fl_pop_clip(); -} - -void -SpectrumView::resize ( int X, int Y, int W, int H ) -{ - if ( W != w() ) - clear_bands(); - - Fl_Box::resize(X,Y,W,H); -} - diff --git a/mixer/src/SpectrumView.H b/mixer/src/SpectrumView.H deleted file mode 100644 index 21200a5..0000000 --- a/mixer/src/SpectrumView.H +++ /dev/null @@ -1,64 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2013 Mark McCurry */ -/* Copyright (C) 2013 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include - -class SpectrumView : public Fl_Box -{ - static unsigned int _sample_rate; - static float _fmin; - static float _fmax; - unsigned int _nframes; - - float * _data; - float * _bands; - float _dbmin; - float _dbmax; - bool _auto_level; - - void draw_curve ( void ); - void draw_semilog ( void ); - void analyze_data ( unsigned int plan_size ); - void clear_bands ( void ); - static void clear_plans ( void ); - -public: - - static void sample_rate ( unsigned int sample_rate ); - - /* set dB range. If min == max, then auto leveling will be enabled */ - void db_range ( float min, float max ) - { - _dbmin = min; - _dbmax = max; - _auto_level = min == max; - } - - /** /data/ must point to allocated memory. It will be freed when new data is set or when the control is destroyed */ - - void data ( float *data, unsigned int data_frames ); - - SpectrumView ( int X, int Y, int W, int H, const char *L=0 ); - virtual ~SpectrumView ( ); - - virtual void resize ( int X, int Y, int W, int H ); - virtual void draw ( void ); -}; - diff --git a/mixer/src/const.h b/mixer/src/const.h deleted file mode 100644 index 1cccaee..0000000 --- a/mixer/src/const.h +++ /dev/null @@ -1,24 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#define APP_NAME "Non-Mixer" -#define APP_TITLE "The Non-Mixer" -#define __MODULE__ "non-mixer" diff --git a/mixer/src/main.C b/mixer/src/main.C deleted file mode 100644 index 4e56e02..0000000 --- a/mixer/src/main.C +++ /dev/null @@ -1,327 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "const.h" - -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include "Thread.H" -#include "debug.h" - -#include "Mixer.H" -#include "Project.H" - -#include "Loggable.H" - -/* for registration */ -#include "Module.H" -#include "Gain_Module.H" -#include "Spatializer_Module.H" -#include "Plugin_Module.H" -#include "JACK_Module.H" -#include "Meter_Module.H" -#include "Meter_Indicator_Module.H" -#include "Controller_Module.H" -#include "Mono_Pan_Module.H" -#include "Chain.H" -#include "Mixer_Strip.H" -#include "AUX_Module.H" -#include "NSM.H" -#include "Spatialization_Console.H" -#include "Group.H" - -#include -#include - -#include "FL/Fl.H" -#include "FL/x.H" -#include "FL/Fl_PNG_Image.H" - -/* TODO: put these in a header */ -#define USER_CONFIG_DIR ".non-mixer/" - -const double NSM_CHECK_INTERVAL = 0.25f; - -const char COPYRIGHT[] = "Copyright (c) 2008-2013 Jonathan Moore Liles"; - -char *user_config_dir; -Mixer *mixer; -NSM_Client *nsm; - -char *instance_name; - -#include - -static int -ensure_dirs ( void ) -{ - asprintf( &user_config_dir, "%s/%s", getenv( "HOME" ), USER_CONFIG_DIR ); - - int r = mkdir( user_config_dir, 0777 ); - - return r == 0 || errno == EEXIST; -} - -#include - -static void cb_main ( Fl_Double_Window *, void *) -{ - if ( Fl::event() == FL_SHORTCUT && Fl::event_key() == FL_Escape ) - return; - - mixer->command_quit(); -} - -void -check_nsm ( void * v ) -{ - nsm->check(); - Fl::repeat_timeout( NSM_CHECK_INTERVAL, check_nsm, v ); -} - -static volatile int got_sigterm = 0; - -void -sigterm_handler ( int ) -{ - got_sigterm = 1; -} - -void -check_sigterm ( void * ) -{ - if ( got_sigterm ) - { - MESSAGE( "Got SIGTERM, quitting..." ); - mixer->quit(); - } - Fl::repeat_timeout( 0.1f, check_sigterm ); -} - - -int -main ( int argc, char **argv ) -{ - bool no_ui = false; - - fl_display = 0; - - printf( "%s %s %s -- %s\n", APP_TITLE, VERSION, "", COPYRIGHT ); - - Thread::init(); - - Thread thread( "UI" ); - thread.set(); - - ensure_dirs(); - - signal( SIGTERM, sigterm_handler ); - signal( SIGHUP, sigterm_handler ); - signal( SIGINT, sigterm_handler ); - - Fl_Tooltip::color( FL_BLACK ); - Fl_Tooltip::textcolor( FL_YELLOW ); - Fl_Tooltip::size( 14 ); - Fl_Tooltip::hoverdelay( 0.1f ); - - - LOG_REGISTER_CREATE( Mixer_Strip ); - LOG_REGISTER_CREATE( Chain ); - LOG_REGISTER_CREATE( Plugin_Module ); - LOG_REGISTER_CREATE( Gain_Module ); - LOG_REGISTER_CREATE( Spatializer_Module ); - LOG_REGISTER_CREATE( Meter_Module ); - LOG_REGISTER_CREATE( JACK_Module ); - LOG_REGISTER_CREATE( Mono_Pan_Module ); - LOG_REGISTER_CREATE( Meter_Indicator_Module ); - LOG_REGISTER_CREATE( Controller_Module ); - LOG_REGISTER_CREATE( AUX_Module ); - LOG_REGISTER_CREATE( Spatialization_Console ); - LOG_REGISTER_CREATE( Group ); - - signal( SIGPIPE, SIG_IGN ); - - - const char *osc_port = NULL; - - nsm = new NSM_Client; - - instance_name = strdup( APP_NAME ); - bool instance_override = false; - - static struct option long_options[] = - { - { "help", no_argument, 0, '?' }, - { "instance", required_argument, 0, 'i' }, - { "osc-port", required_argument, 0, 'p' }, - { "no-ui", no_argument, 0, 'u' }, - { 0, 0, 0, 0 } - }; - - int option_index = 0; - int c = 0; - - - while ( ( c = getopt_long_only( argc, argv, "", long_options, &option_index ) ) != -1 ) - { - switch ( c ) - { - case 'p': - DMESSAGE( "Using OSC port %s", optarg ); - osc_port = optarg; - break; - case 'i': - DMESSAGE( "Using OSC port %s", optarg ); - free( instance_name ); - instance_name = strdup( optarg ); - instance_override = true; - break; - case 'u': - DMESSAGE( "Disabling user interface" ); - no_ui = true; - break; - case '?': - printf( "\nUsage: %s [--instance instance_name] [--osc-port portnum] [path_to_project]\n\n", argv[0] ); - exit(0); - break; - } - } - - { - char *name = strdup( argv[0] ); - char *n = basename( name ); - - if ( ! strcmp( n, "non-mixer-noui" ) ) - no_ui = true; - - free( name ); - } - - if ( ! no_ui ) - { - Fl::visual( FL_DOUBLE | FL_RGB ); - - Fl::visible_focus( 0 ); - - fl_register_images(); - } - - Fl::lock(); - - Fl_Double_Window *main_window; - - - { - Fl_Double_Window *o = main_window = new Fl_Double_Window( 800, 600, "Non Mixer" ); - { - main_window->xclass( APP_NAME ); - - { - Fl_Widget *o = mixer = new Mixer( 0, 0, main_window->w(), main_window->h(), NULL ); - Fl_Group::current()->resizable(o); - } - } - o->end(); - - o->size_range( main_window->w(), mixer->min_h(), 0, 0 ); - - o->callback( (Fl_Callback*)cb_main, main_window ); - - if ( ! no_ui ) - { - o->show( 0,0 ); - } - - } - - Plugin_Module::spawn_discover_thread(); - - mixer->init_osc( osc_port ); - - char *nsm_url = getenv( "NSM_URL" ); - - if ( nsm_url ) - { - if ( ! nsm->init( nsm_url ) ) - { - if ( instance_override ) - WARNING( "--instance option is not available when running under session management, ignoring." ); - - if ( optind < argc ) - WARNING( "Loading files from the command-line is incompatible with session management, ignoring." ); - - nsm->announce( APP_NAME, ":switch:dirty:", argv[0] ); - - /* if ( ! no_ui ) */ - /* { */ - // poll so we can keep OSC handlers running in the GUI thread and avoid extra sync - Fl::add_timeout( NSM_CHECK_INTERVAL, check_nsm, NULL ); - /* } */ - } - } - else - { - if ( optind < argc ) - { - MESSAGE( "Waiting for plugins..." ); - Plugin_Module::join_discover_thread(); - - MESSAGE( "Loading \"%s\"", argv[optind] ); - - if ( ! mixer->command_load( argv[optind] ) ) - { - fl_alert( "Error opening project specified on commandline" ); - } - } - } - - Fl::add_timeout( 0.1f, check_sigterm ); - Fl::dnd_text_ops( 0 ); - - if ( ! no_ui ) - { - DMESSAGE( "Running UI..." ); - - Fl::run(); - } - else - { - DMESSAGE( "Not Running UI..." ); - while ( ! got_sigterm ) - { - Fl::wait(2147483.648); /* magic number means forever */ - } - } - - delete main_window; - main_window = NULL; - - MESSAGE( "Your fun is over" ); -} diff --git a/mixer/src/midi-mapper.C b/mixer/src/midi-mapper.C deleted file mode 100644 index bd2f31a..0000000 --- a/mixer/src/midi-mapper.C +++ /dev/null @@ -1,816 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2013 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include -#include -#include -#include -#include "debug.h" - -#include -#include - -using namespace MIDI; - -#include -#include - -#include -#include - -#include -#include - -#include -#include /* usleep */ -/* simple program to translate from MIDI<->OSC Signals using a fixed mapping */ - -#include - -#undef APP_NAME -const char *APP_NAME = "non-midi-mapper"; -#undef APP_TITLE -const char *APP_TITLE = "Non-MIDI-Mapper"; -#undef VERSION -const char *VERSION = "1.0"; - -nsm_client_t *nsm; -char *instance_name; - - -OSC::Endpoint *osc = 0; -/* const double NSM_CHECK_INTERVAL = 0.25f; */ - - -void -handle_hello ( lo_message msg ) -{ - int argc = lo_message_get_argc( msg ); - lo_arg **argv = lo_message_get_argv( msg ); - - if ( argc >= 4 ) - { - const char *url = &argv[0]->s; - const char *name = &argv[1]->s; - const char *version = &argv[2]->s; - const char *id = &argv[3]->s; - - MESSAGE( "Discovered NON peer %s (%s) @ %s with ID \"%s\"", name, version, url, id ); - - /* register peer */ - osc->handle_hello( id, url ); - } -} - -void -check_nsm ( void ) -{ - nsm_check_nowait( nsm ); - // Fl::repeat_timeout( NSM_CHECK_INTERVAL, &check_nsm, v ); -} - -static int -osc_non_hello ( const char *, const char *, lo_arg **, int , lo_message msg, void * ) -{ - handle_hello( msg ); - return 0; -} - - -static void -say_hello ( void ) -{ - if ( nsm_is_active( nsm ) ) - { - lo_message m = lo_message_new(); - - lo_message_add( m, "sssss", - "/non/hello", - osc->url(), - APP_TITLE, - VERSION, - instance_name ); - - nsm_send_broadcast( nsm, m ); - } -} - -class Engine : public JACK::Client -{ -public: - jack_ringbuffer_t *input_ring_buf; - jack_ringbuffer_t *output_ring_buf; - JACK::Port *midi_input_port; - JACK::Port *midi_output_port; - - Engine ( ) - { - input_ring_buf = jack_ringbuffer_create( 16 * 16 * sizeof( jack_midi_event_t )); - jack_ringbuffer_reset( input_ring_buf ); - output_ring_buf = jack_ringbuffer_create( 16 * 16 * sizeof( jack_midi_event_t )); - jack_ringbuffer_reset( output_ring_buf ); - - midi_input_port = 0; - midi_output_port = 0; - } - - virtual ~Engine ( ) - { - deactivate(); - } - - int process ( nframes_t nframes ) - { - /* process input */ - { - if ( !midi_input_port ) - return 0; - - void *buf = midi_input_port->buffer( nframes ); - - jack_midi_event_t ev; - - jack_nframes_t count = jack_midi_get_event_count( buf ); - - /* place MIDI events into ringbuffer for non-RT thread */ - - for ( uint i = 0; i < count; ++i ) - { -// MESSAGE( "Got midi input!" ); - - jack_midi_event_get( &ev, buf, i ); - - /* /\* time is frame within cycle, convert to absolute tick *\/ */ - /* e.timestamp( ph + (ev.time / transport.frames_per_tick) ); */ - /* e.status( ev.buffer[0] ); */ - /* e.lsb( ev.buffer[1] ); */ - /* if ( ev.size == 3 ) */ - /* e.msb( ev.buffer[2] ); */ - - if ( jack_ringbuffer_write( input_ring_buf, (char*)&ev, sizeof( jack_midi_event_t ) ) != sizeof( jack_midi_event_t ) ) - WARNING( "input buffer overrun" ); - } - } - - /* process output */ - { - void *buf = midi_output_port->buffer(nframes); - - jack_midi_clear_buffer( buf ); - - jack_midi_event_t ev; - - nframes_t frame = 0; - - while ( true ) - { - /* jack_ringbuffer_data_t vec[2]; */ - /* jack_ringbuffer_get_read_vector( output_ring_buf, vec ); */ - - if ( jack_ringbuffer_peek( output_ring_buf, (char*)&ev, sizeof( jack_midi_event_t )) <= 0 ) - break; - - unsigned char *buffer = jack_midi_event_reserve( buf, frame, ev.size ); - if ( !buffer ) - { - WARNING("Output buffer overrun, will send later" ); - break; - } - - memcpy( buffer, &ev, ev.size ); - - jack_ringbuffer_read_advance( output_ring_buf, sizeof( jack_midi_event_t ) ); - } - } - - return 0; - } - - - void freewheel ( bool starting ) - { - } - - int xrun ( void ) - { - return 0; - } - - int buffer_size ( nframes_t nframes ) - { - return 0; - } - - void shutdown ( void ) - { - } - - void thread_init ( void ) - { - } - -}; - -Engine *engine; - -const float MAX_NRPN = 16383.0f; - -static char -get_lsb( int i ) -{ - return i & 0x7F; -} - -static char -get_msb( int i ) -{ - return ( i >> 7 ) & 0x7F; -} - -static int -get_14bit ( char msb, char lsb ) - { - return msb * 128 + lsb; - } - -class signal_mapping -{ -public: - - bool is_nrpn; - // int nrpn; - - midievent event; - - std::string signal_name; - - OSC::Signal *signal; - - signal_mapping ( ) - { - is_nrpn = false; - signal = NULL; - } - - ~signal_mapping ( ) - { - if ( signal ) - delete signal; - signal = NULL; - } - - char *serialize ( void ) const - { - char *s; - const char *opcode = 0; - int v1 = 0; - - if ( is_nrpn ) - { - opcode = "NRPN"; - v1 = get_14bit( event.msb(), event.lsb() ); - } - else - switch ( event.opcode() ) - { - case MIDI::midievent::CONTROL_CHANGE: - opcode = "CC"; - v1 = event.lsb(); - break; - case MIDI::midievent::NOTE_ON: - opcode = "NOTE_ON"; - v1 = event.note(); - break; - default: - // unsupported - break; - } - - asprintf( &s, "%s %d %d", opcode, event.channel(), v1 ); - - return s; - } - - void deserialize ( const char *s ) - { - int channel; - char *opcode; - int control; - - if ( 3 == sscanf( s, "%ms %d %d", &opcode, &channel, &control ) ) - { - event.channel( channel ); - event.opcode( MIDI::midievent::CONTROL_CHANGE ); - - is_nrpn = 0; - - if ( !strcmp( opcode, "NRPN" ) ) - { - is_nrpn = 1; - - event.lsb( get_lsb( control )); - event.msb( get_msb( control )); - } - else if ( !strcmp( opcode, "CC" ) ) - { - event.lsb( control ); - } - - free(opcode); - } - } - -}; - -int signal_handler ( float value, void *user_data ) -{ - signal_mapping *m = (signal_mapping*)user_data; - - if ( m->is_nrpn ) - { - jack_midi_event_t jev[4]; - { - midievent e; - e.opcode( MIDI::midievent::CONTROL_CHANGE ); - e.channel( m->event.channel() ); - e.lsb( 99 ); - e.msb( m->event.msb() ); - jev[0].size = e.size(); - e.raw( (byte_t*)&jev[0], e.size() ); -// e.pretty_print(); - } - - { - midievent e; - e.opcode( MIDI::midievent::CONTROL_CHANGE ); - e.channel( m->event.channel() ); - e.lsb( 98 ); - e.msb( m->event.lsb() ); - jev[1].size = e.size(); - e.raw( (byte_t*)&jev[1], e.size() ); -// e.pretty_print(); - } - - - { - midievent e; - e.opcode( MIDI::midievent::CONTROL_CHANGE ); - e.channel( m->event.channel() ); - e.lsb( 6 ); - e.msb( int(value * MAX_NRPN ) >> 7 ); - jev[2].size = e.size(); - e.raw( (byte_t*)&jev[2], e.size() ); -// e.pretty_print(); - } - - { - midievent e; - e.opcode( MIDI::midievent::CONTROL_CHANGE ); - e.channel( m->event.channel() ); - e.lsb( 38 ); - e.msb( int( value * MAX_NRPN ) & 0x7F ); - jev[3].size = e.size(); - e.raw( (byte_t*)&jev[3], e.size() ); -// e.pretty_print(); - } - - for ( int i = 0; i < 4; i++ ) - { - if ( jack_ringbuffer_write( engine->output_ring_buf, (char*)&jev[i], - sizeof( jack_midi_event_t ) ) != sizeof( jack_midi_event_t ) ) - WARNING( "output buffer overrun" ); - } - } - else - { - jack_midi_event_t ev; - - m->event.msb( value * 127.0f ); - ev.size = m->event.size(); - m->event.raw( (byte_t*)&ev, m->event.size() ); - -// m->event.pretty_print(); - - if ( jack_ringbuffer_write( engine->output_ring_buf, (char*)&ev, sizeof( jack_midi_event_t ) ) != sizeof( jack_midi_event_t ) ) - WARNING( "output buffer overrun" ); - } - - return 0; -} - - -std::map sig_map; - -bool -save_settings ( void ) -{ - FILE *fp = fopen( "signals", "w" ); - - if ( !fp ) - return false; - - for ( std::map::const_iterator i = sig_map.begin(); - i != sig_map.end(); - i++ ) - { - fprintf( fp, "[%s] %s\n", i->first.c_str(), i->second.signal_name.c_str() ); - } - - fclose(fp); - - return true; -} - - -bool -load_settings ( void ) -{ - FILE *fp = fopen( "signals", "r" ); - - if ( !fp ) - return false; - - sig_map.clear(); - - char *signal_name; - char *midi_event; - - while ( 2 == fscanf( fp, "[%m[^]]] %m[^\n]\n", &midi_event, &signal_name ) ) - { - DMESSAGE( "%s, %s", midi_event, signal_name ); - - if ( sig_map.find( midi_event ) == sig_map.end() ) - { - signal_mapping m; - - m.deserialize( midi_event ); - - sig_map[midi_event] = m; - sig_map[midi_event].signal_name = signal_name; - sig_map[midi_event].signal = osc->add_signal( signal_name, OSC::Signal::Output, 0, 1, 0, signal_handler, &sig_map[midi_event] ); - } - - free(signal_name); - free(midi_event); - - /* if ( sig_map.find( s ) == sig_map.end() ) */ - /* { */ - /* int channel, control; */ - - /* if ( 2 == sscanf( s, "/midi/%d/CC/%d", &channel, &control ) ) */ - /* { */ - /* signal_mapping m; */ - - /* m.event.channel( channel ); */ - /* m.event.opcode( MIDI::midievent::CONTROL_CHANGE ); */ - /* m.event.lsb( control ); */ - - /* MESSAGE( "creating signal %s", s ); */ - /* sig_map[s] = m; */ - - /* sig_map[s].signal = osc->add_signal( s, OSC::Signal::Output, 0, 1, 0, signal_handler, &sig_map[s] ); */ - - /* } */ - /* if ( 2 == sscanf( s, "/midi/%d/NRPN/%d", &channel, &control ) ) */ - /* { */ - /* signal_mapping m; */ - - /* m.event.channel( channel ); */ - /* m.event.opcode( MIDI::midievent::CONTROL_CHANGE ); */ - /* m.event.lsb( get_lsb( control ) ); */ - /* m.event.msb( get_msb( control ) ); */ - - /* m.is_nrpn = true; */ - - /* MESSAGE( "creating signal %s", s ); */ - /* sig_map[s] = m; */ - - /* sig_map[s].signal = osc->add_signal( s, OSC::Signal::Output, 0, 1, 0, signal_handler, &sig_map[s] ); */ - - /* } */ - /* else */ - /* WARNING( "Could not decode signal spec \"%s\"", s ); */ - /* } */ - - /* free(s); */ - } - - return true; -} - -static bool -create_engine ( void ) -{ - if ( engine ) - { - delete engine->midi_input_port; - delete engine->midi_output_port; - delete engine; - } - - DMESSAGE( "Creating JACK engine" ); - - engine = new Engine(); - - if ( ! engine->init( instance_name ) ) - { - WARNING( "Failed to create JACK client" ); - return false; - } - - engine->midi_input_port = new JACK::Port( engine, NULL, "midi-in", JACK::Port::Input, JACK::Port::MIDI ); - engine->midi_output_port = new JACK::Port( engine, NULL, "midi-out", JACK::Port::Output, JACK::Port::MIDI ); - - if ( !engine->midi_input_port->activate() ) - { - WARNING( "Failed to activate JACK port" ); - return false; - } - - if ( !engine->midi_output_port->activate() ) - { - WARNING( "Failed to activate JACK port" ); - return false; - } - - return true; -} - - -static int -command_open ( const char *name, const char *display_name, const char *client_id, char **out_msg, void *userdata ) -{ - if ( instance_name ) - free( instance_name ); - - instance_name = strdup( client_id ); - - osc->name( client_id ); - - mkdir( name, 0777 ); - chdir( name ); - - if ( ! create_engine() ) - { - return ERR_GENERAL; - } - - load_settings(); - - say_hello(); - - return ERR_OK; -} - -static int -command_save ( char **out_msg, void *userdata ) -{ - if ( save_settings() ) - { - nsm_send_is_clean(nsm); - return ERR_OK; - } - else - return ERR_GENERAL; -} - -static int -command_broadcast ( const char *path, lo_message msg, void *userdata ) -{ - lo_message_get_argc( msg ); -// lo_arg **argv = lo_message_get_argv( msg ); - - if ( !strcmp( path, "/non/hello" ) ) - { - handle_hello( msg ); - return 0; - } - else - return -1; - -} - -struct nrpn_state -{ - char control_msb; - char control_lsb; - char value_msb; - char value_lsb; - bool decending; -}; - -static -struct nrpn_state * -decode_nrpn ( nrpn_state *state, midievent e, int *take_action ) -{ - nrpn_state *n = &state[e.channel()]; - - *take_action = 0; - - switch ( e.lsb() ) - { - case 6: - if ( e.msb() < n->value_msb ) - n->value_lsb = 127; - else if ( e.msb() > n->value_msb ) - n->value_lsb = 0; - - n->value_msb = e.msb(); - *take_action = 1; - return n; - case 38: - n->value_lsb = e.msb(); - *take_action = 1; - return n; - case 99: - n->control_msb = e.msb(); - n->control_lsb = 0; - return n; - case 98: - n->control_lsb = e.msb(); - return n; - } - - return NULL; -} - - -static volatile int got_sigterm = 0; - -void -sigterm_handler ( int ) -{ - got_sigterm = 1; -} - -int -main ( int argc, char **argv ) -{ - nrpn_state nrpn_state[16]; - - signal( SIGTERM, sigterm_handler ); - signal( SIGHUP, sigterm_handler ); - signal( SIGINT, sigterm_handler ); - - nsm = nsm_new(); -// set_nsm_callbacks( nsm ); - - nsm_set_open_callback( nsm, command_open, 0 ); - nsm_set_broadcast_callback( nsm, command_broadcast, 0 ); - nsm_set_save_callback( nsm, command_save, 0 ); - - char *nsm_url = getenv( "NSM_URL" ); - - if ( nsm_url ) - { - if ( ! nsm_init( nsm, nsm_url ) ) - { - nsm_send_announce( nsm, APP_TITLE, ":dirty:", basename( argv[0] ) ); - - /* poll so we can keep OSC handlers running in the GUI thread and avoid extra sync */ -// Fl::add_timeout( NSM_CHECK_INTERVAL, check_nsm, NULL ); - } - } - - osc = new OSC::Endpoint(); - - osc->init( LO_UDP, NULL ); - - osc->add_method( "/non/hello", "ssss", osc_non_hello, osc, "" ); - - MESSAGE( "OSC URL = %s", osc->url() ); - - /* now we just read from the MIDI ringbuffer and output OSC */ - - DMESSAGE( "waiting for events" ); - - static int max_signal = 1; - - jack_midi_event_t ev; - midievent e; - while ( ! got_sigterm ) - { - osc->wait(20); - check_nsm(); - - if ( ! engine ) - continue; - - while ( jack_ringbuffer_read( engine->input_ring_buf, (char *)&ev, sizeof( jack_midi_event_t ) ) ) - { - e.timestamp( ev.time ); - e.status( ev.buffer[0] ); - e.lsb( ev.buffer[1] ); - if ( ev.size == 3 ) - e.msb( ev.buffer[2] ); - - switch ( e.opcode() ) - { - case MIDI::midievent::CONTROL_CHANGE: - case MIDI::midievent::PITCH_WHEEL: - { - int is_nrpn = 0; - - struct nrpn_state *st = decode_nrpn( nrpn_state, e, &is_nrpn ); - - if ( st != NULL && !is_nrpn ) - continue; - - char *midi_event; - - if ( is_nrpn ) - { - asprintf( &midi_event, "NRPN %d %d", e.channel(), get_14bit( st->control_msb, st->control_lsb )); - } - else if ( e.opcode() == MIDI::midievent::CONTROL_CHANGE ) - asprintf( &midi_event, "CC %d %d", e.channel(), e.lsb() ); - /* else if ( e.opcode() == MIDI::midievent::PITCH_WHEEL ) */ - /* asprintf( &s, "/midi/%i/PB", e.channel() ); */ - else - break; - - if ( sig_map.find( midi_event ) == sig_map.end() ) - { - char *s; - - asprintf( &s, "/control/%i", max_signal++ ); - - signal_mapping m; - - m.event.opcode( e.opcode() ); - m.event.channel( e.channel() ); - - m.event.lsb( e.lsb() ); - m.event.msb( e.msb() ); - - m.is_nrpn = is_nrpn; - - if ( is_nrpn ) - { - m.event.lsb( st->control_lsb ); - m.event.msb( st->control_msb ); - } - - /* if ( is_nrpn ) */ - /* m.nrpn = nrpnc_msb * 127 + nrpnc_lsb; */ - - MESSAGE( "creating signal %s", s ); - sig_map[midi_event] = m; - sig_map[midi_event].signal_name = s; - sig_map[midi_event].signal = osc->add_signal( s, OSC::Signal::Output, 0, 1, 0, signal_handler, &sig_map[midi_event] ); - - nsm_send_is_dirty( nsm ); - - free(s); - } - - float val = 0; - - if ( is_nrpn ) - { - val = get_14bit( st->value_msb, st->value_lsb ) / MAX_NRPN; - - } - else if ( e.opcode() == MIDI::midievent::CONTROL_CHANGE ) - val = e.msb() / 127.0f; - else if ( e.opcode() == MIDI::midievent::PITCH_WHEEL ) - val = e.pitch() / MAX_NRPN; - -// MESSAGE( "sending signal for %s = %f", s, val ); - - sig_map[midi_event].signal->value( val ); - - free( midi_event ); - - break; - } - default: - break; - } -// e.pretty_print(); - } - - -// usleep( 500 ); - } - - delete engine; - - return 0; -} diff --git a/mixer/wscript b/mixer/wscript deleted file mode 100644 index 2094e37..0000000 --- a/mixer/wscript +++ /dev/null @@ -1,106 +0,0 @@ -#!/usr/bin/env python -import subprocess -import waflib.Options as Options -import string -import os - -# Version of this package (even if built as a child) -PACKAGE_VERSION = '1.2.0' - -# Variables for 'waf dist' -APPNAME = 'non-mixer' -VERSION = PACKAGE_VERSION - -# Mandatory variables -top = '.' -out = 'build' - -def options(opt): - opt.load('compiler_c') - opt.load('compiler_cxx') - opt.load('gnu_dirs') - -def configure(conf): - conf.load('compiler_c') - conf.load('compiler_cxx') - conf.load('gnu_dirs') - - conf.check(header_name='ladspa.h', define_name='HAVE_LADSPA_H', mandatory=True) - conf.check_cfg(package='lrdf', uselib_store='LRDF',args="--cflags --libs", - atleast_version='0.4.0', mandatory=True) - - conf.define('VERSION', PACKAGE_VERSION) - conf.define('SYSTEM_PATH', '/'.join( [ conf.env.DATADIR, APPNAME ] ) ) - conf.define('DOCUMENT_PATH', '/'.join( [ conf.env.DATADIR, 'doc' ] ) ) - conf.define('PIXMAP_PATH', '/'.join( [ conf.env.DATADIR, 'pixmaps' ] ) ) - - conf.write_config_header('config.h', remove=False) - - print('') - -def build(bld): - - libs = '' - - bld.program( source = ''' -src/Chain.C -src/Controller_Module.C -src/DPM.C -src/Gain_Module.C -src/Spatializer_Module.C -src/JACK_Module.C -src/AUX_Module.C -src/LADSPAInfo.C -src/Meter_Indicator_Module.C -src/Meter_Module.C -src/Mixer.C -src/Mixer_Strip.C -src/Module.C -src/Module_Parameter_Editor.C -src/Mono_Pan_Module.C -src/Plugin_Chooser_UI.fl -src/Plugin_Chooser.C -src/NSM.C -src/Panner.C -src/Plugin_Module.C -src/Project.C -src/Group.C -src/main.C -src/SpectrumView.C -src/Spatialization_Console.C -''', - target = 'non-mixer', - includes = ['.', 'src', '..', '../nonlib'], - use = ['nonlib', 'fl_widgets'], - uselib = [ 'JACK', 'LIBLO', 'LRDF', 'NTK', 'NTK_IMAGES', 'PTHREAD', 'DL', 'M' ], - install_path = '${BINDIR}') - - bld.program( source = 'src/midi-mapper.C', - target = 'non-midi-mapper', - includes = ['.', 'src', '..', '../nonlib'], - use = ['nonlib', 'fl_widgets'], - uselib = [ 'JACK', 'LIBLO', 'LRDF', 'NTK', 'NTK_IMAGES', 'PTHREAD', 'DL', 'M' ], - install_path = '${BINDIR}') - - bld( features = 'subst', - source = 'non-mixer.desktop.in', - target = 'non-mixer.desktop', - encoding = 'utf8', - install_path = "${DATADIR}" + '/applications', - BIN_PATH = bld.env.BINDIR ) - - start_dir = bld.path.find_dir( 'icons/hicolor' ) - - bld.install_files('${DATADIR}/icons/hicolor', start_dir.ant_glob('**/*.png'), - cwd=start_dir, relative_trick=True) - - bld.install_as('${DATADIR}/pixmaps/' + APPNAME + '/icon-256x256.png', 'icons/hicolor/256x256/apps/' + APPNAME + '.png') - - start_dir = bld.path.find_dir( 'pixmaps' ) - - bld.install_files('${DATADIR}/pixmaps/' + APPNAME + '/', start_dir.ant_glob('*.png'), - cwd=start_dir, relative_trick=True) - - bld.install_files( '/'.join( [ '${DATADIR}/doc', APPNAME ] ), bld.path.ant_glob( 'doc/*.html doc/*.png' ) ) - - bld.symlink_as( '${BINDIR}/' + APPNAME + '-noui', APPNAME ) diff --git a/sequencer/COPYING b/sequencer/COPYING deleted file mode 100644 index d60c31a..0000000 --- a/sequencer/COPYING +++ /dev/null @@ -1,340 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/sequencer/doc/KEYS.html b/sequencer/doc/KEYS.html deleted file mode 100644 index c41c331..0000000 --- a/sequencer/doc/KEYS.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - - -Key Bindings - - -

-

Key Bindings

-

-
-
-
- -

-
-
-

-These keys are in effect when the pattern or phrase editor grid is focused. -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-Fig. 1. Editor Keybindings -
keyfunction
[previous
]next
1horizontal zoom out
2horizontal zoom in
3vertical zoom out
4vertical zoom in
ccreate
dduplicate
fmove to playhead
rselect range as defined by L and R cursors
qselect none
Ccrop to range
Deletedelete selected
Shift-Deleteclear grid
Control-Deletedelete time in range
Control-Insertinsert time
Arrow keysmove viewport
Ctrl-Leftmove to previous note
Ctrl-Rightmove to next note
<move selection left
>move selection right
,move selection up
.move selection down
ttrim length
Spacetoggle transport
mmute
ssolo
-
- - - - - - - -
-Fig. 2. Gloabl keybindings -
keyfunction
Alt-pSwitch to pattern editor
Alt-aSwitch to phrase editor
Alt-sSwitch to sequence editor
SpaceToggle transport
HomeLocate transport to frame 0
-

-Other functions are accessible from the menus or the key is otherwise indicated. -

-
- - diff --git a/sequencer/doc/KEYS.mu b/sequencer/doc/KEYS.mu deleted file mode 100644 index a96435b..0000000 --- a/sequencer/doc/KEYS.mu +++ /dev/null @@ -1,46 +0,0 @@ - -! title Key Bindings - --- - - These keys are in effect when the pattern or phrase editor grid is focused. - -// Editor Keybindings -[[ key, function -[[ [, previous -[[ ], next -[[ 1, horizontal zoom out -[[ 2, horizontal zoom in -[[ 3, vertical zoom out -[[ 4, vertical zoom in -[[ c, create -[[ d, duplicate -[[ f, move to playhead -[[ r, select range (as defined by L and R cursors) -[[ q, select none -[[ C, crop to range -[[ Delete, delete selected -[[ Shift-Delete, clear grid -[[ Control-Delete, delete time in range -[[ Control-Insert, insert time -[[ Arrow keys, move viewport -[[ Ctrl-Left, move to previous note -[[ Ctrl-Right, move to next note -[[ \<, move selection left -[[ >, move selection right -[[ \,, move selection up -[[ ., move selection down -[[ t, trim length -[[ Space, toggle transport -[[ m, mute -[[ s, solo - -// Gloabl keybindings -[[ key, function -[[ Alt-p, Switch to pattern editor -[[ Alt-a, Switch to phrase editor -[[ Alt-s, Switch to sequence editor -[[ Space, Toggle transport -[[ Home, Locate transport to frame 0 - - Other functions are accessible from the menus or the key is otherwise indicated. diff --git a/sequencer/doc/MANUAL.html b/sequencer/doc/MANUAL.html deleted file mode 100644 index 7cddb0c..0000000 --- a/sequencer/doc/MANUAL.html +++ /dev/null @@ -1,294 +0,0 @@ - - - - - -The Non Sequencer - - - -
-
- -

1. Description

-
- -
fig.
-

1.1. Guiding Principles

-
  1. Flexibility -
  2. Efficiency -
  3. Purpose -
  4. Grace -

-Non has many modes and functions. Where flexibility comes at a small cost, we prefer to be flexible and make up the difference elsewhere. Where arbitrary limitations are reasonable and necessary, Non enforces them, but not without being forced into it. Where it is easier to be inefficient than efficient, but the efficiency matters, we prefer to put in the (small amount of) work required to be efficient, often resulting in thousand-fold performance gains; this may sound like an obvious statement, but, in fact, design for efficiency is a rare practice in this (Linux Audio'Modern' software arena. Although it is tempting to implement a kitchen sink in every program, we resist the urge. Non has the purpose of being a real-time sequencer and anything outside of that scope is a job for another day. If there is something related to the task at hand that a computer can do instantly and easily, but which requires labor for you, Non tries to do it for you so that you can continue making music without being bothered. Non's user interface is designed to combine the stark functionality and speed of hardware with the degrees of freedom of software. -

-

2. The Interface

-

-The interface is quite simple and is based on the excellent FLTK (1.1.x) toolkit. (Versions < 1 of Non were based on raw Xlib and a few Motif widgets.) The author examined many toolkits before beginning, and has absolutely no interest in pursuing GTK or Qt--Non simply doesn't require much of a toolkit, and these are incapable of providing less than total excess. -

-

-Non's GUI is highly optimized. Common operations are designed to be as fast as possible. Where other sequencers completely monopolize the CPU when scrolling, etc., Non performs smoothly--even on antiquated hardware. It is not technically difficult to achieve such speed. And, in fact, it is a shame that more developers don't consider good (or even just reasonable) performance a priority. -

-

2.1. The Pattern Editor

-
- -
fig.
-

-Upon invocation, Non enters the pattern editor and loads Pattern 1. The pattern editor presents a grid interface--the heart of a step sequencer. You can toggle a note on the grid by entering its coordinates with the keyboard or clicking an intersection with the mouse. The length of patterns is unlimited and no special action is required to lengthen them (simply adding notes beyond the "end" is enough.) Non can present grids in one of two modes, expanded and compacted. In the compacted view, only named rows are displayed; this means that only the notes the current instrument or scale will consume vertical space--resulting in far more efficient use of screen real-estate. Any notes that are made invisible by the compacted view will be silenced. -

-

-

-The resolution of the pattern display can be adjusted (the default is one point per 1/16th note), and, additionally, the canvas can be zoomed horizontally and vertically as necessary. However, it is highly recommended that you avoid creating 'vertical' compositions, that is, one should place each part in a separate pattern and avoid the need to scroll about looking for notes. -

-

-Tonic patterns have a choice of scale and key, which limits the display to only valid notes. This row-compaction can be turned off, if desired, so that all 128 notes are visible. Or simply choose the chromatic mapping if you are not creating scale based music. -

-

-Percussion, or other sample-based patterns can be assigned an instrument mapping, which again limits the display to only those notes for which names and volumes have been provided. The instrument definition format is a simple ASCII file containing one name, note and volume percentage per line. -

-

-Individual patterns may be soloed or muted right from the pattern editor. -

-

-Each pattern has a setting for output MIDI channel and sequencer port--and these may also be changed while the transport is running. -

-

2.1.1. The Notes

-

-The type (duration) of note to be inserted can be adjusted in the pattern editor (control+mouse-wheel). The velocity of individual notes may be adjusted (mouse-wheel), and the current value is reflected in the color of the note. Ranges may also be inserted and deleted, a commonly required operation during composition, but one that is, sadly, missing from many sequencers. -

-
- -
fig.
-

2.1.2. Recording

-

-A pattern can be recorded via MIDI in one of four modes: -

-
-
Merge (the most familiar/least useful)
-
In this mode recorded events are merged into the pattern on each pass through the loop. This is how most sequencers work, but it usually just results in a jumble of notes that require much manual cleaning up.
-
Overwrite (each pass [with input] replaces the previous contents of the pattern)
-
This is like merge mode, except that the pattern is cleared before the recorded events are input. If no notes have been played during a loop, the pattern remains unchanged. This is a great way to just get a part down without having to remove your hands from the instrument.
-
Layer (each pass [with input] goes into a new pattern)
-
This is just like overwrite mode, except that the pattern actually overwritten is a duplicate. Use this mode to record several loops of the same length without removing your hands from the instrument.
-
New
-
In this mode, all recorded events are placed into a new pattern (of whatever length) when recording is stopped.
-
-

2.1.3. The Event Editor

-
- -
fig.
-

-For situations requiring close inspection, fine-adjustments or entering of non-note data, the Event Editor allows one to edit the raw MIDI event list of a pattern. A common use is to insert program or control change events. -

-

-Like everything else in Non, the Event Editor is real-time--change a note and you'll see and hear the result as the pattern plays. -

-

2.2. The Phrase Editor

-
- -
fig.
-

-Phrases are to patterns as patterns are to notes. Switching to the Phrase Editor brings up Phrase 1, where each row corresponds to an existing pattern. The grid of the Phrase Editor is fixed at one column-per-beat. This view is somewhat similar to a timeline view in other sequencers, but do not be deceived--Phrases may be many in number and are triggered just like patterns. -

-

-When a node on the Phrase Editor grid is activated, the length of the cue event inserted will be the same as that of the pattern being triggered. Adjusting the duration of this event will cause the pattern be cut short or looped. If the length of a referenced pattern is changed, this will not be reflected in the Phrase display. You must either re-insert or adjust the length of the reference. -

-

-It is recommended that, to avoid confusion, you first compose all of the patterns you need for a phrase, and only then bring up the phrase editor. -

-

-Editing operations are the same as those for the Pattern Editor. -

-

2.3. The Sequence Editor

-

-The Sequence Editor defines the sequence of playback. The interface is a list of phrases, to be played sequentially, beginning from bar 1. It is not necessary to include all existing phrases in the playlist. Phrases can be moved up and down the playlist, inserted and deleted. The editor displays the start bar of each phrase in addition to its number and name. -

-

-This sequence->phrase->pattern hierarchy allows for logical, expressive compositions--without the labor intensive copypasteduplicate work-flow imposed by other sequencers. -

-

-For example, suppose you have a song with a 12 bar progression that repeats 4 times. This 12 bar sequence is composed of many patterns, each a few measures in length and roughly corresponding to the chords in the progression. -

-

-In another sequencer you would be required to use clumsy copy/paste operations to destructively extend the 12 bar sequence. Then if you wanted to change a part of that subsequence later, you would have to go edit each instance of it on the 'timeline' view. This is absurdly inefficient for the operator. -

-

-In Non you simply create your patterns, assemble them into logical phrases, and then assemble these phrases into a sequence that determines the entire song. This approach is similar to the bottom-up approach of factored languages such as Forth. -

-

2.4. Pattern Triggers

-
- -
fig.
-

-Next to the sequence playlist is an array of pattern triggers. Here one can monitor the progress of multiple patterns during playback and cause them to be muted etc. -

-

-The left mouse button toggles muting, the middle button toggles soloing, and the right button brings up the given pattern in the pattern editor. -

-

-Playing patterns appear green, the solo pattern appears red, and muted patterns appear gray, -

-

3. MIDI

-

3.1. IO

-

-Non utilizes the Jack MIDI transport. Jack MIDI is an emerging MIDI transport for Linux. Since Jack already provides similar routing as the ALSA Sequencer interface, little is lost--besides compatibility with existing programs. (Jack has an aseq bridge capability, but in order to benefit from Jack MIDI, both sequencer and synth must use Jack). The Jack MIDI API is extremely limited in comparison to the very capable ALSA API, but this is a problem for the programmer, not the user. -

-

-At the time of writing, Non is one of only two sequencers to use Jack MIDI natively. -

-

3.1.1. About Jack MIDI Connections

-

-Since Jack MIDI is new and not all programs support it, many find themselves confused. This section attempts to explain Jack MIDI ports. -

-

-The ALSA sequencer interface has long been the standard MIDI routing subsystem on Linux. But many (all) of the programs we use for synthesis these days use Jack for their audio IO. It makes more sense for those MIDI related programs utilizing the Jack Transport for synchronization to also use Jack ports for MIDI delivery. Therefore, ALSA MIDI is quickly becoming obsolete. -

-

-Jack MIDI ports are not related to ALSA MIDI ports in any way. Jack MIDI ports are just like Jack audio ports, except that the data being transmitted in each buffer are raw, timestamped MIDI events instead of floating point audio samples. Jack MIDI is sample-accurate. This means that a MIDI Note On event can occur concurrently with a sound, and the two will never drift apart as often happens to some extent with ALSA. -

-

-In essence, Jack MIDI is a way of expressing a direct temporal correlation between audio and MIDI data. -

-
- - -
Note:Older versions of QJackCtl and other connection managers do not -know about Jack MIDI ports. Please make sure you're using an -up-to-date version. -
-
-

-

-For example, to connect Non to ZynAddSubFX (the CVS version supports Jack MIDI), type the following into the shell: -

-
-
-$ jack_connect Non:midi_out-1 ZynAddSubFX:midi_in
-
-

-Also, be sure that Zyn's outputs are connected to system:playback_* so that you can hear the sounds it produces. -

-

-It is possible to use Jack MIDI clients and ALSA MIDI clients together via the bridge built into jackd. For this to work you must append the -X seq option to the alsa driver section of the jackd command line. Like so: -

-
-
-$ jackd -d alsa -X seq
-
-

-The way such bridged ports are named varies between Jack versions, but they should be fairly obvious. When used in this way, many of the advantages of Jack MIDI are lost, so it is recommended that you find a Jack MIDI capable synth for best results. -

-
- - - -
-Fig. 3.1. Example of Jack MIDI connections in Patchage -
fig. 3.1
-

3.2. Non Files

-

-The format of .non files is a variation of SMF-2. In an SMF-2 file, each track chunk represents a pattern. Because Non groups patterns into phrases, this usage of SMF-2 is probably not compatible with other implementations (although, the author has never actually seen another program that could play back SMF-2 anyway.) -

-

-Each phrase is stored as a track of MIDI Cue messages, each referring to a pattern to be triggered. The sequence/playlist is stored as the first track, and consists of a list of Cue Point meta-events referring to phrases. -

-

-Also in the first track is a sequencer specific meta-event (ID "Non!") containing song data that cannot be readily expressed with existing meta events, and some versioning info to aid future compatibility. -

-

-In short, the author has done the utmost to save sequences in a standard format--within reason; SMF was hardly designed with a program like Non in mind--instead of some ad-hoc ASCII format (which would have been far easier to implement), or worse, buggy, bulky, and unmaintainable XML. -

-

3.3. Exports

-

-In addition to saving and loading .non files, Non can export individual patterns as flat, SMF-0 MIDI files. -

-

3.4. Imports

-

-SMF-0 files can be imported as a new pattern (all channels merged), or SMF-1 (such as those written by Seq24) and SMF-2 (ever seen one of these?) can be imported as N new patterns (selected from a track list.) All imported patterns are set to display the Chromatic scale, in order that no notes be hidden from view. -

-

-This should make it easy to migrate any existing patterns that you may have over to Non, or to permit editing of Non patterns in external programs (for graphic controller tweaking perhaps?) -

-

4. Synchronization

-

-Non's transport is driven by the Jack Transport, so in order to sync Non with a DAW like Ardour, you must set Ardour to be the Jack Timebase Master. Therefore, all tempo mapping and time signature information should be manipulated in the Timebase Master--Non will respond to these changes automatically. If there is no Timebase Master registered when Non starts, it will take over that role instead. This is useful if you simply plan to use Non as a musical instrument. -

-

5. Control

-

-Non creates two MIDI input ports, one for performance data and one for control data. The control port is used to control Non with hardware MIDI controllers, such as the BCF2000, or other software. The performance port is used to record musical data into patterns. -

-

6. Playback

-

-The playback mode can be toggled between Pattern, Sequence and Trigger. In Pattern mode (the default), all patterns are played simultaneously, from the beginning, and looped forever. Since patterns may differ widely in length, interesting compositions are possible. In this mode, Non makes for a very intuitive software instrument--rivaled only by the excellent program FreeWheeling (a live audio looper.) -

-

-In Sequence mode, playback strictly follows the sequence list and the Jack transport, and does not loop. This mode is suitable for parallel compositions between Non and a Jack Timebase Master capable DAW. -

-

-Trigger mode is very much like Pattern mode, except that all patterns begin muted and must be enabled via the trigger view. -

-

7. Sister Projects

-

-Much of the inspiration to move forward with Non was derived from JP Mercury's highly useful and successful FreeWheeling looper. Mr. Mercury is a visionary. -

-

-But the closest sister of Non has to be the amazingly capable ZynAddSubFX soft-synth by Nasca Octavian Paul. ZynAddSubFX, like Non, utilizes the FLTK GUI toolkit, and has recently begun to support Jack MIDI (albeit in a limited fashion.) This is, hands down, the best synth available for Linux, and probably one of the best period. If all you have is Non and Zyn, you have all that you require to make great music. -

-

-Of course, this section can hardly go without mention of Rob Buse's Seq24. It was the author's unending frustration with the abysmal performance and absurd limitations of Seq24 that, more than any other single factor, inspired him to write Non. The most frustrating aspect was that, prior to Non, Seq24 was, in the author's opinion, the best sequencer available on Linux. Seq24, which claims to be light and free of bloat is, without comparison, the slowest, most poorly optimized sequencer the author has tried. Even the huge, snarling beast that is RoseGarden out performs Seq24 in every way but start time. -

-

-Those days are over. -

-
- - diff --git a/sequencer/doc/MANUAL.mu b/sequencer/doc/MANUAL.mu deleted file mode 100644 index b3564e4..0000000 --- a/sequencer/doc/MANUAL.mu +++ /dev/null @@ -1,391 +0,0 @@ - -! title The Non Sequencer -! author Jonathan Moore Liles #(email,male@tuxfamily.org) - --- Table Of Contents - -: Description - -< non-new-about.png - -:: Guiding Principles - -+ Flexibility -+ Efficiency -+ Purpose -+ Grace - - Non has many modes and functions. Where flexibility comes at a small - cost, we prefer to be flexible and make up the difference - elsewhere. Where arbitrary limitations are reasonable and necessary, - Non enforces them, but not without being forced into it. Where it is - easier to be inefficient than efficient, but the efficiency matters, - we prefer to put in the (small amount of) work required to be - efficient, often resulting in thousand-fold performance gains; this - may sound like an obvious statement, but, in fact, design for - efficiency is a rare practice in this (Linux Audio/'Modern' - software) arena. Although it is tempting to implement a kitchen sink - in every program, we resist the urge. Non has the purpose of being a - real-time sequencer and anything outside of that scope is a job for - another day. If there is something related to the task at hand that - a computer can do instantly and easily, but which requires labor for - you, Non tries to do it for you so that you can continue making - music without being bothered. Non's user interface is designed to - combine the stark functionality and speed of hardware with the - degrees of freedom of software. - -: The Interface - - The interface is quite simple and is based on the excellent FLTK - (1.1.x) toolkit. (Versions \< 1 of Non were based on raw Xlib and a - few Motif widgets.) The author examined many toolkits before - beginning, and has absolutely no interest in pursuing GTK or Qt--Non - simply doesn't require much of a toolkit, and these are incapable of - providing less than total excess. - - Non's GUI is highly optimized. Common operations are designed to be - as fast as possible. Where other sequencers completely monopolize - the CPU when scrolling, etc., Non performs smoothly--even on - antiquated hardware. It is not technically difficult to achieve - such speed. And, in fact, it is a shame that more developers don't - consider good (or even just reasonable) performance a priority. - -:: The Pattern Editor - -< non-pattern-editor.png - - Upon invocation, Non enters the pattern editor and loads Pattern - 1. The pattern editor presents a grid interface--the heart of a step - sequencer. You can toggle a note on the grid by entering its - coordinates with the keyboard or clicking an intersection with the - mouse. The length of patterns is unlimited and no special action is - required to lengthen them (simply adding notes beyond the "end" is - enough.) Non can present grids in one of two modes, expanded and - compacted. In the compacted view, only named rows are displayed; - this means that only the notes the current instrument or scale will - consume vertical space--resulting in far more efficient use of - screen real-estate. Any notes that are made invisible by the - compacted view will be silenced. - - You may add, remove, transpose, move, and edit notes, as well as - trigger/mute patterns, while the transport is running. - - The resolution of the pattern display can be adjusted (the default - is one point per 1\/16th note), and, additionally, the canvas can be - zoomed horizontally and vertically as necessary. However, it is - highly recommended that you avoid creating 'vertical' compositions, - that is, one should place each part in a separate pattern and avoid - the need to scroll about looking for notes. - - Tonic patterns have a choice of scale and key, which limits the - display to only valid notes. This /row-compaction/ can be turned - off, if desired, so that all 128 notes are visible. Or simply choose - the /chromatic/ mapping if you are not creating scale based music. - - Percussion, or other sample-based patterns can be assigned an - /instrument/ mapping, which again limits the display to only those - notes for which names and volumes have been provided. The instrument - definition format is a simple ASCII file containing one name, note - and volume percentage per line. - - Individual patterns may be soloed or muted right from the pattern - editor. - - Each pattern has a setting for output MIDI channel and sequencer - port--and these may also be changed while the transport is running. - -::: The Notes - - The type (duration) of note to be inserted can be adjusted in the - pattern editor (control+mouse-wheel). The velocity of individual - notes may be adjusted (mouse-wheel), and the current value is - reflected in the color of the note. Ranges may also be /inserted/ - and /deleted/, a commonly required operation during composition, but - one that is, sadly, missing from many sequencers. - -< non-cursors.png - -::: Recording - - A pattern can be recorded via MIDI in one of four modes: - -= Merge (the most familiar/least useful) - = In this mode recorded events are merged into the pattern on each pass - = through the loop. This is how most sequencers work, but it usually just - = results in a jumble of notes that require much manual cleaning up. -= Overwrite (each pass [with input] replaces the previous contents of the pattern) - = This is like merge mode, except that the pattern is cleared before - = the recorded events are input. If no notes have been played during - = a loop, the pattern remains unchanged. This is a great way to just get - = a part down without having to remove your hands from the instrument. -= Layer (each pass [with input] goes into a new pattern) - = This is just like overwrite mode, except that the pattern actually - = overwritten is a duplicate. Use this mode to record several loops of - = the same length without removing your hands from the instrument. -= New - = In this mode, all recorded events are placed into a new pattern (of - = whatever length) when recording is stopped. - -# It is especially useful if you bind Record to a MIDI footswitch. - -::: The Event Editor - -< non-event-editor-notes.png - - For situations requiring close inspection, fine-adjustments or - entering of non-note data, the Event Editor allows one to edit the - raw MIDI event list of a pattern. A common use is to insert program - or control change events. - - Like everything else in Non, the Event Editor is real-time--change a - note and you'll see and hear the result as the pattern plays. - -:: The Phrase Editor - -< non-phrase-editor.png - - Phrases are to patterns as patterns are to notes. Switching to the - Phrase Editor brings up Phrase 1, where each row corresponds to an - existing /pattern/. The grid of the Phrase Editor is fixed at one - column-per-beat. This view is somewhat similar to a timeline view in - other sequencers, but do not be deceived--Phrases may be many in - number and are triggered just like patterns. - - When a node on the Phrase Editor grid is activated, the length of - the cue event inserted will be the same as that of the pattern being - triggered. Adjusting the duration of this event will cause the - pattern be cut short or looped. If the length of a referenced - pattern is changed, this will *not* be reflected in the Phrase - display. You must either re-insert or adjust the length of the - reference. - - It is recommended that, to avoid confusion, you first compose all of - the patterns you need for a phrase, and only then bring up the - phrase editor. - - Editing operations are the same as those for the Pattern Editor. - -:: The Sequence Editor - - The Sequence Editor defines the sequence of playback. The interface - is a list of phrases, to be played sequentially, beginning from bar - 1. It is not necessary to include all existing phrases in the - playlist. Phrases can be moved up and down the playlist, inserted - and deleted. The editor displays the start bar of each phrase in - addition to its number and name. - - This sequence->phrase->pattern hierarchy allows for logical, - expressive compositions--without the labor intensive - copy/paste/duplicate work-flow imposed by other sequencers. - - For example, suppose you have a song with a 12 bar progression that - repeats 4 times. This 12 bar sequence is composed of many patterns, - each a few measures in length and roughly corresponding to the - chords in the progression. - - In another sequencer you would be required to use clumsy copy\/paste - operations to destructively extend the 12 bar sequence. Then if you - wanted to change a part of that subsequence later, you would have to - go edit each instance of it on the 'timeline' view. This is absurdly - inefficient for the operator. - - In Non you simply create your patterns, assemble them into logical - phrases, and then assemble these phrases into a sequence that - determines the entire song. This approach is similar to the - bottom-up approach of factored languages such as Forth. - - -:: Pattern Triggers - -< non-pattern-triggers.png - - Next to the sequence playlist is an array of pattern triggers. Here - one can monitor the progress of multiple patterns during playback - and cause them to be muted etc. - - The left mouse button toggles muting, the middle button toggles - soloing, and the right button brings up the given pattern in the - pattern editor. - - Playing patterns appear green, the solo pattern appears red, and - muted patterns appear gray, - -: MIDI - -:: IO - - Non utilizes the Jack MIDI transport. Jack MIDI is an emerging MIDI - transport for Linux. Since Jack already provides similar routing as - the ALSA Sequencer interface, little is lost--besides compatibility - with existing programs. (Jack has an aseq bridge capability, but in - order to benefit from Jack MIDI, both sequencer and synth must use - Jack). The Jack MIDI API is extremely limited in comparison to the - very capable ALSA API, but this is a problem for the programmer, not - the user. - - At the time of writing, Non is one of only two sequencers to use - Jack MIDI natively. - -::: About Jack MIDI Connections - - Since Jack MIDI is new and not all programs support it, many find - themselves confused. This section attempts to explain Jack MIDI - ports. - - The ALSA sequencer interface has long been the standard MIDI routing - subsystem on Linux. But many (all) of the programs we use for - synthesis these days use Jack for their audio IO. It makes more - sense for those MIDI related programs utilizing the Jack Transport - for synchronization to also use Jack ports for MIDI - delivery. Therefore, ALSA MIDI is quickly becoming obsolete. - - Jack MIDI ports are *not* related to ALSA MIDI ports in any - way. Jack MIDI ports are just like Jack audio ports, except that the - data being transmitted in each buffer are raw, timestamped MIDI - events instead of floating point audio samples. Jack MIDI is - sample-accurate. This means that a MIDI Note On event can occur - concurrently with a sound, and the two will never drift apart as - often happens to some extent with ALSA. - - In essence, Jack MIDI is a way of expressing a direct temporal - correlation between audio and MIDI data. - -// Note: -{ Older versions of QJackCtl and other connection managers do not -{ know about Jack MIDI ports. Please make sure you're using an -{ up-to-date version. - - When Non is started, it will create `Non:midi_in` and - `Non:control_in` input ports, as well as the 16 output ports with - names after the form `Non:midi_out-X`, where `X` is a number from 1 - to 16. These ports will be visible in any connection manager capable - of connecting Jack MIDI ports, as well as via the `jack_lsp` and - `jack_connect` command-line utilities. - - For example, to connect Non to ZynAddSubFX (the CVS version supports - Jack MIDI), type the following into the shell: - -> $ jack_connect Non:midi_out-1 ZynAddSubFX:midi_in - - Also, be sure that Zyn's outputs are connected to - system:playback\_\* so that you can hear the sounds it produces. - - It is possible to use Jack MIDI clients and ALSA MIDI clients - together via the bridge built into jackd. For this to work you must - append the `-X seq` option to the `alsa` driver section of the jackd - command line. Like so: - -> $ jackd -d alsa -X seq - - The way such bridged ports are named varies between Jack versions, - but they should be fairly obvious. When used in this way, many of - the advantages of Jack MIDI are lost, so it is recommended that you - find a Jack MIDI capable synth for best results. - -// Example of Jack MIDI connections in Patchage -< non-patchage.png - -:: Non Files - - The format of `.non` files is a variation of SMF-2. In an SMF-2 - file, each track chunk represents a pattern. Because Non groups - patterns into /phrases/, this usage of SMF-2 is probably not - compatible with other implementations (although, the author has - never actually seen another program that could play back SMF-2 - anyway.) - - Each phrase is stored as a track of MIDI Cue messages, each - referring to a pattern to be triggered. The sequence\/playlist is - stored as the first track, and consists of a list of Cue Point - meta-events referring to phrases. - - Also in the first track is a sequencer specific meta-event (ID - "Non!") containing song data that cannot be readily expressed with - existing meta events, and some versioning info to aid future - compatibility. - - In short, the author has done the utmost to save sequences in a - standard format--within reason; SMF was hardly designed with a - program like Non in mind--instead of some ad-hoc ASCII format (which - would have been *far* easier to implement), or worse, buggy, bulky, - and unmaintainable XML. - -:: Exports - - In addition to saving and loading `.non` files, Non can export - individual patterns as flat, SMF-0 MIDI files. - -:: Imports - - SMF-0 files can be imported as a new pattern (all channels merged), - or SMF-1 (such as those written by Seq24) and SMF-2 (ever seen one - of these?) can be imported as N new patterns (selected from a track - list.) All imported patterns are set to display the Chromatic scale, - in order that no notes be hidden from view. - - This should make it easy to migrate any existing patterns that you - may have over to Non, or to permit editing of Non patterns in - external programs (for graphic controller tweaking perhaps?) - -: Synchronization - - Non's transport is driven by the Jack Transport, so in order to sync - Non with a DAW like Ardour, you must set Ardour to be the Jack - Timebase Master. Therefore, all tempo mapping and time signature - information should be manipulated in the Timebase Master--Non will - respond to these changes automatically. If there is no Timebase - Master registered when Non starts, it will take over that role - instead. This is useful if you simply plan to use Non as a musical - instrument. - -: Control - - Non creates two MIDI input ports, one for /performance/ data and one - for /control/ data. The control port is used to control Non with - hardware MIDI controllers, such as the BCF2000, or other software. - The performance port is used to record musical data into patterns. - -: Playback - - The playback mode can be toggled between Pattern, Sequence and - Trigger. In Pattern mode (the default), all patterns are played - simultaneously, from the beginning, and looped forever. Since - patterns may differ widely in length, interesting compositions are - possible. In this mode, Non makes for a very intuitive software - instrument--rivaled only by the excellent program FreeWheeling (a - live audio looper.) - - In Sequence mode, playback strictly follows the sequence list and - the Jack transport, and does not loop. This mode is suitable for - parallel compositions between Non and a Jack Timebase Master capable - DAW. - - Trigger mode is very much like Pattern mode, except that all - patterns begin muted and must be enabled via the trigger view. - -: Sister Projects - - Much of the inspiration to move forward with Non was derived from JP - Mercury's highly useful and successful FreeWheeling - looper. Mr. Mercury is a visionary. - - But the closest sister of Non has to be the amazingly capable - ZynAddSubFX soft-synth by Nasca Octavian Paul. ZynAddSubFX, like - Non, utilizes the FLTK GUI toolkit, and has recently begun to - support Jack MIDI (albeit in a limited fashion.) This is, hands - down, the best synth available for Linux, and probably one of the - best period. If all you have is Non and Zyn, you have all that you - require to make great music. - - Of course, this section can hardly go without mention of Rob Buse's - Seq24. It was the author's unending frustration with the abysmal - performance and absurd limitations of Seq24 that, more than any - other single factor, inspired him to write Non. The most - frustrating aspect was that, prior to Non, Seq24 was, in the - author's opinion, the best sequencer available on Linux. Seq24, - which claims to be light and free of bloat is, without comparison, - the slowest, most poorly optimized sequencer the author has - tried. Even the huge, snarling beast that is RoseGarden out performs - Seq24 in every way but start time. - - Those days are over. diff --git a/sequencer/doc/Makefile b/sequencer/doc/Makefile deleted file mode 100644 index fcca551..0000000 --- a/sequencer/doc/Makefile +++ /dev/null @@ -1,21 +0,0 @@ - -SRCS=$(wildcard *.mu) -OBJS=$(SRCS:.mu=.html) - -%.html: %.mu - @ echo Mupping $<... - @ mup.wrapper html $< - -.PHONY: all clean - -all: $(OBJS) - -upload: all - @ rsync -L mup.css MANUAL.html *.png ssh.tuxfamily.org:/home/non/non-sequencer.tuxfamily.org-web/htdocs - -install: - @ install -d "$(DESTDIR)$(DOCUMENT_PATH)/non-sequencer" - @ install -m 644 $(OBJS) *.png mup.css ../../COPYING "$(DESTDIR)$(DOCUMENT_PATH)/non-sequencer" - -clean: - rm -f $(OBJS) \ No newline at end of file diff --git a/sequencer/doc/icon.png b/sequencer/doc/icon.png deleted file mode 120000 index a9b677a..0000000 --- a/sequencer/doc/icon.png +++ /dev/null @@ -1 +0,0 @@ -../icons/hicolor/256x256/apps/non-sequencer.png \ No newline at end of file diff --git a/sequencer/doc/mup.css b/sequencer/doc/mup.css deleted file mode 100644 index 10aceae..0000000 --- a/sequencer/doc/mup.css +++ /dev/null @@ -1,461 +0,0 @@ - -/* Example CSS Style for MUP */ - -body -{ - font: normal normal 14pt "Helvetica", sans-serif; -/* background: url("http://non.tuxfamily.org/background-pattern.png") fixed; */ - background-color: #121212; color: lightgray; padding: 0; margin: 0; -} - -a:link { - color: white; -} -a:visited { - color: olive; -} -a:active { - color: white; -} -a:link:hover { - text-decoration: underline; -} - -/* #(url) */ -a.ext:link { - color: red; - text-decoration: none; - border-bottom: dashed silver 1; -} -a.ext:visited { - color: darkred; - border-bottom: dashed silver 1; - text-decoration: none; -} - -/* #(ref) */ -a.int:link { - border-bottom: dashed silver 0.15em; -} -a.int:link:hover { - text-decoration: none; - color: white; -} - -/* - a[href^="#"]:link { - border-bottom: dashed silver 0.15em; - } - a[href^="#"]:link:hover { - text-decoration: none; - color: white; - } - */ - -p:contains("Warning:") { - background: #d00; - color: white; - border: dotted gray 0.5em; - display: block; -} - -/* First letter of first paragraph of every chapter */ -/* - h1 + p:first-letter { - text-transform: uppercase; - float: left; - line-height: 0.8em; - font-size: 350%; - font-family: Serif; - letter-spacing: 0; - margin-right: 0.1em; - margin-top: 0.1em; - border: solid gray 1px; - padding: 1px; - color: #d00; - text-shadow: #666 3px 3px 3px; - } - */ -/* First paragraph of every chapter */ -/* - h1 + p { - text-indent: 0; - } - */ - -/* cover */ -#cover * { - background: transparent; -} -#cover { - position: relative; -/* background: #da0;*/ - background: #555; - color: #aaa; - text-align: center; - margin: 0; - padding: 0.5em; - border-top: 4px solid black; - border-bottom: 4px solid black; -} -#cover h1, #cover h3 { - text-shadow: #222 0.2em 0.2em 0.2em; - color: white; - border: none; - letter-spacing: 0.2em; - line-height: 0.8em; - margin-left: 2em; - margin-right: 2em; -} -#cover h1:before, #cover h1:after { -/* content: "::"; */ - font-size: 300%; - color: black; -} -#cover h1:before { - position: absolute; - top: 0.2em; - left: 0.1em; -} -#cover h1:after { - position: absolute; - top: 0.2em; - right: 0.1em; -} -#cover hr { - display: none; -} - -hr:first-child { - display: none; -} - -hr { - height: 0.2em; - background: #555; - color: #555; - margin-left: 0.5em; -} - -#cover a:visited { - color: black; -} - -/* endnote */ -#endnote { - color: black; -} - -/* TOC */ -#toc { - position: relative; -} -#toc hr { -} -#toc h1 { -} -#toc ul { - font-size: 125%; - font-weight: bold; - margin-bottom: 1em; -} -#toc ul ul { - font-size: 90%; - font-weight: normal; - margin-bottom: 0; -} -#toc li { - list-style: none; - -} -#toc a:link { - border-bottom: 0; -} - -/* */ -#body { - position: relative; - margin: 0 auto; - padding: 0.5em; - max-width: 900px; - background-color: #1c1c1c; -} -/* ;, : */ -h1 { - color: #fff; - border-bottom: solid #444 0.1em; - text-shadow: 1px 1px 2px #000; - -} -/* ::, :::, ::::, :::::, :::::: */ -h2, h3, h4, h5, h6 { - color: #fff; - text-shadow: 1px 1px 2px #000; - -} - -/* tables, figures */ -.fig caption { - color: gray; - text-align: center; - /* Required for Mozilla */ - margin: auto; -} -.fig table { - border: none; - margin: auto; -/* border-collapse: collapse; */ -} -/* / */ -.fig.table th { - border: none; - background: gray; - color: black; -} -/* [ */ -.fig.table td { - border: none; - background: silver; - color: black; - padding-left: 1em; - padding-right: 1em; - padding-top: 0.2em; - padding-bottom: 0.2em; -} -/* < */ - -.fig.image table { - border: none; - background: transparent; - max-width: 100%; -} -.fig.image tr, .fig.image td { - border: none; - background: transparent; - padding: 0; -} - -.fig.image img -{ - max-width: 900px; -} - -/* */ -p { - margin-right: 2%; - text-align: justify; - text-indent: 1em; -} -/* > */ -.example * -{ - background: transparent; -} -.example table -{ - margin: 0; - padding: 0; - table-layout: fixed; - width: 100%; - caption-side: top; - overflow: auto; -} -.example caption -{ - caption-side: top; - -} -.example { -} -.example p { - display: inline; - margin: 0; - padding: 0; - text-align: center; -} -.example pre { - margin-top: 0; - font-family: Monospace; - padding: 1em; - border: solid 1px black; - background: #222; - color: white; - display: block; - overflow: auto; - /* Every browser should support border radii */ -/* -moz-border-radius: 0.5em; - border-radius: 0.5em; */ -} -/* " */ -/* - .quote:before { - float: left; - font-size: 500%; - content: "\201C"; - } - */ -/* - blockquote:after { - content: "\201D"; - }*/ -.quote blockquote { - padding: 0.5em; - margin-left: 0.5em; - font-family: Serif; - border-left: solid 0.4em gray; - /* background: #333; */ - color: white; -} -/* ^ */ -small { -/* - color: silver; - font-size: 50%; - */ -} -.footnote p { - color: silver; - margin: 0; -} - -/* Popup footnotes */ -.footnote p { - display: none; -} -.footnote p:target { - display: block; - overflow: auto; - position: fixed; - left: auto; - bottom: 0; - right: 0; - max-width: 50%; - border: solid 0.3em white; - -moz-border-radius: 0.5em; - background: black; - padding: 0.2em; -} - -/* { */ -.admonition * { - background: transparent; - color: white; -} -.admonition dl -{ - display: table; - margin: 0; - padding: 0; - background: #333; - border: dotted black 0.3em; - width: 90% - margin-top: 0.5em; - margin-bottom: 0.5em; -} -.admonition dt -{ - display: table-cell; - vertical-align: center; - border-right: solid silver 0.4em; - font-weight: bold; - font-size: 115%; - font-family: Serif; - background: gray; - width: 0; - text-shadow: black 0.15em 0.15em 0.15em; -} -.admonition dd -{ - padding-left: 0.4em; - display: table-cell; - width: 100%; - text-align: justify; -} - -.admonition table -{ - margin: 0; - padding: 0; - background: #333; - border: dotted black 0.3em; - width: 90% - margin-top: 0.5em; - margin-bottom: 0.5em; -} -.admonition td { - width: 100%; - text-align: justify; -} -.admonition td:first-child:contains("Warning:") { - background: #900; -} -.admonition td:first-child:contains("Caution:") { - background: #960; -} -.admonition td:first-child:contains("Note:") { - background: #690; -} -.admonition td:first-child { - border-right: solid silver 0.4em; - font-weight: bold; - font-size: 115%; - font-family: Serif; - background: gray; - width: 0; - text-shadow: black 0.15em 0.15em 0.15em; -} - - -/* #(b) */ -/* b { color: olive; } */ -/* #(c) */ -tt { - color: #7f0; -} -/* ! keywords ... */ -p em { - color: gray; - font-style: normal; - font-weight: bold; -} - -/* *, + */ -/* Bullet, numbe */ -li { - color: #f0f; -} -/* Text */ -li span, li p { - color: white; -} -li p { - color: red; - display: block; -} -ul { - list-style-type: square; -} -dl { - margin-left: 2%; - margin-top: 1em; -} -/* = */ -dt { - background: #181818; - padding: 0.2em; - font-variant: small-caps; - font-weight: bold; - color: #f0f; -} -dd { - color: white; - text-align: justify; - margin-right: 5%; -} -dt a:link, dt a:visited { - color: #f0f; -} -dt a:link:hover { - color: silver; - text-decoration: underline; -} diff --git a/sequencer/doc/non-cursors.png b/sequencer/doc/non-cursors.png deleted file mode 100644 index ca3cd7fe30b1e2798779f36600e450cc580d99b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73394 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 )3o~jh+c`LOsq1j-4JBN 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�aND23+yNS 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 F{{i96S_uFE diff --git a/sequencer/doc/non-patchage.png b/sequencer/doc/non-patchage.png deleted file mode 100644 index 3379098f97e7e23365d2fb0f4262260cd14f16ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69811 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 diff --git a/sequencer/icons/hicolor/256x256/apps/non-sequencer.png b/sequencer/icons/hicolor/256x256/apps/non-sequencer.png deleted file mode 100644 index fc4e65f3e40dd744eec938fbbb2e071c62f2f838..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23532 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 axY{6ZgTt`w`0;?F0_rN7$_0w%ul@_|>cMyb diff --git a/sequencer/icons/hicolor/32x32/apps/non-sequencer.png b/sequencer/icons/hicolor/32x32/apps/non-sequencer.png deleted file mode 100644 index 407f604cb75cf46e238d630b56fb84a6f741f30a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2848 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 diff --git a/sequencer/icons/hicolor/48x48/apps/non-sequencer.png b/sequencer/icons/hicolor/48x48/apps/non-sequencer.png deleted file mode 100644 index f47003541eeb8c34550fa2e698bab8a684d16e7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4811 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 diff --git a/sequencer/icons/hicolor/512x512/apps/non-sequencer.png b/sequencer/icons/hicolor/512x512/apps/non-sequencer.png deleted file mode 100644 index 0555edc58a992cff5176f28e49a28e866d9956f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23096 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 z zfXUNRZmM4tS+DklYL(;3$mHp6glqHiK9FUC)=Nh)@|{NzGFfDn^?0g}#WrU~Zmg+1 z!QD3M*!Z|;AXHoVbhbhwgjctF0P9yGb%V>Xb_%!CXGffF=e-GPX>ur#s;SPHHhxuG zM8(FEabNKEgc15>3jY8-P6+Y`l-PcMmu0ti>pc+|1fL19Lt!nZN~p(7kO_H%gaeU- zkqJPR1Il0SQ9Voz;4Vk+~*c-g){pnIN zFcslgw^{25cms;Ik10GZC2b=xu&}GSgp8T)mwRRE#W&mOK4pfxF+!9A0F)Su>H862 zAVW;f2?NGEpnsaW;I2@mGd(xNOW|_(-IwlUXV+dsKQ9ORJCbrrO3G}tP-7Wp2d_Jq z@zGp|cO+IOhK3oUh1kEEI>lKjAh)jhy;6yHvtK9Y*^-BLX7b4*2zV&mvHG&iCktlE zy#4lMe^ja$yFLYMOF6#RAD~qHS7^ehw9Y^ciizlKG5w_nH}+@kLS=e7ttQqHKX(vh z{~B#<@cG;)wzjpsHkHDNIDqAYkMyHo`t@wFNSdo{pnBvat;(DCv#!s6*X0M>Mg_Hn zFg`v$mWxeFeR-3h8aY{CAQCNwmi{Qzfio&-I$FNoD_3i+^)*jUaMIbtQ{WY?auMpH z*KAjBZ>K41*6Dhh#sl*F62DG3Sh=4#AB!60V)y?u#xGxyftU)j4lcQwEh$TlsP#=&A^pmU2*$o-tD z=l7$ar)4z~DUsDJrof7ZnvCq#I|j{92@G0atz52;7IFCX>$V8L{Kks73|F27rKN(? z&0*WOSBZD^ciG6F??GemwVCLqD;Oh@(@Z}&A@yx@)A0C#;KGFUKMf%qy-Q<*%FqQk}J=^uF-7q(ZhP{kSD~2Rv!Uwr`?S*+4~A{@L&V~JQf@Z&2?0&L2pE+VuB1P)}o#2 zUuHursp+E=ibIG7g^0;~of$R!+Y+rA><{Ho1Uyb%AO{<1S!-(IbGsadt@lRKV&8*e zaWr3wGO*>bmI>6PrA>FAqiqK1Lhv}Osl1Equ)jbKY|l0%d1s#_Ef=cfr#81XHdc~t zTHC=8>QAr<3Kcz=v5h$UV2_)8Nw~~;>Be1_G#&TGB+EtU+1ard)AoOWirZ|fodR~Y z#lR!&`XEWwd|yztH^Rb4$Q&s1x`_``+HzH(4{K^4>r1r#M0L-$$!0N~v8Z^6iiMTi zvxiPYOZx_N!M!JFokq_LRtr^VR`b=}{jrpyF5@I848El1^S|l&A6A4X3X}>(24|a$ zSSX~^a^?xD)vL{McukoAay7F0jqa}wJ8y#5m4>bW&O@JUE_=@x(*wbe`QhCDa4L`K za;8@ri3ONLUbdEuxGXO=x-h1BJk|4NLx7!nb?~0Y40SNj(V2jXe^WVBCI=jx_9oiF zTp`maH2y;a%i2u20l++Zjn(pR^#gTu&<-Xq>8NkP}ru~Ax=i2-Alhsa;cYc3) z|M$lF_1<);&+4=zMr$+9|$zbfmq~ zI?~_Y4(1InNF=OkiUSP| z4Z4erJ-&0WCB94+OBNdu7e~k?g&yxN)bMFyk-t1-%VfERxKwTh@*!S5NK_@w*gH*ItB)s6A2#!N=Qj{f@1=p>(8HifEXP9#7V^X z|KV}=*P9K|DSJ-$+qtvkkcc7YW&ocl_>xP$yg%S^gbXS_KvU1ASPwm}w?D$2^yl=0 zZL4{QGZ>sEQ5^C(w*89?%=GSj?Xnyjb0i6|KU{2vTNjUPzp|Pa>HPv!>7FQZa|pxd zc^yvZLpQRV!^4j5tEmCtG83I`yVE8(>h&TH&!mMMQFd>naHw+e*&_!m1*E>ldMPZr zlfP%QQ(WX4EEjYpUnpZ0md=~shT+4o>#V$r01n%Vm5bD>5ixqhy6Y=VM6aU(-IHRz zz0q4D7TnZE=V}k3)}N*(&{4FMlyDX*r9E|MWOk<=u%liS;B2fI5sOxT!vAzmhM3HrP`sVID zzb@5P!OgafjfpA)TvY4QwyX7(-9i3J(5c0zL^${VVtHCFq zx315xU|?QTjs3vHv$`H>m+~PfIH(V5vPc82lTv14Ay^>6Q7Ib%a$PUVVVn z|5a1FFUftoBS`to;6dRVD|DmgKwlF~L)cYuH$Gh0BWuE zQrAIgYsbQIi?FfSj~&|}V7~hL#`QR;SO1O|uTgP|EX}mha^A=!LN-EzBYIpEf3IxA zp6lto@U8G0HS9QVzSnJwB7s-Q2ToP^i9rde&tlZ-xK{kLmT-Hn`aLly$nqm@_|DQF z#wC1Kcq1hSusQ=+ds`;0YdV%%PVtr10wvMFZ0**OeJX%s!)GYZ z>wZJa{{W!nQJ}%`7Uv_TlKB)SLC9W?1NRq*J;7WhoK6Hm=;C}$2y#GB(ANvsb8J_i zzc>?C6B3S89TFzvm&uTgxoRU8ej+}^UgQ^lM6(o5WKB=9nZ^589Tfa56+dxwIo;y=RS73Kav5s|qoW)?g)X z)O1>O{>7s*EKp_CAYJ*CsD+zli?4qE`t!xAdGG_GVrzco>nDaLy)WQ)3_)w#eva7mi7W&)(=#yn8#r_ z!6keImB8dI@IjOtjE#tKTBmT z@bdmUFMe{}d_-B<76E$dLKDaOCvz}A@0Xs8JHB8xCONs0$Nh@Px8)eg-$yQL$2R4= zBV9OxZ%T={xWU#R#WHh}7aik%jv5M0YkQsahzrZj1xvjwY6P7TWRbw2H@vM_Zr{$k zQ3l*2AB__x=D5H3?(sE}*o`nsFmf-oqNI*X{&S4Na*MFWLIawKJ)4}VMtz7^fXy`z1xejxSgd%z96=Di4u>2Ba3vAsE}gt~C~qKNYiBT; zxf25}Yxv4})LQnakOi)@0_~z@zUC{!9fzj}iO~(w{&b8&@U>Mg#PR{hJG<+>Yad@o zV%_uXjV_3|aEn2*z(|Ccf_nzY?4@eqHoaj&|1pWB!h0WF+Z!fK8^1M)xeLL74E3`o zmtXyXP2_V!Uweru{I3!KDM1AIN>i8`u%rR{W2=ca!5VZH5J#M_$2uOzH5siN+ z)1H?#cDPPn-2k~dqpz5tY*lO5*UNYI8OtquT>A8Z&lG|S8+o){Eg;(7F2oP2zozvh z8DfA1|3r^&bL9Lg^aYaAcR83)zH&ZN77t=U zLhN-mTB`fC=rIahHmlS*Hn(%F0!7 zmM{rvc;RvptTqwXYc?SAE;H1>=Hs4(rCQ-h24bsou)rnu&S+Rwrc=SWZkIB112De- zZF4^AzPE}LBrmxlMMe&Qml&G2p&&>2B8?$d_d>!A^q}U7HTtjc1aEmQ(BnwO0hzd-VAB@qx*uO?ZG?pAq# z>|?|nva*g|*#g?G$FFY6SQ%%(AwaPD4{ux_&V~|HZy#%cQ*xk6j*fP&w&r)9kfqKQ zMkSIHA#%)JqT&Xl6S8Hilz)Ms&9iiVrPO zzz7q%Ot`0COIvnMSHZ*xa`m< zz+C;l2$250j#C5Ghgr&*7WaT1xu6uWN`{fO&Bz~_&{F3yVL1YckSJ)G!}(CRb@6p3 z5ZhQ9smApGTsBm{di~6Glk^^YO##WtzyK&&x{>GX0S0m|oXw%Wi@*=u0|rNo@iu|} zL~~=ZZ~VaN&N)otwu|N^WsX5q}IULgbCE`J32Ik|&)@DZc5{ncbm(d~t`s9DPqYp-a z1V>x38;obcsy^(BEPz-Xi*7ryZMqn>t#V5O665cxP(a94ot3fK>9vDIV|z)WKLqs$ z!}sZgg~fh>po{TL`0oIHDA4EC%)FcBBcMcTj{)6ReAD z{MH96UFc80V$)*6mW`i%H^)Id;wL9WGN#?@GI6&&Q7kln4n_{#;U7~6W|Hp*7`eS< zeYop%H2nPse9&iYO_;WG)B3b?bp&@}Y^FU%WrlNg?F1NXjMIz_17eSQs#3bPogaJp4hYtRBTZ3tGz&L^g8PFQhy~XU2V7!b2(~AVv{ZTRFlE4I+n=Ex``gv*hVv^>#{T1&Jq2VV zC&GF@EL{wxH-HRyR#c_jS?dCy2d(;7B`YHr{rb0p$MmrnO06azXDM8|`pAcBG6fsUyUZ^|EHPbHe{gdI7_ zeSK7M((t&^>D@s<@5WaB1k6;8)oGp**OYE;cx075KuJj{0>Ble5SQ_eVCJu zXGpO?IZV0o`!KPpo!NIIP0wgAxh79;Ob9IL+~|CVsVtM^`)Hx|U6mFLAUb6h|5^3H zivTM`FM=DJSi%?m>#C2lh6e@+`k91>4|EN034c^f0&(*4a$te>A%_nDAk1cOWh|FT zxiPi!mx?~55%6Q9aCm+N`2bn!*9eSnUf1x^Y``Xl*y>+~cw*%-vhd`!dbD-9TV~)C z8fr5_a2awoWv1r6K;-*~K{`RY!ZWA6%=;aLyy3AXkqUrRa!~JvkolDKh9DTA4xx8_ zP^b~3=jHKaH5cdyB=)ge6d$386~41k!of`ycbp+)qk;evMaR8mdXWYR2rR)o76}B# zG-6IJci9|Ki1-c5_mxoVN0>;qHONRgtY*kS93?{&qt#;o65|2aglXZ# zV#pYXE@Ets$UgE!xZnElc9)x0@L+X46!{fgwo)s{D!`G5kVGXgH9}lWl&?Tb>W?9o zKV*abQmBpYu33|KkE2Icz)0xQzxrW(B`{(@HDY&{aI=4Jqc`kWg5JeoePsH$HE%la zL)-*BD*kMp9nwlr22MOm{Euz)0mGi6eY1DZo|eAmrQIRIO4KnM+1j! zMCBXd@-!Z=z@p;|di~QpKe|#Tmbl^ySzj0TNySl63%*(%9a$xzp^B zDm3|QY;I({aNHLn%p98+K1dca$jHwPi2D=~Jwtit6?80|XL`IWo^*SThQKx^9WcIq z2x@wYeUq&bDm_L?VOBCOqc+QKjdCRfW}O%qN2=YSEwlcBcUXi0bC&< z2?vspjqY@7GgW~28INgc=mvDNM!C8A*Rl@fr=ipm5v^wD%dT*+*@ySSC$6O`t9z@| z+=iqIi5DLL=ob6FNVgAjEgP(>q?4?-qIVItc$=Od5wm)Q12|pyBS4~&KXfm({bm$^ zg;cruze_p!oGc
f3KhN>c5rn|L2Z4KRg(5Nd$8K9~Z*^mn#|MKk5IE<+uOm8oBuYEQkUP6dNOn z_@96LpUuzs4Cg<@O(zH*!@}R#Q5oTpO zeU2~sLaxmjSyiW+IIf`AKhV(lwCMS`@*XoxL2orGOl&k0-7JEO9xGUWI|^LdaB#;3 z%pedI8zR82ZKxOJ=n3lNEh07n4HsJA7s#4y`lpKs`nrlkM)DK^zYPl&z_V(NDAC{!JC%|GEnr}4_swM& z{zgFaJz6B2Xi{(bC)35(ObvA*N669U_7#ZJle^KCE|^&@5%%|9+QWtDqSNKDG)>=;gSqiD6H$-ZS=n9thI(kA4!ihO0xET z${Ra`{pyj)A+$e{P<@Q|y6HPGcm@5)q5y=zm|@`Ddv1u+a%Wk5YG#ntEJ7R(dFcAs zPW-w3sZ=1YdT6cSzJ~|ir>cCYbrF;gJUwrz?eK;uJtNx03uZ5EY*M*`t;qQ4?2=`@ z`QUOt2M*SxSrZC;R}^^mAE!+qJv2_S97HNme}$EH;Je3o^-ZTc&`9H`zM9t7`Otng zUIm?=!W*jeA5*eVW1ZP683qlxqRoc*vmfoI6}KE50$9hHU}>80cO-QbNe84sD()Xhg5%C)}8<#q6z z?f58Wda-Kz(`Hd7-l+FrJ|KrS!7y}^mV9FCem3cSU4>U=(SB~32rJta_i(WWwMBCG z<;l3#*`vl*>U>2}G7D{d)@koL_&R`nby8{?#o%4=QaNlRMP$#VpNEm!lHZyvf%rrI z`pomCN#4ILYF>UrRw45#>Qj4Q*Zd@}qSG?FTM9@mV@fBmn1A=y)_SP#fD+n`1e^a< zaU`M@ci%5gntol_jP3+3KBVNpmcW3ay_LUv=~z6s%Y!j-!7qM*m7VBGf3^I{{9y?F zQjj)e5v~x6GX8JxLr?X|$X^>nfm?x{yY^<)M+HhcuRVk=LawiCUJ}KZc`zn(tsAyS z({Tkh_c2F4`5fyf8m)w?r%17EI#zquncDBIgU&?`H zisnb6Pz|+PLHwu z$*EUOdUXO-WbHJnJu5GVpTPt~1qsM+Ye^gPOY<@L{VPm!h`5jPGRppcae*0EOCBNY?)Z;DB z$V6GXZ3$X_@&4w{$io@YF9Hr^$WUW!VEpu0GWz4ktQ#Meh5LM32_5F3xk z(D^jLj;+~XyZID;EMe9Nx}zy+i>{NfMG_wQAY!G1`gsicn>_sN>@rVT4rFZ33-V~2Ggp3FhTZIbPVY)Dg1tXK`h;M)C6&PV9=(Axmjr-$I|tZDHUx-Gf~KJUa%q}29d z*J6kaqfQu0D;D zr^i5M3uhUbGVN1yug`t&E73spjP-MqHFGoyBO1XsR%TX2iY&uaJljxtlN_{9jRwGc z?dIiF2zn!8dxQp;NB!CgAtouo(Ttb*lk|e|O{{ zt@EqS=8=FaC=_oBK{_k66HUKry1kUYng>CV7YeocBV?sXEREeLauCnw9l`el>vRFX z^TPOG!t)!7SC{x|@6TQTc_qXw*nDmKIC`vFL+mPiR(-L0NI&&+cjh za2*rs(Tcc>igaf3rn~UJK%29`cb^iKJErUle3BnMxlsdS#Ckom!!rQXg8@C=glRB3HAE zoAUyGS8tTF=F=NT_vY(QXb4E=D;)kBH*P_hO12{;s$JoODYAuoR-DTar6IghB&QQNZmCI&Vt}-W{ zFJ16w`GcxjSyHf{PmVa(Gktv=|2X#?d+sf$noR+D(t0*huj!5vQ;Kq4Z?Lq|T&g2{ zQnH{bZ$QkMy6%ofwubF4=%e}~gUs+)j;!R-T4I_UVC9!H_zunIpsdKNaO|9oHJSVI zc{vaEr^lHYIGEIoI#t-6w8E1we7>*fDIu@EX3ouBtc%Fm89ZT7(Kf~J*oNe2hQ^n& zP+;I94{9)xXMA>o>2s}!s_aNHovwNQuzv<^G1202He%%HAbxw5x*6^f*wpRPSFZVB z6}N+m>SCIHFj(|7kj%bZ`XI!pHXqDa_AUi3s?~VBMLeB_<76S;&-8XEvLaF+`gyn+ zUHT>#qFACGUCbg_z28a3IbqDx5*=q`K}mo0qmx&3Fy#AslhavZ(IKpIp;0Blvv|S4 z+;A~QZ_1sdFKl&gwbxtN?mW2^=EfQ_GG@WiONE)cg!}2%{_!_ZN)~gLv>72y*;-o@ zm^odV4vAhx8S9DYUkJ5rFHZw~;&5GW>JvuoHpM0gIKND>13c3{Ncwg#Lgi@2*}!Cc zO|riww9#z#0@55BTW0pM)lV0Cd_w)@d1n`$Kti)ev&3di!3fhGWknos8(U)}kS z84ao#pmLU?uJf&PNe4P;B-x+0(6EsuVv0cGoFK$SL7Ll?Oc<*AYv8X0MMX!v1K-m5c- zmp8=8_BCRivvD~w+g3r7oxA(2<;cz|^*y&_L<@`y76#-~GfYNVY$UqX9iM{qlh>DT zoDNzKR#=3}Oi)yoYVT_|ye#XJbv`{EzJJTqP~SKLS-|Xxvv*^xb>2(KRlnI2GR^K5Jiu ze)p8ah!K3z>7wGcWpq*c>SkPjGx@7T#P-~jG!rEyf`!ge!v`^xYv^Zd`|GIc<|@3i zhnPtW0EqsYqN1OMql;)hc)HF%JP|$#R-Sq}&#jc)9kRnliC zdj!W@NV$8a7}tFJWkr2kC>VTPr$DEcRChN0TCWyrfDc;N{+jA0o*u;w!}r2pntv`0N;^LO|78noVb4euS|l?#fJn#*4Z${k4c6$wD+wr z!~&mF$tO+!lx>EXD!v)?_%|ut+L@B}dYsSU%Z7PnMyyl>*PD2{Tkj^wbDAb%$l}Tx zjfF?jb2ubVvbakwpK~*ekB3e4rU8{7ns~c<^`;Z<4P6B>WwBw-2REZZ&gYIaoK58! zi7@o4fAQG|I_CHXmE+^KR`V31b98yK*p+HmEfQh|?fcB>JTM`&=Q3G)^TYC2%xrT5 zSZkZ`)m4^P^zbW zBDkb3y}kr*7Tjt@RoZIlIq**qdm{UqxT?+aIO+b?#ecFa`e!cnIf_S2D*i#(*SrK} z7)q{In%?Ujq2p#+Bh-ZIJL~`ksJwbYhl;=dVexsOl%9)HCi%0Q1G2A;(Jf(-ZK;9I zmyW5H5mKohN+fQ)LeVE3W)V^m8`U?3e^IJwf><;KTzh`>OmwQ>|5@8s<~iwFUxdO)}YmLCsuQVx_IYw({)U$z7>y zY6%9!FPVpQj=#8#qG>riRpZ3se2$ap?3Gel8##w~P>va zMFTG?L5q3K!>g)_$W60e^X_s+ihg&=*;Zw~RRrIMNE6y06|yefn`{EKOA%~5cqZGP zfq3)JLY>shq#NawA})*8TRA+OAKeV2`PZ>g{b`;(WF2=lh^;N3-^_}7@;bT}I>TE} ze0AJ`_+HHH*IkbAkLt-mG0*HkMcTz*}&vwA& zd1`Ko)4?8H#{1kXnqRTNlbn#67)tJ=hjMmthc^@zFy!5D|GLF_v|0}jAn@9LU$KEQb6+I&UUR(7E=p_L|Oy#%y%nK zzM23j0$-9|i-tRzR}uc(b9uAgFK%ZwevHgar-a`TIP5ralGy@QJv(=qLR?lw0=ZSQZ;c-g&3Jc;DDW?@8fnk@EJf{_K$ zhP>4S@wteWj8LC&a265r#vzf?I#k?YjjYUY#42*xzw?+~-$r;TRP|fi*E`&CvOAfE z&1L@~uDE^{DMeNbnrTtyS$61p%Ae#2e}vGoD%023`y^OCR$!lS)MM2QElP<~jTzfL z{iYDVW7z23P(oCC{Z?r68EK-6%=fq_H|~=?-`TLZM627Y?QKuW94{#`Ze%2nceS$k z!i&K=Gzz`i(&j$x=l2yKp`vPS)Nhxtoo%sWdsj@DKZ$MaXOq4q@*$g$a#+zT;G}s+X+=?J? z3Dfe}PH9=yDhLU`f2N`U4a?)JyP0OFY9T2&CKGGf!xl3mB8Qyg?+advjeLA*4~J@u z5pBOx!^g)dR?r9+66(Hkk8yN=IpQ!QpYzbxY!qKplS%QR=J7ap zR?_#Dxxpi2tIo`n_5NKQY+&Bf)9y&`n?{yz5~ZGn)7S*iyAqo&fmx?9%cHtIq+h*V zsCWl|##+r%Qh0|=(7qFOLG$&~gf6>8w7Pz)Zq4mKChH{c6kxOv)L!j0NMNk``4DH) zQnrg-&Ow8x<4H+1#l9PN?zf-fRbif0!R;6#nw`6V0)e1xmCy~#Nag@Igf`!n6mi^R z7_6vNjIs0lOT0QijTp`k*QU+zt=*K#;(f_;4Z3(>vtNC$*3n46xS_z|Fi*0_oC^Z5L?Z`z|kulMjFA8*ItN_j4xt<$Y6C%-;% zg<=er1sI?Zdv9a=yLf9m*5(t(bV}Q0Li^XaeV&B*WP#j#`B8yUC(6nVn2c5XG-1b@ z3p3rkdP5Qd$w_(l97X&G2dYk`%YkoI;|~dP>wQQTT&Vx6MmhCOm`_Jmn>z^*#QQip zYPrL|N#YzoO%;bX1FGC`P5wyBIcb@i!4TgbP?M)~k!WcAR#@r?oZ3|Xt!~#45FcM0 z9=6ZiA?}IqjIJxlSQZw??s^sYU`ma7_VM! zdOtq}_WKVI$@*JJ;K)SY!%wB)tF6m4I%;D~r%Q=sno#FeYa>3M;r*0^Ozha`c{%)+ zhx1sk_>BHtgD+sG+hM{&@sofOnWPLebOxq|9WF1gp@z5f=ZX_25>Mn$XZZ%4{D!`~ zZ(?(vWg$ zyMyKczxm5etCuYr!S_z)y1IdyqLd=K(Zz3)7qJZ+*2`089qEU`H-|nX#+&+Tc%Os0 z;nH!PFtr3+lKmd`KL`7%dfU;Ir%Q?{ej8NUK==LZ)UF@ry&$j)j!@T1-5uo)Kl4_`nk{Jg5vs++V-8Vx>xKMiXklwY(BU)#I}{)0N21H7%B3z_zN!uP{|p zp{Q6@u84h}JAs;E4p%0G4iQg-p-M_wU-^IfI1i{Mx-5nqun|?R5|tnfZ1g<*>DILnhjf36(=(!9U9DFdxn@jjlwdJz zs2)(E##rn1^rm2@sxC26fmWr0Enbq&>yv@GEAj68dL*OnM_Ns%W>_5ajXi5nG6j0? z#{RErVtuuz#qco6Q?J6-1tGDsBg9%%bG?S)?y^K%+u2TCSocX4tnK+zxGoxfeG%=` zVG4qmYA3%;z8okpPUq5+^S|9J1LkXQubRkX1t#~&w+yjESs!*0Sc*4|3Lo%`$G2Yh zF=A)lrlqsm6JAzU(LqJ<8Yotywrie<|KyMn{-&z8%J{+3s}wMeu{m`CO^Fy*h{eh$ zo7sU4WF~vAOS>1HbvY!PaxmzS(k#lM9KPyEoe>g1IU7f$QQ5u#!kSFkmq$!UP`0rX z8H6617Y23tnS0c*q-z4g15Q?Q416FB@wJFL@1S7ZROw(hp+Cg#1c>g*v1HrBCIpf^ z1wYXetX(K=ci7?c3$wLr^raZmz7`6h>{N9pxdt6J%Ic0!Y>QK!rVNkJp?YsFutoIF zeBlL!9W=gulIj^^4usf+Laa2z>!`;bVew{DCu-zcc1vG~y0%L;tuv{U&o=KbE%$!u zT#}A(*M~IDd0(yPU$z2^QT6t>1*^A^0r=vi#|LyCzx(0sFschwf(|)}r$Y?r@@ZU1 zqzrF+Q}+jYd#UR}x*$9K8E8S)?Wt}^a5~yQb2Kz;(Mpm4rh-t;=Dax9g@k#E3*;+( zgW>WgukX>^iMn;-7`0^+8&_o9JNl+8yj?GP2DSzlI-?Iv^#zD${OmQD4i5)-otLv|G+gqPmVMWbc zqjMCpwa8yi&&{DO!mJ$YkrTQ#`i04BwNeRt>ru<(fQbqYTSR*8B7=`NTAkIIndbU+ zyoSwDD3cB3cNQTc7sStDdFC9I4?UyFW`z%k0m*9Zi>Wa7I2gpgoSCca-(w9KjnRCq z-Pq!c?eA|@bZ@aBhXtpFn{NsX2{j~DaF&_&fM3HKRhRdhKr>vd(eXcY8byTVrH|KA zHiY&K)2e-+(?szcZVIdg4|Z_Igm<(Gk-t~nv85TC=`0exNFa1c4~NPREkLpHap}$6 zSXhLP%XNl{a6&f?2$Zq0p@6y5xHg&6#f>RQrrs@mjVg=M_=%Cm^pII!*d#uMIRK{eqP4mV8|L1`Nl>767H; z_)ut^(6P0(G65gQ`_eO}ATy(|ZNZ$JW^rR2a&g6H)K!+s&gg&`=6Tjr)g>JrlT%Ze zBSWUzwOu*h<0dj-hzB8R7V2Y3q7`LH9J|kyHZK|}+BgdUOKf)3cis{Bl0M*?M@!0m zAqILYnf?yaT^)?UK9{F2ful^X?@gnUi74Rn`wN^5tqpp zG;vEQSbs``FFNl=}BMx-@g&8$vG z%+bxsR;M&G)!|0$1PRtIhfQjW=hhYJm5o_0rjVFlbBsEz>LC16_sv{CKji6;e;yW2 z3iXk#J(MyUy&nqp_8M!j(D@v1RMVoC9}=ZZ3j&35$)tE%WTe3^tdeLtmy{SciES!RmaM!*_dayhn|;xyJBqxbC*>7DZ(sObz=IBsGX0WCV53|a{SpH zav5j=SmS8aJXyz+wfR7oT^*QFAr!4Z)7t2!X95I^f|1AHZib}9cRhZ+{B_1ReKe7z zY8%RKR+^xh7~lHy$_oBbF;brW(NaS z4~v4?=PcT}I?qc1OC&w}1|=yE*1Ob%d}(oktww?Y1s{bPayjgVLkgC6dDUaQz>!p^ zkP6re=648N>iYK3RQj+%eC1RfkXhD!?2M}weJxK3%f!4%*~Ht=9y+UJwfq34_EQR{ z_a%-;@f3%Eqh!iDU+!#(Hz{WsX?1G!s2HEyEg?defbsvF%B^~W*+}0!Wvk{z;@4S$ z?S=+29kK$fP&L;4+}5%P79Uk}vd5I9%>Hp|<@CqG^PQEWhQ4<=Qu%lgKSj=IQ=lVC zrD{2DHEcuQt?vvv2=Dd^wxtJY-8*-jREwu8l)0!e%SfHSn25N^9}7r*pyPybj29kp z3AgrMY1>XpsJ*@@|Aab1EkMB53qCMkn4}D-lk}0i$1kF9y-VZAev63d$*QC5FqQ0f z(e^CpJ!X!SQjn9cOZyzs6 zI|{<#T8M$gP#jXhqCMS8wfAetk#D}ZeVq#P5f{x3IWr@AV9s(*=qTUVHyp3}3}h4x zoHtphiwt><)7>Hj5l!y*(-`MKtv1!({aA@ZF@HTx843L?AIQ$muNUJE1Qf|NhD_Nr zvx_=S(qpgeRK8)>XI$S#CNy=1-Gg*qun(1$Pw=<=JK5Zr?%)Q;ijOtH#P5WmN$CvD!9w~REq1~s4H0Q zGT6inRt^>fgp^Q0J*>Y|%-@&vZLbDloWkcuTo&Ix&XJ z6$v(i>h7|l%1oAw!s_Y|k+BTP@y{p;m)lL&NH@k)@ z9Ij?38vC7S?L{Rk?HeHX!wLoHoC#wjp&=d+Na3o9`baune`oLpBrv#Qw6^!t$&%@d zkAL>8M41f+KQ%k%n&YGiT18S?g1Dqxa#de@bM#i3B43+E!=zpwHGEd<36rtah=5O{ zy18;31ULhO`j_lTeaCfQV~b{P7H~og(76!YHYg*mZ%P$6yWihn{u$qz7kXkOY&t2% zxdx?|Y6<{O>Z3g{smlfHapet*bhw0FR&BgZkWEAveOx!X-?Yxh5(y};N(Zk9g& z!qHX1G){>dLpoU+-nI`rNiuG$*ArrU=k18UJ`Em}kj4F)Ck*DVjP&G`y!Ny%Xey%h zb;g6WCc5b>V#qJEJjKY3jH?#~H(iXj6^6K|a%~>Q-L@V698Sg_#BZaCm7h+dRV8Qq zB!*LRpP-gs1?DV{UXWXKy<(ZyJIJkJ8~$W(kB1$?GPK*UAm~_h0(tAnd@Zlz96gF!eh-tfP-0cguh)#Fhfy0MVheW8w4fOE=rr$Ljh8XM8pKI`VlcYW9NLZd@14sSY6lF>P|YRu=sPyRaDd$^Yx-bY5TEM#I=u4zRfWh zsX!*dwbWbvIG^w~24L`iUiOSh{9)dQfJ}E5YFmZr-B*2`Ilyk!J>qa<2g|Fa?0+T` z^EBCa@xr^Yr}oXTKJ>la)gH;fpuU*}W=t}qO(QK*C(r_D7}`2ZCS&e{D{s;4Yzgt@ zpZepWaq)mBL4?cIoQw6v{C#LNqxnINjoZer$lgA-69IZ{=}8YYH=)F8)7|M}t;p79 z^t{hD4XTNt7U$OAdCw-jB~2F~@^Uiyaa5`6kPMP(jcAQc72jn94Uny1T3YWj(-!=U z(tgOw!hVVkgihB?2-Y&J&!9xM9bHN)%|E7+_;zja`|+3V6nbhLM-FUL4}s+< zMW^M4^GN<=d}mho!tK4PuA2m6*idJ$fX_%@5Fjm|I-uPEp)`Om>;URIq9Y}Q6!hW% z7EvnpH+J|ZY4~@-w!agm|FWNp1Y~Xj6!N$AKg))``Wx~x*6%NN@ejIj`_iQ&C;o+1 z{sBz>A+77ndg+Ml{C`Yl5$b<3ng7p>?k{BY#u2jlUylD~M1Lcj0Id5TS>NkGxBQ3S z3_X3M4g4?f{=E0+Yy1sbnoR$1VDvA#^tVdzA#I_o@-dYKGZF{{x^hq5{2t8y9vte3 zfCC4R1mv2eCU7xl15IK#z&VmQ{rF9D^3ZmH|4)vDS>`~w2>ac2Mk diff --git a/sequencer/icons/hicolor/64x64/apps/non-sequencer.png b/sequencer/icons/hicolor/64x64/apps/non-sequencer.png deleted file mode 100644 index d36acd4c092377583605fc1840bf9beedbd6c14a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5996 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
L~P+cR-u&3h8uelx3+l1NZE4YphBLirfjcW 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 NDvHk(un3Eg{{o)dMVSBq diff --git a/sequencer/icons/hicolor/72x72/apps/non-sequencer.png b/sequencer/icons/hicolor/72x72/apps/non-sequencer.png deleted file mode 100644 index 8d8c26ba59747471bfc017211daf6d3836527a99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7793 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 ZtSs1H%@AJ&(!5#)D9WnJR7#nA{U1wXN;3ce diff --git a/sequencer/icons/hicolor/scalable/apps/non-sequencer.svg b/sequencer/icons/hicolor/scalable/apps/non-sequencer.svg deleted file mode 100644 index 1cc5023..0000000 --- a/sequencer/icons/hicolor/scalable/apps/non-sequencer.svg +++ /dev/null @@ -1,165 +0,0 @@ - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sequencer/icons/icon-16x16.xpm b/sequencer/icons/icon-16x16.xpm deleted file mode 100644 index f6b1d30..0000000 --- a/sequencer/icons/icon-16x16.xpm +++ /dev/null @@ -1,774 +0,0 @@ -/* XPM */ -static char *icon_16x16[] = { -/* columns rows colors chars-per-pixel */ -"512 512 256 2 ", -" c #000101A00002", -". c #067A08890687", -"X c #020207070808", -"o c #048C0AD60B14", -"O c #09F70C1F0A1D", -"+ c #0CBA105B0EB4", -"@ c #04510E53104C", -"# c #067714141600", -"$ c #099E155315FF", -"% c #057F15521849", -"& c #085E18D91AB0", -"* c #0A061A811C4F", -"= c #12C014D012C0", -"- c #16AE190B1704", -"; c #13E91B9C199A", -": c #1ACC1D091B07", -"> c #1EC520C71EC5", -", c #066F1E28212B", -"< c #0C031E15202E", -"1 c #0707212124E5", -"2 c #0B8C211923F4", -"3 c #0BBA26322A1E", -"4 c #0C6228BB2CB3", -"5 c #12E622F6238D", -"6 c #1A4B278A2745", -"7 c #118B29952CC1", -"8 c #0CED2DBE324D", -"9 c #13A62D2D310C", -"0 c #0CDA33663939", -"q c #0ED036EE3CE9", -"w c #15F834B538FD", -"e c #1A6039BA3DF8", -"r c #21A923D121CF", -"t c #245F29512776", -"y c #2B8A2D8C2B8A", -"u c #2E2F303D2E37", -"i c #281D3658352A", -"p c #325534C2329C", -"a c #373239343732", -"s c #38FD3C3C3AFF", -"d c #3F2E40463F3F", -"f c #0E303C6F43AA", -"g c #10E43C00429D", -"h c #1DAA3E3E424B", -"j c #2D2D3F3F4040", -"k c #0E9A44734C35", -"l c #169244B74B0D", -"z c #139D4C245419", -"x c #1A994BE052E3", -"c c #161654215CF6", -"v c #1C7256375E6A", -"b c #24F643144617", -"n c #358B40CF4040", -"m c #24CB4D9452BC", -"M c #23DC505A5660", -"N c #223756735DE5", -"B c #272757575DC4", -"V c #385851715353", -"C c #188A5BB16565", -"Z c #293E5C8563DE", -"A c #19DA62426CAC", -"S c #1A91675372AD", -"D c #1B7869927556", -"F c #171770707D7D", -"G c #1CA470E97D7D", -"H c #277362AE6A4C", -"J c #39C8648168A1", -"K c #240D6D3E7748", -"L c #2AA86D0C75ED", -"P c #33B46E187575", -"I c #23B372157CAF", -"U c #2BE772DF7C54", -"Y c #332B740A7C8B", -"T c #388E75757D7D", -"R c #443A453B443A", -"E c #45784A174916", -"W c #4C234D314C2B", -"Q c #4F4F50504F4F", -"! c #46F853B65252", -"~ c #542255335427", -"^ c #5701590357D8", -"/ c #5B655C665B65", -"( c #5F5F60605F5F", -") c #469C620C6363", -"_ c #5667640E6363", -"` c #4B0B71717474", -"' c #588372C8741E", -"] c #61AA62AB61AA", -"[ c #676768686767", -"{ c #6B786C796B78", -"} c #6F6F70706F6F", -"| c #68BE75757373", -" . c #732D742E732D", -".. c #7A6E7B6F7A6E", -"X. c #7F7F80807F7F", -"o. c #1CBB7B0D8888", -"O. c #2424764F818E", -"+. c #2B5E7AD78615", -"@. c #23C17F268C3D", -"#. c #341D7ADD8472", -"$. c #4D4D7F7F8484", -"%. c #1E51872096C9", -"&. c #236381418E8E", -"*. c #2C0D80908C9C", -"=. c #3333819E8CA2", -"-. c #3B7582DF8CAF", -";. c #29AA899B9690", -":. c #38BF8A419527", -">. c #347D91919E30", -",. c #24C293E6A493", -"<. c #2C129548A3E3", -"1. c #265D9C77AD9B", -"2. c #2B739DDBAE47", -"3. c #32CA95CEA399", -"4. c #3C569775A39A", -"5. c #32439EE3AE9D", -"6. c #3B3B9B9BA8A8", -"7. c #27279F9FB0B0", -"8. c #3939A136AFAF", -"9. c #2A9AA282B383", -"0. c #271EAB98BEA6", -"q. c #2BE5A9C6BBD8", -"w. c #3558A4F6B491", -"e. c #3369AB67BC42", -"r. c #3C26AB5DBADC", -"t. c #58FD8315863D", -"y. c #4E138E2B95BD", -"u. c #4415937C9E12", -"i. c #787885DB8484", -"p. c #70108C2C8C8C", -"a. c #68E8947A97FE", -"s. c #42CF978AA309", -"d. c #45179C77A83A", -"f. c #43E9A20BAF45", -"g. c #4BBFA396AF3B", -"h. c #4885A9CBB73D", -"j. c #4316ACACBB8E", -"k. c #52BCAD07B940", -"l. c #457EB1B1BFBF", -"z. c #4C00B248BF64", -"x. c #538AB2FBBF88", -"c. c #7558A617A937", -"v. c #7090ADADB353", -"b. c #2D19B4DCC83E", -"n. c #296AB4D6C8EA", -"m. c #29C3B481C8FB", -"M. c #3535B66FC8C8", -"N. c #3956BF86D2D2", -"B. c #4808B80DC71C", -"V. c #5731BB5CC872", -"C. c #79FABAFAC282", -"Z. c #2DB5C469DA9E", -"A. c #34B5C2C2D7E7", -"S. c #3CE0C242D4C8", -"D. c #33D8C5D7DB48", -"F. c #3C17C771DAF2", -"G. c #02B4DAEEFB35", -"H. c #0B80DC21FAFA", -"J. c #1394DD43FAFA", -"K. c #1BA7DE3AFAFA", -"L. c #2ED9CF24E602", -"P. c #351ECD70E328", -"I. c #36C5D4E2EB6B", -"U. c #23A4DF5FFAFA", -"Y. c #2929DFDFFAFA", -"T. c #369BDD32F559", -"R. c #2D4BE0E0FAFA", -"E. c #3F3FE0E0F7F7", -"W. c #32D4E142FAFA", -"Q. c #3BD0E297FAF9", -"!. c #5C5CC250CF79", -"~. c #43C7C230D3C5", -"^. c #4BA1C3AED405", -"/. c #4855C890DAD1", -"(. c #53DAC58FD533", -"). c #5BD7C663D516", -"_. c #581ECC26DBFC", -"`. c #61FFCC1ADA77", -"'. c #7373CA30D507", -"]. c #4862D6BCEA1C", -"[. c #4C0CD696E9E9", -"{. c #59FAD827E918", -"}. c #65ECD76BE66C", -"|. c #477AE147F65C", -" X c #43DAE3C9F9F9", -".X c #4BDEE4CDF9F9", -"XX c #5970E36EF63B", -"oX c #53EBE5FCF9F9", -"OX c #5C19E714F9F9", -"+X c #6B6BE0E0EFEF", -"@X c #68BEE445F4AB", -"#X c #62D7E7E7F9F8", -"$X c #66B7E8E8F9F9", -"%X c #6BF1E93FF9F9", -"&X c #7171E6E6F6F6", -"*X c #7444EA54F9F9", -"=X c #7BE2EB6BF9F9", -"-X c #849085918490", -";X c #8B198C1A8B19", -":X c #8F8F90908F8F", -">X c #888896969494", -",X c #94A495A594A4", -" + t p u u p u u u u u u u p u u u u u u u u p u u u u u u > > + X X = r r u u u u u u u u u u u u u u u u p u u u u u u u u u u u - > > X O t u u u u u u u u u u u p u u u u u u p u u p u u u u p r > = X X + > > u u u p u u u u u u u u u p u u u u u u u u u p u u u u : X > > . X . r u u u u u u u u p u u u u u u u u u u u u p u u u u u r > = X X X X X X ", -" X X X X . E X.8XCXJXJXJXJXJXKXJXJXJXJXJXJXJXJXJXKXJXJXJXJXJXJXJXKXJXJXJXJXJXKXJXCX} . . .VXJXJXVX{ X = . - r ~ ,XCXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXE R JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX:XQ r = r Q ;XCXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX( X X X X X X X ", -"X X X X X . NXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX,X+ X X r 5XKXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX1X 0XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX4X; X X X X ; X X = ;XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXmX X X X X X X ", -" X X X X X W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX . X X X ;XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX> p JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX;X X ..JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXp r JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX X X y JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX CXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX6X 1XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXR X X X + CXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXmX X X X X X X ", -" X X X X : KXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX5X X X X X X 8XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXNX O JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX9X X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX{ X X X > JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXR X X ", -" X X X X / JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa p JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy R JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXR X X X X r JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXR u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX/ X + JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX/ X X X X X X ", -" X X X X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXu X X X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW . a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ X . JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X ", -" X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X X X y JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXp X W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXW X a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X X X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X X X X ", -" X X X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXu X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXp W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXQ a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ X X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X ", -" X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy y JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ X X X . JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X ", -" X X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa X X W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X ; JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW d JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX[ X X X X X X X ", -" X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW p JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ X . JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X ", -" X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy y JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW p KXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X X X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X X X ", -"X X X X X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXd X X X X X X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW X d JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X . JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X ", -" X X X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXu X X y JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X X : JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X X X X ", -" ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXu X X X X y JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd - KXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X ", -" X X X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa X W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW X s JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X . JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X X ", -" X X X X X [ JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X X X y JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXQ a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ X X X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX[ X X ", -" X X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa X Q KXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXd - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X X X X ", -" X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X X y JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW X a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X . JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X X ", -" X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXu X X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X X X ; JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW s JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X X X X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X ", -" X X X X X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXy X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXp X W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X X X X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW d JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X . JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X ", -" X X X [ JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X X X X X u KXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXJXJXd X X : JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW p KXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ X X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX[ X X X X X X ", -" X X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW d JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X . JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X X X ", -" X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW X a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ X X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X X X ", -"X X X X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXu X y JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ X X X X X . JXJXJXJXJXJXJXJXJXKXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X ", -" X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X y JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXR X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X ", -" X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa . W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ X X X . . JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X X X X ", -" X X X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXu X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXW X a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X ", -" X X X X [ JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXu X X X X y JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa X W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X X X X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X X . JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX[ X X X X X X ", -" X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X X u KXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X Q JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X X X X X ", -" X X X X X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXp W KXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X X . JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X ", -" X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXp X W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X X : JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X X X ", -" X X X X X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXu X y JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXR X X X ; JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW X a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ X X X X . JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X ", -" X X X X X [ JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X y JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa X W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW d JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X ", -" X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXu X X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW p JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X X X X . JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X X ", -" X X X X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW . X p KXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ X X X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X ", -" X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X y JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW d JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ X X X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X X X X X ", -" X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXu X X X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXd X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X ", -" X X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X X y JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXJXJXJXJXJXJXJXJXJXJXJXJXd X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW X a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ X X . JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X X ", -" X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X : JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X X ", -" X X X X X X X [ JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X y JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X X X X X X - KXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXQ a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] . X X X X ", -" X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa X X X W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW X a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ X X X X . JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X ", -" X X X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X . - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X X ", -" X X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXd X X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ X . JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X ", -" X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXp W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ X X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X X ", -" X X X X [ JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X X y JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXs W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X ; KXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW p JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX[ X X X ", -" X X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW X X d JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X X X X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X X ", -" X X X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ X X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X ", -" X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXJXJXJXJXJXJXu X X X y JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXR X X X X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X . JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X X X ", -" X X X X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa Q JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X : JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW s JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X X X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X X ", -" X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXs Q JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW s JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X X X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X ", -" X X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXu X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa X W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXW a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ X X . JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X X ", -" X X X [ JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXQ a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ X X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX[ X X X X ", -"X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X X u KXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXs X Q JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXd X X : JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X ", -" X X X X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXs X W KXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X - KXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ X . JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X X ", -" X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X X X X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW . X a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X ", -" X X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXu X X X y JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ X X . JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X X X ", -" X X X X X X X X [ JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X y JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW d JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X X . JXJXJXKXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX[ X X X X X X ", -" X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXs W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW X p JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ X X . JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X ", -" X X X X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXu X X X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXd X : JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW p KXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X X ", -" X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXu X X y JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X X ; JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW . d JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X . JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X ", -" X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa Q KXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXR X X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ X X X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X X ", -" X X X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X . JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X ", -" X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X X u KXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ X X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X ", -" X X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXW X X a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXJXJXJXJXJXJXJXJXJXJX^ X X X X . JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X ", -" X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXu X y JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X : JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW X a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X ", -" X X X X X [ JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXJXJXJXJXJXJXJXJXJXJXu X X y JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXp W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXR X - KXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ X X X X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X X ", -" X X X X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXp W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X . JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X ", -"X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X X X X y JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X X X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X X X X ", -" X X X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X p JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa Q KXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X : KXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW X p JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X ", -" X X [ JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW X d JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X . JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X X ", -" X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X y JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X X X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ X X X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] . X X X X X ", -" X X X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X X . JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X ", -" X X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXu X y JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXs W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW p JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X X X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X ", -" X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXs W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW X d JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X X . JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X X ", -" X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXW a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X X X ", -" X X X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXJXJXJXy X X X y JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd . W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXQ s JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ X X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X X ", -" X X X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X u KXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa Q KXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X X . JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX[ X X ", -" X X X [ JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXs W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X X X X ", -" X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X X X ; JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ X X X . JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X ", -" X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXu X X X y JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXd X : JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW X a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X X X ", -" X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X y JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW . d JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ X X X JXJXJXJXJXJXJXJXJXKXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X ", -" X X X X X X [ JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXp W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW p JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X . JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X X ", -" X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXu X X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXp W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW p KXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ X X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X X X X ", -" X X X X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXu X X X y JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X X X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW X d JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ X X X X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X ", -" X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa Q KXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX~ JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X X X ", -" X X X X X ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXy X X X u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X X X . - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ X X X X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X ", -" X X X X / JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXt X X X t JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXu E JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXE X X X X > JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXE p JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXQ X X X X X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX/ X X X X ", -" X X X X X W JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX= X X - JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXr d JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ y JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXd > JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd VXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW X X X X ", -" X X X X X s JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX. X X . JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKX= a JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX . X X ~ JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXp + JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXu X X X X 0XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXd X X X X X X X X X ", -" X X X X r JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXVX X X X VXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXCX = JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKX6X X X . :XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX= JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX- X 6XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX> X X X X ", -" X X X X X VXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX1X X X X 4XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX6X X CXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXr X X = CXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXVX 6XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXmX X X X X X X .JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXNX X X ", -" X X X X X JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX... } JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX- 9XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXNX. X X -XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXCXO X X X X X X X ", -" X X ..JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXW X X X R JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX^ 4XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXmX~ = X - ( 0XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKX JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXX. X X X X X X ", -" X X X X X X X X - CXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXmX. X X . 0XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXNXO u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXNX9X1XX.t - } X ", -" X X X ^ KXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXCXu X X y JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXs X ;XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX( u VXJXJXJXJXNXu ] JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX-X X p JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKX^ X X X = VXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX] X X X X ", -" X X X X 4XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXX. X X X X .JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX-X X O mXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXa O mXJXJXJXJXJXKXNX+ u JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXmXO X X.JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX1X X E JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX6X X X X X X X X X ", -" X X X X X X X > NXKXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX8XO X X X . 6XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX0XO X > NXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX6X E JXJXJXJXJXJXJXJX[ -XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXNX> O 0XKXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXNX: X X X X X ;XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXVX> X X X X X X ", -" X X X u VXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXmX= X X X + mXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXNX: t NXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXVX { JXJXJXJXJXJXJXJX,X 8XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXmXr = mXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXVXt X X . 5XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXVXa X X ", -" X X X X X X y NXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX8X= X X X X - 9XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKX0X; X - 8XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXVX X | JXJXJXJXJXJXJXJX:X 8XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX4X= X X - 0XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXmXr X X X X . ;XCXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXVXr X 0XJXJXJXJXJXJX8XX r CXKXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXJXJXVX .= X p 5XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX0Xd X X X : ;XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXmXW X X X ", -" X X X X X X p X.mXJXJXJXJXJXJXJXJXJXCX6X| r X X X X : } 8XJXJXJXJXKXJXJXJXJXCX8X..y X X X = [ 6XCXJXJXJXJXJXJXJXJXJXJXJXJXKXJXJXJXJXJXJXJXJXJXJXJXKXJXJXJXJXJXJXJXJXmXp : 8XJXJXJXJX4X+ d VXJXJXJXKXJXJXJXJXJXJXJXKXJXJXJXJXJXJXJXJXJXJXJXKXJXJXJXJXJXJXJXJXJXVX1X] O X X > .8XJXJXJXJXJXJXJXJXJXJX8XX.u X X X X X = ] 6XCXJXJXJXJXJXJXJXJXJX0X-Xs X X X X X X X ", -" X X X X X X X X = a ~ ] [ { ( R r . X X X X X + u Q ] { { ( Q y . X X . u R / { { { { } { { { } { { { { { { { { { } { { { { { { } { { [ R . p [ ] y O R { { { [ { { { { { { } { { { { { { { { } { { { { { { { { { ^ E u X X X + a W ( { { ( Q y . X X X O y R / { { [ ~ u + X X X X X X X ", -" X X X X . X X X X X X X X X X X X X X X X X X ", -" X X X X X X X X X X X X X X X ", -" X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ", -" X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ", -" X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ", -" X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ", -" X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ", -" X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ", -" X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ", -" X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ", -" X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ", -" X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ", -" X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ", -" X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ", -" X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ", -"! X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X W ", -"UXNX~ . X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ^ BXUX", -"UXUXUXmXW X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X E mXUXUXUX", -"UXUXUXUXUXqXd X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X R mXUXUXUXUXUX", -"UXUXUXUXUXUXUX9Xp X X X X X X X X X X X X X X X X X X X X X X X X a 9XUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUX9Xu X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X u 9XUXUXUXUXUXUXUXUXUX", -"UXUXUXUXIXUXUXUXUXIXIX4Xt X X X X X X X X X X X X X X X X X X X X X X X X X X X t 2XUXUXUXUXUXUXIXIXUXUXUX", -"UXUXUXIXUXUXUXIXIXUXUXUXUX5Xr X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X r 2XUXUXUXIXUXUXIXIXUXUXIXUXUX", -"UXIXIXUXIXIXUXIXUXIXIXUXIXUXLX,X> X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X - ,XIXUXIXUXIXUXIXIXUXIXUXIXIXUXIX", -"IXUXIXIXUXIXUXIXIXIXUXIXIXIXUXUXIX>X- X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ; ,XLXIXUXIXUXIXUXIXUXUXIXUXIXIXUXIXUX", -"IXUXUXIXUXIXIXIXIXUXIXIXIXUXIXIXUXUXKXi.= X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X + i.KXUXIXUXIXUXIXIXIXIXIXIXIXUXIXUXIXIXUX", -"IXIXIXIXIXIXUXIXIXUXIXUXIXIXIXIXIXIXIXIXKXi.= X X X X X X X X X X X X X X X X X X X X X = i.KXUXUXIXIXIXIXIXIXIXUXIXUXUXIXIXIXIXIXIXIX", -"IXUXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXCX| O X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X O .AXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXUXIXIXIX", -"IXIXIXIXIXPXIXIXIXIXIXIXPXIXIXIXIXIXIXIXIXIXIXIXAX| O X X X X X X X X X X X X X X X X X X X X O | AXUXIXIXIXIXIXIXIXIXIXIXPXIXIXPXIXIXIXPXIXPXIXIXIX", -"IXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXPXIXIXIXIXIXIXIXUXIXBX_ X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X . _ BXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIX", -"IXPXIXPXIXIXPXIXIXPXIXPXIXIXPXIXIXIXIXPXIXIXIXIXIXIXIXIXBX/ X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ] BXIXPXIXIXPXIXIXIXPXIXIXPXIXPXIXIXPXIXIXIXIXPXIXIXIXPXIXIX", -"PXIXIXPXIXPXPXIXPXIXIXPXIXIXPXIXPXIXPXIXPXIXIXPXPXIXPXIXIXIXMX! X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X . ~ MXIXIXPXIXIXPXIXPXPXIXIXPXIXIXIXIXIXPXPXIXIXPXPXIXPXIXPXPXIXIX", -"IXPXIXPXPXIXIXPXIXPXPXIXPXPXIXPXPXIXIXPXIXPXPXIXIXPXIXPXIXPXIXIXqXE X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X E qXIXPXPXIXIXPXIXPXPXIXIXPXPXIXPXIXPXPXPXIXIXPXPXIXIXPXIXIXIXPXIXPX", -"PXPXIXIXIXIXPXIXPXPXIXIXIXIXIXIXIXPXPXIXPXIXIXPXPXIXPXIXPXIXPXPXPXIXqXd X X X X X X X X X X X X X X X X X X X X X X X X X n qXIXPXPXIXPXPXPXPXIXIXPXPXPXIXPXIXPXPXPXIXIXPXPXIXIXPXPXIXIXPXPXIXPXPX", -"PXIXPXPXPXPXIXPXPXIXPXPXPXPXPXPXPXIXPXPXIXPXPXIXPXPXPXIXPXPXPXIXIXPXPXIX7Xp X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X p 7XIXPXPXIXIXPXPXIXPXIXPXPXPXIXIXPXIXPXPXIXPXPXIXPXIXPXPXIXPXPXPXPXIXPXPXIX", -"PXPXIXPXPXIXPXPXPXIXPXPXPXPXPXPXPXPXIXPXPXPXPXPXPXPXPXPXPXIXPXPXPXPXPXPXPXPX7Xp X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X u 7XPXIXPXPXPXPXPXPXIXPXIXPXPXPXPXIXPXPXPXPXPXPXIXPXPXPXPXPXPXIXPXPXPXPXPXIXPXPX", -"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXIXPXPXIXPXPXPXPXPXPXPXPXIXPXPXPXPX2Xt X X X X X X X X X X X X X X X X X X X X X X X X X t 2XPXPXPXPXPXPXPXIXPXPXPXPXPXPXPXPXPXPXPXIXPXPXPXPXPXPXPXPXPXPXPXPXPXPXIXPXPXPXPXPX", -"PXPXPXPXPXPXPXPXPXPXPXIXPXPXPXPXPXPXPXPXPXIXPXIXPXPXIXPXPXPXPXPXPXIXPXPXPXPXIXPXPXPX2Xr X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X r 2XPXIXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXIXPXPXPXPXPXPXPXPXPXPXPXPXIX", -"PXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXHXPXPXPXHXPXPXPXPXPXPXPXPXPXPXPXHXPXPXHXIXHX>X> X X X X X X X X X X X X X X X X X X X X X X X X X > >XHXPXPXHXPXPXPXPXPXPXPXPXPXIXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXPXIXPXPXPXHX", -"IXPXPXPXPXHXPXPXPXPXHXPXPXPXPXPXPXPXPXPXPXPXPXHXPXPXPXPXPXPXPXPXPXHXPXPXPXPXPXPXPXPXPXHXPXKX>X; X X X X X X X X X X X X X X X X X X X X X X X ; >XKXPXPXPXPXPXPXHXPXPXPXPXHXPXPXPXPXPXPXHXPXPXPXPXHXPXPXPXPXPXPXPXPXPXPXHXPXPXPXPXPXPXPXPXPXPX", -"HXPXPXHXPXPXPXHXPXPXHXPXHXPXHXPXPXHXHXPXPXHXPXPXHXHXPXHXPXHXPXHXPXPXPXHXPXHXPXHXPXHXPXPXPXHXPXAXi.= X X X X X X X X X X X X X X X X X X X X X X X X X X = i.AXPXHXHXPXHXPXHXPXPXPXHXPXHXPXPXHXPXPXHXPXPXPXHXPXPXHXPXPXHXHXPXHXPXPXHXPXPXHXPXHXPXHXHXPXHXPXHX", -"PXPXHXPXPXHXPXPXHXPXPXPXPXPXHXPXHXPXPXPXPXPXPXHXPXPXPXPXPXHXPXHXPXHXPXPXHXPXPXPXPXPXPXHXHXPXPXPXPXAXi.= X X X X X X X X X X X X X X X X X X X X X X X X X + i.AXPXPXPXPXPXPXHXPXHXPXHXPXPXHXPXHXPXPXPXHXPXPXHXPXPXHXPXPXPXPXPXPXHXPXPXHXPXHXPXHXPXPXPXPXPXPXPXHXPX", -"HXHXPXHXPXHXHXHXPXHXPXHXHXPXHXPXPXHXHXHXHXHXHXPXPXHXHXPXHXPXHXPXPXHXHXHXPXHXHXPXHXHXHXPXPXHXHXHXPXHXPXZX| O X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X O | AXPXHXPXPXHXHXPXHXPXHXPXPXHXHXHXPXHXPXPXHXHXPXHXPXHXHXHXPXPXHXHXHXPXHXPXHXPXPXHXPXHXPXHXHXHXHXPXHXHXPXHX", -"HXPXPXHXHXHXHXPXPXHXHXHXHXPXPXHXHXPXHXPXHXPXHXHXHXHXHXHXPXHXPXHXPXHXPXHXPXHXHXHXPXHXPXHXPXHXPXHXHXHXPXHXHXZX| . X X X X X X X X X X X X X X X X X X X X X X X X X X O | ZXPXHXHXPXHXHXHXPXHXHXPXHXPXHXPXHXHXHXHXPXHXHXPXPXHXHXPXHXPXPXHXHXHXHXPXPXHXHXPXHXPXPXHXHXPXPXHXHXHXPXHXPXHX", -"HXHXHXHXHXPXHXHXHXHXHXPXHXHXHXHXHXHXHXHXHXHXHXHXHXHXPXHXHXHXHXHXHXHXHXHXHXHXPXHXHXHXHXHXHXHXHXHXPXHXHXHXHXHXPXBX_ X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X _ BXHXHXHXPXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXPXHXHXHXHXHXHXHXHXHXHXHXHXHXHXPXHXHXHXHXHX", -"HXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXBX_ X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X _ BXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHX", -"HXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXMX! X X X X X X X X X X X X X X X X X X X X ! MXHXGXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHX", -"HXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXGXHXHXHXGXHXHXHXHXHXHXtXE X X X X X X X X X X X X X X X X X X X X ! tXPXHXHXHXHXHXHXHXHXHXGXHXGXHXHXHXHXFXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHX", -"GXHXHXHXGXHXHXHXHXHXHXFXFXHXHXHXHXHXFXHXHXHXFXHXHXFXHXHXHXHXHXHXGXHXGXGXGXHXGXGXGXGXGXGXGXHXGXHXGXGXHXHXGXHXHXGXGXHXGXHXGXHXHXtXn X X X X X X X X X X X X X X X X X X X X X X X X X X n tXHXGXHXHXHXGXHXHXGXGXHXGXHXHXHXHXGXHXHXHXHXFXHXHXHXHXHXFXHXHXHXGXHXHXHXGXHXHXHXHXHXHXFXFXHXHXHXGXHXHXHXHXHXHXFXFXHXHXHXHXHXFXHX", -"GXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXHXGXGXGXGXHXHXGXGXGXGXHXFXHXGXGXGXGXGXGXGXHXHXGXGXHXGXGXGXGXGXGXHXGXGXHXGXGXGXGXGXGXGXGXGXGXHX7Xi X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X i 7XHXHXGXHXGXGXGXHXGXGXGXGXGXGXHXGXGXHXHXHXHXFXFXHXGXGXGXGXGXHXGXGXGXGXGXGXGXGXGXGXGXHXGXGXGXHXGXGXGXGXGXGXGXGXGXGXGXHXGXGXGXHXGXHXGX", -"GXGXGXGXGXGXGXGXHXGXGXGXGXHXHXGXGXGXGXGXGXGXGXGXGXGXGXGXGXHXFXHXHXGXGXHXGXGXGXGXGXGXGXGXGXHXGXGXHXGXGXGXGXGXGXGXGXHXGXGXHXGXGXGXGXGXGX7Xi X X X X X X X X X X X X X X X X X X X X X X X X X X X i 7XGXGXGXGXGXGXGXGXGXGXGXGXGXHXGXGXGXGXGXHXFXHXFXHXHXHXHXGXGXGXHXGXGXGXGXHXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXHXGXGXGXGXGXGXGXGXGXGXGX", -"GXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXFX2Xt X X X X X X X X X X X X X X X X X X X X X t 2XFXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGXGX", -"GXGXGXGXGXGXFXGXGXGXGXGXGXFXGXGXGXGXGXGXGXFXFXGXGXGXFXGXGXGXGXGXFXGXGXGXGXGXGXFXGXGXGXFXGXGXGXFXGXGXGXGXGXFXGXGXFXGXGXGXFXGXGXGXGXGXGXFXGXGXFX2X6 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 6 2XFXFXFXGXGXFXGXGXGXGXGXGXGXFXGXGXGXFXGXGXGXFXGXGXGXFXGXGXGXFXGXGXGXGXFXGXGXFXGXFXGXGXGXFXGXGXGXGXGXGXGXGXFXGXGXFXGXFXGXGXGXFXGXGXGXFXGXGXGXFXGX", -"GXGXFXGXFXGXGXFXFXGXFXFXGXFXFXGXGXGXGXFXFXFXGXGXFXGXGXFXGXFXFXGXGXGXFXGXGXFXFXGXFXFXGXGXFXGXGXFXGXGXFXGXGXGXFXGXGXGXFXGXGXGXGXGXFXGXGXFXFXGXGXFXFX>X; . X X X X X X X X X X X X X X X X X X X X X X X X X - >XFXFXGXGXGXFXFXGXGXFXGXGXFXFXGXGXGXFXGXGXGXFXGXFXGXFXGXGXGXFXGXFXGXFXGXGXGXFXGXFXGXGXGXFXFXGXFXFXGXGXFXFXGXGXFXGXGXFXGXGXFXFXGXGXFXFXGXGXGXFXGXGXFX", -"FXFXGXFXGXFXGXGXGXFXGXGXGXGXFXGXGXFXGXGXGXGXGXFXGXFXGXGXFXGXGXGXFXFXGXFXGXFXGXGXGXGXFXGXGXGXFXGXFXGXGXGXFXGXGXFXFXFXGXFXFXGXFXFXGXFXGXGXGXFXGXGXGXGXAXp.; X X X X X X X X X X X X X X X X X ; >XFXFXFXGXGXFXFXGXGXFXGXGXFXFXGXGXFXFXGXGXFXFXGXFXGXGXGXGXFXFXGXFXGXGXGXGXFXFXGXGXFXFXGXFXGXGXGXFXGXGXFXFXGXGXGXFXGXGXFXGXFXGXGXGXFXGXGXGXGXGXFXGXFXGXGX", -"GXFXFXFXGXFXFXGXGXFXGXGXFXGXFXGXFXGXFXGXGXFXFXGXFXGXHXFXFXFXGXFXGXFXFXGXFXGXGXFXFXGXGXFXFXFXGXFXFXGXFXFXFXGXGXFXGXFXHXFXFXHXFXGXFXGXGXFXGXFXGXFXFXGXGXFXAXp.+ X X X X X X X X X X X X X X X X = p.AXFXFXGXFXGXFXGXGXFXFXFXFXFXGXGXFXFXGXFXGXFXFXGXFXFXGXFXFXFXFXGXFXFXGXFXFXFXFXGXFXFXGXFXGXFXGXFXGXGXGXFXGXGXFXFXFXFXFXFXGXFXGXGXFXGXFXGXFXFXGXFXGXFXFXGXFX", -"FXFXFXFXGXFXFXGXFXFXFXFXFXFXFXFXGXFXFXFXFXFXGXFXFXFXFXFXHXFXFXFXFXFXGXFXFXFXFXGXFXFXFXGXFXGXFXFXFXGXFXGXFXFXFXGXFXFXFXFXFXFXGXFXFXFXFXFXGXFXFXGXFXFXFXGXFXFXZXi.+ X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X = i.ZXFXGXFXFXFXFXFXFXFXFXGXFXFXFXFXFXFXFXGXFXFXFXFXGXGXFXFXGXFXGXFXGXGXFXGXFXFXGXFXGXGXGXFXFXFXGXGXFXFXFXFXFXFXFXFXGXGXFXFXFXFXFXFXFXFXFXGXFXFXGXFXFXFXGXFXGXGXFX", -"FXFXFXFXFXFXFXFXFXFXFXFXGXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXGXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXZX' O X X X X X X X X X X X X X X X X X X X X X X X X X X X . ' ZXFXFXFXFXFXFXFXFXFXGXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXGXFXFXFXFXFXFXFXGXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXGXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFX", -"FXGXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXGXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXGXFXFXFXFXFXGXFXFXFXFXGXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXGXFXFXFXFXFXFXFXFXFXFXFXFXFXFXZX| O X X X X X X X X X X X X X X X X X X X X X X X X O | ZXFXFXFXFXFXFXFXFXFXGXFXFXFXFXFXFXFXFXFXFXGXFXFXGXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXGXFXFXFXFXFXGXFXFXFXFXFXFXGXFXFXFXFXFXFX", -"FXGXFXFXFXFXDXFXFXFXDXFXFXFXFXFXFXFXFXGXFXFXGXFXFXGXFXFXFXDXFXFXFXFXFXGXFXFXFXDXFXFXFXDXFXFXFXFXGXFXFXFXFXFXFXFXFXFXFXGXDXFXFXFXFXFXFXFXFXFXDXFXFXFXFXFXFXFXFXFXFXFXDXFXyX_ . X X X X X X X X X X X X X X X X X X X X X X X X X X X X X . ( yXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXDXFXFXFXFXFXFXDXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXDXFXFXFXFXGXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFX", -"DXDXFXFXFXFXFXFXFXFXFXFXDXFXFXFXFXFXFXDXFXDXDXFXDXDXFXFXFXFXFXFXFXFXDXDXFXDXFXFXFXFXFXFXFXFXFXDXDXFXDXFXFXFXFXFXFXFXDXFXFXFXDXFXDXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXFXDXFXyX_ X X X X X X X X X X X X X X X X X X _ yXFXFXFXFXFXFXDXFXFXFXFXFXFXFXFXFXFXDXDXFXFXFXFXFXDXFXFXDXDXFXFXFXFXDXFXFXFXFXFXFXFXFXFXDXFXFXDXFXFXFXDXFXFXFXFXFXFXFXFXFXDXFXFXFXFXDXDXFXDXFXFXFXDXFXDXDXFXFXFXFXFXDXFXDXFXDX", -"FXFXDXFXDXFXFXDXFXFXFXFXDXFXDXFXFXDXDXFXFXFXFXFXFXFXDXFXDXFXFXDXFXDXFXFXFXDXFXFXFXFXDXDXFXFXFXDXDXFXFXDXDXDXFXFXFXDXFXDXFXDXFXFXFXFXDXFXDXFXFXDXFXDXFXFXDXFXDXFXFXFXDXFXFXFXFXFXyX! X X X X X X X X X X X X X X X X X X X X X ! yXFXFXDXFXDXFXFXDXDXFXDXFXDXFXFXFXFXDXFXFXFXFXFXDXFXFXFXFXDXFXFXFXFXDXFXFXFXFXDXDXFXFXFXFXDXFXDXFXFXFXDXFXFXFXFXFXDXFXFXFXDXFXFXFXFXDXFXFXFXFXFXDXDXFXFXFXFXFXDXFXFXFXDXFXFXDXFXFX", -"FXDXFXFXDXFXFXFXFXFXFXDXFXFXDXFXFXDXFXDXDXFXDXFXFXDXFXFXDXFXFXFXFXFXFXDXFXFXDXFXFXFXFXFXFXDXFXFXFXFXDXFXFXFXFXDXFXFXFXDXFXFXDXFXFXDXFXFXDXFXFXDXFXFXFXDXFXFXDXFXDXFXFXFXFXDXFXDXFXFXtX! X X X X X X X X X X X X X X X X X X X X ! tXFXFXDXFXFXFXFXDXDXFXFXFXFXFXFXFXDXFXFXFXFXDXDXFXFXFXFXDXDXFXFXFXFXDXFXFXDXDXDXFXFXFXFXDXDXFXFXFXDXFXDXFXFXFXFXDXDXFXFXFXDXFXFXFXDXFXFXFXFXDXDXFXFXFXFXFXDXFXFXDXFXFXDXFXFXFXFXFXFXDX", -"FXFXFXDXFXDXFXDXFXDXFXDXFXFXFXDXFXDXFXFXFXDXFXDXFXFXFXDXFXDXFXDXDXFXDXFXDXFXDXFXDXFXDXFXDXFXDXFXDXFXFXFXDXFXDXFXDXFXDXFXDXFXDXFXDXFXDXFXFXFXDXFXFXDXFXDXFXFXFXDXDXFXFXFXDXFXDXFXDXFXDXFXeXs X X X X X X X X X X X X X X X X n eXFXDXFXDXFXFXFXDXFXDXFXDXFXDXFXDXFXDXFXDXDXFXDXFXDXFXDXFXFXDXFXDXDXFXDXFXFXFXDXFXFXDXFXDXFXDXFXDXFXFXFXDXDXFXFXFXDXFXDXFXDXFXFXDXFXDXFXDXDXFXDXFXDXFXFXDXDXDXFXFXFXDXFXFXFXDXFXDXDXFXDXFX", -"DXDXDXFXDXFXDXFXDXFXDXFXDXDXDXFXDXFXDXFXDXFXDXFXDXDXDXFXDXFXDXFXDXFXDXDXFXDXFXDXFXDXFXFXDXFXDXDXFXDXDXDXFXDXFXFXDXFXDXDXFXDXFXDXFXDXFXDXDXFXDXFXDXFXDXFXDXDXDXFXFXDXDXDXFXDXFXDXFXDXFXDXDXFX7Xi X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X s eXDXFXDXFXDXFXDXDXDXFXDXFXDXFXFXDXDXFXDXFXDXFXFXDXFXDXFXDXFXDXDXFXDXFXFXDXFXDXDXFXDXFXDXFXDXFXDXFXDXFXDXDXFXDXFXDXDXDXFXDXFXDXFXDXFXDXDXFXDXFXFXDXFXDXFXDXDXFXDXFXDXDXFXDXDXDXDXFXDXFXFXDXFXDX", -"FXDXDXFXFXDXDXFXDXFXFXDXFXDXDXDXFXDXDXFXDXFXFXDXFXDXDXFXFXDXDXFXDXFXFXDXDXFXDXDXDXDXDXDXDXFXFXDXDXFXFXDXDXDXDXDXDXFXFXDXDXFXDXDXFXDXDXDXFXDXDXDXDXFXFXDXFXDXDXFXDXFXFXDXDXDXDXFXDXDXDXFXDXDXDXFX3Xy X X X X X X X X i 7XDXDXDXFXFXDXFXDXDXFXDXFXFXDXDXFXDXDXDXDXDXDXDXDXDXDXFXFXDXFXDXFXFXDXFXDXFXDXDXDXDXDXDXFXDXFXFXDXFXDXFXDXFXDXDXDXDXFXFXDXDXDXDXFXDXFXDXFXDXDXDXDXDXDXFXFXDXFXDXDXDXFXFXDXDXFXFXDXFXDXFXDXDXDXDXDX", -"DXDXDXDXDXDXDXFXDXDXDXDXDXDXDXFXDXDXFXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXFXDXFXDXFXDXFXDXDXDXDXDXFXDXDXFXDXDXFXDXDXDXDXDXFXDXFXDXDXFXDXFXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXFXDXDXFXDXFXDXDXFXDXDXDXDXDX3Xt X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 6 2XDXSXFXDXDXDXDXDXDXDXDXDXDXDXDXFXDXDXDXDXDXFXDXFXFXDXDXDXDXDXDXDXDXDXDXFXDXDXDXDXFXDXFXDXDXDXDXDXDXDXDXFXDXDXDXDXDXFXDXDXDXDXFXDXDXFXDXDXDXDXDXFXDXFXDXDXDXDXDXDXDXFXDXDXDXDXDXDXDXDXFXDXDXFXDXFXDXDX", -"DXDXDXDXDXFXDXDXDXDXDXFXDXDXDXDXDXDXDXDXDXFXDXDXDXDXFXFXDXDXFXDXFXDXDXDXDXDXDXFXDXDXDXDXDXFXDXDXFXDXDXDXDXDXDXFXDXDXDXDXDXFXDXDXDXDXDXDXDXDXFXDXDXDXDXFXDXDXDXDXDXDXDXDXDXFXDXDXFXDXFXDXDXDXDXDXDXDXDXDX2X> X X X X X X X X X X X X X X X X X X X X X > 2XSXDXDXDXDXDXFXDXDXFXDXDXFXFXDXDXDXDXFXDXDXDXDXDXDXDXDXDXFXDXDXDXDXDXDXDXDXDXFXDXDXDXDXDXFXDXDXFXDXDXFXDXDXDXDXDXDXFXDXDXDXDXDXDXDXDXDXDXDXFXDXDXFXDXDXDXDXDXDXDXDXFXDXDXDXFXDXDXDXDXDXDXDXFXDXDXFXDXDXDX", -"DXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXFXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXSXFXDXDXFXDXDXDXDXDXSXSXa.; X X X X X X X X X X X X X > a.SXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXFXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDX", -"DXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXFXAXp.; X X X X X X X X X X X X X X X X X X : p.DXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXAXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDX", -"DXDXDXDXDXDXDXDXDXSXDXDXDXDXDXDXDXDXDXDXDXDXDXDXSXDXDXDXDXDXSXDXDXDXDXDXSXDXDXDXDXDXDXSXDXDXDXSXDXDXDXDXSXDXDXDXDXDXDXSXSXDXDXDXDXDXDXDXDXDXDXDXDXDXSXDXDXDXDXDXDXDXDXDXDXDXDXDXSXDXDXDXDXDXSXDXDXDXDXDXDXDXDXDXSXZXp.+ X X X X X X X X X X X X X X X X X X X X X X X X X O p.ZXDXDXDXDXDXDXDXDXDXSXDXDXDXDXDXSXDXDXDXDXSXSXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXSXDXSXDXDXDXSXDXDXDXDXDXSXDXDXDXSXDXDXDXDXDXDXDXDXDXDXSXDXDXDXSXDXDXDXDXSXDXDXDXDXDXDXSXDXDXDXDXDXDXDXDXDXDXDXDXSXDXDXDXDX", -"DXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXSXSXDXDXDXDXDXDXDXDXDXDXSXDXDXDXDXSXDXDXDXDXDXDXSXDXDXDXDXSXDXDXDXDXSXSXDXDXSXDXDXDXSXDXDXDXDXDXDXDXDXSXDXSXDXDXDXDXSXDXSXDXDXSXDXDXDXDXDXDXDXDXDXDXDXDXDXDXZXX.+ X X X X X X X X X X X X X X X X X X X @ p.ZXSXDXSXDXSXDXDXSXDXDXSXDXDXDXDXDXDXDXDXDXDXDXDXDXDXSXDXDXDXSXDXDXDXDXDXDXDXDXSXDXDXDXDXSXDXDXDXDXSXDXDXSXDXDXSXSXDXDXSXDXSXDXDXSXDXDXDXDXDXDXDXSXDXDXDXDXDXDXDXDXDXSXDXDXDXDXDXDXDXSXDXDXDXDXDXDXDXDXSXDXDXDXDXDXDXDXDX", -"SXDXSXDXSXDXDXSXSXDXSXDXDXSXDXDXSXDXSXDXSXDXDXSXSXDXSXDXDXDXDXSXDXSXDXDXDXSXSXDXDXDXDXDXSXDXDXDXDXSXDXDXDXDXSXDXDXSXDXDXSXSXDXDXDXDXDXDXSXDXDXDXDXSXSXDXSXDXSXDXDXDXDXDXSXDXDXDXSXDXDXSXDXSXDXSXSXDXSXDXDXSXDXSXDXSXSXDXSXkX| . X X X X X X X X X X X X X X X X X X X X X X X O ' ZXDXSXSXDXDXDXDXDXSXDXDXDXDXSXDXDXSXDXSXDXSXDXSXSXDXDXSXDXDXDXDXDXDXSXDXSXDXSXDXDXDXSXDXDXSXDXDXDXSXDXDXSXDXDXDXDXDXDXDXDXDXDXDXSXDXDXDXSXDXSXDXDXDXSXDXDXDXSXDXDXSXDXDXDXDXDXSXDXSXDXDXDXDXDXSXSXDXDXSXDXDXSXDXSXDXDXSXDXSX", -"DXSXSXDXSXDXSXDXDXDXSXDXSXDXDXSXDXSXSXDXSXDXSXDXDXSXSXDXSXDXDXDXSXDXDXSXDXSXDXSXDXSXDXDXDXSXSXDXSXDXDXSXDXSXDXSXSXDXDXSXDXSXSXDXSXDXDXDXSXDXSXDXDXDXDXSXDXDXDXSXSXDXSXDXSXDXSXDXSXDXSXDXDXSXDXDXDXSXDXSXDXDXDXSXDXDXDXSXSXDXSXkX' O X X X X X X X X X X X X X + ' ZXSXDXDXDXDXDXDXSXDXDXDXSXDXSXDXSXDXSXDXSXDXDXDXSXDXSXDXSXDXDXDXSXDXSXDXSXDXSXDXSXDXSXDXSXDXSXDXSXSXDXDXSXDXSXDXSXDXDXDXSXDXSXDXDXSXDXSXSXDXSXDXDXDXDXSXDXSXDXSXDXDXSXDXDXSXDXDXDXDXDXSXDXSXDXSXSXDXSXDXDXDXDXDXDXSXDXSXDXDXDXSX", -"SXDXDXSXDXSXDXSXSXSXDXDXSXSXSXDXSXDXDXSXDXSXDXSXSXDXDXSXDXSXSXDXSXSXSXDXSXDXSXDXDXSXSXSXSXDXDXSXSXSXSXDXSXDXSXDXDXSXDXDXSXDXDXSXDXSXSXSXDXSXDXSXSXDXSXDXSXSXSXDXDXSXDXSXDXSXDXSXDXSXDXDXSXDXSXDXSXDXSXDXSXSXSXDXSXDXSXDXSXSXDXSXSXyX_ . X X X X X X X X X X X X X X X X X X X X X X X X X X X X _ iXDXSXSXSXSXSXSXSXSXDXSXSXDXSXDXSXSXDXSXDXSXDXSXSXDXDXSXDXSXDXSXSXSXSXDXSXSXDXSXDXSXDXSXDXSXDXSXDXSXSXDXSXDXDXSXDXSXDXSXSXSXDXDXSXSXSXDXSXDXSXDXDXSXSXSXSXDXSXDXSXDXSXSXDXSXSXDXSXSXSXSXSXDXSXDXSXDXDXSXDXSXSXSXSXSXSXDXDXSXSXSXDXSX", -"SXDXSXSXDXSXDXDXSXSXDXSXSXDXSXSXSXDXSXSXDXSXDXDXSXSXDXSXSXDXDXSXDXDXSXDXSXDXSXSXDXDXSXDXDXSXDXDXDXDXSXDXSXDXSXSXDXDXSXDXDXDXSXDXSXSXDXSXSXDXSXSXDXDXSXDXSXDXSXSXSXSXDXSXSXDXSXSXDXDXSXDXSXDXSXSXDXDXSXDXDXSXDXDXSXDXSXSXDXSXDXDXDXDXSXyX_ X X X X X X X X X X X X X X X _ yXSXDXSXSXDXSXDXDXSXSXDXSXDXSXDXSXDXSXDXSXDXSXSXDXSXDXSXDXSXSXDXDXSXSXDXDXSXSXDXSXSXDXSXDXSXSXDXSXSXSXDXSXDXSXDXDXSXSXDXSXDXSXDXSXSXDXSXDXSXDXDXDXSXSXDXDXSXDXSXSXDXDXSXSXDXDXSXDXDXSXDXDXSXDXDXSXDXDXSXSXDXDXSXSXDXDXSXDXSXDXSXDXDXSXDX", -"DXSXSXDXSXDXSXSXSXDXDXSXDXSXSXDXDXSXSXDXSXDXSXSXSXDXDXSXDXSXSXDXSXSXSXSXDXSXSXDXSXSXSXSXSXDXSXSXSXSXSXSXDXSXSXDXSXSXSXSXSXSXDXSXSXDXDXSXSXDXDXSXSXSXSXSXDXSXSXDXSXDXDXSXSXDXDXSXSXSXSXSXDXSXDXSXSXSXSXSXSXSXSXSXDXSXSXDXSXDXSXSXSXSXSXDXSXtX! X X X X X X X X X X X X X X X X X X X X X ! tXSXSXSXSXSXSXSXDXSXSXSXDXSXSXSXSXDXDXSXDXSXDXSXSXDXDXSXSXSXSXDXSXSXSXDXSXSXSXDXDXSXSXDXDXSXSXDXDXSXSXDXDXSXSXSXDXSXSXSXDXSXSXSXSXDXDXSXSXDXSXDXSXSXSXDXSXDXSXDXSXDXSXSXSXSXSXSXSXDXSXSXSXSXSXSXSXSXSXSXSXDXDXSXSXDXDXSXSXDXDXSXSXSXSXSXSXSX", -"SXDXSXSXSXSXSXSXSXSXSXSXDXSXSXSXSXDXSXSXSXSXSXSXDXSXSXSXSXSXSXSXSXSXDXSXDXSXSXSXSXDXSXSXSXSXSXSXSXSXDXSXDXSXSXSXSXDXSXSXSXSXSXSXDXSXSXSXSXSXSXSXSXSXSXDXDXSXSXSXSXDXSXSXSXSXSXSXSXSXDXSXSXSXSXSXSXSXSXDXSXDXSXSXSXDXSXSXSXSXSXSXSXSXSXDXSXSXSXtX! X X X X X X X X X X X X X ! tXSXSXSXSXSXSXDXSXDXSXSXSXSXSXSXSXDXSXSXDXSXSXSXSXSXSXSXSXSXSXDXSXSXDXSXSXSXSXSXSXSXDXSXDXSXSXSXSXSXSXSXSXSXDXSXSXDXSXSXSXSXSXSXSXDXSXSXSXDXSXSXSXSXSXSXSXDXSXSXSXDXSXSXSXDXSXSXSXDXSXSXSXDXSXSXSXDXSXSXDXSXSXSXSXSXSXSXSXSXSXSXSXSXSXDXSXSXSXDX", -"SXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXDXnXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXwXn X X X X X X X X X X X X X X X X X X X X X n wXSXSXSXSXSXSXSXSXSXSXSXDXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXDXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSX", -"SXSXSXSXSXSXSXSXDXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXwXd X X X X X X X X X X X X X X X X X X X X X X X X j wXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSX", -"SXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSX3Xt X X X X X X X X X X X X i 3XSXDXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXnXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSX", -"SXSXnXSXnXSXSXSXSXSXSXSXSXSXSXSXSXSXnXSXSXSXSXSXSXSXSXSXSXSXSXnXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXnXSXSXSXSXSXSXSXSXSXSXSXSXnXSXSXnXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXnXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXnXSXSXSXnX3Xt X X X X X X X X X X X X X X X X X X X X X X X t 3XnXSXSXSXSXSXSXSXSXSXSXSXvXSXSXSXSXSXSXSXSXSXSXSXSXnXSXSXSXSXSXSXnXSXSXSXSXSXSXnXSXSXSXSXSXSXSXSXSXSXnXSXSXSXSXSXSXSXSXSXSXSXnXSXSXSXSXSXSXSXSXSXnXSXSXSXSXSXSXSXSXSXSXSXnXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXnXSXSXSXSXSXSXSXSXSXnXSXSXSXSXSXSXSXnXSXSXSX", -"SXSXSXSXSXSXnXSXSXnXSXnXSXnXSXnXSXSXSXSXnXSXnXSXSXnXSXnXSXnXSXSXSXSXnXSXSXnXSXnXSXSXnXSXnXSXnXSXSXSXnXSXSXnXSXnXSXSXnXSXnXSXnXSXSXnXSXnXSXSXSXSXSXSXnXSXSXnXSXnXSXnXSXSXSXSXSXSXSXSXnXSXSXvXSXSXnXSXnXSXnXSXnXSXSXSXSXSXnXSXnXSXnXSXnXSXnXSXSXnXSXSXSXSXnXSXSXSXnX3X6 X X X X X X X X X X X X ; 3XnXSXSXSXSXnXSXnXSXSXSXvXSXSXSXSXnXSXvXSXSXSXnXvXSXSXSXSXvXSXSXvXSXSXSXnXSXSXnXnXSXSXSXSXSXSXSXnXSXnXSXSXSXnXSXSXnXSXSXnXSXnXSXSXSXnXSXnXSXSXnXSXnXSXSXSXSXnXSXnXSXSXnXSXnXSXSXSXSXnXSXnXSXnXSXSXnXSXnXSXnXSXnXSXSXnXSXSXSXSXnXSXnXSXnXSXSXSXSXnXSXSXnXnXSXSXSXSXSX", -"SXnXSXSXnXSXSXnXnXSXSXnXSXSXnXSXSXnXnXSXnXSXSXnXnXSXSXnXnXSXnXSXSXSXnXSXSXnXSXnXSXnXSXnXnXSXSXnXSXSXnXSXSXnXSXSXSXnXSXSXnXSXSXnXSXnXSXSXnXSXSXnXnXSXSXnXSXSXnXSXSXnXSXSXnXSXSXnXnXSXSXnXnXSXnXSXnXSXnXSXSXnXSXSXSXnXSXSXnXSXSXnXnXSXnXSXSXnXnXSXSXnXnXSXSXnXSXnXSXnXnXp.: X X X X X X X X X X X X X X ; p.nXSXnXSXnXnXSXnXnXSXnXSXnXSXSXnXSXSXnXSXSXnXSXnXSXnXSXSXnXnXSXnXSXSXnXSXSXnXSXnXSXSXSXnXSXnXSXnXSXnXnXSXnXnXSXnXnXSXnXSXnXSXSXnXSXSXnXSXSXnXSXSXSXnXSXSXnXSXSXnXSXnXSXnXSXSXnXSXnXnXSXSXnXSXnXSXnXSXSXnXSXSXnXSXSXnXSXnXSXnXSXSXnXnXSXnXSXSXnXSXnXSXnXSXSXnXSXSXnXSXSX", -"nXSXnXnXSXSXnXSXSXSXnXSXnXnXSXSXnXSXSXnXSXSXnXSXSXSXnXSXSXnXSXSXnXnXSXnXSXSXnXSXSXSXnXSXSXnXSXSXnXnXSXSXnXSXnXnXnXSXnXnXSXSXnXSXnXSXnXnXSXnXSXSXSXnXSXSXnXnXSXSXnXSXnXnXSXSXnXSXSXSXnXSXSXnXSXSXSXnXSXSXnXSXnXnXnXSXnXnXSXSXnXSXSXnXSXSXnXSXSXnXnXSXSXnXSXSXnXSXSXSXSXnXvXa.= X X X X X X X X X X X X X X X X ; p.lXnXSXSXSXSXSXSXSXSXSXnXSXnXSXSXnXSXnXnXSXnXSXSXnXSXSXSXnXnXSXSXSXSXnXnXSXnXSXSXnXnXSXnXSXSXnXnXSXSXSXSXSXnXSXSXSXSXSXnXSXnXSXnXSXSXnXnXSXnXSXSXnXnXSXSXnXnXSXnXSXSXnXnXSXSXnXnXSXSXSXSXnXnXSXSXSXnXSXnXSXSXnXnXSXnXSXSXnXSXSXSXnXnXSXSXSXSXnXnXSXSXnXnXSXSXnXSXnXnXSXSXnX", -"SXnXnXSXnXSXSXnXnXSXSXnXnXSXSXnXSXnXnXSXnXnXSXnXnXnXSXnXnXSXSXnXSXnXnXSXnXnXnXSXnXnXnXSXnXSXSXnXnXSXSXnXSXnXnXSXSXnXnXSXnXSXSXnXSXnXnXSXnXSXSXnXnXSXSXnXnXSXSXnXSXnXnXSXnXSXSXnXnXnXSXnXnXSXSXnXnXSXSXnXSXnXnXSXSXnXnXSXnXSXSXnXnXSXSXnXSXnXnXSXSXnXnXSXnXnXnXSXnXnXnXSXSXnXlXi.= X X X X X X X X X X X X X X + p.lXSXSXSXnXnXSXnXSXnXnXnXSXSXnXSXnXnXSXnXnXSXSXSXnXnXSXSXnXnXSXSXSXnXnXSXnXSXnXSXnXnXSXnXSXnXnXSXnXnXSXSXnXSXnXSXSXnXnXnXSXSXnXnXSXnXSXnXnXSXSXnXSXnXSXSXnXnXSXSXSXnXnXSXnXSXnXnXSXSXnXnXSXnXSXnXSXnXnXnXSXnXSXnXnXSXSXSXnXnXSXSXnXSXnXSXSXnXnXnXSXSXnXnXSXSXnXnXnXSXSXnXSXnXnX", -"SXnXSXnXnXnXnXSXnXnXnXSXnXnXnXnXSXnXSXnXnXSXnXSXnXSXnXSXnXnXnXnXSXnXSXnXnXSXnXSXnXSXnXSXnXnXnXSXnXnXnXnXSXnXSXnXSXnXSXnXnXnXnXSXSXnXSXnXnXnXnXSXnXnXnXSXnXnXnXnXSXnXSXnXnXnXnXSXnXSXnXSXnXnXnXnXnXnXnXnXSXnXSXnXSXnXSXnXnXnXnXSXnXnXnXnXSXnXSXnXSXnXSXnXnXSXnXSXnXSXSXnXnXSXnXnXlXt.+ X X X X X X X X X X X X X X X X X X X X X + p.kXvXSXnXnXnXnXSXnXnXnXSXnXnXnXSXnXnXSXnXnXSXnXnXnXnXSXnXnXnXnXSXnXnXnXnXSXnXnXSXnXnXSXnXnXSXnXnXSXnXSXnXnXnXnXnXSXnXnXSXnXnXnXSXnXnXSXnXnXnXSXnXnXSXnXnXnXnXnXSXnXnXnXnXSXnXSXnXnXSXnXnXSXnXnXSXnXnXnXnXSXnXSXnXnXnXSXnXnXnXSXnXnXnXnXnXSXnXnXnXSXnXnXSXnXSXnXnXSXnXSXnXnXSXnXnXSX", -"nXnXSXnXnXSXnXnXnXnXnXnXnXnXnXSXnXnXSXnXnXnXSXnXnXSXnXnXSXnXnXSXnXnXnXSXnXnXnXnXnXSXnXnXnXSXnXnXSXnXnXnXnXnXnXnXnXnXSXnXnXSXnXnXnXnXSXnXnXSXnXnXnXnXnXnXnXnXnXnXnXnXSXnXnXnXSXnXnXnXnXnXSXnXnXSXnXnXnXnXnXnXnXnXnXnXSXnXnXnXSXnXnXnXnXnXnXnXnXnXnXnXnXSXnXnXSXnXnXSXnXnXSXnXnXSXSXnXiX' O X X X X X X X X X X X X X X X O ' kXnXnXvXnXnXnXnXSXSXnXnXnXSXnXnXnXnXnXSXnXnXSXnXSXnXnXnXnXnXnXSXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXSXnXnXnXnXnXnXnXnXnXnXnXSXnXnXSXnXnXnXnXnXnXnXnXnXSXnXnXnXnXnXnXnXnXnXnXnXnXSXnXnXnXnXnXnXSXnXnXnXnXnXSXnXSXnXnXnXnXSXnXnXnXnXnXnXnXnXnXnXnXSXnXnXnXnXnXnXnXSXnXnXnXnXSX", -"nXnXnXnXnXnXnXnXnXSXSXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXSXSXnXnXnXnXnXnXnXnXnXnXnXnXSXnXSXSXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXSXSXnXnXnXnXSXnXnXnXnXnXnXnXnXnXSXnXnXnXnXnXnXSXnXnXSXnXSXSXnXnXnXnXnXnXnXnXnXSXnXnXSXSXnXnXSXnXnXnXnXnXSXnXnXnXnXnXnXnXnXnXnXnXnXSXSXiX' O X X X X X X X X X X X . ' iXvXnXnXnXnXnXnXSXnXnXnXnXSXnXnXnXSXnXnXSXnXnXnXnXnXnXnXnXnXnXnXSXnXnXSXnXnXnXSXnXnXSXSXnXSXnXnXSXnXSXnXnXSXnXnXnXnXnXnXSXnXnXSXnXSXnXnXSXnXnXnXnXnXnXnXnXnXnXnXSXnXnXSXnXnXSXnXnXnXSXSXnXnXnXnXnXSXnXnXnXnXnXSXnXnXSXnXnXnXnXnXSXnXnXnXnXnXSXSXnXnXnXSXnXnXSXnXnXSXnXnXnXSXnXnXnXnXnXnXnX", -"nXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXSXSXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXSXnXnXSXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXbXnXnXnXnXnXSXSXnXSXnXnXSXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXSXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXiX) . X X X X X X X X X X X X X X X X X ) iXnXnXnXnXnXnXnXnXnXnXnXnXnXnXbXSXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnX", -"nXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXbXnXnXnXnXnXnXnXnXSXnXnXnXnXnXnXnXnXnXnXnXnXnXnXbXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXbXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXbXnXbXnXnXbXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXbXnXnXbXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXvXnXiX) X X X X X X X X X X X X X X X X X X ) iXnXnXnXvXnXnXnXnXnXnXnXnXnXnXnXnXnXbXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnX", -"nXnXnXnXbXnXnXnXnXnXbXnXnXbXnXnXnXbXnXnXbXnXnXbXnXbXnXnXnXbXnXbXnXnXnXbXnXnXbXnXnXbXnXnXbXnXbXnXbXnXbXnXnXnXbXnXbXnXnXnXbXnXbXnXnXnXnXnXbXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXbXnXnXnXnXnXbXnXnXbXnXnXnXnXbXnXnXnXbXnXnXbXnXnXbXnXnXnXbXnXbXnXnXbXnXnXnXnXnXbXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXvXvXrX! X X X X X X X X X X X X V rXSXnXnXnXnXnXnXnXnXnXbXnXnXbXnXbXnXnXnXbXnXnXnXnXnXnXnXbXnXnXnXnXbXnXnXnXnXbXnXnXnXnXnXnXnXnXbXnXnXnXnXnXnXbXnXnXnXnXnXnXnXnXbXnXnXnXnXnXnXnXnXnXbXnXnXnXnXnXnXbXnXnXbXnXnXbXnXnXbXnXnXnXnXbXnXnXnXbXnXnXnXnXnXnXnXbXnXnXnXbXnXnXnXnXnXnXnXbXnXnXnXbXnXnXbXnXnXnXnXnXnXnXnXnXnXbXnXnXnXnXnXnXnXnXnXnX", -"nXnXnXnXnXnXnXbXnXnXnXnXnXnXbXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXbXbXnXnXbXbXnXnXnXnXbXnXnXnXnXnXbXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXbXnXnXnXnXnXnXnXnXnXbXnXnXnXnXnXbXnXvXnXnXnXbXnXnXbXnXnXnXbXbXnXnXnXvXvXnXnXrX! X X X X X X X X X X X X X X X ! rXnXnXnXnXnXnXbXnXnXbXnXnXnXnXnXnXnXnXnXnXnXnXnXnXbXnXnXbXnXnXnXnXnXnXnXnXbXnXnXnXnXnXbXnXnXnXnXnXnXnXnXbXbXnXnXnXnXnXbXnXnXbXnXnXnXnXnXbXnXnXnXnXnXnXnXnXnXbXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXnXbXnXbXnXnXbXnXnXbXnXnXnXnXnXbXnXnXnXnXnXbXnXnXnXnXnXnXnXbXnXnXbXnXnXbXnXnXnXnXnXnXnXnXbXnXbXnXnX", -"nXnXbXnXnXnXnXbXbXnXnXnXnXnXbXnXnXnXbXnXnXnXnXbXbXnXnXnXnXnXbXnXnXbXnXnXbXnXnXbXbXnXnXnXnXnXnXnXbXbXnXnXbXnXbXnXnXnXnXnXbXnXnXnXnXnXbXnXnXnXnXnXnXnXnXbXnXnXbXnXnXnXbXnXnXnXnXbXbXnXnXnXnXnXbXbXbXnXnXnXbXnXbXnXbXnXnXnXnXnXnXnXbXnXnXnXnXbXbXnXnXnXnXnXbXnXnXnXvXnXbXnXnXnXnXnXnXbXbXnXnXnXnXbXnXvXbXbXnXnXwXn X X X X X X X X X X X X X d wXbXnXbXnXnXvXnXbXnXnXnXnXnXbXnXnXnXnXnXbXnXbXnXbXbXnXnXnXbXnXnXbXbXnXbXnXnXbXnXnXnXnXbXnXnXnXnXnXbXnXnXnXnXbXnXnXnXnXbXnXnXnXnXbXnXbXnXnXnXnXnXbXbXnXnXbXnXbXnXbXbXnXbXnXnXnXnXnXnXnXbXnXnXnXnXnXbXnXbXnXnXbXnXnXnXnXnXbXnXnXnXnXnXnXbXnXnXnXnXnXnXbXnXnXnXnXbXnXnXbXnXnXbXnXbXnXbXnXnXbXnXbXnXnXnXnXnXnXbXnX", -"bXnXnXbXbXbXnXnXnXnXbXbXbXnXnXnXbXnXnXbXbXnXbXnXnXnXbXbXbXnXnXbXbXnXnXbXnXnXbXnXnXnXbXbXbXnXbXnXnXnXbXnXnXnXbXnXbXnXbXnXnXbXbXnXbXnXnXbXbXbXnXbXnXbXnXnXnXnXnXbXbXnXnXbXbXbXnXnXnXnXbXbXbXnXnXnXnXbXbXnXnXnXbXnXnXnXbXnXbXnXbXnXnXbXbXnXnXnXnXbXbXnXbXnXnXbXbXnXnXvXnXbXbXbXnXbXnXbXnXnXnXbXbXnXnXvXnXnXbXbXnXbXwXs X X X X X X X X X X X X X X X X X j wXbXbXnXnXnXnXbXvXnXbXnXnXnXbXbXnXbXnXnXbXnXnXnXbXnXnXbXnXnXbXnXnXbXnXnXnXnXbXnXnXnXbXbXnXnXbXbXnXbXnXnXbXbXbXnXnXbXnXbXnXnXbXbXnXbXnXnXbXnXbXnXbXnXnXnXbXnXbXnXnXnXnXnXbXnXnXbXbXnXbXnXbXnXbXbXnXnXnXnXbXnXnXbXnXnXbXnXbXnXnXnXbXbXnXbXnXnXbXbXnXbXnXbXnXbXnXbXnXnXnXbXnXnXbXnXnXbXnXnXnXbXnXnXbXnXbXbXnXbXbXnXbX", -"nXbXbXnXbXnXbXnXnXbXbXnXnXbXnXbXnXbXnXnXbXnXbXnXbXnXbXnXbXbXbXbXnXbXnXbXbXbXnXbXbXnXbXnXbXnXnXbXnXbXnXbXbXbXnXbXbXnXbXbXbXnXbXbXnXbXbXnXnXnXbXnXnXbXbXnXnXbXnXbXnXbXbXnXbXnXbXnXnXbXbXnXnXbXnXbXbXbXnXbXbXbXnXbXbXnXbXbXbXnXbXnXbXbXnXbXbXbXnXbXbXnXbXbXbXnXbXnXbXnXbXnXnXnXbXnXnXbXnXbXnXbXbXnXbXnXbXnXnXbXbXnXnXbX3Xi X X X X X X X X X X X X X i 3XbXnXnXbXnXbXbXbXnXbXnXbXnXbXnXbXbXnXbXnXbXnXbXnXbXnXbXbXnXbXnXbXnXbXnXbXnXbXnXbXbXnXbXbXnXbXnXbXnXbXbXnXbXnXbXnXbXnXbXnXbXbXbXnXnXnXnXnXbXnXbXbXbXnXbXbXnXbXnXbXbXnXnXbXnXbXbXnXbXnXbXbXnXbXnXbXnXbXbXbXbXnXbXnXbXnXnXbXbXnXnXbXnXbXnXbXnXbXnXbXnXbXbXnXbXnXnXbXnXbXbXnXbXbXnXbXnXbXbXnXbXnXbXnXbXnXbXnXbXbXnXbXnXbX", -"bXbXnXbXnXnXnXbXbXnXnXbXbXnXbXnXbXnXbXbXnXbXnXbXbXnXnXbXnXnXbXnXbXnXbXnXnXnXbXnXnXbXnXbXnXbXbXnXbXnXbXnXnXbXnXnXnXbXnXbXnXbXnXbXbXbXnXbXnXbXnXbXbXnXnXbXbXnXbXnXbXbXnXnXnXbXbXnXbXnXnXbXbXnXbXnXnXnXbXnXnXnXbXnXnXbXnXbXnXbXnXbXnXnXbXnXbXnXnXnXnXbXbXnXnXbXnXbXbXbXnXbXbXbXnXbXbXnXbXnXbXbXnXbXnXbXnXbXbXnXnXbXbXnXbXbXc.6 X X X X X X X X X X X X X X X X X 9 3XbXnXbXbXbXnXbXnXbXnXbXnXbXnXbXnXbXbXnXbXnXbXnXbXnXbXnXbXbXnXbXnXbXnXbXnXbXnXbXnXnXbXnXbXbXnXbXnXbXnXbXnXnXbXnXbXnXbXnXbXnXbXbXnXnXnXbXbXbXbXnXbXbXnXnXbXbXnXbXnXbXnXbXnXbXnXbXnXnXbXnXbXbXnXbXnXbXbXbXnXbXnXbXbXnXbXbXbXbXnXnXbXbXnXbXnXbXnXbXnXbXnXbXnXnXbXnXbXbXnXbXnXnXbXnXbXbXnXbXbXnXbXnXbXnXbXnXbXnXbXbXnXbXnXnXbX", -"nXbXbXnXbXbXbXbXnXbXnXbXbXnXnXbXbXnXbXnXnXbXbXnXnXbXnXbXbXbXnXbXbXnXnXbXbXnXbXnXnXbXnXbXbXbXnXbXbXnXbXnXnXbXbXnXbXnXnXbXbXbXnXbXnXbXbXnXbXbXbXbXnXbXbXnXbXnXbXbXnXbXnXbXbXnXnXbXnXbXnXbXbXnXbXbXbXbXnXbXbXnXbXnXbXnXbXbXbXbXnXbXbXbXbXnXnXbXbXnXbXnXbXbXbXbXbXbXnXbXbXnXnXbXbXbXbXbXbXnXnXbXbXnXbXbXnXbXnXbXbXbXvXbXbXbXvXvXc.> X X X X X X X X X X X X 6 c.vXbXnXbXnXbXbXnXbXbXbXnXbXnXbXbXbXnXnXbXbXnXbXbXbXbXbXbXbXbXnXbXnXbXbXbXbXbXbXbXbXbXbXnXbXnXbXnXbXbXnXbXbXnXnXbXbXnXbXbXbXbXnXnXbXnXbXbXbXnXnXbXbXnXnXbXbXbXbXbXnXbXbXnXbXbXbXbXbXbXbXnXbXnXbXnXbXnXbXbXbXbXnXbXbXnXbXnXnXbXnXbXnXbXbXnXnXbXbXnXbXnXbXbXbXbXbXnXbXnXnXbXnXbXbXbXnXnXbXbXbXbXbXbXbXbXbXbXnXbXbXbXnXbXnXbXbXbX", -"bXbXbXnXbXnXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXnXbXbXbXbXbXbXbXbXbXbXbXbXbXbXnXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXnXbXbXbXbXbXbXnXbXnXbXbXbXbXbXbXbXbXnXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXnXbXbXbXbXbXbXbXbXnXnXbXbXbXbXbXnXbXbXbXbXbXbXbXnXbXnXbXbXbXbXbXbXbXbXbXbXnXbXnXbXbXbXbXbXbXnXbXbXbXbXbXbXnXbXbXbXvXbXbXvXbXlXa.; X X X X X X X X X X X ; a.kXvXbXvXbXbXbXbXbXbXnXbXbXbXbXbXnXbXbXbXbXbXbXnXbXnXbXbXbXvXbXbXbXbXbXbXbXnXbXnXbXnXnXbXbXbXbXbXbXbXbXnXbXbXbXbXbXbXbXnXbXnXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXnXbXnXbXbXbXbXbXbXnXbXnXbXnXbXbXbXbXbXbXbXbXnXnXbXnXbXbXbXnXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXnXbXnXbXbXnXbXbXnXbXbXbXnXbXbXbXbXbXbXnX", -"bXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXcXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXkXa.; X X X X X X X X X X . - a.bXbXvXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXnXbXbXbXbXbXbXbXbXbXbXnXbXbX", -"bXbXbXbXbXbXbXbXbXbXbXcXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXcXbXbXbXbXbXbXbXbXbXbXbXbXcXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXcXbXbXbXbXbXbXbXbXbXbXbXbXbXcXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXkXt.+ X X X X X X X X X X X X + t.jXbXbXcXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXcXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbX", -"bXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXcXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXcXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXkXt.O X X X X X X X X X X X X X + t.jXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXcXnXcXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbX", -"bXbXcXbXbXbXbXbXbXcXbXbXcXbXbXbXbXcXbXbXbXbXbXbXbXbXbXcXbXbXbXbXbXbXbXcXcXbXbXbXbXbXbXbXbXbXcXbXbXbXcXbXbXbXbXcXbXbXbXbXbXcXbXbXbXbXbXbXbXbXbXbXbXcXbXbXcXbXbXbXbXcXbXbXbXbXbXbXbXbXcXbXbXbXbXbXbXbXbXcXbXcXbXbXbXbXbXbXbXbXbXcXbXbXcXbXbXbXcXbXcXbXbXbXbXbXcXbXbXbXbXbXbXbXbXbXbXbXcXbXcXbXbXbXbXbXcXbXbXbXcXbXbXbXbXbXbXcXbXbXbXcXbXbXbXbXbXjX' @ X X X X X X X X o ' iXbXcXbXbXbXbXbXcXbXbXbXbXcXbXbXbXcXbXbXbXbXbXcXbXbXbXbXbXbXcXbXbXbXbXbXbXbXbXbXbXbXcXbXbXbXbXbXbXbXcXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXcXbXbXbXbXcXbXbXbXcXbXbXbXbXbXbXcXbXbXbXbXbXcXbXbXbXbXbXbXbXcXbXbXbXbXbXbXbXbXbXbXbXbXcXbXbXbXbXcXbXbXbXcXbXbXbXcXbXbXcXbXbXbXbXbXbXbXcXbXbXbXbXcXbXbXcXbXbXbXbXcXbXbXcXbXbXbXbXbXcXbXbXbXcXbXbXbXbXbX", -"bXcXcXbXbXbXbXcXbXbXcXbXbXbXcXbXbXcXbXbXbXcXbXbXcXbXbXbXbXcXcXbXcXbXbXbXbXcXcXbXbXbXbXcXbXcXbXbXcXbXbXbXbXbXcXbXcXbXbXbXcXbXbXbXbXcXcXbXbXbXbXcXbXbXcXbXbXbXcXbXbXcXbXbXbXcXbXbXcXbXbXbXbXcXbXcXcXbXbXbXcXbXbXbXbXbXbXbXcXbXbXbXbXbXbXbXbXbXbXcXbXbXbXbXcXbXbXbXbXcXbXcXbXbXbXcXbXcXbXbXbXbXbXcXcXbXbXbXbXbXcXbXcXbXbXbXcXbXbXbXbXcXcXbXbXbXbXcXcXiX' X X X X X X X X X X X X X X X X . ` iXbXbXbXbXcXcXbXbXbXbXbXcXbXbXbXcXbXbXcXbXbXbXbXcXbXbXbXbXcXbXcXbXbXbXbXcXbXcXbXbXbXbXcXbXbXbXbXbXcXbXcXbXbXbXbXbXcXcXbXbXbXbXcXbXcXbXbXcXbXbXbXbXbXcXbXbXbXbXbXcXbXcXbXbXbXcXbXbXbXcXbXbXbXbXbXcXbXcXbXbXbXbXbXcXbXbXbXcXbXbXbXcXbXbXcXbXbXbXcXbXbXbXbXcXbXbXbXcXbXbXbXcXbXcXbXbXbXbXbXbXcXcXbXbXbXbXbXbXcXbXcXbXbXbXbXbXcXbXbXbXbXcXbXbXbXcXbXbXcX", -"cXbXbXbXbXcXbXcXcXcXbXbXcXbXcXbXbXcXbXcXbXbXcXbXcXbXcXbXcXbXbXcXcXbXcXbXcXbXbXbXcXcXbXbXcXbXbXcXbXbXcXbXcXcXbXbXbXcXcXbXcXbXcXbXbXbXbXbXbXcXbXcXcXcXbXbXcXbXcXbXbXcXbXcXbXbXcXcXcXbXcXbXcXbXbXcXcXbXcXbXcXbXcXbXcXbXcXcXbXcXbXcXcXbXcXbXcXcXbXbXbXcXbXcXbXcXcXbXbXbXbXcXbXcXbXcXbXbXcXbXcXbXcXbXbXbXcXbXcXcXbXbXbXcXcXbXcXbXcXbXcXbXbXbXbXcXbXcXbXcXcXiX) X X X X X X X X X X X X X X X X ) iXcXcXcXbXcXcXbXbXcXcXbXcXcXbXbXcXbXbXcXbXcXcXbXcXcXbXbXcXcXbXbXcXbXbXcXcXbXbXcXbXbXcXcXcXbXbXcXcXbXcXbXcXbXbXcXcXbXcXbXcXbXcXbXcXbXbXcXcXcXbXbXbXcXbXcXbXbXcXbXcXcXbXbXbXcXcXbXcXbXcXbXbXcXbXcXcXbXbXcXbXcXbXcXcXbXbXcXcXcXbXbXcXbXbXcXbXcXbXcXbXbXcXcXcXcXbXbXcXbXcXbXbXcXbXcXbXbXcXcXcXbXcXbXbXcXcXbXcXbXcXbXbXcXcXbXbXcXbXcXbXcXcXbXbXbXcXcXbXcXcXbX", -"bXcXbXcXcXbXcXbXbXbXbXcXbXcXbXcXbXbXcXbXcXbXbXcXbXcXbXcXbXcXbXbXbXbXbXbXbXcXbXcXbXcXcXbXbXbXcXbXbXcXbXcXbXcXbXcXbXbXbXbXbXcXbXcXbXcXbXcXcXbXcXbXbXbXbXcXbXbXbXcXbXbXcXbXcXbXbXbXbXcXbXcXbXcXbXbXbXbXbXbXbXcXbXcXbXcXcXbXbXbXcXbXbXcXbXcXbXcXcXbXcXbXcXbXbXbXbXbXcXbXcXbXcXbXcXbXcXbXbXcXbXcXbXcXbXcXbXcXbXcXbXcXbXbXbXbXbXcXbXcXbXcXbXcXcXbXcXbXcXbXbXcXbXrX) X X X X X X X X X X ) rXbXbXbXcXbXcXbXbXbXbXbXbXcXbXcXbXcXbXbXbXcXbXbXcXbXbXbXbXcXbXcXcXbXbXbXbXcXcXbXcXbXcXbXbXbXbXbXcXbXbXcXbXbXbXbXbXcXbXcXbXbXbXcXbXcXbXcXcXbXbXcXbXcXbXbXbXcXbXcXbXcXbXcXbXcXbXbXbXbXbXbXbXcXcXbXcXbXcXbXcXbXcXbXcXbXcXbXcXbXbXcXbXcXbXbXbXcXcXbXcXbXbXcXbXbXbXbXbXcXbXbXbXcXcXbXcXbXcXbXbXbXbXcXbXcXbXbXbXcXbXcXbXcXbXbXbXcXcXbXcXbXcXbXcXbXcXbXbXbXbXcXbXbX", -"bXbXcXbXcXbXcXbXcXcXbXcXbXbXcXbXcXcXbXcXbXcXcXbXcXbXcXbXcXbXcXbXbXcXcXcXcXbXcXbXcXbXbXcXbXcXbXcXcXbXcXbXcXbXbXcXcXcXcXcXcXbXcXbXcXbXcXbXcXbXbXcXcXcXcXbXcXbXcXbXcXcXbXcXbXcXcXbXcXbXcXbXcXbXcXbXbXcXcXcXcXbXcXbXbXcXbXcXbXcXbXcXcXbXcXbXcXbXbXcXbXcXbXcXcXcXcXcXcXbXcXbXbXcXbXbXcXcXcXbXcXbXcXbXcXbXcXbXcXbXbXcXcXcXcXcXcXbXcXbXcXbXcXbXbXcXbXcXbXcXcXbXbXcXbXrXV . X X X X X X X X V rXbXbXbXcXcXbXbXcXbXcXcXcXbXcXbXcXbXbXcXcXcXbXcXcXbXcXbXcXcXcXbXcXbXbXcXcXcXbXcXbXcXbXcXbXcXcXbXcXcXbXcXbXcXcXcXcXcXbXcXbXcXcXcXcXbXcXbXcXbXcXbXcXbXbXcXcXcXbXcXcXbXcXbXcXbXbXcXcXcXcXcXcXcXcXbXbXcXbXcXbXcXbXcXbXcXbXcXbXcXbXcXcXbXcXcXcXcXbXcXbXcXbXcXbXbXcXbXcXcXcXbXcXcXcXbXbXcXbXcXbXcXcXbXcXbXcXbXcXbXcXbXcXbXcXbXcXbXcXbXbXcXbXcXbXcXbXcXbXcXcXcXcXbXcXcX", -"bXcXcXcXcXcXcXcXbXcXcXcXbXcXbXcXbXcXcXcXcXbXbXcXcXbXbXcXbXcXbXcXcXcXcXbXcXbXcXbXcXbXcXcXcXcXcXbXcXbXcXbXcXcXbXcXcXcXcXcXcXcXcXbXbXcXbXcXcXcXcXcXbXcXcXcXbXcXbXcXbXcXcXbXcXbXbXcXbXcXbXcXbXcXbXcXcXbXcXbXcXbXcXbXcXcXbXcXcXcXcXbXcXbXcXbXcXcXcXbXcXcXcXbXcXbXcXbXbXcXbXcXcXcXcXcXbXcXcXbXcXbXcXcXcXbXcXbXcXcXbXcXcXcXcXcXcXcXcXcXcXbXcXbXcXbXcXbXcXcXcXbXcXbXcXcXcXrXV X X X X X X X X X X V rXcXcXcXcXbXcXbXcXcXbXcXcXcXcXbXbXcXcXcXcXbXcXcXbXbXcXbXcXcXbXcXcXcXcXcXcXbXcXbXcXbXcXbXcXcXcXcXbXcXcXcXbXcXcXcXcXbXcXbXcXbXcXcXbXcXcXcXcXcXcXbXcXcXcXbXbXcXbXcXcXcXcXbXcXbXcXcXbXcXbXcXbXcXcXcXcXcXcXcXcXbXcXbXcXcXcXcXbXbXcXcXcXbXcXcXcXbXcXbXcXbXcXbXcXcXcXcXbXcXbXcXbXcXcXbXcXbXcXbXcXcXcXcXbXcXcXbXcXcXbXcXbXcXbXcXcXcXcXbXbXcXbXcXbXcXbXcXbXcXcXcXcXbXcXbXcXcX", -"cXcXbXcXcXbXcXbXcXcXcXcXcXcXcXcXcXcXcXbXcXcXcXcXcXcXcXcXcXcXcXcXcXbXcXcXcXcXcXcXcXcXcXcXbXcXcXcXcXcXcXcXcXbXcXcXcXbXcXbXcXbXcXcXcXcXcXcXcXbXcXbXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXbXcXcXcXbXcXcXcXbXcXcXbXcXcXcXcXbXcXcXcXcXcXcXcXcXcXcXbXcXbXcXcXcXcXbXcXcXcXcXcXcXcXcXcXbXcXcXbXcXbXbXcXbXcXcXcXcXcXcXcXcXcXcXcXcXcXbXcXcXbXcXcXcXzXwXn X X X X X X X X X X j wXcXzXcXcXcXcXbXcXcXbXcXcXcXcXbXcXcXcXcXcXbXcXcXcXcXcXcXcXcXcXcXcXcXcXbXcXbXcXcXcXbXcXcXcXcXbXcXbXcXcXcXbXcXcXcXcXbXcXcXcXbXcXcXbXcXcXcXcXbXcXbXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXbXcXcXcXcXcXcXcXbXbXcXcXbXcXcXcXcXcXbXcXcXcXcXcXcXcXcXcXbXcXcXcXbXbXcXcXcXcXbXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXbXbXcXcXcXcXcXbXcXcXcXcXcXcXcXcXbXcXcXcXcXcXcXcXcXcXcXcXcXcXcXbXbXcXcXbXcX", -"cXcXcXbXbXcXcXcXcXbXcXcXcXcXbXcXbXcXcXcXcXcXbXcXcXcXbXcXcXcXcXcXbXcXcXcXcXbXcXcXcXcXbXcXcXcXcXcXcXbXcXcXcXcXcXbXbXcXcXcXbXcXcXcXcXcXcXbXbXcXcXcXcXbXcXcXcXcXbXcXcXbXcXcXcXcXbXcXcXcXbXcXcXcXcXcXcXbXcXcXcXcXcXcXcXcXcXcXcXbXcXcXcXcXcXcXcXcXcXbXbXcXcXcXcXbXcXcXcXcXcXbXcXcXcXcXcXcXcXcXcXcXbXcXcXbXcXcXcXcXcXbXcXcXcXcXbXcXcXcXcXbXcXcXcXcXcXcXbXcXcXcXbXcXcXcXcXcXcXbXcXwXe . X X X X X X X X j wXzXzXcXbXcXbXcXcXcXbXcXcXcXbXcXcXcXcXcXbXcXcXcXcXcXcXcXbXcXcXcXbXcXbXcXcXcXcXbXcXcXcXcXcXcXbXcXcXcXcXcXcXcXcXcXcXbXcXbXcXcXcXcXcXcXcXcXcXbXbXcXcXcXbXcXcXcXcXbXcXcXcXcXcXbXcXbXcXcXcXcXcXbXcXcXcXbXcXcXcXcXcXcXcXbXbXcXcXcXcXcXbXcXbXcXcXbXcXbXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXbXcXbXcXcXcXbXcXcXcXcXcXcXcXbXcXcXcXcXcXbXbXcXcXcXcXbXcXcXcXcXcXcXcXcXcXcXbXcXcXcXbXcXcXcX", -"cXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXbXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXzXcXcXcXcXcXcXcXcXcXcXcXcXbXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXbXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXbXcXcXcXcXcXcXcXzXcXcXcXcXcXcXcXcXcXzXv.i X X X X X X X i C.zXcXcXcXzXcXcXcXcXcXcXzXcXcXcXcXcXcXcXcXcXcXcXcXbXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXzXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXbXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXbXcXcXcXcXcXcXcXcXcXcXbXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcX", -"cXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXzXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXxXcXcXcXcXcXcXcXzXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXbXzXcXcXzXcXcXcXcXcXcXcXcXcXcXcXcXbXxXcXcXcXcXcXcXzXv.t X X X X X X X X X X X X X X t v.zXzXcXcXzXcXcXcXcXcXcXcXcXzXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXzXcXcXcXcXcXcXcXcXcXzXzXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXzXcXcXcXcXcXxXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXxXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXzXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXxXcXcXcX", -"cXcXcXcXcXcXcXxXxXcXcXcXcXcXcXcXcXcXcXxXcXxXcXcXcXcXzXzXcXxXcXcXcXcXcXcXcXcXxXcXcXcXxXcXcXcXcXcXcXcXxXcXcXcXxXcXzXzXzXzXcXcXcXxXcXcXcXcXcXcXcXxXxXcXcXcXcXcXcXcXcXcXxXcXcXcXxXcXcXcXzXzXcXxXcXcXcXcXxXcXcXcXxXcXcXcXxXcXcXcXcXcXcXcXcXcXcXcXxXcXzXzXzXzXcXcXxXcXcXzXzXzXcXcXcXcXxXcXcXcXcXcXcXcXcXcXxXcXcXcXxXcXcXcXcXcXcXcXcXxXzXzXcXcXcXcXxXcXcXcXxXcXcXcXcXzXxXcXcXcXcXcXcXxXzXzXxXc.5 X X X X X 6 c.cXcXcXcXcXzXzXcXcXxXcXcXcXxXcXzXzXzXzXcXcXcXxXcXxXcXcXzXzXcXcXcXxXcXcXcXcXxXcXcXcXxXcXcXcXcXcXcXxXcXcXzXzXcXcXcXxXcXcXcXzXzXzXcXcXcXcXcXcXxXcXcXcXxXcXcXcXcXcXcXcXcXxXcXxXcXcXcXcXcXcXcXcXxXcXcXcXxXcXcXzXzXzXcXcXcXcXxXcXcXcXzXzXzXcXcXcXcXcXcXcXcXxXcXcXcXcXxXcXcXcXcXcXcXcXcXcXcXxXcXcXcXcXxXcXcXxXcXcXcXcXcXxXcXcXcXxXcXcXcXcXzXzXcXcXcXxXxXcXcXcXcXcXcXcXcXxXcXcXxXcXcXcXcXcXxXcX", -"cXcXcXxXcXxXcXcXcXcXcXcXxXcXcXcXxXcXcXcXcXcXcXcXxXcXzXzXcXcXcXcXcXcXxXcXcXcXxXcXcXcXcXcXcXcXcXxXcXcXcXxXcXcXcXcXcXcXzXzXcXcXxXcXcXcXcXxXcXxXcXcXcXcXcXcXxXcXcXcXcXcXxXcXcXcXcXcXcXcXzXzXcXcXcXcXcXcXcXcXcXcXcXcXcXxXcXcXcXcXxXcXcXcXcXcXcXxXcXcXcXcXzXcXcXcXxXcXcXcXcXcXcXxXcXcXcXcXxXcXcXcXcXcXcXcXcXxXcXcXcXcXcXcXcXxXxXcXcXcXcXcXcXcXcXcXcXxXcXcXcXcXzXzXzXzXcXcXcXcXxXcXcXcXcXzXzXzXzXa.; X X X X X X X X X X 5 a.zXxXzXzXcXzXzXzXzXcXcXcXxXcXcXcXcXcXcXzXzXxXcXcXcXcXcXcXcXzXcXcXcXcXcXcXcXcXcXxXcXcXcXcXcXcXcXcXcXcXcXcXcXzXcXcXcXcXcXcXcXcXcXzXzXcXcXxXcXcXcXcXcXcXxXcXcXcXcXxXcXcXcXxXcXcXcXcXcXcXxXcXcXcXcXcXxXcXcXcXcXcXcXzXzXcXxXcXcXcXcXcXcXxXcXcXcXcXcXcXcXxXcXcXcXcXcXcXcXcXcXcXxXcXcXcXcXcXcXcXcXcXcXcXcXcXxXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXzXzXcXxXcXcXcXcXcXcXxXcXcXcXcXcXcXcXcXcXcXxXcXcXcXcX", -"cXxXcXcXcXcXxXcXcXxXxXcXcXcXcXxXcXcXxXcXcXxXxXcXcXcXcXzXcXxXcXcXxXcXxXcXxXcXcXcXcXxXcXxXcXxXcXcXxXcXcXcXcXxXcXxXcXxXcXcXxXcXcXcXcXxXcXcXcXcXxXcXcXxXxXcXcXcXcXxXxXcXcXcXcXxXcXxXcXxXcXcXcXcXxXcXxXcXxXcXcXxXcXxXcXcXcXxXcXxXcXcXcXxXcXxXcXcXcXxXcXxXcXcXxXcXcXcXcXxXcXzXcXcXxXcXxXcXcXcXxXcXcXxXxXcXcXcXcXxXcXxXcXxXcXcXcXcXxXcXxXcXcXxXxXcXcXcXcXxXcXxXcXzXzXxXcXxXcXxXcXcXcXcXxXzXzXzXzXxXxXa.; X X X X X X X X ; a.xXcXzXzXzXxXzXzXzXzXzXxXcXcXcXcXxXcXxXcXxXcXcXcXcXxXcXcXxXxXcXzXzXcXxXcXxXcXxXcXcXcXcXxXcXxXcXcXxXcXxXcXxXcXxXzXzXxXcXcXxXcXxXcXxXzXxXcXxXcXcXcXxXcXxXcXcXcXxXcXxXcXcXxXcXcXcXcXxXxXcXcXcXcXxXxXcXcXcXcXxXcXxXcXxXcXcXcXcXxXcXxXcXxXcXcXcXcXxXcXxXcXxXcXcXcXcXcXxXcXxXcXxXcXxXxXcXxXcXxXcXcXcXcXxXcXxXcXcXcXcXxXcXxXcXxXcXxXcXcXxXxXcXcXxXcXcXcXcXxXcXcXxXxXcXcXcXcXxXcXcXxXcXxXcXcXcXcXxXcXcX", -"xXcXcXxXcXxXcXcXcXcXxXcXxXcXcXxXcXxXcXxXcXcXxXcXxXcXxXcXcXcXcXxXxXcXxXcXxXcXxXcXcXcXcXxXxXcXxXcXxXcXxXcXcXcXcXxXcXcXxXcXxXcXxXcXxXcXcXxXcXxXcXxXcXcXxXcXxXcXcXxXcXxXcXxXcXcXxXcXxXcXcXcXxXcXxXcXcXcXxXcXxXcXxXcXxXcXcXxXcXcXxXcXxXcXxXcXxXcXcXxXcXcXxXcXxXcXxXcXxXcXcXxXcXxXcXcXcXcXxXcXxXcXcXxXcXxXcXxXcXcXxXcXcXxXxXcXcXcXcXxXcXcXxXcXxXcXxXcXxXcXxXcXcXxXcXcXxXcXcXcXxXcXxXcXcXxXcXxXcXcXcXcXfXt.+ X X X X X X X X X X $ t.jXcXcXxXcXxXcXxXcXxXcXcXxXcXcXxXcXxXcXxXcXcXcXcXxXcXcXxXcXxXcXxXcXcXxXcXxXxXcXxXcXcXxXcXcXcXcXcXcXcXcXcXcXxXcXxXcXcXcXcXcXcXcXxXcXcXcXcXxXcXcXxXcXxXcXcXcXxXcXxXcXcXxXcXxXcXcXcXcXxXcXxXcXcXxXcXxXcXxXcXcXcXxXcXxXcXxXxXcXcXcXcXxXcXxXcXxXcXxXcXxXcXxXcXcXcXxXcXxXcXcXcXcXxXcXxXcXcXcXcXcXxXcXxXcXcXcXcXcXxXcXxXcXcXcXcXcXxXcXxXcXxXcXcXcXxXcXxXcXcXxXcXcXcXxXcXcXxXcXxXcXcXxXcXcXcXxXcXxXcXxXcXxX", -"cXxXzXxXxXcXxXxXxXxXcXxXcXxXzXxXxXcXxXcXxXzXcXxXzXxXzXzXxXxXxXcXcXxXcXxXcXxXcXxXxXxXxXcXcXxXcXxXcXxXcXxXxXxXxXcXxXxXcXxXcXxXcXxXcXxXzXxXxXcXxXcXxXcXxXcXcXxXzXxXxXcXxXcXxXzXxXzXcXxXxXzXcXxXcXxXxXcXcXxXcXxXcXxXcXxXcXxXxXxXcXxXcXxXcXxXcXxXcXxXxXcXxXcXcXxXcXxXxXxXzXxXxXcXxXxXxXxXcXxXcXxXzXxXxXcXxXcXxXzXzXxXcXxXzXzXxXxXxXcXxXcXxXcXcXxXcXxXcXxXcXxXzXxXxXzXxXxXxXxXcXxXcXxXxXcXxXcXxXxXxXcXcXcXjXt.+ X X X X X X X + t.jXxXxXxXxXcXxXcXxXcXxXcXxXcXxXxXxXcXxXcXxXcXxXxXxXcXxXxXcXcXxXcXxXcXxXxXcXxXzXxXcXxXzXxXcXxXxXxXxXxXxXxXxXxXxXcXxXcXxXxXxXxXxXxXxXcXxXxXxXxXzXxXzXcXxXcXxXxXzXcXxXzXxXxXcXxXcXxXxXxXcXxXcXcXxXxXcXxXcXxXcXxXxXcXxXxXcXxXcXzXzXxXxXcXxXxXcXxXcXxXcXxXcXxXcXxXxXxXcXxXcXxXxXxXxXcXxXcXxXxXxXxXxXcXxXcXxXxXxXxXxXcXxXcXxXxXxXxXxXcXxXcXxXcXxXxXzXxXcXcXxXcXxXxXxXxXcXxXzXxXcXcXxXzXxXxXxXxXcXzXxXxXcXxXcX", -"xXxXzXzXxXzXcXxXxXcXcXxXxXxXcXzXxXzXcXxXzXxXzXxXxXzXxXxXzXxXxXcXxXcXcXxXxXcXcXcXcXxXxXcXxXcXcXxXxXxXcXcXcXxXxXcXxXcXcXxXxXxXcXcXxXxXcXzXxXzXcXxXcXxXcXxXxXxXcXzXxXzXcXxXzXxXzXxXxXxXzXxXzXxXxXzXcXxXcXxXxXxXcXcXcXxXxXcXxXcXcXxXxXxXcXcXcXxXxXcXcXxXcXxXxXxXcXcXcXzXzXzXxXzXcXxXxXcXcXxXxXxXcXzXxXzXcXxXzXxXxXzXxXzXxXxXzXxXxXcXcXxXcXxXxXxXcXcXcXxXxXcXxXzXzXxXcXcXxXcXxXcXxXcXcXxXxXcXcXcXxXxXzXzXxXxXiX` O X X X X X X X X + ` uXxXcXzXxXxXcXcXxXxXcXcXcXcXxXxXcXxXcXcXxXxXxXcXcXcXxXxXcXcXxXcXxXxXxXcXcXcXxXxXzXcXxXzXxXcXxXcXxXxXcXxXcXxXcXxXcXxXcXxXcXcXxXcXxXxXcXxXcXxXzXzXxXzXxXxXzXxXxXzXxXxXzXxXzXcXxXxXcXcXcXcXxXxXcXxXxXcXxXxXxXxXcXcXxXcXxXxXcXcXcXxXxXzXxXxXcXcXxXxXcXcXcXcXxXxXcXcXxXcXxXxXxXxXcXxXcXxXcXxXcXcXxXxXxXxXcXxXcXxXcXxXxXxXcXxXcXxXcXxXcXxXcXxXcXxXxXzXzXzXzXxXxXcXxXxXcXcXcXxXxXzXzXxXxXzXzXxXzXzXzXxXzXxXzXcXxX", -"xXcXxXxXzXxXzXxXcXxXxXcXxXcXxXxXzXxXzXxXxXzXxXzXxXzXxXzXxXzXxXxXcXxXxXcXxXcXxXxXxXcXxXxXcXxXxXxXxXcXxXxXxXcXxXxXcXxXxXcXxXcXxXxXxXcXxXxXzXxXzXxXxXxXxXcXxXcXxXxXxXxXzXxXxXzXxXzXxXzXxXzXxXzXxXxXxXxXxXcXxXcXxXxXxXcXxXxXcXxXxXcXxXcXxXxXxXcXxXxXxXxXxXcXxXcXxXxXxXxXxXxXzXxXzXxXcXxXxXcXxXcXxXxXzXxXzXxXxXzXxXzXzXxXxXzXxXzXxXxXxXxXxXcXxXcXxXxXxXcXxXxXzXxXxXcXxXxXcXxXcXxXxXxXxXxXcXxXxXxXcXxXzXxXxXxXxXcXuX` O X X X X X . ` uXzXzXcXxXzXxXcXxXxXcXxXcXxXxXxXcXxXxXcXxXxXxXxXcXxXxXxXcXxXxXxXxXxXcXxXcXxXxXzXxXzXxXxXzXxXzXcXxXxXcXxXxXxXcXxXxXcXxXxXxXcXxXxXxXxXcXxXxXxXxXzXxXzXxXxXzXxXzXxXzXxXzXxXzXxXxXxXxXcXxXxXxXcXxXcXxXxXcXxXxXcXxXxXxXcXxXxXcXxXxXxXxXxXzXxXzXxXxXxXcXxXxXxXxXxXcXxXxXxXcXxXcXxXxXxXxXcXxXxXxXcXxXcXxXxXcXxXxXcXxXxXxXcXxXxXxXcXxXxXcXxXcXxXxXcXxXxXcXxXxXxXxXxXzXxXcXxXxXxXxXxXcXxXxXxXzXxXxXzXxXxXxXzXxXzXxXzXxX", -"xXxXxXxXxXxXxXzXxXxXxXxXcXxXxXxXxXxXxXxXzXxXxXxXxXzXxXxXxXzXxXxXxXxXxXxXxXcXxXxXxXxXxXcXxXxXxXxXxXxXxXxXxXxXcXxXxXxXxXxXcXxXxXxXxXxXxXxXxXxXxXzXxXcXxXxXxXxXxXxXzXxXxXxXxXzXxXxXxXzXxXxXxXzXxXxXxXxXxXxXcXxXxXxXxXxXxXxXcXxXxXxXxXxXxXxXxXxXcXxXxXcXxXxXxXxXxXxXxXxXxXxXxXxXxXzXxXxXxXxXcXxXxXxXxXxXxXxXzXxXxXxXxXzXxXxXxXzXxXxXxXcXxXxXxXxXxXxXxXxXxXxXcXxXxXxXxXxXxXxXxXxXxXcXxXxXcXxXxXxXxXxXxXcXxXxXxXxXxXxXrXJ X X X X X X X . ) uXxXcXxXxXxXxXxXxXxXxXxXxXcXxXxXxXxXxXxXxXcXxXxXxXxXxXxXxXxXxXcXxXxXcXxXxXxXxXxXxXxXxXzXxXxXxXzXxXxXxXxXxXxXxXxXxXxXcXxXxXxXxXxXxXcXxXxXxXxXxXxXxXxXxXxXxXzXxXxXxXxXxXxXxXxXxXxXxXxXxXcXxXxXxXxXxXxXxXxXxXxXcXcXxXxXcXxXxXxXxXcXxXxXzXxXxXxXzXxXxXxXxXxXcXxXxXxXxXxXcXcXxXxXxXcXxXxXcXxXxXxXxXcXxXxXxXxXxXxXxXcXxXxXcXxXxXxXxXxXcXxXxXxXxXxXxXxXxXxXzXxXxXxXzXxXxXxXxXxXcXxXxXxXxXxXxXxXzXxXxXxXzXxXxXxXxXxXxXxXzX", -"xXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXcXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXrX) . X X X X X X J rXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXcXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXcXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXzXxXxXxXzXxXxXxXxXxXxXxXxXxXxXxXxXxXcXcXhXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXcXxXxXxXcXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxX", -"xXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXhXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXrXV X X X X X X X V rXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXhXxXxXhXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxX", -"xXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxX'.V X X X X X X X V rXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXhXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXhXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXhXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxX", -"xXxXxXxXxXxXhXxXhXxXxXhXxXxXxXxXxXhXxXxXxXxXxXxXxXxXhXxXxXxXxXxXxXxXxXxXxXhXxXhXxXxXxXxXhXxXhXxXxXxXxXxXxXxXhXxXhXxXxXhXhXxXxXxXxXxXxXxXxXhXxXhXxXxXhXxXxXxXxXxXxXxXxXxXhXxXhXxXxXxXxXxXxXxXxXxXxXxXhXxXhXxXhXxXxXxXxXxXxXxXxXxXxXxXxXxXxXhXxXhXxXxXhXxXxXxXxXxXxXxXxXxXxXxXhXxXhXxXxXhXhXxXxXxXhXxXxXhXxXxXxXxXxXxXhXxXxXxXxXxXxXhXhXhXxXxXxXxXxXxXxXxXxXxXxXxXxXxXhXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXhXxXC.j X X X X X X b C.xXxXxXxXxXxXhXxXxXxXxXxXxXxXxXxXxXxXhXxXhXxXxXhXxXxXxXxXxXhXxXxXxXxXxXxXxXhXxXxXhXxXhXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXhXxXhXxXxXxXxXxXxXxXxXhXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXhXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXhXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXxXhXxXhXxX", -"xXxXxXhXxXxXxXxXxXxXxXxXhXxXxXhXxXxXxXhXhXxXhXxXxXxXxXxXxXhXhXxXxXxXhXxXxXxXxXxXxXhXxXxXxXxXxXxXxXxXxXhXxXxXxXxXxXxXxXxXxXxXxXhXxXxXxXhXxXxXxXxXxXxXhXxXhXxXxXhXxXhXxXhXxXxXxXxXhXxXhXxXxXhXxXhXxXhXxXxXxXxXxXxXxXxXhXxXxXhXxXhXxXxXxXhXxXxXxXxXxXxXhXxXhXxXxXhXxXxXxXhXxXxXxXxXxXxXxXxXxXxXxXhXxXxXxXxXhXxXhXxXxXxXxXxXxXhXhXxXxXxXxXxXhXxXhXxXhXxXhXxXxXhXxXhXxXxXxXxXhXxXxXhXxXhXhXxXxXhXhXxXxXhXhXxXxXhXhXxXhXxXxXxXxXxXxXxXxXxXC.h X X X X X X i C.xXxXxXhXxXhXhXxXxXxXhXxXhXxXxXhXxXhXxXxXxXxXxXxXxXxXxXhXxXxXxXxXxXhXxXxXxXhXxXxXxXxXxXxXxXxXhXxXxXhXhXxXhXxXhXxXxXhXhXxXxXhXxXhXxXhXhXxXhXxXxXhXhXxXhXxXhXxXxXhXxXxXxXxXxXxXhXxXhXxXxXxXxXxXxXhXhXxXhXxXxXhXhXxXhXxXhXxXhXxXxXxXhXxXxXxXxXhXhXxXhXxXhXxXhXxXxXhXhXxXhXxXxXhXxXhXxXhXhXxXxXxXhXxXhXxXhXxXhXxXxXhXhXxXhXxXxXhXxXhXxXhXhXxXhXxXxXhXxXhXhXxXhXxXxXhXxXhXxXhXhXxXhXxXhXxXhXxXxXhXxXxXhXxXhXxXhXxXhXxXhXxXxXxXxXxXxXxXxXxX", -"xXhXhXxXxXhXhXxXxXxXhXxXhXxXhXxXhXxXhXxXxXhXhXxXhXxXhXxXhXxXxXhXxXhXxXxXhXxXhXhXhXxXxXhXhXxXhXxXxXhXhXxXxXhXhXxXxXxXhXxXhXxXhXxXxXhXhXxXxXhXhXxXhXxXxXxXhXxXxXhXhXxXxXxXxXhXhXxXxXxXhXxXxXhXxXhXxXhXhXxXhXxXhXxXhXxXxXhXhXxXxXxXxXhXhXxXxXhXhXxXhXxXxXxXhXxXxXhXxXhXhXxXxXhXhXxXxXxXhXxXhXxXhXxXhXxXhXxXxXhXhXxXhXxXhXxXhXxXxXhXxXhXhXxXxXxXhXxXxXhXxXhXhXxXxXxXhXxXhXxXhXxXhXxXxXxXxXhXhXxXxXhXhXxXxXhXhXxXxXhXxXhXhXxXxXhXhXxXxXhXxXhXv.i X X X X X i v.hXxXxXhXxXxXxXxXxXhXhXxXxXxXhXxXxXxXxXhXxXhXhXxXhXxXhXxXhXxXxXhXhXxXhXxXxXhXhXxXxXhXhXxXhXxXhXxXhXxXxXhXxXhXxXxXxXhXxXhXhXxXxXhXxXhXxXxXxXxXhXxXhXxXxXhXhXxXxXhXxXhXxXxXhXxXhXxXxXhXhXxXhXxXhXhXhXxXxXhXhXxXhXxXxXhXxXxXxXhXhXxXhXxXxXhXhXxXhXxXxXhXhXxXxXxXhXxXhXxXxXhXhXxXxXhXxXhXxXxXxXhXhXxXxXhXxXhXxXxXhXxXhXxXxXhXhXxXxXhXxXhXxXxXxXxXhXxXxXhXxXhXhXxXxXhXxXhXxXxXhXxXxXhXhXxXxXhXxXhXhXxXxXhXxXxXxXhXhXxXxXhXxXhXhXxXxXhXhXxXhXxX", -"hXxXhXxXhXxXxXhXhXhXxXhXxXhXxXxXhXxXxXxXhXxXxXhXxXhXxXhXxXxXhXxXhXxXhXhXxXhXxXxXxXhXhXxXhXxXxXxXhXxXhXxXhXxXxXhXhXhXxXhXxXhXxXxXhXxXxXhXxXhXxXxXxXhXxXhXxXhXxXxXxXhXhXxXhXxXxXxXhXxXxXhXxXxXhXxXxXhXxXhXxXhXxXhXxXhXhXxXxXhXhXxXhXxXxXhXxXhXxXxXxXhXxXhXxXhXxXxXhXxXhXxXhXxXxXhXhXhXxXhXxXhXxXxXhXxXxXxXhXxXxXhXxXhXxXhXxXxXhXxXxXhXxXxXhXxXxXhXxXxXhXxXxXhXhXxXxXhXxXhXxXhXxXxXxXxXhXxXxXxXhXxXxXxXhXxXxXxXhXxXhXxXhXxXxXxXxXhXxXxXxXxXxXhXv.6 X X X X 9 v.xXhXxXhXxXxXxXhXhXxXhXxXxXxXhXxXxXhXxXxXhXxXhXxXxXhXxXhXxXhXxXhXhXxXxXhXxXxXhXxXxXhXxXhXxXxXxXhXxXhXxXhXxXxXhXxXxXhXxXxXhXxXxXhXxXxXhXxXhXxXhXxXxXhXxXxXhXxXxXxXhXxXhXxXhXxXhXxXxXxXhXxXxXhXxXhXxXxXxXhXxXxXxXhXxXxXhXxXxXhXhXxXxXhXxXhXhXxXxXhXxXxXhXxXxXhXxXhXxXhXxXxXhXxXxXhXxXxXhXxXhXxXhXxXxXhXxXxXxXhXxXhXxXhXxXxXhXxXxXhXxXxXhXxXhXxXhXxXxXhXxXxXhXxXxXxXhXxXhXxXhXxXxXhXxXxXxXxXhXxXxXxXhXxXhXxXhXhXhXxXxXhXxXxXhXxXxXhXhXxXxXhXxXhX", -"xXhXhXxXhXxXhXxXhXxXhXxXhXxXxXhXhXxXhXhXxXhXhXxXxXhXhXxXhXhXxXhXxXhXxXxXhXxXhXxXhXhXxXhXhXxXhXhXxXhXhXxXhXxXhXxXhXxXhXxXhXxXxXhXxXhXhXxXhXxXxXhXhXxXxXhXxXhXxXhXhXhXxXhXhXxXhXhXxXhXhXxXhXxXhXxXxXhXhXxXxXhXhXxXhXhXxXhXhXxXhXhXxXhXhXxXhXxXxXhXhXxXxXhXxXhXxXhXxXhXxXhXhXxXhXxXhXxXhXxXhXxXxXhXhXxXhXhXxXhXxXxXxXhXhXxXhXhXxXhXhXxXhXhXxXxXhXxXhXxXhXxXhXxXhXhXhXxXhXxXhXhXxXhXhXhXxXhXxXhXhXxXhXxXxXhXxXhXxXhXxXhXxXhXhXhXhXxXhXxXhXxXxXhXxXxXc.5 X X X X X 6 c.xXxXhXxXhXhXxXhXhXhXhXhXhXxXhXhXxXhXhXxXhXhXhXxXxXhXxXxXxXhXhXxXhXhXxXhXhXxXhXhXxXhXhXxXhXxXxXhXhXxXhXxXhXhXxXhXxXhXhXxXhXxXhXxXhXxXhXhXhXxXxXhXxXhXhXxXhXhXxXhXhXxXhXhXhXxXxXhXhXxXhXhXxXhXxXxXxXhXhXxXhXhXxXhXhXxXhXhXhXxXhXxXxXxXhXxXxXhXxXxXhXhXxXhXxXhXhXxXxXhXhXxXhXhXxXhXhXxXhXhXhXxXxXhXxXxXhXxXxXhXxXxXxXhXhXxXhXhXxXhXhXxXhXhXhXxXxXhXxXhXhXxXhXxXxXhXhXxXhXhXhXxXxXhXhXxXxXhXxXhXxXhXhXhXxXhXhXxXhXxXxXxXhXxXxXhXxXxXhXxXxXhXhXhXxXhX", -"xXhXhXxXhXhXxXhXhXhXxXhXhXhXhXhXxXhXhXxXhXxXxXhXhXxXhXhXhXxXxXhXhXxXhXhXhXhXxXhXhXxXxXhXxXhXhXxXxXhXhXxXhXhXxXhXhXhXxXhXhXhXhXhXxXhXxXhXhXhXhXhXhXhXhXhXhXxXhXxXhXxXxXhXhXxXxXhXhXxXhXhXhXhXhXhXhXxXxXhXxXxXhXhXhXxXxXhXxXhXhXxXxXhXxXhXhXhXhXhXhXhXhXhXhXxXhXxXxXhXhXxXhXhXxXhXhXhXxXhXhXhXhXhXxXhXhXxXhXxXhXhXhXhXxXhXhXxXxXhXhXxXxXhXhXxXhXhXhXhXhXhXxXhXhXxXhXhXxXhXhXxXhXxXhXhXhXhXxXhXhXxXhXhXhXhXxXhXhXxXxXhXhXxXhXhXxXhXhXhXhXhXhXhXhXhXgXhXa.; X X X X 5 a.hXhXhXhXxXhXhXxXhXxXhXxXxXhXhXxXxXhXhXxXhXhXhXhXhXhXhXxXhXhXhXhXxXhXhXxXxXhXxXhXhXxXxXhXhXxXhXhXhXhXhXhXxXhXhXxXhXxXhXxXhXhXhXhXhXhXxXhXhXxXxXhXhXxXhXxXhXhXhXxXxXhXxXhXhXxXxXhXhXhXxXhXhXxXhXxXhXhXhXhXxXhXhXxXxXhXxXhXhXxXxXhXhXhXhXhXhXhXhXhXhXhXxXhXhXxXhXxXxXhXhXxXhXhXhXxXxXhXxXhXhXxXxXhXhXxXhXhXhXhXhXxXhXhXhXxXhXhXhXxXxXhXxXhXhXxXxXhXhXxXhXxXhXhXhXhXhXhXxXhXhXxXxXhXhXhXhXhXhXhXxXhXhXxXxXhXhXxXhXhXxXhXhXhXhXhXhXhXhXhXhXhXhXxXxXhXhXxX", -"hXhXxXhXhXhXhXhXhXhXhXhXhXhXhXxXhXhXhXhXhXhXhXhXhXhXxXhXhXxXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXxXhXhXhXhXhXhXhXhXhXhXhXhXxXhXhXhXhXhXhXhXxXhXhXhXhXhXxXhXhXhXhXhXhXhXhXhXhXhXhXxXhXhXxXxXhXhXhXhXhXhXhXxXhXhXxXhXhXhXhXhXhXhXhXhXhXhXhXhXxXhXhXhXhXhXxXhXhXhXhXxXhXhXhXhXhXxXhXhXhXhXhXhXxXhXhXhXhXhXhXhXhXhXhXxXhXhXxXhXhXhXhXhXhXhXhXxXhXhXxXxXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXxXhXhXxXhXhXhXhXxXhXhXxXhXhXhXxXhXxXhXhXhXxXhXhXxXhXxXhXhXhXxXhXfXa.; X X X < a.fXhXhXhXhXhXhXhXhXxXhXhXhXhXhXhXhXhXhXhXhXhXxXhXhXxXxXhXhXhXhXhXhXhXxXhXhXxXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXxXhXhXhXhXhXxXxXhXhXxXxXhXhXxXhXhXhXhXhXhXxXhXhXxXhXhXxXhXhXxXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXxXxXhXhXxXhXhXhXhXhXhXhXhXhXhXhXhXhXhXxXhXhXxXhXhXxXhXhXxXhXhXhXhXhXhXhXhXhXhXhXhXhXhXxXhXhXxXhXhXxXhXhXxXhXhXhXhXhXhXxXhXhXxXxXhXxXhXhXxXhXhXhXhXhXhXhXxXhXhXxXhXhXhXxXhXxXhXhXhXhXhXhXhXhXxXxXhXhXxXhXhXhXhXhXhX", -"hXhXhXhXxXhXhXxXxXhXhXxXhXxXhXhXhXhXxXhXhXxXhXhXhXxXhXhXhXhXhXhXhXhXxXhXhXxXxXhXhXxXhXhXhXhXhXhXhXhXhXhXxXhXhXxXxXhXhXxXhXxXhXhXhXhXxXhXxXhXhXhXxXhXhXxXhXhXhXhXhXxXhXhXhXxXhXhXxXhXhXhXhXhXhXhXhXxXhXhXxXhXhXhXhXhXhXhXhXhXhXhXhXhXxXhXxXhXhXhXxXhXhXxXhXhXhXhXhXhXhXhXxXhXhXxXhXhXhXxXhXxXhXhXhXhXxXhXhXhXxXhXhXxXhXhXhXhXhXhXhXxXhXhXxXhXhXhXhXhXhXhXhXhXhXhXxXhXhXxXhXxXhXhXhXxXhXhXhXhXhXhXhXxXhXhXhXhXhXhXhXhXhXhXhXhXhXxXhXhXhXhXhXhXhXhXhXhXhXhXfXpXt.$ X X X X X ; t.pXxXhXhXhXxXxXhXhXxXhXhXhXhXhXxXhXhXhXxXhXhXxXhXhXhXhXhXhXhXhXhXxXhXhXxXhXhXhXhXhXhXhXhXhXhXhXhXxXhXxXhXhXxXxXhXhXxXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXxXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXxXhXhXhXxXhXhXxXxXhXhXxXhXhXxXhXhXxXhXhXhXhXhXhXhXhXhXhXhXhXhXhXxXhXhXxXhXhXxXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXxXhXhXxXhXhXhXhXxXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXxXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXxXhXhXhXhXhXhXhXhXhXhXhXhXxXhXxXhXhXxXhXhXhXhXhXhXxXhXhXhXxXhX", -"hXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXxXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXpXt.@ X X + t.gXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXxXxXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXxXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhX", -"hXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXgXxXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXgXpX` O X X X X X @ ` uXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXgXhXhXgXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhX", -"gXhXhXhXhXhXhXhXhXgXhXhXhXhXhXhXhXhXhXhXhXhXgXhXgXhXhXhXhXgXhXhXhXhXgXhXgXhXhXhXhXhXhXhXhXhXhXhXhXgXhXhXhXhXhXhXhXhXhXhXhXhXgXhXhXhXhXgXhXgXhXhXhXgXhXhXhXhXhXhXhXhXhXhXhXgXgXhXhXhXhXhXhXhXhXhXhXgXhXgXgXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXgXhXgXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXgXhXhXhXhXhXhXhXhXhXgXhXhXgXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXgXhXhXhXhXhXgXhXhXhXhXhXhXhXhXgXhXgXhXhXhXhXhXhXgXhXhXhXhXhXgXhXhXhXhXhXhXhXgXhXhXhXhXhXhXhXhXhXuX` X X X O ` uXgXgXhXhXhXhXgXhXgXhXhXgXhXhXhXhXhXhXhXhXhXhXhXhXgXgXhXgXhXhXhXhXhXhXhXhXgXgXhXhXhXhXhXhXhXhXhXhXhXhXhXgXhXhXhXhXhXhXhXhXhXhXhXhXhXgXhXhXhXhXhXhXhXhXhXhXhXhXgXhXgXhXhXhXhXhXhXhXhXhXgXhXhXhXhXhXhXhXhXhXhXhXhXgXhXhXhXhXhXhXgXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXgXhXhXhXhXgXhXgXhXhXhXhXhXhXhXhXhXhXgXhXhXhXhXhXhXhXgXhXhXhXhXhXhXhXhXhXhXhXhXgXhXgXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXgXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXgXhXgXhX", -"hXhXhXhXhXgXhXgXhXhXhXhXgXhXhXhXhXhXhXhXhXhXhXhXhXhXhXgXhXgXhXhXhXhXhXhXhXhXhXgXhXgXhXhXhXgXhXhXhXhXhXhXgXhXgXhXhXgXhXgXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXgXhXhXhXhXhXhXhXhXhXhXhXhXhXgXhXgXhXgXhXhXhXhXhXhXhXgXhXhXhXhXhXhXgXhXhXhXhXhXhXgXhXgXhXhXgXhXgXhXhXhXhXhXhXhXhXhXgXhXgXhXgXhXgXhXhXhXhXhXhXhXhXhXhXhXhXgXhXhXgXhXgXhXhXhXhXhXhXhXhXgXhXhXhXgXhXhXhXgXhXhXhXhXhXhXgXhXhXhXhXhXhXgXhXgXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXgXhXhXhXhXhXhXhXhXhXgXhXhXgXgXhXhXuXJ X X X J uXgXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXgXhXgXhXhXhXhXhXhXhXhXhXhXhXgXhXgXhXhXhXhXhXhXhXhXgXhXhXgXhXhXhXgXhXhXhXhXhXhXgXhXhXhXhXgXhXhXhXhXhXhXhXhXhXhXhXhXgXhXgXhXhXhXhXhXhXhXhXhXgXhXgXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXgXhXgXhXhXgXhXhXhXhXhXhXhXgXhXgXhXhXhXgXhXhXhXhXhXhXhXhXhXhXhXhXgXhXhXhXhXgXhXhXhXhXgXhXhXhXhXhXgXhXgXhXhXhXhXhXhXhXhXgXhXhXhXgXhXhXhXhXhXhXhXhXgXhXgXhXhXgXhXgXhXhXgXhXhXhXhXhXhXhXgXhXgXhXgXhXgXhXhXhXhXhXhXhXhXhXhXgXhXhXhXgXhXhXgXhXhXhX", -"gXgXhXhXhXhXhXhXhXhXgXhXhXhXhXhXhXhXhXhXgXhXhXhXhXgXhXhXhXgXgXhXhXgXhXhXgXhXhXhXgXhXgXhXhXgXhXgXhXhXgXhXgXhXhXhXhXhXgXhXhXgXhXhXgXhXhXhXhXhXhXgXhXgXhXhXhXhXhXhXhXhXhXhXgXhXhXhXhXgXgXhXgXgXhXhXgXhXhXhXgXhXhXhXgXhXhXhXhXgXhXhXhXhXhXhXgXhXhXhXhXhXgXhXhXgXhXhXhXgXhXhXhXhXhXhXhXhXgXhXhXhXhXhXhXhXhXhXgXhXhXhXhXgXhXhXgXgXgXhXgXhXhXhXgXhXhXhXgXhXhXhXgXhXgXhXgXhXhXhXhXhXhXgXhXgXhXhXgXhXhXhXgXhXhXgXhXhXgXhXgXhXhXhXhXhXhXgXhXgXgXhXhXhXhXgXhXhXgXhXgXhXhXgXhXhXgXhXhXgXgXrXJ . X . J rXhXhXhXgXhXhXhXgXhXhXhXhXhXgXgXhXgXhXhXhXhXhXhXhXgXhXhXgXhXhXhXhXgXhXhXhXgXhXhXhXgXhXhXgXhXhXhXgXhXhXhXhXgXgXhXhXgXhXhXhXhXhXhXhXhXgXhXhXgXhXhXgXhXhXhXgXhXhXhXgXhXhXhXhXgXhXhXhXgXhXhXhXhXhXgXhXgXhXhXhXgXhXgXgXhXhXhXhXhXgXhXhXgXgXhXhXhXhXhXhXhXgXhXgXhXhXgXhXhXgXhXhXhXgXhXgXhXhXhXhXhXgXhXhXgXhXhXgXhXhXhXhXhXhXgXhXhXhXgXhXhXgXhXhXhXhXgXgXhXhXhXhXgXgXhXgXhXhXhXhXhXgXgXhXgXhXhXhXhXhXhXhXgXgXhXhXgXhXgXhXhXgXhXgXhXhXhXhXhXgXhXhXhXhXhXgXhXhXhXhXgXgXhXgXhXhXhXhXhXgXgX", -"hXhXhXgXgXhXgXhXgXhXhXgXhXgXgXgXhXgXgXhXgXhXgXhXhXhXgXhXhXhXhXgXhXgXgXhXhXhXgXgXgXhXhXhXgXhXhXhXgXhXhXgXhXhXgXhXgXhXgXhXhXgXhXgXhXgXhXgXgXhXgXhXgXhXhXgXhXgXgXgXhXgXhXgXhXgXgXhXgXhXhXhXhXhXhXgXhXhXgXhXhXhXgXgXhXgXgXhXgXhXgXhXgXgXhXgXhXhXgXhXgXhXgXhXhXgXgXhXgXhXhXgXgXhXgXhXgXhXhXgXhXgXgXgXhXgXgXhXgXhXgXhXhXhXgXhXhXhXhXgXhXhXgXhXhXhXgXhXhXgXgXhXgXhXhXhXhXgXhXgXgXhXgXhXgXhXhXgXhXhXgXhXhXgXgXhXhXgXhXgXhXgXhXgXgXhXgXhXgXhXhXhXhXgXhXgXgXgXhXhXhXgXhXhXgXhXhXgXgXgXhXhXgXrXV X X X m rXhXhXgXhXgXhXgXgXhXhXgXhXgXgXhXhXhXgXhXhXgXgXhXgXhXhXhXhXgXhXgXgXhXhXhXgXhXgXhXhXgXhXhXgXhXhXhXgXgXgXhXgXhXgXhXhXhXgXhXhXgXhXhXgXgXgXhXgXhXhXgXgXhXhXgXgXhXgXhXhXgXhXhXgXgXgXhXhXgXhXgXhXgXgXgXhXhXgXhXhXhXhXgXhXgXhXhXgXgXgXhXgXhXhXgXhXhXgXhXgXgXgXgXhXhXhXgXgXhXgXhXhXgXgXgXhXhXhXhXgXgXgXhXhXgXhXhXgXhXhXhXgXgXgXgXhXhXgXhXgXhXhXgXhXgXgXgXhXhXgXhXgXhXgXhXhXhXhXhXgXgXgXhXhXhXhXgXhXgXgXhXgXgXgXhXhXhXhXhXhXgXgXhXhXgXhXhXgXhXgXhXgXhXhXgXgXgXgXhXgXhXgXhXhXhXhXhXgXgXhXhXhXhX", -"gXhXgXhXhXgXgXhXhXgXgXhXhXgXhXhXgXgXhXhXgXhXgXgXgXgXhXgXgXhXgXhXgXhXhXgXgXhXgXhXhXhXgXgXhXhXgXgXhXgXgXhXhXgXgXhXhXgXhXgXgXhXhXgXgXhXgXgXhXgXgXhXhXgXgXhXhXgXgXhXgXgXhXhXgXgXhXhXhXgXhXgXgXhXhXgXhXgXgXhXgXhXgXhXgXhXgXgXhXhXgXgXgXhXgXhXhXgXgXhXhXgXgXhXgXhXhXgXgXhXgXhXhXgXgXhXhXgXgXhXhXgXhXgXgXgXhXhXgXhXgXgXgXgXhXgXhXhXhXhXhXgXgXhXgXgXhXgXgXgXhXhXhXhXgXgXgXhXgXgXhXgXgXhXhXgXgXhXhXgXgXhXgXhXhXgXgXhXhXgXgXhXgXgXhXgXgXhXhXhXgXgXgXhXhXhXhXgXhXgXgXhXgXgXgXhXgXhXhXgXhXgXgXfXgX'.V X X X V '.hXhXgXgXgXhXhXgXgXhXhXgXhXgXhXhXgXgXhXhXgXgXhXhXgXgXhXgXgXhXhXgXgXhXhXgXgXhXgXgXhXgXhXhXgXhXgXgXhXgXhXgXhXgXgXhXhXgXgXhXgXgXhXgXgXgXhXhXgXgXhXgXhXhXgXgXgXhXhXhXhXgXgXgXhXhXhXhXgXgXhXgXhXhXgXgXhXgXhXhXgXhXgXgXhXhXhXgXhXgXhXhXgXgXhXgXhXhXgXgXhXgXhXhXgXhXgXgXhXhXgXgXhXgXhXhXgXhXgXgXhXgXhXhXgXgXhXhXgXhXhXgXhXgXhXgXhXgXhXgXhXhXgXgXhXhXgXgXhXgXhXgXhXgXgXhXhXgXgXgXhXgXhXhXgXgXhXgXhXhXgXgXhXgXhXhXhXgXgXgXhXgXhXhXgXgXhXhXgXgXhXhXgXhXgXhXgXhXgXgXhXgXgXhXhXgXgXgXhXgXhXhXgXgXhX", -"hXgXgXgXgXhXgXgXgXhXgXgXgXgXgXgXgXhXgXgXhXgXgXhXgXhXgXgXhXgXgXhXhXgXgXhXgXgXhXgXgXgXgXhXgXgXhXgXgXhXgXgXgXgXhXgXgXgXhXgXhXgXgXhXhXgXgXhXgXhXgXgXgXhXgXgXgXgXhXgXgXhXgXgXhXgXgXgXhXgXgXgXhXgXgXhXgXgXhXgXgXgXhXgXhXgXgXhXgXgXgXhXgXgXgXgXgXgXhXgXgXhXgXgXhXgXgXhXhXgXgXgXgXgXhXgXgXhXgXgXgXgXgXhXgXhXgXgXhXgXgXhXgXhXgXgXgXgXgXgXgXgXhXgXgXhXgXgXhXgXgXgXgXgXgXhXhXgXgXhXgXhXgXgXgXhXgXgXgXgXhXgXgXgXhXgXhXgXgXgXhXgXgXhXgXhXgXgXgXgXgXhXgXgXgXgXhXgXgXhXgXgXgXhXgXhXgXhXhXgXgXhXgXfXgXgXgXC.b X b C.gXfXhXgXgXgXhXgXgXhXgXgXgXhXgXgXgXgXhXgXgXgXhXgXgXgXgXhXgXgXhXgXgXhXgXgXgXgXhXgXgXhXgXgXgXgXgXgXhXgXgXhXgXhXgXgXhXgXgXgXhXgXhXgXgXgXhXgXgXgXhXgXgXhXgXgXhXhXgXgXgXgXgXgXhXgXgXgXgXgXhXgXgXhXgXgXhXgXgXgXhXgXgXgXgXgXgXgXgXgXgXhXgXgXhXgXgXhXgXhXhXgXgXhXgXhXgXgXhXgXgXhXgXgXhXgXgXhXgXgXhXgXgXhXgXgXhXgXgXgXgXgXhXgXgXhXgXgXgXgXhXgXgXhXgXhXgXgXhXgXgXgXhXhXgXgXhXgXgXgXhXgXgXhXgXgXhXgXgXhXgXgXhXgXgXhXgXgXgXgXhXgXgXhXgXgXhXgXgXgXgXhXgXgXgXhXgXgXgXgXhXhXgXgXhXgXgXgXhXgXgXhXgXgXhXgXgX", -"gXgXhXgXgXgXgXhXgXhXgXgXhXgXhXgXgXhXgXhXhXgXgXgXgXhXgXgXhXgXhXgXgXhXgXhXgXgXhXgXgXhXgXhXhXgXhXgXgXhXhXgXhXgXhXgXhXgXgXgXgXhXgXgXgXgXhXgXgXgXgXhXgXgXhXgXhXgXhXgXgXhXgXhXhXgXgXgXgXgXhXgXgXgXhXgXgXgXhXhXgXgXhXgXhXgXhXgXhXgXgXgXgXhXhXgXgXgXhXgXhXgXgXgXgXhXgXgXgXgXhXgXgXgXgXhXgXgXhXgXgXhXhXgXgXhXgXhXhXgXgXgXgXhXgXgXhXgXhXgXgXgXhXgXhXgXgXhXhXgXhXgXgXgXgXgXgXgXhXgXgXgXgXhXgXhXgXhXgXgXhXgXhXgXgXhXgXhXgXgXgXgXhXhXgXgXhXgXhXgXhXgXgXgXgXgXgXgXhXgXgXgXgXhXhXgXgXgXgXhXgXgXgXgXgXhXgXgXgXC.h h C.gXgXgXgXgXgXhXgXhXhXgXgXgXgXgXgXgXhXgXgXgXgXhXgXhXgXhXgXgXhXgXgXhXgXhXhXgXhXgXgXhXgXgXhXgXhXgXgXhXgXhXgXgXhXgXgXhXhXgXhXgXgXgXgXgXhXgXgXgXhXgXgXgXgXgXgXhXgXgXgXhXgXhXgXhXhXgXgXhXgXgXhXgXhXgXgXhXgXhXgXgXhXgXgXhXgXhXhXgXhXgXhXgXhXgXgXhXgXhXgXhXgXgXgXgXgXgXgXhXgXgXhXgXgXgXgXgXgXhXgXgXhXgXgXgXhXgXgXgXhXhXgXhXgXgXgXgXgXgXhXhXgXgXgXhXgXhXgXhXgXhXhXgXgXgXgXgXgXgXgXhXgXgXhXgXgXhXgXhXgXgXgXhXgXhXgXgXhXgXgXhXgXhXhXgXhXgXgXhXhXgXhXgXhXgXgXgXgXgXgXhXgXgXgXgXgXgXgXhXgXgXhXgXgXhXgXhXgXgX", -"hXgXgXgXgXhXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXhXgXgXgXgXgXgXgXgXgXhXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXhXgXgXhXgXhXgXgXgXgXhXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXhXgXgXhXgXgXgXgXgXgXgXhXgXgXgXgXgXgXgXgXgXhXhXgXgXgXgXhXgXgXgXgXgXgXhXgXgXhXgXhXgXgXgXgXhXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXhXgXgXgXgXgXgXgXgXgXgXgXgXhXgXgXgXgXgXhXgXgXhXgXgXgXgXhXgXgXgXgXgXgXhXgXgXgXgXgXgXhXgXgXhXgXgXgXgXgXgXgXgXgXgXgXgXgXhXhXgXgXhXgXgXgXgXhXgXgXgXgXgXhXgXgXhXgXgXhXgXgXgXgXgXgXhXv.w i v.hXgXgXgXgXgXgXgXhXgXgXgXgXhXgXgXgXhXgXgXgXgXhXgXgXgXhXgXgXhXgXgXgXgXgXgXgXgXgXgXhXgXgXhXgXgXgXgXgXgXgXgXgXhXgXgXgXgXgXgXgXgXgXhXgXgXhXgXgXhXgXgXgXgXgXgXhXgXgXhXgXgXgXgXgXgXgXgXgXgXgXhXgXgXgXgXgXgXgXgXgXgXhXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXhXgXgXgXgXhXgXgXgXgXhXgXgXhXgXgXgXgXhXgXhXgXgXgXgXgXgXhXgXgXgXhXgXgXgXgXgXhXgXgXgXgXhXgXgXhXgXgXgXgXgXgXgXgXgXgXgXhXgXgXhXgXhXgXgXgXgXgXgXgXhXgXgXhXgXgXgXgXgXgXhXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXhXgXgXgXhXgXgXhXgXhXgXgXgXgXgXgXgXhXgXgXhXgX", -"gXgXgXgXgXgXgXgXgXgXgXgXhXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXhXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXhXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXhXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXhXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXdXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXv.9 9 v.gXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXhXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXhXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXhXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXhXgXgXgXgXgXgXgXgXgXgXgXgXgXgX", -"gXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXdXgXgXgXhXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXhXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXc.6 X 5 c.dXdXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXhXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgX", -"gXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXhXdXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXdXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXaXa.5 X 5 a.aXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXdXhXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgX", -"gXgXdXgXgXgXgXgXdXgXgXgXgXgXdXgXgXgXgXgXgXgXdXgXgXdXgXgXgXgXgXgXgXgXgXgXgXgXdXgXgXgXgXgXgXgXdXgXgXdXgXgXgXgXgXgXgXgXdXgXgXdXgXgXgXgXgXdXgXgXgXgXgXgXgXgXgXgXdXgXgXgXgXgXgXgXdXgXgXdXgXgXgXgXgXgXgXgXgXgXgXgXgXgXdXgXgXgXdXgXgXgXgXgXdXgXgXgXgXdXgXgXdXgXgXdXgXgXgXgXdXgXgXgXgXgXdXgXgXgXgXgXdXgXgXgXgXgXgXgXdXgXgXdXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXdXgXgXgXgXdXgXgXgXgXgXgXdXgXgXgXgXdXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXdXgXgXgXgXgXdXgXgXgXgXgXgXgXdXgXgXdXgXgXgXgXgXgXgXgXgXdXgXgXgXgXgXgXdXdXpXy.; $ y.fXdXgXgXgXdXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXdXgXgXgXgXdXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXdXgXgXdXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXdXgXgXgXgXgXdXgXgXgXgXgXdXgXgXgXgXgXdXgXgXgXgXgXgXgXgXgXdXgXgXgXgXgXdXgXdXgXgXgXgXgXdXgXgXgXgXgXgXgXdXgXgXgXgXgXgXgXgXgXgXgXgXgXdXgXgXgXgXgXgXgXgXdXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXdXgXgXgXgXgXgXgXdXgXgXgXgXgXgXgXgXdXgXgXgXgXgXgXgXgXdXdXgXgXgXgXgXgXgXgXdXgXgXgXgXdXgXgXgXgXgXgXgXdXgXgXdXgXgXgXgXgXgXgXgXdXgXgXdXgXgXgXgXgXgXgXgXgXdXdXgXgXgXgXgXgXgX", -"gXdXgXgXgXgXgXdXgXgXdXgXgXdXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXdXdXgXdXgXgXgXdXgXgXdXgXgXgXgXgXdXgXgXgXgXgXgXgXgXgXgXgXdXgXgXdXgXgXgXdXgXdXgXgXdXdXgXdXgXgXgXdXgXgXgXgXgXgXgXgXdXgXgXgXgXgXdXgXdXgXdXdXgXgXdXdXgXdXgXgXgXgXgXgXdXgXgXgXgXgXdXgXgXgXgXgXdXgXgXgXdXgXgXgXgXgXdXgXgXdXgXgXdXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXdXgXdXdXgXgXdXgXdXdXgXgXgXdXgXdXgXgXgXdXgXgXdXgXgXdXgXgXdXgXgXdXgXgXdXgXdXdXgXgXdXgXdXgXgXgXdXgXdXgXgXgXgXdXgXgXdXgXgXdXgXgXdXgXgXgXgXgXgXgXgXgXgXgXgXdXgXgXgXdXgXgXdXgXdXgXgXdXgXsXt.$ ; y.pXgXgXdXgXgXdXgXdXdXgXgXdXgXdXdXgXgXdXdXgXgXgXgXgXdXgXgXdXgXgXdXgXgXdXgXdXdXgXdXgXgXdXdXgXgXdXgXgXgXgXgXdXgXgXgXgXgXdXgXdXdXgXdXgXgXdXdXgXdXgXgXgXdXgXgXdXgXgXgXgXgXdXgXgXgXgXgXdXgXgXgXgXgXdXdXgXgXgXgXgXgXgXgXgXgXgXgXgXdXgXgXdXgXgXgXgXgXdXgXgXgXgXgXgXgXdXgXdXgXdXgXgXdXgXgXgXgXdXgXdXgXgXgXgXdXdXgXgXgXdXdXgXgXgXgXgXdXgXgXdXgXdXgXdXgXgXgXgXdXdXdXgXgXgXgXgXdXgXgXgXdXgXdXgXgXgXgXgXgXgXdXgXgXgXgXgXdXgXgXgXdXgXgXgXdXgXgXdXgXgXdXgXgXdXgXgXgXgXgXdXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXgXdXgXgXgXgXgXdXgXgXgXdXgX", -"dXgXdXgXdXgXdXgXdXgXgXgXdXgXdXgXdXgXdXgXdXgXdXdXgXdXdXgXdXdXgXdXgXdXgXgXdXgXgXdXgXgXdXgXdXgXdXgXdXgXdXgXdXdXgXdXdXgXdXdXgXgXdXgXdXgXgXdXgXgXdXgXgXdXgXgXdXgXgXdXgXgXdXgXdXgXdXgXdXgXdXgXdXdXgXgXgXdXgXgXgXdXgXdXgXgXdXgXdXgXdXgXdXgXdXgXdXgXdXgXdXgXdXgXdXgXdXgXdXgXdXgXdXgXdXgXdXgXgXgXdXgXdXgXdXgXdXgXdXgXdXdXgXdXdXgXdXdXgXdXgXdXgXgXgXdXgXdXgXgXgXdXgXdXgXgXdXgXgXdXgXgXdXgXgXdXgXgXdXgXdXgXgXdXgXdXgXgXgXdXgXdXgXgXdXdXgXdXdXgXgXdXgXdXgXgXdXgXdXgXgXgXdXgXdXgXdXdXgXgXdXgXdXgXgXdXgXgXdXdXgXdXgXdXgXgXgXdXgXdXdXdXpXt.@ @ $.aXdXgXgXdXgXdXgXdXgXgXgXdXgXdXgXgXgXdXgXdXgXgXdXgXgXdXgXgXdXgXdXgXgXgXdXgXdXdXgXgXdXgXgXdXgXgXdXgXdXgXdXdXgXgXdXgXdXdXgXdXgXdXgXgXdXgXgXdXgXgXdXgXdXgXgXgXdXgXdXgXdXgXdXgXdXgXdXgXdXgXdXgXdXgXdXgXdXgXdXdXgXdXdXgXdXdXgXdXdXgXgXgXdXgXdXgXdXgXdXgXdXgXdXdXgXdXdXgXdXgXgXdXdXgXgXdXdXgXdXgXdXgXgXdXdXgXgXgXdXgXdXgXgXdXdXgXgXdXgXdXdXgXdXgXdXgXgXdXdXgXgXgXgXdXdXgXdXgXgXdXdXgXgXdXgXdXdXgXdXdXgXdXgXgXdXdXgXdXgXgXdXdXgXdXgXdXgXgXdXgXdXgXgXgXdXgXdXgXdXdXgXgXdXgXdXdXgXdXdXgXdXdXgXdXdXgXdXdXgXdXgXgXdXdXgXdXgXgXdXdXgXdX", -"gXdXgXgXgXdXgXdXgXdXgXgXdXgXdXgXgXdXgXgXgXdXgXdXgXgXdXgXgXdXgXdXgXgXgXgXdXgXdXgXdXgXgXgXgXdXgXdXgXdXgXgXgXdXgXdXgXdXgXgXdXgXdXgXgXdXgXdXgXgXgXgXdXgXdXgXgXgXdXgXdXgXdXgXgXgXgXdXgXdXgXdXgXdXgXgXdXgXdXgXgXdXgXgXdXgXdXgXdXgXdXgXdXgXdXgXdXgXgXdXgXdXgXdXdXgXgXgXgXdXgXgXgXdXgXdXgXdXgXgXdXgXdXgXgXdXgXgXgXdXgXdXgXgXdXgXgXdXgXdXgXgXgXgXdXgXdXgXdXgXdXgXgXdXgXdXgXdXgXdXgXdXgXdXgXdXgXdXgXgXdXgXgXgXdXgXdXgXdXgXgXgXdXgXdXgXdXgXgXdXgXdXgXdXgXdXgXdXgXgXdXgXdXgXdXgXdXgXgXgXdXgXdXgXdXgXgXgXgXdXdXgXgXgXgXdXgXdXgXdXdXgXgXdXuXJ J uXgXgXdXgXdXgXdXgXgXgXgXdXgXdXgXdXgXgXgXdXgXdXgXgXgXgXdXgXgXgXgXdXgXdXgXdXgXgXdXgXdXgXgXdXgXdXgXgXgXgXdXgXdXgXdXgXgXgXgXdXgXdXgXgXgXgXdXgXdXgXdXgXdXgXgXdXgXdXgXdXgXdXgXdXgXgXgXdXgXdXgXgXdXgXgXdXgXgXdXgXdXgXdXdXdXgXgXgXdXgXdXgXdXgXgXgXgXdXgXdXgXdXgXgXgXgXgXgXdXgXdXgXdXgXgXgXdXgXdXgXdXgXgXgXgXgXdXgXdXgXgXgXgXgXdXgXdXgXgXdXgXdXgXgXgXgXgXdXgXdXgXgXgXgXdXgXgXdXgXdXgXgXdXgXgXdXgXdXgXdXgXdXgXdXgXdXgXdXgXdXgXdXgXgXdXgXdXgXgXgXgXdXgXdXgXdXgXgXgXdXgXdXgXgXgXgXdXgXdXgXdXgXdXgXgXdXgXdXgXdXgXdXgXdXgXgXgXdXgXdXgXgXdXgX", -"dXgXdXdXgXdXdXgXdXgXdXgXdXgXgXdXgXdXdXdXdXgXdXgXdXgXdXdXdXgXdXgXdXdXdXgXgXdXgXdXgXdXdXdXdXgXdXgXdXgXdXdXgXdXdXgXdXgXdXgXdXgXgXdXdXgXdXgXdXdXdXgXgXdXgXdXdXgXgXdXgXdXgXdXdXdXdXgXdXgXdXgXdXgXdXgXgXdXgXdXdXgXdXgXdXdXgXdXgXdXgXdXgXdXgXdXgXdXgXdXdXgXdXgXgXdXdXdXdXgXdXdXgXdXdXgXdXgXdXgXdXgXgXdXgXdXdXdXdXgXdXgXdXgXdXdXdXgXdXgXdXdXdXgXgXdXgXdXgXdXgXdXgXdXdXgXdXgXdXgXgXdXdXgXdXgXdXgXdXgXgXdXdXgXgXdXgXdXgXdXdXdXdXdXgXdXgXdXgXdXgXdXdXgXdXgXdXgXdXgXdXdXgXgXgXdXgXdXdXgXgXdXgXdXgXdXdXdXdXgXgXdXdXdXdXgXdXgXdXgXdXdXdXgXdXdXdXdXdXgXgXdXdXdXgXdXdXdXdXgXdXgXdXgXdXdXdXgXdXgXdXdXdXgXgXdXgXdXgXdXdXgXdXgXdXgXdXgXgXdXdXgXdXgXdXdXdXgXgXdXgXdXgXdXdXdXdXgXdXgXdXdXdXgXgXdXgXdXgXdXgXdXgXdXgXdXdXgXdXgXgXdXdXdXdXgXdXgXdXgXdXdXdXgXdXgXdXdXgXgXdXgXgXdXdXgXgXdXgXdXgXdXdXdXdXgXdXgXdXgXdXdXdXgXdXdXgXdXgXdXgXgXdXdXgXdXgXdXgXgXdXdXdXdXgXdXgXgXdXdXdXdXgXdXgXgXdXgXdXgXdXdXdXdXdXgXdXgXdXdXdXdXdXgXdXgXdXgXdXdXdXgXdXgXdXgXdXgXdXgXdXgXgXdXdXgXdXgXdXgXdXgXgXdXgXdXdXdXdXgXdXgXdXgXdXdXdXgXdXgXdXdXdXgXgXdXgXdXgXdXgXdXgXdXgXdXdXgXdXgXgXdXdXdXdXgXdXgXdXgXdXdX", -"dXgXgXdXgXdXgXdXdXdXdXdXdXdXdXdXdXgXgXdXdXdXdXdXdXdXgXdXgXdXgXdXgXdXgXdXgXdXdXdXdXgXdXdXdXgXdXdXdXgXgXdXgXdXgXdXdXdXdXdXdXdXdXdXgXdXdXgXgXdXgXdXgXdXdXdXdXdXdXgXdXgXdXgXgXdXdXgXgXdXgXdXdXdXgXdXdXdXdXdXgXdXdXgXgXdXgXgXgXdXdXdXdXgXdXgXdXgXdXgXdXgXdXgXdXgXdXdXdXgXgXdXgXdXgXdXdXdXgXdXdXdXdXdXdXgXgXdXdXdXdXdXdXdXgXdXgXdXgXdXgXdXgXdXdXdXdXdXdXgXdXdXdXgXdXdXdXgXgXdXgXdXgXdXdXdXdXdXdXdXdXdXdXdXdXgXdXgXdXgXdXdXdXgXdXgXdXdXdXgXdXgXdXgXdXgXgXdXdXgXgXdXgXdXgXdXdXdXdXdXdXgXdXgXdXgXdXgXdXgXdXgXdXdXdXdXdXdXdXdXgXdXgXdXgXdXgXdXgXdXdXdXdXgXdXgXdXdXdXdXdXdXdXgXgXdXgXdXdXdXgXdXgXdXdXdXdXdXgXdXgXdXdXdXdXdXdXdXdXdXgXdXgXdXgXdXgXdXgXdXdXdXdXgXdXdXdXdXdXdXgXdXgXdXdXdXdXdXdXgXdXdXdXgXdXgXdXgXdXgXdXgXgXdXdXdXdXdXdXdXgXdXgXdXdXgXgXdXgXdXgXdXdXdXdXdXdXgXdXgXdXgXdXgXdXgXgXdXgXdXgXdXgXdXdXdXdXgXdXdXdXdXdXdXdXgXdXdXdXdXdXgXdXgXdXdXdXdXdXgXdXgXdXdXdXdXgXdXgXdXdXgXdXgXgXdXgXdXdXgXdXgXgXdXgXdXdXgXgXdXgXdXgXdXdXgXgXdXdXgXdXgXdXgXgXdXdXdXdXdXdXdXdXdXdXgXdXdXdXdXdXdXdXgXgXdXgXdXgXdXgXdXgXdXdXdXdXdXdXgXdXdXdXgXdXgXdXgXdXgXdXgXgXdXdXdXdXdXdXdXgXdX", -"dXdXdXdXdXdXdXdXgXdXgXdXdXgXdXdXdXdXdXdXdXgXgXdXdXgXdXdXdXdXdXdXdXdXdXdXdXdXgXdXdXgXdXgXdXdXdXgXdXdXdXdXdXdXdXdXgXdXgXdXdXgXdXdXdXdXdXdXdXdXdXdXdXdXgXdXgXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXgXdXdXdXgXgXdXdXdXdXdXdXdXdXdXdXdXdXgXdXdXgXdXdXdXdXdXdXdXdXdXdXdXdXgXdXdXdXdXdXdXdXdXdXgXdXdXdXdXgXdXdXdXdXdXdXdXgXdXgXdXgXdXdXdXdXdXdXdXdXdXdXgXdXgXdXdXgXdXgXdXdXdXgXdXdXdXdXdXdXdXdXdXgXgXdXdXgXdXdXgXdXdXdXdXdXdXdXgXgXdXdXdXgXdXgXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXgXdXgXdXdXdXdXdXdXdXdXdXdXdXdXdXgXgXdXgXdXgXgXgXdXdXdXdXdXdXdXdXdXdXdXgXdXdXdXdXgXgXdXgXdXgXdXdXdXdXdXdXdXdXdXdXdXdXgXgXdXdXdXdXdXdXgXdXgXdXdXgXdXdXdXdXdXdXdXdXdXdXdXdXgXdXdXdXgXgXdXgXdXgXdXdXdXdXgXgXdXdXdXgXdXgXdXdXdXdXdXdXdXdXdXdXdXdXdXgXdXgXdXgXdXdXdXdXdXdXdXdXdXdXdXdXgXdXgXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXgXdXdXgXdXdXgXdXdXgXdXgXdXdXgXdXdXdXdXdXgXdXgXdXdXdXdXdXgXdXgXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXgXgXdXdXgXdXdXdXdXgXdXdXgXdXgXdXdXdXdXdXdXdXdXdXdXdXdXgXgXdXdXdXgXdXgXdXdXdXdXdXdXdXdXdXdXdXdXdXgXgXdXdXgXdXdX", -"dXgXdXdXdXdXdXdXdXdXdXdXgXdXdXdXdXdXdXgXdXdXdXdXgXdXdXdXdXdXdXdXdXdXdXdXdXdXdXgXdXdXdXdXgXdXdXdXdXgXdXdXgXdXdXdXdXdXdXdXgXdXdXdXdXdXgXdXdXdXdXdXdXdXdXdXdXdXdXdXgXdXdXdXdXdXgXdXdXdXdXgXdXgXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXgXdXdXdXdXdXdXdXdXdXgXdXdXgXdXdXdXdXgXdXdXdXdXdXdXdXdXdXdXgXdXdXdXdXdXdXgXdXdXdXdXgXdXdXdXdXdXdXdXdXdXdXdXdXdXdXgXdXdXdXdXgXdXdXdXdXgXdXdXgXdXdXdXdXdXdXdXgXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXgXdXdXdXdXgXdXdXdXdXdXdXdXdXdXdXdXdXdXdXgXdXdXdXdXgXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXgXdXdXgXdXdXdXdXgXdXdXdXgXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXgXdXdXdXdXgXdXdXdXdXdXdXdXdXdXdXdXdXdXdXgXdXdXdXdXgXdXdXdXdXdXdXdXdXdXdXgXdXdXdXdXdXdXdXdXdXgXdXdXgXdXdXdXdXdXdXdXgXdXdXdXdXdXgXdXdXdXdXdXdXdXdXdXdXdXdXdXdXgXdXdXdXdXgXdXdXdXdXgXdXdXdXdXdXdXdXgXdXdXdXdXdXdXdXgXdXdXdXdXdXdXgXdXdXdXdXdXdXdXgXdXdXdXdXdXdXgXdXdXdXdXdXgXdXgXdXdXdXdXdXgXdXgXdXdXdXdXdXgXdXdXdXdXdXdXdXgXdXgXdXdXgXdXdXdXdXdXdXdXgXdXdXdXdXdXdXdXgXdXdXdXgXdXdXdXdXdXdXdXdXdXdXdXdXdXdXgXdXdXdXdXdXdXdXdXdXgXdXdXgXdXdXdXdXdXdXdXgXdXdXdX", -"dXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXsXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXgXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXsXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXgXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXgXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXgXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXgXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXgXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXgXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXaXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXgXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdX", -"dXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXsXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXsXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXgXdXdXdXdXdXdX", -"dXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXsXdXdXdXdXdXsXdXdXdXdXdXdXdXdXsXdXdXdXdXdXdXdXdXdXdXdXdXsXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXsXdXdXdXdXdXdXsXdXdXdXdXsXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXsXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXsXdXdXdXdXdXsXdXdXdXdXdXdXdXdXsXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXsXdXdXdXdXdXdXdXdXsXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXsXdXdXdXdXdXdXdXdXdXdXdXdXsXdXdXdXdXdXdXdXdXdXdXdXdXsXdXdXdXdXdXsXdXdXdXsXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXsXdXdXdXdXsXdXdXdXdXdXdXdXdXdXdXdXdXdXsXdXdXdXdXdXsXdXdXdXdXdXdXdXdXdXsXdXdXdXdXdXdXdXdXdXdXdXdXdXdXsXdXdXdXdXdXdXdXdXdXdXdXdXsXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXsXdXdXdXdXdXdXsXdXdXdXdXdXdXsXdXdXdXdXdXdXsXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXsXdXdXdXdXdXsXdXdXdXdXdXdXdXsXdXdXdXdXdXdXdXsXdXdXdXdXdXdXdXsXdXdXdXdXdXdXdXsXdXdXdXdXdXsXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXdXsXdXdXdXdXdXdXdXdXdXdXdXdXdXsXdXdXdXdXdXsXdXdXdXdXdXdXdXdXsXdXdXdXdXdXdXdXdXdXdXdXdX", -"dXdXdXsXdXsXsXdXdXdXsXdXdXdXdXsXsXdXdXdXdXsXdXdXdXsXsXdXsXdXdXdXdXsXdXdXdXdXsXsXdXsXdXdXdXdXdXsXdXdXdXsXdXsXdXsXdXdXsXdXdXdXdXsXdXdXdXdXsXdXsXdXdXdXdXsXdXsXsXdXsXdXsXdXsXdXdXdXsXdXsXdXsXdXdXdXdXsXsXdXsXdXdXdXdXdXsXsXdXdXdXdXdXsXdXdXdXsXdXsXsXdXsXdXdXdXdXdXdXdXdXsXdXsXsXdXdXdXsXdXdXdXdXsXsXdXdXdXdXsXdXdXdXsXsXdXsXdXdXdXdXsXdXdXdXdXsXsXdXsXdXdXdXdXdXsXdXdXdXsXdXsXdXsXdXdXsXdXdXdXsXdXdXdXsXsXdXdXsXdXdXsXsXdXsXdXdXdXdXdXsXdXsXdXdXdXdXdXsXdXsXdXdXdXsXdXsXdXdXdXdXdXdXdXdXdXsXsXdXdXsXdXdXdXdXsXdXdXaXdXdXdXdXdXdXsXdXsXdXdXdXdXsXdXsXsXsXdXdXdXsXdXdXdXdXsXdXsXsXdXdXdXsXdXdXdXdXsXdXdXsXsXdXdXdXdXdXdXdXdXdXdXdXsXdXsXdXdXdXdXsXdXsXsXdXdXdXdXsXsXdXsXdXdXdXdXsXsXdXdXdXdXdXdXsXsXdXdXdXdXdXsXdXsXdXdXdXsXdXdXsXdXdXsXdXsXdXdXsXdXaXdXdXsXdXsXsXdXdXdXsXdXsXdXdXdXdXdXsXdXsXdXdXdXdXdXsXdXdXdXdXsXdXdXdXdXsXdXdXsXsXdXdXsXdXdXdXsXdXsXdXsXdXdXsXdXdXsXdXdXsXsXdXdXdXsXdXdXdXdXdXdXdXsXdXdXsXsXdXdXdXsXdXsXdXdXsXdXdXdXdXdXdXsXdXsXdXdXsXdXdXdXsXdXsXdXdXdXsXdXdXdXdXsXsXdXsXdXdXdXdXsXdXdXdXdXsXsXdXsXdXdXdXdXsXsXdXdXdXdXdXsXdXsXdXdXsXdXdXsXdXsX", -"sXsXdXdXdXdXdXdXdXsXdXdXsXdXdXdXdXdXsXdXdXdXsXsXdXdXdXdXdXdXsXdXdXdXdXsXsXdXdXdXdXdXdXsXsXdXdXdXsXsXdXdXdXdXdXdXdXsXdXdXsXdXdXdXsXdXsXdXsXdXdXdXdXsXdXdXdXdXdXdXdXdXsXdXdXdXsXdXdXdXsXdXdXdXsXdXdXdXdXdXdXdXsXdXsXdXdXdXdXsXdXsXdXdXdXsXdXdXdXdXdXdXdXdXsXdXsXsXsXsXdXdXdXdXdXdXdXsXdXdXsXdXdXdXdXdXsXdXdXdXsXsXdXdXdXdXdXdXsXdXdXdXdXsXsXdXdXdXdXdXdXsXdXsXdXdXsXsXdXdXdXdXdXdXdXsXdXdXsXdXdXdXdXsXdXdXdXsXdXdXdXdXdXdXdXdXsXdXsXdXdXdXdXdXdXsXsXdXdXdXdXdXdXsXdXdXdXdXsXdXsXdXsXdXdXsXdXdXdXsXdXdXsXdXdXdXdXsXsXdXsXdXsXsXdXdXdXdXdXsXsXdXdXdXdXdXsXdXsXdXdXdXdXsXdXdXdXdXdXdXsXdXdXdXdXsXdXdXdXsXdXdXdXsXsXdXsXsXdXsXdXsXdXdXdXdXdXsXsXdXdXdXdXdXdXsXsXdXdXdXdXdXdXsXdXsXdXdXdXsXdXsXdXsXdXdXsXsXdXsXdXdXdXdXdXdXsXdXsXdXdXdXdXdXdXdXdXsXdXdXsXsXdXdXdXdXdXdXsXdXsXdXdXdXsXdXsXdXsXdXdXdXsXdXdXsXdXdXsXdXdXdXsXdXsXdXdXdXdXsXsXdXdXdXdXsXdXdXdXsXdXdXdXsXdXdXdXdXdXsXdXdXdXsXdXdXdXsXdXsXsXdXdXdXsXdXdXdXsXdXdXsXdXdXdXsXdXdXsXsXdXsXdXdXdXdXdXsXdXdXsXdXdXdXdXdXsXdXsXdXdXsXdXdXdXdXdXdXdXdXdXdXdXsXsXdXdXdXdXdXdXdXdXdXdXdXsXsXdXsXdXsXdXdXdXsXdXdXsXdXdXdX", -"dXsXdXdXsXdXsXdXdXdXdXdXsXdXsXdXdXsXdXdXsXdXsXdXsXdXsXdXdXdXdXsXdXdXdXsXsXdXsXsXdXdXdXsXdXdXsXdXdXsXsXdXsXsXsXdXdXdXdXdXsXdXsXsXsXdXsXdXdXsXdXsXsXdXsXdXsXdXdXsXdXsXdXsXsXdXdXdXdXsXdXsXsXdXsXdXsXdXsXdXsXdXsXsXdXsXdXsXdXdXsXdXdXsXdXsXsXdXsXsXsXdXdXsXdXsXdXdXdXdXdXdXsXdXsXdXdXdXdXdXsXdXsXdXdXsXdXdXsXdXsXdXsXdXsXdXdXdXdXsXdXdXdXsXdXdXsXsXdXdXdXdXdXdXsXdXdXsXsXdXsXsXsXdXdXdXdXdXsXdXsXsXdXdXsXdXdXdXdXsXsXaXsXdXdXsXdXsXsXdXsXdXdXsXdXdXsXdXsXdXdXsXdXdXsXdXdXsXdXsXdXsXdXdXsXdXdXdXdXsXdXsXdXdXsXdXsXdXsXdXdXsXdXdXdXdXdXdXdXsXsXdXsXdXdXdXdXsXsXdXsXdXsXdXsXdXsXdXsXdXdXdXdXsXsXdXsXdXdXdXsXdXaXdXsXdXdXsXdXdXsXdXsXdXdXdXdXsXsXdXsXdXdXdXdXsXdXdXsXdXdXdXsXdXdXdXsXdXdXdXsXdXdXdXsXdXdXsXdXdXsXdXdXsXsXdXdXdXsXdXsXdXdXsXdXsXsXdXdXdXdXsXsXdXsXdXdXsXdXsXdXsXsXdXdXdXdXsXdXsXsXdXdXdXdXdXdXdXsXdXsXdXsXdXsXdXsXsXdXdXdXsXdXsXsXdXsXdXdXdXdXsXdXdXdXdXsXdXsXdXdXdXdXsXdXsXdXsXsXdXsXdXsXdXsXdXdXsXdXsXdXdXdXsXdXdXdXdXdXsXdXdXsXdXsXdXdXdXdXdXsXdXsXdXsXdXdXdXsXdXsXdXsXdXsXdXsXdXdXsXdXdXdXsXdXdXsXdXdXdXsXdXdXdXsXdXdXsXdXdXsXdXsXdXsXdXdXdXsXdXsXdX", -"sXdXsXsXdXsXdXsXsXsXsXsXdXdXsXsXdXsXdXsXsXdXdXsXdXsXdXsXdXsXsXdXsXsXdXsXdXsXdXdXdXsXdXsXsXsXdXdXsXdXdXsXsXdXdXsXsXsXsXsXdXsXsXdXdXsXdXsXsXdXsXaXsXsXdXsXdXsXdXsXsXdXsXdXdXsXsXsXsXdXsXdXdXsXdXsXdXsXdXsXdXsXdXsXsXdXsXdXsXsXdXsXsXdXsXdXdXsXaXsXdXsXsXdXsXdXsXdXsXsXsXsXdXsXdXsXsXsXsXsXdXsXdXsXdXsXdXsXsXdXsXdXdXsXdXsXdXsXsXdXsXsXdXsXsXsXdXdXsXsXdXsXsXsXdXdXsXdXdXsXsXdXdXsXsXsXsXsXdXsXsXdXsXdXsXdXsXsXsXdXsXsXdXsXdXsXsXdXsXdXsXsXsXdXsXsXsXdXsXsXdXsXsXsXdXsXdXsXsXdXsXdXsXsXsXdXsXsXsXdXdXsXsXsXsXdXsXdXdXsXsXdXsXsXsXdXsXsXsXdXdXsXdXdXsXsXsXdXsXdXsXdXsXsXdXsXdXsXdXsXsXsXsXdXdXsXdXsXsXdXsXdXsXsXdXsXsXdXsXdXsXsXdXsXsXsXsXdXdXsXdXdXsXsXsXdXsXsXdXdXsXsXdXsXsXdXsXdXsXsXdXsXsXdXsXdXsXdXsXdXsXsXsXsXdXsXsXsXsXdXsXsXsXdXsXdXdXsXsXsXsXdXdXsXdXsXdXsXsXdXsXdXdXsXsXsXsXdXsXdXdXsXsXsXsXsXsXsXdXsXdXsXdXsXdXsXsXdXsXdXsXdXsXdXdXsXdXsXsXdXsXdXsXsXsXsXsXdXsXdXsXsXsXdXsXdXsXdXdXsXdXsXdXsXdXsXsXdXsXdXsXdXsXdXsXsXsXsXsXdXsXdXsXsXdXsXsXsXsXsXsXdXsXsXdXsXsXsXdXsXdXsXdXsXdXsXdXsXsXdXsXsXdXsXsXsXdXdXsXsXdXsXsXdXsXdXsXdXsXdXsXsXdXsXdXsXsXsXsXdXsXsX", -"sXsXdXsXsXsXdXdXsXdXdXsXsXdXsXsXsXdXsXdXsXdXdXsXsXdXsXsXsXdXsXsXsXdXsXdXsXsXsXsXsXsXsXdXsXsXsXsXdXsXdXsXsXsXdXdXsXdXdXsXsXdXsXsXsXsXdXdXsXdXdXsXdXdXsXsXsXdXsXdXsXdXdXsXsXdXsXdXsXdXdXsXsXdXsXdXsXdXsXsXsXdXsXsXsXsXsXdXsXsXsXdXsXdXsXsXsXsXsXdXsXsXsXdXdXsXsXsXdXdXsXsXsXsXdXdXsXdXdXsXsXdXsXsXsXsXdXdXsXdXdXsXsXdXsXsXsXdXsXsXsXdXsXdXsXsXsXsXsXsXsXdXsXsXsXsXsXsXdXsXsXsXdXdXsXdXdXsXsXdXsXsXdXsXsXsXdXsXsXsXsXsXdXsXsXdXsXsXdXsXdXsXsXdXdXsXdXsXdXsXsXdXdXsXsXsXsXdXdXsXsXsXdXsXsXsXsXsXdXsXsXsXdXdXsXdXdXsXsXdXsXsXdXsXsXsXsXdXsXdXsXsXsXsXsXdXsXdXsXsXsXsXdXdXsXsXsXsXdXdXsXdXdXsXsXdXsXsXdXsXsXsXdXsXsXsXsXsXdXsXsXsXdXdXsXdXsXdXsXsXsXsXsXdXsXdXsXsXsXsXsXsXsXdXsXsXsXsXsXsXsXdXsXsXsXsXsXsXdXsXsXsXdXdXsXdXdXsXdXdXsXsXdXsXsXsXsXsXsXsXsXsXdXsXsXdXsXsXdXsXdXsXsXdXsXdXdXsXdXsXsXdXsXdXsXdXdXsXsXdXsXsXsXsXdXdXsXdXdXsXsXsXsXdXsXsXsXdXdXsXsXsXdXsXsXsXdXsXsXsXsXsXdXsXsXdXsXsXsXsXsXdXdXsXsXsXsXsXdXsXdXsXsXsXdXsXsXsXsXsXdXsXsXsXdXdXsXdXdXsXdXdXsXsXsXsXdXdXsXdXdXsXsXdXsXsXsXdXsXsXsXsXsXdXsXsXsXsXsXsXsXdXsXsXsXsXsXsXdXsXsXsXdXdXdXsXsXsXdXdXsXsX", -"dXsXdXsXdXsXsXsXsXsXsXsXsXsXsXdXsXsXsXsXsXsXsXsXsXsXsXdXsXdXsXdXsXsXsXdXsXdXdXsXsXdXsXsXsXdXdXsXsXsXdXsXdXsXsXsXsXsXsXsXsXsXsXdXdXsXsXsXsXsXsXdXsXsXsXdXsXdXsXsXsXsXsXsXsXsXsXdXsXsXsXdXsXsXsXdXsXsXsXdXsXdXsXdXdXdXsXsXsXdXsXsXsXdXsXdXdXdXsXsXsXdXsXsXsXsXdXsXsXsXdXsXdXsXsXsXsXsXsXsXsXsXsXdXsXdXsXsXsXsXsXsXsXsXsXdXsXdXsXdXsXsXsXdXsXdXdXsXsXdXsXsXsXdXdXsXdXsXdXsXdXsXsXsXsXsXsXsXsXsXsXdXsXsXdXsXsXsXdXdXdXsXdXsXsXdXsXdXdXsXsXsXsXsXsXdXdXsXsXsXsXsXsXdXsXdXsXsXsXdXdXsXsXsXdXdXdXsXdXsXdXsXsXsXsXsXsXsXsXsXsXdXsXsXdXsXsXsXsXdXsXdXdXsXsXsXsXdXsXdXdXsXsXsXsXdXdXsXsXsXsXsXsXsXsXsXsXdXsXsXdXsXsXsXdXdXdXsXdXsXdXsXsXsXsXsXsXdXsXdXdXsXsXsXsXdXsXdXdXsXsXdXsXdXsXdXdXsXsXdXsXdXsXdXdXsXdXsXdXsXdXsXsXsXsXsXsXsXsXsXsXdXsXdXsXdXdXsXdXdXdXsXsXsXsXdXsXdXdXsXsXsXsXsXsXdXsXsXsXsXsXsXsXdXsXsXsXsXsXsXsXdXdXsXsXsXsXsXsXsXdXdXsXsXsXdXsXsXsXdXdXsXsXsXdXdXsXsXdXdXdXsXdXsXsXdXsXdXdXdXsXsXsXsXdXdXdXsXdXsXsXdXdXsXsXsXdXdXdXsXdXsXdXsXsXsXsXsXsXsXsXsXsXdXdXsXsXsXsXsXsXsXsXsXsXdXsXdXsXdXsXdXsXdXsXdXdXsXsXdXsXdXdXsXdXsXdXsXdXsXdXsXsXsXsXsXdXdXsXsXsXdX", -"sXdXsXsXdXsXsXsXsXdXsXdXsXdXsXsXsXsXsXsXdXsXdXsXsXsXsXsXsXsXsXsXsXdXsXsXsXdXsXsXsXdXsXsXsXsXdXsXsXdXsXsXdXsXsXsXsXdXsXdXsXdXsXdXdXsXsXsXsXdXsXsXsXdXsXsXsXsXsXsXdXsXsXdXsXdXsXsXdXsXsXsXsXdXsXsXsXsXsXsXsXsXdXsXsXsXdXsXsXsXsXdXsXsXdXsXsXsXdXsXsXsXsXdXsXdXsXsXsXdXsXsXdXsXsXsXsXdXsXdXsXsXsXsXsXsXsXsXdXsXsXdXsXsXsXsXsXsXsXsXsXdXsXsXsXdXsXsXsXdXsXsXsXsXdXsXsXdXsXsXdXsXsXsXsXdXsXdXsXdXsXdXsXdXsXdXsXsXsXsXdXsXsXsXsXsXsXsXsXsXsXdXdXsXsXsXsXsXsXdXdXsXsXsXsXsXsXdXsXsXsXdXsXsXsXsXsXsXsXsXdXsXsXsXdXsXsXdXsXsXsXsXdXsXsXsXsXdXsXsXsXsXdXsXsXdXsXsXsXsXsXsXsXdXsXsXsXsXsXsXdXsXdXsXsXsXsXsXsXdXsXdXsXsXsXsXdXsXsXsXdXsXsXsXsXdXsXsXsXsXdXsXsXdXsXsXsXsXdXsXsXdXsXsXsXsXdXsXsXdXsXsXsXsXdXsXdXsXsXsXdXsXsXsXsXdXsXdXsXdXsXsXsXsXsXdXsXsXsXsXsXsXdXsXsXsXsXsXsXsXsXdXsXdXsXsXdXsXsXdXsXdXsXsXdXsXsXdXsXsXsXsXdXsXsXsXsXdXsXdXsXsXdXsXsXsXsXdXsXsXsXdXsXsXsXsXsXsXsXsXsXsXsXsXsXsXdXsXsXsXdXsXsXsXsXsXdXsXsXsXsXsXsXdXsXsXsXsXdXsXsXsXdXsXsXsXsXdXsXdXsXdXsXsXdXsXsXsXsXdXsXdXsXdXsXsXsXsXsXsXsXdXsXsXsXsXdXsXsXdXsXsXsXsXsXsXdXsXsXsXdXsXsXsXsXdXsXsXsXdXsXsX", -"sXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXdXsXsXsXsXsXsXsXsXdXsXsXsXsXsXsXsXsXsXsXsXsXsXdXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXdXsXsXdXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXdXsXsXsXsXsXsXsXsXsXsXsXdXsXsXsXsXsXsXsXsXsXsXsXsXsXdXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXdXsXsXsXsXsXsXsXsXsXsXsXsXsXdXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXdXdXsXsXsXsXsXdXsXsXsXsXsXsXsXsXdXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXdXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXdXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXdXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXdXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXdX=XdXsXsXsXsXsX", -"=XsXsXsXsXsXsXsXsXsXsXsX=XsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsX=XsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsX=XsXsXsXsXsXsXsX=XsXsXsXsXsXsXsXsXsX=XsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsX=XsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsX=XsXsXsXsXsXsXsX=XsXsXsXsXsXsXsXsXsX=XsXsXsXsXsXsXsXsXsXsX=XsXsXsXsXsXsXsXsXsX=XsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsX=XsXsXsXsXsXsXsXsXsXsXsXsX=XsXsXsXsXsXsXsX=XsXsXsXsXsXsXsXsXsXsX=XsXsXsXsXsXsXsXsXsX=XsXsXsXsXsXsXsXsX=XsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsX=XsXsXsXsXsXsXsXsX=XsXsXsX=XsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsX", -"sXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsX=XdXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsX=XsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsX=XsXsXsXsXsXsXsX=XsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsX=XdXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsX=XsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsX=XsXsXsXsXsXsXsX=XsXsXsXsXsXsXsXsXsXsXsX=XsXsXsXsXsXsXsXsX=XsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsX=XsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsX=XsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsX=XsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsX=XsXsXsXsXsXsXsXsX", -"sXsXsXsXsXsXsX=XsXsXsXsXsXsXsXsXsXsXsXsXsXsX=XsXsX=XsXsXsXsXsXsX=XsXsXsXsX=XsXsX=XsXsXsXsX=XsXsX=XsXsXsXsXsXsXsXsXsXsXsXsXsXsX=XsXsX=XsX=XsX=XsXsXsXsXsXsXsXsXsXsX=XsXsXsXsXsX=XsX=XsXsXsXsXsX=XsXsX=XsXsXsXsXsXsXsXsXsXsXsXsX=XsXsXsXsXsXsXsX=XsXsXsXsXsXsXsXsXsXsXsXsXsXsXsX=XsXsXsXsXsXsXsXsXsXsXsXsXsXsX=XsXsX=XsXsXsXsXsXsX=XsXsXsXsX=XsXsX=XsXsXsXsX=XsXsX=XsXsXsXsXsXsXsXsXsXsXsXsXsXsX=XsX=XsXsXsXsXsXsXsXsXsXsXsXsX=XsXsXsXsX=XsXsXsXsXsXsXsX=XsXsXsXsXsXsXsXsXsXsXsXsXsXsX=XsX=XsXsXsX=X=XsXsX=XsXsXsXsXsXsXsXsXsXsXsX=XsXsXsXsXsXsXsX=XsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsX=X=XsXsXsXsXsXsXsXsXsXsX=X=XsXsXsXsXsXsXsX=XsXsXsXsX=XsXsX=XsXsXsXsX=XsXsX=XsXsXsXsX=XsXsX=XsXsXsXsX=XsXsX=XsXsXsXsXsXsXsXsXsXsXsXsXsXsX=XsXsX=XsX=XsX=XsXsXsXsXsXsXsXsXsXsXsX=XsXsXsXsXsXsXsX=XsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsX=XsXsXsXsXsXsXsXsXsXsXsXsXsX=XsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsXsX=XsXsXsXsXsXsXsXsXsXsXsX=XsXsXsXsXsXsXsXsXsXsXsXsXsXsX=XsXsX=XsXsXsXsXsXsX=XsXsXsXsX=XsXsX=XsXsXsXsX=XsXsX=XsXsXsXsXsXsXsXsXsXsXsXsXsXsX=X", -"sX=XsX=XsX=XsXsXsX=XsXsXsX=XsX=X=XsX=XsXsX=XsXsXsXsX=XsX=XsX=XsXsXsXsX=XsXsX=XsXsXsXsX=XsXsX=XsXsXsXsX=XsX=XsXsXsX=XsX=XsX=XsXsX=XsXsXsXsXsXsXsX=XsXsX=XsX=XsX=XsXsX=XsXsX=XsXsXsXsX=XsXsX=XsXsXsXsXsXsX=XsXsX=XsX=XsX=XsX=XsXsXsX=XsX=XsX=XsXsXsXsX=XsX=XsX=XsXsX=XsX=XsX=XsXsXsX=XsXsXsX=XsX=X=XsX=XsXsXsX=XsXsXsX=XsX=XsX=XsXsXsXsX=XsXsX=XsXsXsXsX=XsXsX=XsXsXsXsX=XsX=XsXsXsX=XsX=XsX=XsXsXsXsX=XsX=XsX=XsX=XsX=XsX=XsXsXsXsX=XsXsX=XsXsXsXsX=XsXsX=XsXsXsXsXsX=XsX=XsX=XsX=XsXsXsXsXsX=XsXsXsXsXsXsXsXsX=XsX=XsXsXsX=XsX=XsXsX=XsXsX=X=XsXsXsX=XsXsX=X=XsX=XsXsX=XsX=XsX=XsX=XsXsXsXsXsX=XsX=XsX=XsX=XsXsXsXsXsX=XsXsX=XsX=XsXsX=XsXsX=XsX=XsXsX=XsXsX=XsX=XsXsX=XsXsX=XsX=XsXsX=XsXsX=XsXsXsXsX=XsXsX=XsXsX=XsX=XsX=XsXsX=XsXsXsXsXsXsXsX=XsXsX=XsX=XsX=XsX=XsXsXsX=XsXsXsX=XsXsXsX=XsXsX=XsXsX=XsX=XsXsXsX=XsX=XsXsXsX=XsX=XsXsXsX=XsX=XsX=XsXsXsXsX=XsXsXsX=XsX=XsX=XsX=XsX=XsX=XsX=XsXsX=XsXsXsX=XsX=XsX=XsXsXsXsX=XsXsX=XsX=XsX=XsXsXsX=XsXsXsX=XsX=X=XsX=XsXsXsX=XsXsXsX=XsX=XsX=XsX=XsXsX=XsXsX=XsX=XsXsX=XsXsX=XsXsXsXsX=XsX=XsXsXsX=XsX=XsX=XsXsX", -"sX=XsX=X=XsXsX=XsX=XsX=XsXsX=XsXsX=X=XsX=XsX=XsX=XsX=XsX=XsXsX=X=XsX=XsXsXsX=XsX=XsX=XsXsXsX=XsXsX=X=XsX=XsXsX=XsX=XsX=X=XsXsX=XsX=XsXsXsX=XsXsXsX=X=XsX=XsXsXsX=XsXsX=X=XsX=X=X=XsXsX=X=XsX=X=X=XsXsX=XsX=XsX=XsX=XsXsXsX=X=XsXsX=XsXsX=XsXsX=X=XsX=X=X=XsXsX=XsX=XsX=X=XsXsX=X=XsXsX=X=XsX=XsXsX=X=XsX=XsX=XsX=XsX=XsX=XsXsX=X=XsX=XsXsXsX=XsX=XsX=XsXsXsX=XsX=XsXsXsX=XsXsX=XsX=XsX=X=XsXsX=X=XsX=XsX=XsXsX=XsX=X=XsXsX=X=XsX=X=XsX=X=XsXsX=X=X=XsX=X=XsXsX=XsXsX=XsXsX=XsXsXsXsX=XsXsX=XsXsX=XsXsX=X=X=XsX=XsX=XsX=XsXsX=XsX=XsX=XsXsXsX=XsX=XsX=XsXsXsX=XsXsX=X=XsX=XsXsXsX=XsXsX=X=X=XsX=XsX=XsXsXsXsX=XsX=XsXsXsX=XsXsX=XsXsX=XsXsX=XsXsXsXsX=XsXsX=XsXsXsXsX=XsXsX=XsXsXsXsX=XsXsX=XsXsX=XsXsXsX=XsXsX=XsX=XsXsX=XsX=XsXsX=XsXsXsX=XsXsXsX=X=XsX=XsXsXsX=XsXsX=X=XsX=X=X=XsXsX=X=XsX=X=XsX=X=XsX=XsXsX=X=XsXsX=X=XsXsX=X=XsXsX=XsXsX=XsX=XsXsX=XsXsXsX=X=XsXsX=XsX=X=XsXsXsX=XsXsXsX=XsX=XsXsX=XsXsX=XsX=XsXsX=XsXsXsX=XsX=XsX=X=XsXsX=X=XsXsX=X=XsX=XsXsX=X=XsX=XsX=XsX=XsX=XsX=XsXsX=XsXsX=XsXsX=XsXsXsXsX=XsXsX=XsXsX=XsXsXsX=XsXsX=XsX=XsXsX=XsXsX=X", -"sXsX=XsXsX=X=XsXsX=X=XsX=X=XsXsX=XsXsX=XsX=X=XsXsXsXsX=XsXsX=XsXsX=XsX=X=XsXsX=XsX=XsX=X=XsXsX=X=XsXsXsXsX=X=XsXsXsX=XsXsX=X=XsX=XsXsX=X=XsX=X=X=XsXsXsX=XsX=XsXsX=X=XsXsXsXsXsXsX=X=XsXsXsXsXsXsX=XsXsX=XsXsXsX=XsX=XsX=XsXsX=XsXsX=X=XsX=X=XsXsXsXsXsXsX=XsXsXsXsX=XsXsX=X=XsXsX=X=XsXsX=XsXsX=XsXsX=XsX=XsX=XsXsXsX=XsXsX=XsXsX=XsX=X=XsXsX=XsX=XsX=X=XsXsX=X=XsX=XsXsX=X=XsXsXsX=XsXsX=X=XsXsXsXsX=XsXsX=XsXsXsXsX=X=XsXsXsXsXsXsXsXsX=X=XsXsXsXsXsXsX=X=XsX=X=XsXsX=XsXsX=X=XsXsX=XsXsX=X=XsXsX=XsXsXsX=XsXsX=X=XsX=X=XsXsXsX=X=XsX=XsXsX=XsX=X=XsX=XsXsX=X=XsXsXsX=XsX=XsXsXsX=XsXsXsX=XsXsX=X=XsX=X=XsXsX=XsX=XsXsX=X=XsX=XsXsX=X=XsXsX=X=XsXsX=X=XsXsX=X=XsXsX=X=XsXsX=X=XsXsX=X=XsXsX=X=XsX=XsXsX=X=XsXsXsX=X=XsX=X=XsX=XsXsX=X=XsX=X=X=XsXsXsX=XsX=XsXsX=X=XsXsXsXsXsXsX=X=XsXsXsXsXsX=XsXsXsXsX=X=XsXsXsX=XsXsX=X=XsXsX=X=XsX=X=XsXsXsX=X=XsXsX=XsX=XsX=XsX=X=XsXsXsX=X=XsXsX=XsXsX=XsX=X=XsX=X=XsXsXsX=X=XsXsX=XsX=XsXsX=XsXsX=X=XsXsX=X=XsXsX=XsXsX=XsXsX=XsX=XsX=XsXsXsX=XsXsX=XsX=XsXsX=X=XsXsX=X=XsXsX=X=XsXsX=X=XsX=XsXsX=X=XsXsXsX=X=XsX=X=XsX", -"=X=X=XsX=XsXsX=X=XsXsX=X=XsXsX=XsX=X=XsXsX=X=XsXsX=X=XsX=XsXsX=XsX=X=XsXsX=X=XsXsX=X=XsXsX=X=XsXsXsX=X=X=X=XsXsX=X=X=XsX=XsXsX=XsX=X=XsXsX=X=XsXsXsX=X=X=XsX=X=XsX=XsX=XsX=X=XsXsX=XsX=XsX=X=XsX=XsXsX=X=XsX=X=X=XsXsX=XsX=X=XsX=X=X=XsXsX=XsX=XsX=XsX=X=XsXsX=X=X=X=XsX=XsXsX=X=XsXsX=X=XsXsX=XsX=X=XsXsX=X=XsXsX=X=XsX=XsXsX=XsX=X=XsXsX=X=XsXsX=X=XsXsX=X=XsXsXsX=X=X=X=XsXsX=X=X=XsX=XsXsX=XsX=X=XsX=X=X=XsX=XsX=XsXsXsX=X=X=XsX=X=X=XsXsX=X=XsX=X=X=XsXsX=X=XsXsX=X=XsX=XsXsX=X=XsX=X=X=XsX=XsXsX=X=XsXsX=X=XsXsX=X=XsXsX=XsX=X=XsXsX=X=XsXsX=X=XsXsX=X=XsXsXsX=X=X=XsX=X=X=XsXsX=X=XsXsX=X=XsXsX=XsX=XsX=X=XsX=X=X=X=XsXsXsX=X=XsXsX=X=XsXsX=X=XsXsX=X=XsXsX=X=XsXsX=X=XsXsX=X=XsXsX=X=XsX=XsX=X=X=X=XsXsX=X=X=XsXsX=XsX=XsX=X=XsXsX=X=XsXsXsX=X=X=XsX=X=X=XsXsX=XsX=XsX=X=XsXsX=XsX=XsX=XsXsX=X=X=X=XsXsX=X=X=XsX=XsXsX=X=XsXsX=X=XsXsX=X=X=XsXsX=X=XsXsX=X=XsXsXsXsX=X=X=XsXsX=XsXsX=XsX=XsXsX=X=XsXsX=X=X=XsXsX=X=XsXsX=X=X=XsX=XsXsX=X=XsXsX=X=XsXsX=XsX=X=XsXsX=X=XsXsX=X=XsX=X=X=XsXsX=X=XsXsX=X=XsXsX=X=XsXsX=X=XsXsXsX=X=X=X=XsXsX=X=X=XsXsX=XsX=X", -"=XsX=XsX=X=XsX=XsX=X=XsX=X=X=X=XsX=XsX=X=XsX=X=X=X=XsX=X=X=X=XsX=XsX=X=X=XsX=X=X=XsX=X=X=XsX=X=X=X=X=XsXsX=X=X=X=XsX=XsX=X=XsX=X=XsX=X=XsX=XsX=X=X=X=XsXsX=X=XsX=X=XsX=X=X=XsX=X=X=XsX=X=X=XsX=X=X=X=XsX=X=X=XsXsX=X=X=XsX=XsX=X=XsXsX=X=X=XsX=X=X=X=XsX=X=X=XsX=XsX=XsX=X=XsX=XsX=X=XsX=X=X=X=XsX=XsX=X=XsX=X=X=X=XsX=X=X=X=XsX=XsX=X=X=XsX=X=X=XsX=X=X=XsX=X=X=X=X=XsXsX=X=X=X=XsX=XsX=X=XsX=X=X=XsX=X=XsX=XsX=X=XsX=X=X=X=XsX=X=X=XsXsX=X=XsX=X=X=XsXsX=X=XsX=X=X=X=XsX=X=X=X=XsX=X=X=XsXsX=X=X=X=XsX=X=XsX=XsX=X=XsX=X=X=X=X=XsX=X=X=X=XsX=X=XsX=X=X=X=XsX=X=X=X=XsXsX=X=XsX=X=X=XsX=X=XsX=XsX=X=X=XsX=X=X=XsX=X=XsX=XsX=X=X=XsX=X=X=XsX=X=X=XsX=X=X=XsX=X=X=XsX=X=X=XsX=X=X=XsX=X=X=XsX=X=XsX=X=XsX=XsX=X=X=XsXsX=X=X=XsX=X=XsX=X=X=XsXsX=X=X=XsX=XsX=X=XsX=X=XsX=X=X=X=XsX=X=XsX=X=X=X=XsX=X=X=XsXsX=X=X=X=XsX=XsX=X=XsX=XsX=X=XsX=X=X=X=XsX=X=X=X=XsX=X=X=XsX=X=X=X=XsX=X=X=X=X=X=X=X=X=XsX=X=XsX=X=X=X=XsX=X=X=X=XsX=X=X=XsXsX=X=X=XsX=XsX=X=XsX=X=X=X=XsX=XsX=X=XsX=X=X=X=XsX=X=XsX=XsX=XsX=X=X=XsX=X=X=XsX=X=X=XsX=X=X=X=X=XsX=XsX=X=X=XsXsX=X=X=XsX=X", -"=XsX=X=X=X=X=X=X=X=X=X=X=X=X=XsX=X=XsX=X=X=X=X=X=X=X=X=X=X=XsX=X=X=X=XsX=X=XsX=X=X=X=X=X=X=XsX=X=X=XsX=X=X=X=X=X=X=X=XsX=X=XsX=X=X=XsX=X=XsX=X=X=X=XsX=X=XsX=X=X=X=XsX=X=XsX=X=X=X=XsX=X=XsX=X=X=X=X=X=X=XsX=X=XsX=X=XsX=X=X=X=X=XsX=X=X=X=X=X=X=X=X=X=X=XsX=X=X=XsX=X=X=X=X=X=X=X=X=X=X=X=X=XsX=X=XsX=X=X=X=X=X=XsX=X=X=X=XsX=X=X=X=X=XsX=X=XsX=X=X=X=X=X=XsX=X=X=X=X=X=X=X=X=X=X=X=XsX=X=XsX=X=XsX=X=XsX=X=X=XsX=X=XsX=X=X=X=X=XsX=X=X=X=X=X=XsX=X=XsX=X=X=X=XsX=X=XsX=X=X=XsX=X=XsX=X=X=X=X=X=X=X=X=X=X=XsX=X=X=X=XsXsX=X=XsX=X=X=XsX=X=XsX=X=X=XsX=X=XsXsX=X=X=XsX=XsX=X=X=X=X=X=XsX=X=XsX=X=X=X=X=X=X=XsX=X=X=X=X=X=X=X=X=X=X=X=X=XsX=X=XsX=X=X=X=X=X=XsX=X=X=X=X=XsX=X=XsX=X=X=X=X=X=XsX=X=X=X=X=X=X=X=X=X=X=X=X=XsX=X=XsX=X=XsX=X=XsX=X=XsX=X=XsX=XsX=X=X=XsXsX=X=XsX=X=X=XsX=X=XsX=X=X=X=X=XsX=XsX=X=X=X=X=X=XsX=X=XsX=X=X=X=X=X=X=X=XsX=X=X=X=X=X=XsX=X=XsX=X=X=X=X=X=XsX=X=X=X=X=X=X=X=X=X=X=X=X=X=XsX=X=X=X=X=X=XsX=X=XsX=X=X=X=X=X=X=X=X=X=X=X=X=XsX=X=XsX=X=X=X=X=X=XsX=X=X=X=XsX=X=X=X=X=XsX=X=XsX=X=X=X=X=X=XsX=X=X=X=X=X=X=X=X=X=X=X=X=XsX=X=XsX", -"=X=X=X=X=X=X=X=XsX=X=XsX=X=X=X=X=X=X=X=X=X=XsX=X=XsXsX=X=X=X=X=XsX=X=X=X=X=X=X=X=X=XsX=X=XsX=X=XsX=X=X=X=X=X=X=XsX=X=X=X=X=X=X=X=X=X=X=X=X=XsX=XsX=X=X=X=X=X=X=X=XsX=X=X=X=X=X=X=X=X=X=X=X=XsX=XsX=X=XsX=X=X=X=X=X=X=X=X=X=X=XsX=X=X=X=X=X=XsX=X=XsXsX=X=X=X=X=X=X=X=X=X=X=X=X=XsX=X=XsX=X=X=X=X=X=X=X=X=X=X=XsX=X=XsX=X=X=X=X=XsX=X=X=X=X=X=X=X=X=XsX=X=XsX=X=X=X=XsX=X=X=X=X=XsX=X=X=X=X=X=X=X=X=X=X=X=X=X=XsX=X=X=X=X=XsX=X=X=X=XsX=X=XsXsX=X=X=X=X=X=X=X=XsX=X=X=X=X=X=X=X=X=X=X=X=X=X=XsX=X=XsXsX=X=X=X=X=XsX=X=X=X=X=X=X=XsX=X=X=X=X=X=X=X=X=X=X=X=X=X=X=XsX=X=X=X=X=X=X=X=XsX=X=X=X=X=X=X=X=XsX=X=XsX=X=X=X=XsX=XsX=X=X=XsX=X=X=X=X=X=X=X=X=XsX=X=XsX=X=XsX=X=X=X=X=X=X=X=X=XsX=X=XsX=X=X=X=XsX=XsX=X=X=XsX=X=X=X=X=X=X=X=X=X=X=X=X=XsX=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=XsXsX=X=X=X=X=X=X=XsX=X=X=X=X=X=X=X=X=X=XsXsX=X=X=X=XsX=X=XsX=X=X=X=X=X=XsX=XsX=X=X=X=XsX=X=XsXsX=X=X=X=XsXsX=X=X=X=XsX=X=XsX=X=X=X=X=X=X=X=X=X=X=XsX=X=XsX=X=X=X=X=X=X=X=X=X=X=XsX=X=X=X=X=X=X=X=XsX=X=X=X=X=X=X=X=X=XsX=X=XsX=X=X=X=XsX=XsX=X=X=XsX=X=X=X=X=X=X=X", -"=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=XsX=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=XsX=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=XsX=XsX=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=XsX=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X", -"=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X*X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X*X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X*X=X=X=X=X=X=X=X=X", -"=X=X=X=X=X=X=X=X=X=X=X=X*X=X=X*X=X=X=X=X*X=X=X=X=X=X=X*X=X=X=X=X=X=X=X=X=X=X=X=X=X*X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X*X=X=X*X=X=X=X=X=X*X=X=X=X=X=X=X=X=X=X=X=X=X=X=X*X=X=X*X=X=X=X=X=X=X=X=X=X=X=X=X*X=X=X=X*X=X=X=X=X*X=X=X=X=X=X=X*X=X=X=X=X=X=X=X=X=X=X=X=X=X*X=X=X=X=X=X=X=X=X=X=X=X=X*X=X=X=X=X=X=X=X=X=X=X*X=X=X=X*X=X*X=X=X*X=X=X=X=X=X=X=X=X=X=X=X=X=X=X*X=X*X*X=X*X=X=X=X=X=X*X=X=X=X=X=X=X=X=X=X=X=X=X=X*X=X=X=X=X=X=X=X=X=X*X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X*X=X*X=X*X=X=X=X=X*X=X=X=X=X=X=X=X=X*X=X*X=X=X=X=X*X=X=X=X=X=X=X=X=X=X=X=X=X=X=X*X=X*X=X=X=X=X=X=X*X*X=X=X*X=X=X=X=X=X*X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X*X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X*X=X*X=X=X*X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X*X=X*X=X=X=X=X=X=X=X=X=X=X=X*X=X=X=X*X=X=X=X=X=X*X=X=X=X=X=X=X=X=X=X=X=X=X=X*X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X*X=X=X=X=X=X=X=X=X=X", -"=X=X*X=X=X*X*X=X=X=X=X=X*X=X=X=X=X=X=X*X=X*X=X*X=X=X=X*X=X*X*X=X*X=X*X=X=X=X=X=X*X=X=X*X*X=X*X=X=X=X=X*X=X*X*X=X*X=X*X=X=X=X=X=X*X=X=X*X=X*X=X*X=X*X*X=X=X*X*X=X*X=X*X=X=X=X=X*X*X=X=X*X=X*X=X*X*X=X=X=X*X=X=X=X=X=X=X*X=X=X=X=X=X=X*X=X=X*X*X=X*X=X=X=X*X=X=X=X=X=X*X=X=X*X*X=X=X=X=X=X*X=X=X=X=X=X=X*X=X*X=X*X=X=X=X*X=X*X*X=X*X=X*X=X=X=X=X=X*X=X*X=X*X=X*X=X=X=X=X*X=X*X=X=X*X=X*X=X=X=X=X=X=X=X=X*X=X=X=X=X=X=X*X=X*X=X*X=X=X*X=X*X=X*X=X*X=X=X=X=X=X=X=X=X=X=X=X=X*X=X=X=X=X=X*X=X=X*X=X*X*X=X=X=X=X*X*X=X=X=X=X=X*X=X=X=X*X=X*X=X=X=X=X*X*X=X*X=X=X*X=X*X=X*X=X*X=X*X*X=X*X=X*X=X=X=X=X*X=X*X*X=X*X=X*X=X=X=X=X*X=X=X=X=X=X=X=X=X=X=X=X=X=X*X*X=X*X=X*X=X=X=X=X=X=X=X=X=X=X*X*X=X*X=X*X=X=X=X=X*X=X=X=X=X=X=X*X=X=X=X=X=X=X=X*X=X=X*X=X*X=X=X*X=X*X=X*X=X*X=X*X*X=X=X=X*X=X=X=X*X=X*X=X*X=X*X=X*X=X*X*X=X*X=X*X=X=X=X=X*X=X*X*X=X*X=X*X=X=X=X=X*X=X=X=X=X=X=X*X=X*X=X=X*X=X*X=X*X=X*X*X=X=X*X*X=X*X=X*X=X=X=X=X*X=X=X=X=X=X=X*X=X=X*X*X=X=X=X=X=X*X=X=X=X=X=X=X*X=X=X=X*X=X*X*X=X=X*X*X=X*X=X*X=X=X=X=X=X=X*X*X=X*X=X*X=X=X=X=X=X=X*X=X=X*X=X*X=X=X=X=X=X", -"=X=X*X=X=X=X*X=X=X=X=X*X=X=X=X*X=X=X=X=X*X=X=X=X=X=X*X=X=X=X*X=X=X*X*X=X=X*X*X=X=X=X=X=X=X=X=X*X*X=X=X*X=X=X=X=X=X=X*X=X=X*X*X=X*X=X=X*X*X=X=X=X=X=X=X=X=X=X=X=X=X=X=X*X*X=X=X*X*X=X=X*X*X=X=X=X=X=X*X=X=X=X*X=X*X=X=X=X*X=X=X*X=X*X=X=X=X*X=X=X=X=X*X=X=X=X*X=X=X=X*X=X=X*X=X=X=X=X=X*X=X=X=X*X=X=X=X=X*X=X=X=X=X=X*X=X=X*X=X=X=X*X*X=X=X*X*X=X=X=X=X=X=X=X=X*X*X=X=X*X=X=X=X=X=X=X*X=X=X*X*X=X=X*X*X=X=X*X=X=X=X=X=X=X*X=X=X=X*X=X=X=X=X=X=X=X=X*X*X=X=X*X=X=X*X=X=X*X=X=X=X*X=X*X=X=X=X=X=X=X=X=X*X=X=X=X*X=X*X=X=X*X=X=X=X*X=X=X=X*X*X=X*X=X=X=X=X=X*X=X=X=X=X=X=X*X=X=X=X=X=X=X=X*X*X=X=X*X=X=X=X=X=X=X=X*X*X=X=X*X=X*X*X=X=X*X*X=X=X*X*X=X=X=X=X=X=X=X=X*X=X*X*X=X=X*X*X=X=X=X=X=X=X=X=X*X*X=X=X*X=X*X*X=X=X*X*X=X=X*X*X=X*X=X=X*X*X=X=X=X=X=X=X=X=X=X=X=X=X=X=X=X*X=X=X*X=X*X*X=X*X=X=X=X*X=X=X*X=X=X=X=X=X=X=X*X*X=X*X=X=X=X=X=X=X=X=X*X*X=X*X=X=X*X*X=X=X=X=X=X*X=X=X*X*X=X=X=X=X=X=X=X=X=X=X=X=X=X=X*X*X=X*X=X=X*X*X=X=X=X*X=X=X*X=X=X=X=X=X*X=X=X*X=X=X=X*X=X*X=X=X=X=X=X*X=X=X*X=X=X=X*X*X=X=X*X*X=X=X=X=X*X=X*X=X*X*X=X=X*X=X=X*X=X=X*X*X=X=X*X*X=X", -"=X=X=X*X*X=X=X*X=X*X*X=X=X*X*X=X=X*X*X=X=X*X*X=X*X=X=X*X*X=X=X*X*X=X=X*X=X=X*X=X*X=X*X*X=X*X=X*X=X=X*X=X*X=X*X*X=X*X=X*X=X=X*X=X=X=X*X=X=X*X*X=X*X*X=X*X*X=X*X*X=X*X=X*X=X=X*X=X=X=X*X=X=X*X*X=X*X=X=X*X*X=X=X*X=X*X*X=X=X*X*X=X*X=X=X*X*X=X=X*X*X=X=X*X*X=X=X*X*X=X=X*X*X=X=X*X=X*X*X=X*X=X*X=X=X*X*X=X=X*X*X=X*X=X=X*X*X=X=X*X*X=X=X*X=X=X*X=X*X=X*X*X=X*X=X*X=X=X*X=X*X=X*X*X=X*X=X*X=X=X*X=X=X*X=X=X*X=X*X=X*X*X=X*X=X=X*X*X=X*X*X=X*X*X=X*X=X*X=X=X*X=X*X=X=X*X*X=X=X*X*X=X*X=X*X=X*X*X*X=X*X=X=X*X*X=X=X*X=X*X*X=X=X*X*X=X=X*X=X*X=X=X*X=X*X=X*X*X=X*X=X*X*X=X*X=X*X=X*X*X=X*X=X*X=X=X*X=X*X=X*X*X=X*X=X*X=X=X*X=X=X*X=X=X*X=X=X=X*X=X=X*X*X=X*X*X=X*X=X*X*X=X=X=X*X=X=X*X*X=X*X*X=X*X=X*X=X=X*X=X=X*X=X=X*X=X=X=X*X=X=X*X=X*X=X=X*X=X*X=X*X*X=X*X*X=X*X*X=X*X=X*X=X=X*X=X=X*X=X=X*X=X*X=X=X=X*X=X*X=X*X*X=X*X=X*X=X=X*X=X*X=X*X*X=X*X=X*X=X=X*X=X=X*X=X=X*X*X=X*X=X=X*X=X=X*X*X=X*X*X=X*X*X=X*X*X=X*X=X*X=X=X*X=X=X*X=X=X=X=X=X*X*X=X=X*X=X*X*X=X*X=X=X*X=X*X=X*X=X*X*X=X*X=X=X*X*X=X=X*X*X=X=X=X*X=X=X*X*X=X*X=X*X=X=X*X=X=X*X=X=X*X=X=X*X=X=X*X=X=X=X*X", -"=X*X*X=X*X=X=X*X=X*X*X=X*X=X=X*X=X*X*X=X*X=X=X*X*X*X*X=X=X*X*X=X=X*X=X*X*X*X=X*X=X*X=X=X*X*X=X*X=X=X*X*X*X=X*X*X=X*X=X*X=X=X*X*X*X*X=X=X*X=X*X=X*X=X*X=X=X*X=X=X*X*X=X*X=X=X*X*X=X*X*X*X=X*X=X*X*X=X=X*X*X*X*X=X*X=X=X*X*X*X*X=X*X=X=X*X=X*X*X=X*X=X=X*X=X*X*X=X=X*X*X*X*X=X=X*X=X*X*X=X*X=X=X*X*X=X=X*X=X*X*X=X*X=X=X*X*X=X*X=X=X*X=X*X*X*X=X*X*X=X*X*X=X*X*X=X*X*X=X*X=X*X=X=X*X=X=X*X=X=X*X=X*X=X*X*X=X*X*X=X*X*X=X*X=X*X=X=X*X=X=X*X=X=X*X=X=X*X=X=X*X*X=X*X*X=X=X*X*X=X*X=X*X=X=X*X*X=X=X*X*X=X=X*X*X*X*X=X*X=X=X*X*X*X*X=X*X=X*X=X=X*X=X=X*X*X=X*X=X=X*X*X=X*X*X*X=X*X=X*X*X*X=X*X*X=X*X=X*X*X=X*X*X=X*X=X*X=X*X=X*X=X*X=X*X=X*X=X*X=X*X=X*X=X*X=X=X*X=X=X=X=X*X=X=X*X=X=X*X=X=X*X=X=X*X=X*X=X*X*X=X*X*X=X*X*X=X*X=X*X=X=X*X*X=X*X=X*X*X*X=X*X=X*X=X=X*X*X=X*X=X=X*X*X=X*X=X=X*X*X*X=X*X*X*X=X=X*X=X=X*X=X=X*X*X*X=X*X=X*X*X*X=X*X*X=X*X=X*X=X*X=X*X=X*X=X=X*X=X=X*X=X=X*X=X=X*X=X=X*X*X*X=X*X=X*X*X*X=X*X=X*X=X=X*X*X=X*X*X=X*X=X=X*X*X=X*X=X*X=X=X*X*X=X*X=X=X*X*X=X*X=X*X=X=X*X*X=X*X=X=X*X*X=X*X*X=X*X*X*X=X=X*X=X*X=X*X=X*X=X=X*X=X=X*X*X=X*X=X=X*X*X", -"*X=X*X*X*X*X*X=X*X=X*X*X*X*X*X=X*X*X=X*X*X*X*X*X=X=X*X*X*X*X=X*X=X*X*X=X=X*X=X*X*X*X*X*X*X=X*X*X*X*X*X=X*X=X*X=X=X*X*X*X*X*X*X=X=X*X*X*X*X*X=X*X*X*X*X*X*X*X*X*X*X=X*X*X*X*X*X=X*X=X=X*X=X*X*X=X*X*X*X=X=X=X*X*X*X*X*X=X=X=X*X*X*X*X*X*X*X=X*X*X*X*X*X*X*X=X*X*X*X*X=X=X*X*X*X*X*X*X=X*X*X*X*X*X*X*X*X*X*X=X*X*X*X*X*X=X=X*X*X*X=X*X*X=X=X*X=X*X=X*X*X=X*X*X=X*X*X=X*X*X*X*X*X*X*X*X*X*X*X*X*X*X=X*X*X=X*X*X*X=X*X=X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X=X*X*X*X*X*X=X=X*X*X*X*X*X*X=X*X*X*X*X*X*X*X=X=X=X*X*X*X*X*X=X=X=X*X*X*X*X*X*X*X*X*X*X*X=X*X*X*X*X*X=X*X=X=X*X=X*X*X*X=X*X=X*X=X*X*X*X=X*X=X*X=X*X*X*X*X*X=X*X*X*X*X*X=X*X*X*X*X*X=X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X=X*X*X=X*X*X*X=X*X=X*X*X*X*X*X*X*X=X*X*X*X*X=X*X*X=X*X*X*X*X*X=X*X*X*X*X*X=X*X*X*X*X*X=X=X*X*X=X*X*X*X*X*X*X*X*X*X=X=X*X=X*X*X=X=X*X=X*X=X*X*X*X*X*X=X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X=X=X*X=X*X*X=X=X*X=X*X*X*X*X*X*X=X*X*X=X*X*X*X*X*X=X*X=X*X*X*X*X*X=X*X*X*X*X=X=X*X*X*X*X*X*X=X=X*X*X*X=X*X*X=X=X*X=X*X=X*X*X*X*X*X=X*X*X*X*X*X*X=X*X*X*X=X*X*X*X*X*X=X", -"*X*X=X*X*X=X*X*X*X*X=X*X*X=X*X*X*X=X=X*X=X*X*X=X*X*X=X*X*X=X*X*X*X=X*X*X*X*X*X*X*X=X=X*X*X=X*X=X=X*X*X*X*X*X*X*X=X=X*X=X=X*X*X*X=X*X*X*X*X*X*X*X*X=X=X*X*X=X=X*X*X=X*X=X=X*X*X=X*X*X*X*X*X=X*X*X=X*X*X*X*X*X*X*X=X*X*X*X*X*X*X*X=X*X*X=X*X*X*X*X=X*X*X=X*X*X*X*X*X=X*X*X=X*X*X=X*X=X=X*X=X*X*X=X=X*X*X=X*X*X=X*X=X*X*X*X*X*X=X*X*X=X*X*X*X*X*X*X=X*X*X*X=X*X=X*X*X=X=X*X*X=X*X*X*X=X*X=X=X*X*X=X*X*X*X*X=X*X=X*X*X=X=X*X=X*X*X*X*X*X*X=X=X*X*X=X*X=X=X*X*X=X*X=X*X=X*X*X*X*X*X=X*X=X*X*X=X*X*X=X=X*X*X*X*X*X*X*X=X*X*X*X*X*X*X*X=X*X*X=X*X=X=X*X*X=X*X=X=X*X*X*X*X*X*X*X*X=X*X=X*X*X*X*X=X*X*X*X*X*X*X*X=X*X*X*X=X*X*X*X*X=X=X*X=X*X*X*X=X*X*X*X*X=X=X*X*X=X=X*X=X*X*X=X*X=X=X*X*X*X*X=X*X=X*X=X*X*X*X*X=X*X=X*X*X=X=X*X=X*X*X*X*X=X=X*X*X=X*X*X*X=X*X=X*X*X*X*X*X=X=X*X*X=X*X=X*X*X*X*X=X*X*X*X*X*X*X=X=X*X*X=X*X*X*X*X*X=X*X*X*X*X*X*X=X*X*X*X=X*X*X*X*X=X=X*X*X=X=X*X*X=X*X=X=X*X*X=X*X*X*X*X*X=X*X*X*X*X*X*X*X=X=X*X*X=X*X=X*X*X*X=X*X=X*X*X*X*X*X=X*X=X*X*X=X*X*X*X*X*X*X*X=X*X*X*X*X*X*X=X*X*X=X*X*X*X*X*X=X*X*X*X=X*X*X*X*X=X=X*X=X*X*X*X*X=X*X=X*X*X*X=X", -"*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X=X*X*X*X*X*X*X*X*X*X*X*X*X*X=X=X*X*X=X&X*X*X*X*X*X*X=X*X*X*X*X=X*X*X=X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X=X*X*X*X*X*X*X*X*X*X=X*X*X*X*X*X*X*X=X*X*X*X*X*X*X*X*X=X*X*X*X*X*X*X*X=X*X*X*X*X*X=X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X=X*X*X*X*X*X*X=X*X*X*X*X*X*X*X*X*X=X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X=X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X=X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X=X*X*X*X*X*X*X*X=X*X*X*X*X*X*X*X*X=X*X*X*X*X*X*X*X=X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X=X*X*X=X*X*X*X*X*X*X*X*X=X*X*X*X*X*X*X*X=X*X*X*X*X*X*X*X=X*X*X*X*X*X*X*X*X*X*X*X*X=X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X=X*X*X=X*X*X*X=X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X=X*X*X*X*X*X*X*X=X*X*X*X*X*X*X*X*X*X*X*X=X*X*X*X*X*X*X=X*X*X*X*X*X*X*X=X*X*X*X*X*X*X*X=X*X*X*X*X*X*X*X*X*X=X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X=X*X*X*X*X*X*X*X=X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X=X*X*X*X*X*X*X*X=X*X*X*X*X=X*X*X*X*X=X*X*X*X*X*X*X*X=X*X=X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X", -"*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X&X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X&X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X=X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X&X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X&X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X", -"*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X&X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X&X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X&X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X%X*X*X*X*X*X*X*X*X*X*X&X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X%X*X*X*X*X*X*X*X*X%X*X*X*X*X*X*X=X&X&X*X*X*X*X*X*X&X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X%X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X%X*X*X%X*X*X*X*X*X*X*X%X*X*X*X*X*X%X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X&X*X*X%X*X*X*X*X*X*X*X*X*X%X*X*X*X*X*X*X*X*X%X*X*X*X*X*X*X*X%X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X%X*X*X&X%X*X*X&X*X&X*X*X*X*X*X*X*X*X*X*X*X*X*X*X&X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X&X*X*X*X*X*X*X%X*X*X*X*X%X*X*X*X&X*X*X%X&X*X*X*X*X%X*X*X*X*X*X&X*X*X*X%X*X*X*X*X*X*X*X*X*X*X*X*X*X%X*X*X*X%X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X%X*X*X&X*X%X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X&X*X*X*X*X*X*X*X*X*X*X*X%X*X*X*X*X*X*X*X*X", -"*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X&X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X%X*X*X*X*X*X*X*X*X*X*X*X*X&X=X&X*X=X*X*X&X*X*X*X*X&X&X*X*X*X*X*X*X*X*X*X*X*X*X*X*X%X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X&X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X%X*X*X*X*X%X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X%X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X%X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X=X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X%X*X*X*X*X*X*X*X&X*X*X*X*X*X*X*X*X*X*X*X*X*X%X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X%X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X%X*X*X&X*X*X*X*X*X*X*X*X*X*X*X*X%X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X", -"%X*X*X*X%X*X*X*X%X*X*X*X%X*X*X*X*X*X%X*X%X*X*X*X%X*X*X*X%X*X*X*X*X%X*X*X%X*X*X%X%X*X*X%X*X*X*X*X*X%X}.V.k.g.d.g.k.V.!.@X%X*X*X&X*X%X*X*X*X%X%X*X*X*X%X*X%X*X*X*X*X%X*X%X*X*X*X%X*X%X*X*X%X*X*X&X*X%X*X*X*X*X%X*X*X%X*X*X*X*X%X*X%X*X*X*X*X%X*X*X%X*X*X*X*X%X*X*X*X*X%X*X*X*X*X*X*X*X%X*X*X*X*X=X*X&X&X!.k.g.d.g.k.V.`.&X*X&X*X=X*X%X*X*X%X*X*X%X%X*X*X*X%X*X*X*X*X*X*X%X*X%X*X*X*X%X*X%X*X*X%X*X%X*X*X*X%X*X*X*X*X*X*X%X*X%X*X*X*X%X%X*X*X*X%X*X*X*X*X%X*X*X*X*X*X%X*X*X*X*X%X*X*X%X*X*X*X*X&X*X*X%X*X*X*X*X%X*X*X%X*X*X*X*X%X*X&X*X*X&X%X*X*X*X*X%X%X*X%X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X*X%X*X*X*X*X*X*X*X%X*X%X*X*X*X*X%X*X*X*X%X*X*X%X*X*X*X*X*X%X*X%X*X*X*X&X*X*X*X*X*X*X%X*X*X$X*X*X*X%X*X%X*X*X*X%X*X%X*X*X*X*X%X*X%X*X*X*X*X+XV.k.g.d.d.g.V.!.}.*X&X*X*X%X*X*X*X%X*X*X*X*X*X*X*X*X*X%X*X*X*X*X*X*X*X*X*X*X*X*X%X*X*X*X*X*X*X*X*X*X*X%X*X%X*X*X*X%X*X*X*X*X*X*X%X*X*X*X*X*X*X%X*X%X*X*X%X*X*X*X*X%X*X*X*X*X*X%X*X*X*X*X*X%X*X*X*X*X%X*X*X%X*X*X*X*X*X&X&X*X%X*X*X*X*X%X*X*X%X*X*X*X*X*X*X%X&X*X*X%X*X*X%X*X*X%X*X*X*X*X*X*X*X%X*X%X*X*X*X*X%X*X%X*X*X*X*X", -"*X*X%X*X*X%X*X*X*X%X*X*X%X*X*X%X%X*X*X%X*X*X%X*X*X%X*X*X%X*X*X%X*X%X*X*X*X%X*X*X%X*X*X%X*X!.-.b 2 X $ w Z y.`.*X*X*X*X*X&X*X*X*X%X*X*X%X*X*X*X%X*X*X*X%X*X*X*X%X&X*X&X*X*X%X*X%X&X*X*X&X*X%X&X*X*X%X&X*X&X*X*X%X*X*X*X%X*X*X&X*X*X%X*X*X%X*X%X*X*X%X*X*X%X*X%X*X*X&X*X%X!.-.M < . X < h #.V.&X=X&X%X*X%X*X*X%X*X*X%X*X%X*X*X%X*X*X*X*X*X*X&X*X%X*X*X*X%X*X*X*X*X&X*X*X*X&X*X*X*X*X&X%X*X*X%X*X&X*X*X*X*X%X*X*X*X%X*X*X*X%X*X%X*X*X*X%X*X*X%X*X*X%X*X*X%X&X*X*X%X&X*X*X&X*X%X&X*X*X%X&X*X&X*X%X*X*X&X%X*X*X&X*X%X&X*X*X%X*X*X=X*X&X*X*X*X*X*X*X*X*X&X%X*X*X&X*X%X*X*X*X*X*X*X*X*X&X*X%X*X*X%X*X%X*X*X%X*X*X&X*X*X*X&X%X*X*X&X*X%X*X*X*X*X&X*X%X*X*X%X*X*X%X*X%X*X*X%X*X*X*X*X*X*X*X*X*X&XV.#.b * $ e Z y.`.*X*X&X*X%X%X*X%X*X*X%X*X*X%X*X%X*X*X%X*X*X%X&X*X*X*X%X&X*X*X%X%X*X*X&X%X*X*X&X*X*X&X*X*X%X&X*X&X*X*X&X*X%X&X*X&X&X*X&X%X*X*X*X%X&X*X*X*X*X%X*X*X*X%X*X*X*X%X*X*X%X=X*X&X*X*X*X=X*X*X%X%X&X*X*X*X%X*X*X%X*X*X%X*X%X*X*X%X*X*X%X*X*X%X*X%X*X*X%X*X*X%X*X%X*X*X%X*X%X*X*X%X*X*X*X*X%X*X%X*X*X*X%X", -"*X%X*X*X%X*X*X%X*X%X%X*X*X%X*X%X*X%X*X%X%X*X*X%X*X%X%X*X*X%X*X%X%X*X*X%X*X%X%X*X*X%X`.#.; . 5 #.}.*X%X*X%X%X%X*X*X%X*X%X%X%X*X*X%X*X%XZ m m m m m m m M m m m m m M m m m m m M m m m m m m m m m m m m m T &X%X*X*X%X*X%X*X%X*X%X%X*X%X*X*X&X%X}.Y 5 @ H !.*X*X&X%X*X*X%X%X*X%X*X*X%X*X*X%X%X%X%X*XB h h h h h h h h h h h h h h h h h h h m *X%X*X*X%X}.h h h h h h h h h h h h h h h h h h h h #.*X%X*X*X%X%X*XV.m m m m m M m m m m m M m m m m m m m m m m m m m m m m m m m m m m x.*X%X*X%X%X*XV.h h h h h h h h h h h h h h h h h ).*X*X%X%X*X*X%X%X*X%X!.h h h h h h h h h h h h h h h h h `.%X*X*X%X*X%X%X*X*X%X%X*X*X%X%X*X%X%X*XV.J = 9 P `.%X*X*X*X*X*X%X*X%X%X*X*X*X%X%X*X%X*X*Xd.m m m m m m m m m m m m m m m m m M m m M m m m m m M m m m m m m m }.%X*X*X%X%X*Xh.m m m m m m M m m m m m m m Z Z Z Z Z Z Z P P #.-.y.u.g.x.`.}.*X*X*X*X%X%X*X*X%X*X%X%X*X%X*X%X*X*X%X*X*X%X*X%X*X%X*X*X*X%X*X%X*X%X%X*X*X%X%X%X*X%X*X*X%X%X*X", -"%X*X%X%X%X*X%X*X%X*X%X*X*X*X%X*X%X*X%X*X%X*X*X%X%X*X%X*X%X*X%X*X%X*X%X*X%X*X*X*X`.M . Z `.&X&X*X%X*X%X*X*X*X*X%X*X%X*X*X*X= e %X%X*X%X*X%X*X*X*X%X*X%X*X*X%X&X}.J X w k.&X%X*X*X%X*X%X%X*X*X*X%X*X%X*X*X%X*X< & %X*X*X%X*X`. M *X*X%X*X%X*X%Xg. s.*X%X%X%X*X%XV. P *X*X%X*X%X%X*X%X*X*Xx. `.*X*X*X*X*X*X*X%X*X*X%X*X%X*X%X%X*Xk.w b V.*X*X%X*X*X%X*X%X*X%X*X%X*X*X*X%X*XT `.&X%X*X%X*X*X-. @ w Z u.`.*X%X%X*X*X&X*X*X*X*X%X*X*X%X*X%X%X*X%X*X*X%X*X%X%X*X*X%X*X*X%X*X%X*X*X*X*X*X*X*X*X%X", -"%X*X%X*X%X*X%X%X*X%X*X%X%X%X*X%X*X%X*X%X*X%X*X%X*X%X*X%X*X%X*X%X%X%X*X%X*X%X+XZ Z }.*X%X%X*X%X%X%X%X%X*X%X%X%X&X& h *X%X*X*X%X*X%X%X%X*X%X*X%X*X%Xu.# w V.$X%X*X%X*X*X%X%X%X%X%X*X%X*X%X*X< & *X%X%X*X%X`. M &X*X%X%X*X%X*Xg.. d.%X*X%X*X%X*Xk. 5 %X%X*X%X*X*X%X*X%X%XV. ).%X%X%X%X%X%X*X%X%X%X*X*X*X%X*X}.m X H +X*X%X*X%X%X*X%X*X%X*X%X%X*X%X%XT ).*X%X%X*X%X*X-. 9 k.*X%X%X&X%X%X%X%X*X%X*X%X%X*X%X*X*X%X*X%X%X*X%X*X%X*X%X%X*X%X*X%X%X%X%X%X%X%X%X*X", -"*X%X*X%X*X%X*X%X%X*X%X*X%X%X%X%X%X*X%X*X%X*X%X%X%X*X%X*X*X&X%X%X*X%X*X%X%X!.7 & k.%X%X%X%X*X%X*X*X%X%X*X%X%X$ e &X%X%X*X%X%X&X%X*X&X%X%X*X@Xm J @X*X%X%X%X*X*X%X*X%X*X%X%X*X%X< & %X&X%X%X%X`. M *X*X%X%X%X%X%Xg. u.=X%X%X*X%X*Xk. V.%X*X%X%X&X%X&X*X%Xx. ).*X%X*X%X%X%X*X%X%X*X%X%X*X&Xg.# 5 V.%X%X&X&X%X*X%X%X*X%X%X*X%X*XY ).%X%X*X%X*X%X-. b }.%X%X%X&X%X%X%X%X*X%X%X*X%X%X%X%X*X%X%X*X%X%X%X%X%X*X*X%X%X*X%X%X%X%X%X*X%X%X", -"%X%X%X%X%X%X%X%X%X%X%X%X%X*X%X*X%X%X%X%X%X%X%X%X&X%X%X%X%X%X%X%X%X%X%X%X!.+ X u.&X%X%X*X%X%X%X%X%X*X%X%X& h %X%X&X%X%X&X%X%X%X%X%X%X}.w e }.%X%X%X%X%X&X%X%X%X%X%X*X%X< # &X%X%X*X%X`. M %X%X%X%X*X%X*Xg. d.*X%X%X%X%X%Xk. #.%X%X%X*X%X%X%X%X%XV. `.%X%X%X%X%X*X%X%X%X*X%X%X%X#. u.%X%X%X&X%X%X%X%X%X*X%X%X%XY ).*X%X&X%X%X*X-. & V.%X*X%X%X%X%X%X%X%X%X%X*X%X*X%X%X%X%X%X%X*X%X*X%X%X%X%X%X%X%X*X%X*X%X%X*X%X", -"%X%X%X%X%X%X%X%X*X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X).# s.%X%X%X%X%X%X%X%X%X%X$X& e %X%X%X%X%X%X%X%X%X%X%X+Xe 5 }.%X%X%X%X%X%X%X%X%X%X%X%X< & $X%X%X%X%X_.. M %X%X%X%X*X%X%Xg. s.%X%X%X%X%X%Xk. 7 %X%X%X%X%X&X%X%X%Xx. ).%X%X%X%X%X%X%X$X%X%X%X%XP :.&X%X%X%X%X%X%X%X%X%X%X%XT ).%X%X%X%X$X$X-.. o V.%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X*X%X$X%X", -"%X%X*X%X%X%X%X%X%X%X%X$X*X%X%X%X%X%X%X%X%X%X*X%X%X%X%X%X%X%X%X%X%X%X&X7 . `.%X%X%X%X%X%X%X%X%X*X$ h %X%X%X%X%X%X%X%X%X%X%XB w +X%X%X%X%X%X%X%X%X%X%X%X< $ %X%X%X%X%X`. . M %X%X%X%X%X%X%Xg. s.%X%X%X%X%X$Xx. `.%X%X%X%X%X%X%X%Xx. ).%X%X%X*X%X%X%X%X%X%X%X-. u.%X%X%X%X%X%X%X%X%X%X*XY ).%X%X%X%X%X%X-. * `.%X%X%X%X*X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X*X%X%X%X$X*X%X%X$X%X%X%X", -"%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X$X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X#. b %X%X%X%X%X%X$X$X%X%X$ h %X%X%X%X%X%X%X%X%X%Xs. Z %X%X%X%X%X%X%X%X%X%X%X< $ %X%X%X%X%X`. M %X%X%X%X%X%X$Xg. s.%X%X%X%X%X%Xz. #.%X%X%X%X%X%X%X%Xx. ).%X%X%X%X%X%X%X%X$X%Xx. @ ).%X%X%X%X%X%X%X%X%X%XY ).$X%X%X%X%X%X-. h %X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X$X%X%X%X%X%X%X%X%X%X%X%X%X%X", -"$X%X%X$X$X%X%X$X$X%X$X%X%X%X%X%X%X%X$X%X%X$X%X%X$X%X%X#X%X%X$X%X%X+X@ !.%X$X%X$X%X%X%X%X%X& e %X%X$X%X%X$X%X%X%X`.@ k.$X%X%X%X%X%X$X%X%X%X< & %X%X$X%X$X_. M %X%X%X%X%X$X%Xg. s.%X%X$X%X%X$Xk. w %X%X%X%X$X$X%X%Xx. ).$X%X%X$X%X%X%X%X$X+X< 9 %X%X%X%X%X$X%X%X%X%XY ).%X%X%X$X%X%X-. u.%X%X$X%X$X%X%X$X%X$X$X%X$X%X%X$X%X%X%X%X%X%X%X%X$X%X%X$X%X%X$X%X%X$X", -"$X%X$X%X$X%X$X%X%X$X%X%X$X%X$X%X%X$X%X$X@X%X%X$X%X$X%X%X%X@X#X%X%X:. T $X$X%X$X%X$X%X%X%X$ e %X%X$X%X$X%X%X$X%XB 7 @X%X$X$X%X$X%X$X%X%X< $ %X$X%X$X$X`. M $X%X$X%X$X$X$Xg. s.%X%X$X$X$X%Xk. `.$X$X$X%X$X%X%Xx. ).$X%X$X%X%X%X$X$X$X#. g.$X$X$X$X$X%X$X%X%XY ).%X%X$X%X$X%X#. 5 $X$X%X$X$X%X$X%X$X$X%X$X$X%X$X%X%X%X$X%X$X$X%X$X%X$X%X$X%X$X$X%X$X%X", -"%X$X%X$X%X$X%X%X$X%X%X%X%X$X%X$X$X%X$X%X%X%X$X%X#X%X%X#X$X%X%X%X$Xh 9 $X%X$X$X%X%X$X%X$X& h $X$X$X$X%X$X$X%X). s.$X$X%X$X%X$X%X$X%X< $ $X%X$X%X%X_. M $X%X%X$X%X%X$Xg. s.%X%X$X%X%X$Xz. -.$X%X%X$X%X$X$XB. ).%X$X%X%X%X$X%X%X}.X 9 $X%X$X%X%X$X%X$X%XY ).$X$X%X$X%X$X-. h.%X$X%X%X$X%X$X%X%X$X%X%X$X%X$X%X%X%X$X%X%X$X%X$X%X$X%X$X%X%X$X%X$X", -"$X$X%X$X$X%X$X$X$X%X$X$X$X$X%X$X$X$X$X$X$X$X$X$X%X%X$X$X%X#X$X$X+XX X +X$X$X$X%X$X$X%X$X# w %X$X$X$X$X$X%X$XZ 9 %X$X$X$X$X$X$X%X%X< $ %X%X%X$X$X`. M $X$X$X$X$X$X$Xg. u.$X$X$X$X%X$Xk. h $X%X$X$X%X$X%XB. ).$X%X$X$X$X$X$X$X#. V.$X%X$X$X%X%X$X$XY ).%X$X$X%X$X%X-. Z %X$X%X$X%X$X$X%X$X$X%X$X%X$X$X$X$X$X$X$X%X$X$X%X$X%X$X%X$X$X%X$X$X", -"$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X%X$X$X$X$X$X$X$X$X$X%X$X$XV. b f.V.s.* V.$X$X$X$X%X$X$X$X$ h $X$X$X$X$X$X$X@X@ $ :.V.f.e V.#X%X$X$X$X$X$X$X< $ %X$X$X$X$X_. M $X$X$X$X$X$X$Xg. s.$X$X$X$X$X$Xz. _.$X$X$X$X$X$Xk. _.$X$X$X$X$X$X$X$X9 m f.V.g.M #.$X$X$X$X$X$X$X$XY (.$X$X$X$X$X$X-. & $X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X", -"$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X-. Z $X$X$X%XV. s.$X$X$X$X$X$X$X$X& e $X$X$X$X$X$X$Xl. z.$X$X$X+X% #.$X$X$X$X$X$X$X$X< $ $X$X$X$X$X_. m $X$X$X$X$X$X$Xg. s.$X$X$X$X$X$Xk. :.$X$X$X$X$X$Xx. (.$X$X$X$X$X$X$X). Z $X$X$X$X$XM h $X$X$X$X$X$X$X$XY (.$X$X$X$X$X$X-. ).$X$X$X$X$X$X$X$X$X$X$X$X#X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X", -"$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$XY . {.$X$X$X#X#X7 #.$X$X$X$X$X$X$X%X$ e $X$X#X$X$X$X$XP 7 %X$X$X$X$XZ h $X$X$X$X$X$X$X$X< & $X$X$X#X$X_. M $X$X$X$X#X$X$Xg. s.$X$X$X$X$X$Xz. h %X$X$X$X$X$Xx. ).$X$X$X$X$X$X$Xs. V.$X$X$X$X$Xf. @ $X$X$X$X$X$X$X$XY ).$X$X$X$X$X$X-. u.{.V.u.e h.$X$X$X$X$X$X$X$X#X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X$X", -"$X$X$X$X#X$X#X$X#X#X#X#X#X@X$X$X$X#X$X$X#X$X$X$X#X$X$X#X$X$X$X$XM w #X$X#X#X$X$XM L $X$X$X$X$X$X$X$X# h $X$X$X$X$X$X$Xl B $X#X$X$X$X-. # $X#X$X#X$X$X$X$X< $ $X$X#X$X$X_. M $X$X$X$X#X$X$Xf. s.$X$X$X$X$X$Xz. . {.$X$X#X$X$Xz. (.$X$X#X$X$X$X#XL o $X$X#X$X#X$X_. _.#X$X$X$X$X$X@XO. (.$X$X$X$X#X#X-. s.$X#X#X#XP -.@X$X#X#X@X$X#X$X$X#X$X#X$X$X$X$X$X#X$X$X$X$X$X#X#X$X$X$X#X$X#X$X", -"#X#X#X#X$X#X$X$X#X#X$X#X#X#X$X$X#X$X#X$X#X#X#X$X#X$X#X$X#X#X#X#Xe m $X#X$X#X#X$XZ M #X#X$X#X#X#X#X#X# # d.d.d.d.d.s.d.d.d.d.d.d.d.z.#X#X#X#X#X#X$X< L #X$X$X#X$Xf. }.$X$X#X$X#X#X$X< # $X$X#X#X$X_. M #X$X$X#X$X#X$Xf. M d.d.d.d.d.d.d.d.d.d.d.d.d._.$X$X#X#X$X#Xz. u.#X$X$X#X$Xz. (.$X$X$X#X#X$X#XM 5 #X$X#X$X$X#X#X h.#X#X#X$X#X#X@XY P f.d.d.d.d.d.d.d.d.d.d.d.d.XX#X$X#X#X#X$X=. 4.#X#X#X$X#X* Z $X#X#X#X$X$X#X#X$X#X#X$X#X#X#X$X#X$X#X#X#X#X#X#X#X#X#X$X#X$X$X#X", -"#X#X#X$X#X#X#X#X#X@X$X$X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X7 H #X#X#X#X#X#XL l #X#X#X#X#X#X#X$X& * $X#X#X#X#X#X#X#X#X#X#X#X#X#X#X$X#X#X#X#X$X. #.$X#X#X#X#Xh. B.#X#X#X#X#X#X#X< & #X$X#X#X$X_. M #X#X#X#X#X#X$Xf. #.#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#Xz. l #X#X#X#X#Xz. (.#X#X#X#X#X#X#Xh w #X#X#X#X$X#X#XX -.#X#X#X#X$X#X$X#. h.#X#X#X#X#X#X#X#X#X#X#X$X#X$X#X$X#X#X#X#X=. s.#X#X#X$X#XN h #X#X#X$X#X#X#X#X$X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X$X#X#X#X#X#X#X", -"#X#X#X#X#X#X#X$X#X#X#X#X#X#X#X#X$X#X#X#X$X#X#X#X#X$X$X#X#X#X#X#X< P #X#X#X#X#X#XY h $X#X#X#X#X@X#X$X& * $X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X_. #.$X#X#X#X#Xz. f.#X#X#X#X$X#X$X< & #X#X#X#X#X_. M #X#X#X$X#X#X$Xf. #.#X#X#X#X#X#X#X#X#X#X#X#X#X$X#X#X#X#X#X#Xh. X {.#X#X#X$Xz. _.#X#X#X#X#X$X#X7 h #X#X#X#X#X#X#X$ P #X$X#X#X#X#X$XL f.#X#X#X#X#X#X#X#X#X#X#X$X#X#X#X#X#X#X#X#X-. s.#X#X#X$X$X-. w #X#X#X#X#X#X#X#X#X#X#X#X#X$X#X#X$X#X$X#X#X#X#X#X#X#X#X#X$X#X#X#X", -"#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X& P #X#XOX#X#X#XY e #X#X#X#X#X#X#X#X# * #X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#XB. :.#X#X#X#X#XB. :.#X#X#XOX#X#X#X< $ #X#X#X#X#X_. M #X#X#X#X#X#X#Xf. #.#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#XOX#X#X#Xz. s.#X#X#X#XB. (.#X#X#X#X#X#X#X& l $X$X#X#X#X#X#X* Z #X#X#X#X#X#X#XY h.#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X-. s.#X#X#X#X#X>. 9 #X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X#X", -"#X#X#XOX#X#X#XOX#X#XOX#X#X#X#XOX#X#XOX#XOX#X#X#X#XOX#X#X#X#X#X#X@ Z #X#X#X#XOX#X#. 9 OX#X#X#X#XOX#X#X$ * #X#X#X#XOXOX#X#X#X#XOX#X#XOX#X#X#X#X#X#Xz. 4.#X#X#X#X#XV. #.#X#X#X#XOX#X#X< & #X#X#XOXOX_. M OXOX#X#X#X#X#Xh. #.#XOXOX#X#X#X#X#X#XOX#X#X#X#X#X#X#X#X#X#Xh. m #X#X#X#XB. (.#X#X#X#X#XOX$XX M #X#X#X#XOX#X#X2 l #XOX#X#X#XOX#XL f.#X#X#X#X#XOX#XOX#X#X#X#XOX#X#X#X#XOX#X#X=. 4.#X#X#XOX#Xs. 2 OX#X#X#X#X#X#X#X#X#XOXOXOX#X#X#X#XOX#X#X#X#XOX#XOX#X#X#X#XOX#X#X", -"#XOX#XOX#XOX#X#XOX#X#X#X#XOX#XOXOX#XOX#X#XOX#XOX#X#XOX#X#XOX#X#X@ h #X#XOX#X#X#X+. 9 OX#XOX#X#X#X#X#X$ * #X#XOX#XOX#X#X#XOX#XOX#XOXOX#XOX#X#XOX#Xh. 4.#X#XOX#X#X^. #.#X#XOX#X#X#X#X< $ #XOX#XOX#X_. x #X#XOX#XOXOX#Xf. Y #XOX#X#XOX#XOX#X#X#X#XOXOX#XOX#XOX#X#X#Xl. X {.OX#X#Xz. (.OX#X#X#X#X#XOX N OX#XOX#X#XOX#X5 w #XOXOX#XOX#X#X#. h.#XOX#XOX#X#X#X#XOX#XOX#X#XOX#XOX#XOX#XOX-. 4.#XOX#X#X#Xs. # #XOX#XOX#X#XOX#XOX#XOX#X#X#X#XOX#X#XOX#XOX#XOX#X#X#X#X#X#X#XOX#X", -"OX#XOX#XOX#XOXOX#XOXOX#XOX#XOX#X#XOX#X#XOX#X#XOXOXOX#XOXOX#XOX#X& @ OXOX#X#XOXOXY 9 #X#XOXOXOX#XOXOX& , #XOX#XOX#XOX#XOX#XOX#X#XOX#XOX#XOXOX#XOXf. 4.#X#XOXOXOX(. Y OXOX#XOXOX#XOX< $ #XOXOXOXOX_. M #XOX#X#XOX#XOXf. #.OX#XOX#XOX#X#XOX#XOXOX#XOX#X#XOX#XOXOXOXh. f.#XOXOXl. (.#XOXOXOXOXOX{. N OX#X#XOXOX#XOX7 7 OX#X#XOX#XOX#XL 8.#X#XOX#XOX#X#XOX#X#XOXOXOX#XOX#XOX#X#XOX=. s.OX#XOXOX#X4. # OX#X#XOXOXOX#XOX#XOX#X#XOXOXOX#X#XOX#XOX#XOX#X#XOXOX#XOXOXOX#XOX", -"#XOX#X#XOXOX#XOXOX#XOXOX#XOX#X#XOXOX#XOX#XOX#X#XOX#XOX#XOX#XOX#X< B.#XOX#X#XOX#. X 9 #XOX#XOX#X#X#XOX& < OX#XOXOX#XOXOX#XOXOX#XOXOX#XOX#X#XOXOX#X6. 4.#XOX#XOX#X^. P OX#XOX#XOX#X#X, # #X#XOX#XOX_. M OXOX#XOX#XOX#Xf. #.#X#X#XOXOX#X#XOXOX#X#X#X#XOXOX#X#XOXOX#Xl. M OX#XOXz. (.#XOXOX#X#XOX{. N OX#X#X#XOX#X#X7 5 #XOX#XOX#X#XOX#. h.OX#XOX#XOX#X#X#XOX#XOX#X#XOX#X#XOX#X#XOX#. 4.OX#XOX#XOXs. * #XOX#XOX#X#X#XOX#XOX#X#X#XOX#XOX#X#XOX#XOX#XOX#XOX#X#XOX#X#XOX#X", -"OX#XOXOXOX#X#XOX#XOXOX#XOX#XOXOXOX#X#XOXOX#XOXOXOXOX#XOX#XOXOXOX9 l #XOXOXOX#Xl.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.>.#XOXOXOXOXOX#XOX$ * #XOX#X#XOXOX#X#XOX#XOXOX#XOX#XOXOXOX#X#X>. s.OXOXOX#XOX^. H #XOX#XOXOXOXOX< & OXOXOX#X#X(. M #XOXOXOXOX#XOXf. +.OXOXOXOX#XOXOX#XOXOXOXOXOXOX#XOXOX#XOXOXj. o OXOX#Xl. ^.OX#XOXOXOXOX{. N OXOXOXOXOXOXOX4 * #XOXOX#XOXOXOXU f.OX#XOXOXOXOXOX#XOXOX#XOXOXOXOXOX#XOXOXOX:. 4.#X#XOXOXOX4. < #XOXOX#XOXOX#XOXOXOXOXOX#XOXOX#XOXOXOXOXOX#X#XOXOXOXOX#XOXOXOXOX", -"OXOXOX#XOXOXOXOXOXOXOXOXOXOXOX#X#XXXOXOXOXOXOXOXOX#XOXOXOXOXOXOXl #.OX#XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOX#XOXOXOXOXOXOXOXOXOX# * OXOXOXOX#X#XOXOXOXOXOXOXOXOXOXOX#XOXOX#X:. 4.#XOXOX#XOX^. Z OXOXOXOXOXOX#X< $ OX#XOXOXOX/. M OXOXOXOX#XOXOXf. #.OXOXOXOXOXOXOXOXOX#XOXOXOXOX#XOXOXOXOXOXz. f.OXOXl. (.OXOX#XOXOXOX[. N OX#XOXOXOX#XOX7 & OXOXOXOXOXOXOXY h.OXOXOXOX#XOXOXOXOXOXOXOXOXOX#XOXOXOXOXOX#.X 4.OXOXOXOX#X>. 4 OXOXOXOXOXOXOXOXOX#XOXOXOXOXOXOXOXOXOX#XOXOXOXOXOXOX#XXXOXOXOX#X", -"OXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXXXOXOXOXOXOXOXOXOXOX#XXXZ L OXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOX& * OXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOX#. 4.OXOXOXOXOX^. N OXOXOXOXOXOXOX< $ OXOXOXOXOX_. x OXOXOXOXOXOXOXf. #.OXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXXXj. Z OXOXl. (.OXOXOXOXOXOX_. N OXOXOXOXOXOXOX7 $ OXOXOXOXOXOXOXU f.OXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOX#.X 4.OXOXOXOXOX-. w OXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOX", -"OXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOX:. l {.XXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOX$ * OXOXOXOXOXOXOXOXOXOXOXOXOXOXOXoXOXOXOXOX#. 4.OXOXOXOXOX^. N OXOXOXOXOXOXOX< # OXOXOXOXOX_. M OXOXOXOXOXOXOX8. #.OXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXj. # XXOXl. ^.OXOXOXOXOXOX(. N OXOXOXOXOXOXOX7 @ OXOXOXOXOXOXOXY f.OXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOX:. 4.OXOXOXOXOXL M OXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXXX", -"OXOXOXOXOXOXOXOXOXOXOXOXOXoXOXOXOXOXOXOXOXOXOXOXoXOXOXOXOXOXOXOXB. . # =.XXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOX$ * OXOXoXOXOXOXXXOXOXOXOXOXOXOXOXOXOXOXOXOX:. 4.OXOXOXOXOX^. N OXOXOXOXOXOXOX< & OXOXOXOXOX/. M OXOXOXOXOXOXOXf. U OXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXj. j.XXl. (.OXOXOXOXoXOX^. . N OXOXOXOXXXOXXX7 o OXOXOXOXOXOXOXL r.XXOXOXoXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOX#. 4.OXOXOXOXXXx L OXOXOXOXOXOXOXOXoXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXoXOXOXOXOXOXOX", -"OXOXOXoXOXOXOXOXOXOXoXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXXXX h /.oXOXOXOXOXOXOXOXOXOXOXOXoXOXOXOXOXoXOXOXOXOXOXOXOXOX& , OXOXOXOXOXOXOXOXOXOXOXOXOXoXOXOXOXOXOXOX+. 4.OXXXOXOXOX^. N OXOXOXOXOXOXOX, % OXoXOXOXOX_. M oXOXOXoXoXOXOX8. +.OXOXoXOXoXOXOXOXOXoXOXOXOXOXOXOXOXOXOXOXj. Z OXB. /.OXOXOXXXOXOX^. N OXoXOXOXOXOXXX7 o OXOXOXoXOXOXOXO. r.OXOXOXOXOXOXOXOXoXOXOXOXOXOXOXoXoXOXOXOX+. 6.OXOXoXOXXX$ =.oXOXOXOXOXOXXXOXOXOXOXOXOXoXOXOXOXOXoXoXOXOXOXOXOXOXOXOXOXOXOXOX", -"OXoXOXOXoXoXOXOXoXOXOXOXOXoXOXoXOXoXOXoXoXOXoXOXoXOXOXoXOXoXOXXXoXM H {.OXOXOXoXOXoXoXOXoXOXoXOXOXoXOXOXOXoXOXoXOXoXOXoX$ * OXOXoXOXOXOXoXOXoXoXOXoXOXOXOXOXoXOXOXOX#. 4.OXoXOXOXXX^. N oXOXoXOXoXOXOX< % OXOXoXOXOX/. M oXOXOXOXOXOXoXf. #.oXOXOXOXOXOXOXoXOXOXoXOXoXoXOXOXOXoXOXOXj. * XXl. ^.oXOXOXXXOXXX^. N OXOXoXoXOXXXOX4 o OXoXOXOXoXOXXXY f.OXoXOXOXoXOXoXOXOXoXOXXXOXoXOXOXOXOXoXOX=. 4.OXOXOXOXL B.oXOXOXoXOXoXOXOXOXoXOXoXOXOXoXOXOXOXOXOXOXoXoXOXOXoXOXOXoXoXOXOX", -"OXoXOXOXOXOXOXOXOXOXoXOXoXOXOXOXOXOXoXOXOXOXoXOXOXoXOXOXOXOXOXOXOX6. 3 j.OXOXOXOXoXOXoXOXOXOXOXoXOXOXoXOXOXOXOXoXOXOXoX% o L L L L L I L L L L L U #.OXOXOXOXOXoXOX;. 4.OXoXOXOXOX^. N OXOXoXOXOXOXOX, & OXOXoXOXoX_. M oXOXOXOXoXOXOXf. w L L L L L I L L L L L L l.OXOXoXOXOXoXOXj. B.j. ^.oXOXOXoXOXOX^. N OXoXOXOXoXOXOX7 @ OXoXOXOXoXOXOXU x L L L L L L L L L L L L /.oXOXoXOXOXOXoX=. L 6.>.U 3 @ XXOXOXoXOXOXOXoXOXOXOXoXOXOXOXoXOXOXOXoXOXOXoXOXOXOXoXOXOXoXOXOXoX", -"oXOXOXoXoXOXoXoXoXOXOXoXOXOXoXOXoXoXOXOXoXoXOXOXoXOXoXOXoXoXOXoXoXXX< l [.oXOXOXOXOXoXoXOXoXOXOXoXOXOXoXoXOXOXoXoXOX$ 2 OXoXoXOXoXOXoX=. 4.oXOXoXoXOX^. N oXOXOXoXOXoXOX< # oXOXOXoXOX/. M oXoXoXOXOXoXOX8. #.oXOXoXoXOXOXoXj. H B. /.OXOXoXOXOXoX^. X N oXOXOXoXOXOXoX3 o oXOXOXoXOXOXoXU j.OXOXOXOXoXoXOX=. x oXoXOXOXoXoXOXOXoXoXOXOXoXoXOXOXoXoXoXOXOXOXOXoXoXoXOXoXOXOXoXoXOX", -"oXOXoXoXOXoXoXoXoXOXoXOXoXoXoXOXoXOXOXoXOXoXOXoXOXOXoXoXoXOXoXoXOXoX;. # 6.OXoXoXoXoXOXoXOXoXoXoXOXoXoXOXoXoXOXOXOX% 2 oXOXoXoXoXOXOX*. 4.oXOXoXOXoX^. N OXoXoXoXoXOXoX< $ OXoXoXOXoX/. x OXoXOXOXoXOXoX8. +.oXOXOXoXoXoXOXj. & B. ^.OXoXOXoXoXOX^. N oXOXoXoXOXoXOX7 @ oXOXoXoXOXoXXX#. j.OXoXoXoXoXOXOX=. h.oXoXOXoXOXOXoXoXOXoXOXoXOXOXoXoXOXOXoXOXoXoXoXoXOXOXOXoXoXOXoXOXoX", -"oXoXoXOXoXoXOXOXOXoXoXoXOXoXXXoXoXoXoXoXOXoXoXoXoXoXoXOXoXoXOXoXoXOXXX7 N [.OXoXOXoXoXoXOXoXoXoXoXOXoXoXOXoXoXoX& 2 oXoXoXOXoXoXoX=. 4.oXoXOXoXoX^. v oXoXOXOXoXoXoX< & oXoXOXoXOX/. M oXoXoXoXOXoXoX8. +.OXoXoXOXOXoXoXj. =. ^.oXoXoXOXoXoX^. N oXoXoXOXoXoXoX9 @ oXoXoXOXoXoXoXL r.oXoXoXOXOXoXOX@. h oXoXOXoXoXoXoXoXOXoXoXoXoXoXoXOXoXoXoXoXoXoXOXoXOXoXoXoXoXOXoXoXOXoX", -"OXoXOXoXoXOXXXoXoXoXoXoXOXoXOXoXOXoXoXOXoXXXoXOXOXoXOXoXoXoXoXOXoXoXXXj.X 7 ^.XXoXoXOXoXoXOXOXoXOXoXXXoXoXoXXXoX$ 2 OXoXOXoXOXoXOX+. 4.oXXXoXoXoX~. N XXoXOXoXoXOXXX, $ oXOXoXXXoX/. M oXoXoXoXOXoXoX8. +.OXoXOXoXOXoXoXr. g ^.XXoXOXoXoXOX~. X N OXoXOXoXoXOXoX/.^./././.^././.^./././.^.^././.^././.^./.OXoXOXoXoXOXOXO. r.XXoXoXXXoXXXoX@. 8 [.XXXXoXoXoXoXOXoXOXoXOXoXoXoXOXoXOXoXOXoXOXoXoXoXXXXXOXoXOXoXoXoXoXOX", -"oXoXoXoXoXoXoXoXoXoXoXOXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXOXoXoXoXoXoXoXoX+. X ;.oXOXoXoXoXoXoXoXoXoXoXoXOXoXoXoX& < oXoXoXoXoXoXoX=. 4.oXoXoXoXXX^. N oXoXoXoXoXoXoX< # oXoXoXoXOX/. c oXOXoXoXoXoXOXf. +.oXoXoXoXoXoXoXj. ^.oXoXoXoXoXXX~. v oXoXoXoXoXoXoXoXOXoXOXoXoXOXoXoXoXXXoXOXoXoXOXoXOXoXoXoXoXoXoXoXoXoXXXO. j.oXoXoXoXoXoXOX#. X +.XXoXoXoXoXoXOXoXoXoXoXoXoXoXOXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXOXoXoX", -"oXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXH N oXoXoXoXoXoXoXoXoXoXoXoXoXoXoX# 2 oXoXoXoXoXoXoX=. 3.oXoXoXoXoX^. N oXoXoXoXoXoXoX< & oXoXoXoXOX/. M oXoXoXoXoXoXoX8. #.oXoXoXoXoXoXoXj. ^.oXoXoXoXoXoX^. N oXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXL r.oXoXoXoXoXoXoX*. g +.[.XXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX", -"oXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX:. w [.oXoXoXoXoXoXoXoXoXoXoXoXoX& , oXoXoXoXoXoXoX*. 3.oXoXoXoXoX~. v oXoXoXoXoXoXoX< $ oXoXoXoXoX/. x oXoXoXoXoXoXoX8. +.oXoXoXoXoXoXoXr. /.oXoXoXoXoXoX~. N oXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXO. j.oXoXoXoXoXoXoX=. @ L B.[.oXoXXX.XoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX", -".XoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX.XoXoXoXoXw.@ 4 /.oXoXoXoXoXoXoXoXoXoXoXoX# < oXoXoXoXoXoXoX*. 3.oXoXoXoXoX~. N oXoXoXoXoXoXoX, $ oXoXoXoXoX/. x oXoXoXoX.XoXoX5. +.oXoXoXoXoXoXoXr. /.oXoXoXoXoXoX~. N oXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXXXI r.oXoXoXoXoXoXoX=. * H ~.oXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX", -"oXoXoXoX.XoXoXoXoXoX.XoXoX.XoXoXoXoX.XoX.XoXoXoXoX.XoXoX.XoXoXoXoXoXoXoX.XoXoXoX/.9 & /.oXoXoX.XoXoXoXoXoXoXoX% < oXoXoXoX.XoXoX*. 3.oXoX.XoXoX~. N oXoXoXoXoX.XoX< # .XoXoXoXoX/. x oXoXoXoXoXoXoX8. +..XoXoXoXoXoXoXr. /..XoXoXoX.XoX~. v oXoX.XoX.XoXoXoX.XoXoXoXoXoX.XoX.XoXoXoX.XoXoXoXoXoX.XoXoXoX.XoXoXoXoXU r.oXoXoXoX.XoXoX+. g B.oXoXoX.XoX.XoXoXoXoXoXoX.XoX.XoXoX.XoXoXoXoXoXoXoXoXoX.XoX.XoXoXoXoX.XoXoX", -"oX.X.XoXoXoXoX.X.XoXoXoXoX.X.XoXoXoXoXoXoXoXoXoXoXoX.XoXoXoX.XoXoXoXoXoXoXoX.XoXoX[.H 5 [..XoXoXoX.XoXoX.XoX.X$ 1 oXoX.XoXoXoXoX*. 3.oXoXoXoXoX~. v .XoXoX.XoXoXoX, & oXoXoX.X.X/. M oX.XoXoX.XoXoX8. +.oXoXoX.XoXoX.Xr. ~.oXoX.XoX.XoX~. v oXoXoXoXoXoX.XoXoXoX.XoXoXoXoXoXoXoX.XoXoXoX.XoX.XoXoX.X.XoXoXoXoX.XoXI r.oX.X.XoXoX.XoX*. U .XoXoXoXoXoXoX.X.XoXoXoXoX.X.XoXoX.XoX.XoXoX.XoX.XoXoX.XoXoX.XoXoX.X.XoX", -".XoXoX.XoX.XoX.X.XoX.XoX.XoXoXoX.X.XoX.X.XoX.X.X.XoXoX.X.X.XoX.X.XoX.X.X.XoXoX.X.XoX.Xr.* l oX.X.XoXoX.X.XoX.XoX& < .XoXoX.X.X.XoX*. 3.oX.XoXoX.X~. v oX.X.XoX.X.XoX< # oX.XoX.XoX/. c oXoXoX.XoX.XoXw. +.oX.X.XoX.X.XoXr. ~..XoXoX.XoXoX~. N .XoX.X.X.XoXoX.X.X.XoX.X.XoX.X.X.XoXoX.X.X.XoX.XoXoX.XoX.XoX.XoX.XoXoXI r..XoXoX.XoXoX.X*. C oX.XoXoX.XoX.XoX.X.XoX.XoXoXoX.XoXoX.X.X.XoX.XoXoX.XoX.XoXoX.X.XoXoX.X", -"oX.X.XoXoX.X.XoX.XoX.XoX.XoX.X.X.XoXoX.XoX.X.XoX.X.XoX.XoXoX.XoXoX.X.XoX.XoX.XoXoX.X.XoX|.H >..X.X.XoX.X.XoXoX.X# < .XoX.XoXoXoX.X*. 3.oXoXoX.XoX~. v .X.XoX.XoXoX.X, # oX.XoXoX.X/. x .X.X.X.XoX.XoX8. +..X.XoX.XoX.X.Xr. /..X.XoX.X.XoX~. v oX.X.XoXoX.XoX.XoX.X.XoXoX.X.XoX.XoX.XoXoX.X.XoX.X.X.XoX.XoX.XoX.XoX.XI r..X.XXXoXoX.XoX*. ;..XoX.X.XoX.XoX.XoXoXoXoX.XoX.XoX.XoXoX.X.X.XoX.X.XoXoX.XoX.XoX.X.XoX", -".XoXoX.X.XoXoX.XoX.X.X.XoX.X.XoXoX.X.XoX.XoXoX.XoXoX.XoX.X.XoX.X.XoXoX.X.X.XoX.X.XoXoX.X.X.X6.# & [.oXoX.X.XoX.X.XoX# , .X.XoX.X.X.XoX*. 3..X.X.XoX.X~. N oXoX.XoX.X.XoX< % .XoX.X.X.X/. x oX.XoX.XoXoX.X8. +.oXoX.XoX.XoXoXr. 8 ~.oXoX.XoXoX.X~. X v .XoXoX.X.XoX.XoX.XoXoX.X.XoXoX.X.X.XoX.X.XoXoX.X.XoX.XoXoX.X.X.X.XoXoXI r..XXX.X.X.XoX.X*. L r.3.K < @ /..X.XoX.XoX.XoX.X.X.X.XoX.X.XoXoX.XoX.XoX.X.XoX.XoX.XoX.X.X.XoXoX.X", -".X.X.X.XoX.X.XoX.XoXoX.X.XoXoX.X.X.XoX.X.XoX.XoX.X.X.X.X.XoX.X.XoX.X.XoXoX.XoX.X.XoX.XoXoX.XoX].x 3.oX.XoX.XoX.XoX.X$ , oX.XoX.XoX.X.X*. 3.oX.XoX.X.X~. v .X.X.X.X.XoX.X, # .X.X.X.X.X/. x .X.X.X.X.X.X.X8. +..X.XoX.X.XoX.Xr. K ~..X.X.X.X.X.X~. v .X.X.X.X.X.X.X.X.X.X.X.X.X.X.XoXoX.XoX.X.XoX.XoX.X.X.X.X.XoXoX.XoX.X.XU r..X.XoX.XoX.XoX;. 3..XoX.X|.c l .XoX.X.X.X.X.X.XoX.X.X.X.XoX.X.XoX.XoX.XoX.X.X.X.X.XoX.XoX.X.X.X.X", -".XoX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XoX.XoX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X3.# q .X.X.X.X.X.X.X.X# X x x l x x x x x l x x x H .X.X.X.X.X.X.X*. 3..X.X.X.X.X~. v oX.XoX.X.X.X.X< & oX.X.X.X.X/. v .X.XoX.XoX.X.X8. 4 x x x l x x l x x l x x 8..X.X.X.X.X.X.Xr.X l. ~.oX.XoX.X.X.X~. v .XoX.XoX.XoX.XoX.XoX.X.XoX.X.X.X.X.X.X.X.X.X.X.XoX.XoX.X.X.X.X.X.X.X.XI w x x x l x x l x x x x x N..X.X.X.X.X.X.X+. 3..X.X.XoX/.. /..X.XoX.XoX.X.X.X.XoX.X.X.X.X.X.X.X.X.X.X.XoX.XoX.X.X.XoX.XoX.X.X", -".X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X/.f ]..X.X.X.X.X.X.X# * .X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X@. 3..X.X.X.X.X~. v .X.X.X.X.X.X.X, & .X.X.X.X X/. x .X.X.X.X.X.X.X8. O..X.X.X.X|..X.X.X.X.X.X.X.X.X.X.X.X.X.X.Xr. F.8 ~..X.X.X.X.X.X~. v .X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XoX.X.XoX.X.X.X.X.X.X.X.X.X.X.X.X.XI w..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X@. 3..X.X.X.X.X8 *..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X", -"oX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X>.o 3..X.X.X.X.X.X.X# , .X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XoX*. 3..X.X.X.X.XN. v .X.X.X.X.X.X.X, # .X.X.X.X.X/. x .X.X.X.X.X.X.X8. O..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.Xe. /.U F..X.X.X.X.X.X~. v .X.X.X.X.X.X.Xx 8 8 8 8 8 9 8 8 8 8 8 9 8 8 8 8 8 9 9 q .X.X.X.X.X.X.XI w..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XoX+. 3..X.X.X.X.XN H .X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X", -".X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X~.8 A .X.X.X.X.X.X.X# * .X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X*. <..X.X.X.X.XS. v .X.X.X.X.X.X.X< # .X.X.X.X.X/. x .X.X.X.X.X.X.X5. O..X.X.X.X.X.X.X.X X.X.X.X.X.X.X.X.X.X.X.Xr. /.M. ~..X.X.X.X.X.XN. v .X.X.X.X.X.X.X4 . @ .X.X.X.X.X.X.XI w..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X*. <..X.X.X.X.XI l .X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X", -".X.X X.X.X.X.X.X.X.X.X.X.X.X X.X.X.X.X.X.X.X X.X.X.X.X X.X.X.X.X.X.X.X.X.X.X X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X|.K g .X.X.X.X.X.X.X& * .X.X.X.X.X.X.X.X.X X.X.X.X.X.X.X.X.X.X.X@. 3..X.X.X.X.X~. v .X.X.X.X.X.X.X3 # .X.X.X.X.XF. c .X.X.X.X X.X.X5. O..X.X.X.X.X.X.X.X.X.X.X.X.X.X X.X.X.X.X Xe. F..X& ~.|..X.X.X.X.XN. v X.X.X.X.X.X.X3 o .X.X.X.X X.X.XU w..X.X.X X.X.X.X.X.X.X.X X.X.X.X.X.X.X X.X@. 3..X.X.X.X.X@. g .X.X.X X.X.X.X.X.X.X X.X.X.X.X X.X.X.X.X X.X.X.X.X.X.X.X.X X.X.X", -".X.X.X X X X.X.X.X.X X X X.X.X.X X.X.X.X X.X.X.X.X.X.X X X X.X.X/.;.;.;.;.;.;.;.;.;.;.;.;.;.:.;.;.;.;.;. X X.X.X@.. * .X.X X.X X.X.X% * X.X.X.X X X X.X.X X.X.X.X.X X.X X X X.X*. <. X.X.X.X XN. v X.X.X.X X.X X3 & .X X X.X XF.. x .X X X.X.X X.X5. O..X X.X.X.X X X.X.X.X X.X X.X.X.X.X.X.X Xr. /..Xv S. X.X.X.X.X.XS. v .X X.X.X.X X.X3 o X.X X.X.X.X.XI w..X.X X.X.X X X X.X.X.X.X.X.X X.X.X.X.X.X+. 3..X X.X.X.X;. 9 .X.X.X X X.X X.X X.X.X.X.X.X.X X X X.X.X.X X.X.X.X X X.X.X.X X.X", -" X X.X.X.X.X.X X X.X.X.X.X.X X X.X X.X X.X.X X.X X X.X.X.X.X.X X8. .X.X.X X X>. ]..X.X.X.X.X X# * .X X X.X.X.X.X.X X.X.X X.X.X.X.X.X.X.X.X;. 3..X X.X.X.XS. N .X X X.X X.X.X4 # .X.X.X.X.XF. c X.X.X X.X.X.Xw. O..X X.X X.X.X.X.X X.X X.X.X.X X.X X X.X.Xe. F. X5. F..X.X X X.X X~. v .X.X.X X.X.X.X4 # .X.X.X.X.X X.XI w.|..X.X X.X.X.X.X.X X.X.X X.X.X X.X X.X.X@. <..X X.X X.X>. 4 .X X.X.X.X.X X.X.X.X X.X X X.X.X.X.X.X X.X.X.X X.X.X.X.X X.X X.X", -".X X X.X X.X X.X X.X.X.X.X X.X.X X.X X.X.X X.X X.X X X.X.X.X.X X5. X.X X.X.X Xc M. X X.X X X.X# , .X.X X X.X X.X X.X.X X.X X X.X|..X X.X X;. <..X.X X.X XS. C .X.X.X.X.X X.X9 # X.X.X X X/. x .X.X.X.X X.X X5. O..X.X X.X X.X.X X.X X.X X.X X.X X.X X X.Xe. /. X].o S. X.X.X.X X.XF. v .X X.X X X.X X3 # X.X.X X.X X XI w. X X.X X.X X.X X.X.X X.X X X.X X.X.X.X.X&. 3..X.X.X.X.X<. 4 X.X X.X.X.X.X X.X X.X X.X X X.X X.X.X X.X X.X X X.X.X X.X X.X X", -" X.X.X X.X X.X X.X X X X.X X X X.X X.X X X.X X.X X.X.X X X X.X X8. .X X.X X.X.XM. 5. X.X X.X.X X# * X X.X.X X.X X.X X X.X X.X X X X.X X X X>. <. X X.X.X|.S. C X X X X X.X X8 * X X X.X XF. v X X X X.X.X X5. +. X.X X X.X X X.X X.X X.X.X X X.X X.X.X Xr. F..X Xg F..X X X.X X.XF. v X.X X.X X X.X4 * .X X X.X X.X XI w..X X X.X X.X X.X X X.X X.X X X.X X X X X*. <. X X X X X<. , X X.X X X X X.X X.X X.X X.X.X X.X X.X X X.X X.X X X.X X X.X X.X", -" X X X.X.X X X X.X X X.X X.X X X X.X X.X X X X X X X.X X X X.X Xw. X.X X X.X.X X2 <. X X X X X.X# * X X.X X X.X.X X X X.X X X X.X X X.X X.X<. <. X.X X X XN. A X X X.X X.X X8 $ X X X X XF. v .X X X.X X X X5. O..X.X X X X.X X X X X X X.X X.X X X X.X.Xe. F. X.X;. S. X X.X.X X XI. v X X.X X X X X4 , X.X X X X.X XI w. X X X|. X X.X X.X X X X.X X X.X.X X X.X@. <..X.X X X X<. , X.X X X.X.X X X.X X X X X.X X X.X.X X X X X X X.X X X.X X X X.X", -".X X X X X X.X X X X X.X X X X.X X.X X X X.X.X X.X X.X X.X X X X5. X X X.X X X Xc ;..X.X X.X X X% & X X X X.X X X X.X X.X X.X X X.X X X X X3. 3. X X X.X XN. H .X.X X X X X Xw # X.X X.X X/. C X X.X X X.X X5. O. X X X.X X.X X.X X.X.X X X X.X X.X X X Xe. F..X XF. S. X.X X X X.X]. v .X X X X X.X.X3 2 X X X.X X.X XI w. X X X.X X X X X.X X.X X X.X X X X.X X.X@. <. X X X.X.X3. * X X X.X X X X.X X X.X X X X X.X X X X.X.X X.X X.X X X.X X.X X X", -" X X X.X.X X X X.X X X X X.X X X X X X X X X.X X X X X X X X X Xw. X.X X X X X XO. @. X X X X X.X% & X X.X X X.X X X X X X X X X.X X X X X Xe. <. X.X X.X XN. D X X X X X.X Xq % X.X X X XF. A X X X X.X X X5. O. X.X X X X X X X X X.X X X X X X X X X Xe. F. X X X4 S. X X X X X X|. v X X X.X.X X X4 8 .X X X X X X XG w. X X X X X X.X X X X X X.X X X X X X X X@. <. X X X X X<. # X.X X X.X X X X X.X X X X.X X X.X X X X X X X X X X X X X.X X X", -" X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X Xe. X X X X X XE.>. O. X X X X X X# , X X X X X X X X X X X X X X X X X X X XM. <. X X X X XM. I X X X X X X Xq # X X X X XF. H X X X X X X X5. O. X X X X X X X X X X X X X X X X X X X Xe. F. X X XK F. X X X X X X Xo v X X X X X X X1 f X X X X X X XI w. X X X X X X X X X X X X X X X X X X X X@. <. X X X X X<. @ X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X", -" X X X X X X XQ. X X X X X X X X X X X X X X X X X X X X X X X Xe. X X X X X X X2. K X X X X X X% * X X X X X X X X X X X X X X XQ. X X X XS. ;. X X X X Xb. @. X X X X X X Xk % X X X X XD. S X X X X X X X2. O. X X X X X X X X X X X X X X X X X X X Xe. F. X X Xe. S. X X X X X X X, c X X X X X X X, x X X X X X X XI w. X X X X X X X X X X X X X X X X X X X X@. <. X X X X X<. @ X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X", -" X X X X XQ. X X XQ. X X X X XQ. X XQ. X XQ. X X X X X X XQ. X Xb. X X XQ. X X Xw. G X XQ. X X X% & X X XQ. X X X XQ. X X XQ. X X X X X X XI. ;. X X X X Xe. ;. X XQ. X X X Xx # X XQ. X XN. D XQ. X XQ. X X9. O. X X XQ. XE.Q. XQ. X XQ. X X X X XQ. X Xe. D. X X X X$ A.Q. X X XQ. X X8 z Q. X X X X X X% C X XE. X XQ. XG 9. X XQ. X X XE. XE. XQ. X XQ. X X X X X X@. <. X X X X X<. @ XQ. X X X X XQ. X X XQ.Q. X XQ. X X X X XQ. X XQ. X X X X XQ. X", -" X X X X X X X X X X X X X X X X X XQ. X X XQ. X X X X X X X X XN. Q. X X X X X Xb. O. X X X XQ. X# * X XQ. X X X XQ. XE. XQ. XQ. X X XE. X X Xo ;. X XQ. XQ.e. 2. X X X X XQ. XC @ X X X X XM. O. X X X X X X X5. O. X X X X X X X X X X X X X X X X X X X Xe. D. X X X Xc S. XE. X X X X Xf l X X XQ. X XQ.@ D X XE. X X X XI 9. XQ. X X X X X X XQ. X XQ. X X XQ. X X X@. <. X X XQ. X<. @ X X X XQ. X X X XQ. X X X X X X X X X X X X X X X XQ. X X X X X", -" XQ.Q. XQ. XQ. XE.E.Q. XQ. X XQ.Q. X X X XQ. X X XQ. XQ. XQ. XQ.I. I. X XQ. XQ. Xe. @.Q. XQ. X X X% , Q. X X XE.Q. X X XE. X X XQ. X XQ. XE. X X8 &.Q. X X X X2. e.Q. XQ. X X X XS Q. XQ. X Xe. &. XQ. X XQ. X X2. I Q. X XQ.E. XE. XQ. X X X XQ. XQ. XQ. XQ.e. F. XQ. XQ.2. A. X XQ. XQ. X Xv g Q. X X XQ. X X *.Q. X XE. XQ. XG w. X X X XQ.E. XQ. X X X X X XQ. X X XQ. X@. <. XQ.Q. X X<. @ XQ.Q. X X X XQ. X XQ. XQ. X X XE.Q. XQ.Q. XQ. X XQ. X XQ. XQ. X", -"Q. X X X X X X XE. X XQ. XQ. XQ. XQ. XQ. XQ.Q. X XQ. XQ.Q. XQ. X XX F. X X XQ. X X9. *. XQ.Q. X X X# * Q.E.E. XE.Q. XQ. X XQ. X X XQ. X XE.Q. XQ.l @. XQ. XQ. X,. D. XQ.Q. X X XQ.O. E. XQ. XE.q. 1. X XE. X XQ. X9. O. XQ. XQ. X XQ. X XQ. XQ. X XE.Q. XQ. XQ.q. D. XQ. X XT. A. X XQ. X X XQ.O. w Q.E. XQ. XE.E. 9.Q. XQ. XQ. XQ.I 9.Q. X XQ. XQ. X XQ. X XQ. X XE.E.Q. XE. X@. <. X XQ. X X,. @ Q. XQ. X XQ. X X X X XQ. XQ. XQ. XQ. XQ.Q. XQ.Q.Q. XQ. XQ. XQ. X", -" XQ.Q.Q.Q.Q.Q.Q.Q.Q.Q. XQ. XQ. XQ. XQ. XQ. X XQ.Q. XQ. XQ. XQ.Q.E.< N.Q.Q. X XQ. X@. 1.Q. X XQ.Q.Q.# q q g g q q q q q q q q q q g P.Q.Q. XQ. XS D X XQ. XQ.&. E.Q. X XQ.Q.Q.Q.@. I. X XQ.E.2. e.Q. XQ.Q.Q.Q. X2. , q q q q q q q q q q q q f q S XQ. XQ. Xq. D. X XQ. X Xf N.Q.Q. XQ.Q.Q.Q.2. , Q. XQ. XQ.E.F. A. XQ. XQ. XQ. XG 4 q q q q q q q q q q q q q q ;.Q. X XQ.Q.@. ,.Q. XQ.Q.Q.<. @ XQ.Q.Q. XQ.Q.Q.Q.Q. XQ.Q. XQ. XQ. XQ. XQ.Q. X X XQ. XQ. XQ. XQ.", -"Q. XQ. XQ. X XQ. X XQ.Q. XQ. XQ. XQ.Q. XQ. XQ. X XQ. XQ. XQ.Q. X Xf 9. XQ.Q.Q.Q.Q.k M.Q.Q. X XQ. X% F.E. XQ. XQ.2. c Q.Q. X XQ.S 3 XQ.Q. X X XE. X,. M. XQ. XE.@. S. XQ.Q. X XQ. X2. f X XQ. XQ.e. D. XQ.Q.Q.Q.@. A.Q. XQ. XQ. X XM. T. XQ.Q. XQ.9. E.Q.Q.Q. XQ. X XG D Q. XQ. X X@. ,. X XQ.Q. X,. @ Q. X XQ. XQ.Q. XQ. XQ. X XQ. XQ. XQ. XQ. XQ. X XQ.Q. X XQ. XQ.Q.", -"Q.Q.Q. XQ.Q.Q. XQ.Q.Q. XQ. XQ.Q.Q.Q. XQ. XQ.Q.Q. XQ.Q.Q. XQ. XQ. XS S Q. XQ.Q. XN.X P. XQ.Q.Q.Q.Q.# D.E.Q.Q. XQ.P. 3 Q. XQ.Q. X0 c Q. XQ.Q.Q.Q.Q.Q.N. ,.Q.Q.Q.Q.c I.Q.Q. XQ.Q. XQ.9. f Q. XQ.Q.Q.q. D.Q.Q. X XQ.A. N. XQ.Q.Q. XQ.Q.Q.X 5.Q.Q. X XQ.A 8 XQ. X XQ.Q.Q.Q.I D Q.Q.Q.Q.Q.@. ,. XQ. XQ.Q.<. @ Q.Q.Q. XQ. XQ.Q. XQ.Q.Q.Q.Q.Q. X XQ.Q.Q. XQ.Q.Q.Q. XQ.Q.Q.Q.Q. X", -"Q.Q. XQ.Q.Q.Q.Q. XQ.Q.Q.Q.Q.Q. XQ. XQ.Q.Q.Q.Q. XQ.Q.Q.Q.Q.Q. XQ.Q.;. o b.Q.Q.Q.P.8 . o E.Q. XQ.Q.Q. X% D.Q.Q.Q. XQ.Q.3 ;.Q.Q.Q.2. 2.Q.Q. XQ.Q.Q.Q.Q.E.o 8 T.E.Q.M.X 3 Q.Q.Q.Q.Q.Q.Q.Q.2. g Q.Q.Q.Q. Xq. D. XQ.Q. XQ.Q.3 A.Q.Q.Q.Q.Q. XQ.Q.g 1 P.Q.Q.Q.b.. S Q.Q.Q.Q. XQ. XQ.G D XQ.Q.Q.Q.@. ,. XQ.Q. XQ.,. @ Q. XQ.Q.Q.Q. XQ.Q.Q.Q.Q. XQ.Q.Q.Q.Q.Q.Q.Q.Q.Q. XQ. XQ.Q.Q. XQ.Q.", -"Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.A. 0 z k X f Q.Q.Q.Q.Q.Q.Q.% D.Q.Q.Q.Q.Q.Q.O. q C g % E.Q.Q.Q.Q.Q.Q.Q.Q.Q.z , z g X S Q.Q.Q.Q.Q.Q.Q.Q.9. g Q.Q.Q.Q.Q.q. D.Q.Q.Q.Q.Q.Q.A N.Q.Q.Q.Q.Q.Q.Q.Q.O. o l z f 9.Q.Q.Q.Q.Q.Q.Q.Q.G D Q.Q.Q.Q.Q.@. ,.Q.Q.Q.Q.Q.,. @ Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.", -"Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.4 G Q.Q.Q.Q.Q.Q.Q.% Z.E.Q.Q.Q.Q.Q.I. ;.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.1. . N.Q.Q.Q.Q.Q.Q.Q.Q.9. f Q.Q.Q.Q.Q.e. D.Q.Q.Q.Q.Q.Q.q. Z.Q.Q.Q.Q.Q.Q.Q.Q.b. % T.Q.Q.Q.Q.Q.Q.Q.Q.G D Q.Q.Q.Q.Q.@. ,.Q.Q.Q.Q.Q.,. @ Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.", -"Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.D b.Q.Q.Q.Q.Q.Q.Q.% P.Q.Q.Q.Q.Q.Q.Q.C f Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.3 f Q.Q.E.Q.Q.Q.Q.Q.Q.2. g Q.Q.Q.Q.Q.q. D.Q.Q.Q.Q.Q.Q.Q.@ N.Q.Q.Q.Q.Q.Q.Q.Q.Q.0 @.Q.Q.Q.Q.Q.Q.Q.Q.Q.G G Q.Q.Q.Q.Q.@. ,.Q.Q.Q.Q. X,. @ Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.", -"Q.Q.Q.Q.Q.Q.Q.W.Q.Q.Q.Q.Q.Q.Q.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.Q.P.X 3 Q.Q.Q.Q.W.Q.Q.W.# D.W.Q.W.Q.Q.Q.Q.I.# , P.Q.W.Q.W.Q.W.W.Q.Q.Q.Q.Q.,. X b.Q.Q.Q.Q.Q.Q.Q.Q.Q.9. f Q.Q.Q.Q.Q.q. D.Q.Q.W.Q.W.Q.Q.c Z.Q.Q.W.Q.Q.Q.Q.Q.Q.,. % T.W.Q.Q.Q.Q.Q.W.Q.W.O. D Q.Q.Q.Q.W.@. ,.Q.Q.Q.Q.W.,. @ Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.W.Q.Q.Q.Q.Q.Q.Q.Q.", -"W.Q.Q.W.W.Q.Q.Q.Q.W.W.Q.Q.W.Q.Q.W.Q.Q.W.W.Q.Q.W.W.Q.W.Q.Q.W.Q.Q.Q.W.W.C %.W.Q.Q.Q.Q.Q.Q.Q.% D.Q.Q.Q.W.Q.Q.W.W.,. 8 P.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.Q.W.W.Q.f C Q.W.W.Q.Q.W.W.Q.W.Q.2. f Q.Q.Q.W.Q.q. Z.Q.Q.Q.Q.Q.W.Q.,. A.W.Q.Q.Q.Q.W.Q.W.Q.T.4 9.Q.Q.Q.Q.W.Q.Q.Q.Q.Q.F D Q.W.Q.Q.W.@. ,.Q.Q.W.Q.Q.,. @ Q.W.Q.Q.W.Q.W.Q.Q.Q.Q.W.W.Q.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.Q.Q.W.W.Q.Q.W.", -"Q.Q.Q.Q.W.Q.W.Q.Q.Q.Q.Q.Q.Q.W.Q.Q.Q.Q.Q.W.Q.Q.W.Q.Q.Q.Q.Q.Q.W.Q.Q.Q.W.I., 8 W.Q.Q.Q.W.W.Q.W.Q.% A.Q.Q.W.Q.Q.Q.Q.W.Q.o. X G T.W.W.Q.W.Q.W.Q.Q.W.Q.Q.Q.Q.Q.Q.D.% , I.Q.Q.Q.Q.Q.Q.Q.W.Q.W.9. f Q.Q.W.Q.W.q. D.Q.W.Q.Q.Q.Q.Q.L. N.Q.Q.Q.Q.W.Q.Q.Q.W.Q.b.o S Q.Q.Q.Q.Q.Q.W.W.Q.Q.Q.F D Q.Q.W.W.Q.@. ,.Q.Q.Q.W.Q.,. @ W.Q.Q.W.Q.Q.W.Q.W.Q.W.Q.Q.Q.W.Q.W.Q.W.Q.Q.W.Q.Q.Q.Q.Q.Q.Q.Q.Q.W.", -"Q.W.W.Q.Q.Q.W.Q.W.Q.W.Q.W.Q.Q.W.Q.W.W.Q.Q.Q.W.Q.W.Q.W.Q.W.Q.Q.W.W.Q.Q.Q.b.X # N.Q.Q.W.Q.W.Q.Q.Q.W.% D.W.Q.Q.Q.W.W.Q.Q.Q.Q.D X C D.W.Q.Q.Q.Q.W.Q.Q.Q.Q.Q.Q.Q.W.Q.W.W.Q.0. X b.Q.Q.W.Q.W.W.Q.W.Q.W.Q.1. g W.W.Q.W.Q.q. Z.Q.Q.Q.W.W.Q.W.Q.0 Z.Q.W.W.Q.W.Q.Q.W.Q.Q.W.@. c W.W.Q.W.Q.W.Q.Q.Q.W.W.Q.G D W.Q.Q.Q.W.@. ,.Q.W.Q.Q.W.,. @ W.Q.Q.W.Q.W.Q.Q.W.W.Q.W.Q.W.Q.Q.Q.Q.W.Q.Q.W.Q.W.Q.W.W.Q.W.Q.W.Q.", -"Q.Q.Q.W.W.Q.W.Q.W.Q.W.W.W.Q.Q.Q.Q.W.Q.W.W.Q.W.Q.W.Q.W.W.W.Q.Q.W.W.Q.Q.Q.Q.9.@ o b.W.Q.W.Q.Q.W.Q.Q.W.Q.# D.Q.W.W.Q.W.Q.W.Q.W.W.Q.%.o o z ,.I.W.W.Q.Q.W.W.W.Q.W.Q.W.Q.Q.Q.W.Q.W.Q.W.W.Q.7.X 1.W.Q.W.W.Q.W.Q.W.Q.Q.W.Q.7. f W.Q.W.W.Q.q. D.W.Q.W.W.Q.W.W.Q.O. A.W.W.Q.W.Q.W.Q.Q.W.Q.Q.W.@. c T.Q.Q.W.Q.W.W.Q.Q.W.Q.Q.W.G D Q.W.W.Q.W.@. ,.W.Q.W.W.Q.,. @ Q.Q.W.Q.Q.Q.W.W.Q.W.Q.W.W.Q.W.W.W.Q.Q.W.Q.W.W.Q.Q.W.Q.W.W.Q.W.Q.", -"W.W.W.Q.Q.W.W.W.Q.W.W.Q.Q.W.W.W.W.Q.W.Q.Q.W.W.W.Q.W.W.Q.Q.W.W.Q.Q.W.W.W.W.W.m.% , m.Q.W.W.W.W.W.Q.W.W.W.W.% Z.W.W.Q.Q.W.W.W.W.Q.W.W.Q.b.1 1 T.W.W.Q.W.Q.W.W.Q.W.Q.W.Q.W.W.W.W.W.Q.W.Q.W.Q.Q.W.W.m.# o 1.W.Q.W.W.Q.Q.W.W.Q.W.W.W.W.7. f Q.W.Q.Q.W.0. Z.Q.Q.W.Q.W.Q.W.W.m. A.W.Q.W.Q.W.Q.W.W.W.W.W.Q.W.%. o.W.Q.W.W.W.W.Q.Q.W.W.Q.W.W.W.G D W.Q.W.W.W.@. ,.W.W.Q.W.W.,. @ W.W.W.W.W.W.W.Q.W.Q.W.Q.Q.W.W.Q.W.W.W.Q.Q.W.Q.W.W.Q.W.Q.Q.W.W.W.", -"W.W.W.W.W.Q.W.Q.W.Q.W.W.W.W.Q.W.W.W.W.W.W.Q.W.Q.W.Q.W.W.W.W.W.W.W.W.Q.W.Q.W.W.L.z k L.W.W.W.W.Q.W.W.W.W.Q.W.Q.% Z.W.Q.W.W.W.W.Q.W.W.Q.W.W.W.W.,.@ T.W.W.W.W.W.W.W.W.W.Q.W.W.Q.W.Q.W.W.W.W.W.W.W.W.W.W.Q.L.k 1 m.W.W.Q.W.Q.W.W.W.W.W.W.W.Q.W.7. f W.W.Q.W.W.0. Z.W.W.Q.W.W.Q.W.W.W., Z.Q.W.W.W.W.W.W.Q.W.W.Q.W.Q.W.A.4 , m.W.Q.W.Q.W.Q.W.W.W.W.W.W.W.Q.W.G D W.Q.W.Q.W.@. ,.Q.W.Q.W.Q.,. @ W.W.Q.W.W.Q.W.W.W.W.Q.W.W.Q.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.Q.", -"Q.W.Q.W.W.W.W.W.W.W.Q.W.Q.W.W.W.W.Q.W.Q.W.W.W.W.W.W.Q.W.Q.W.Q.W.Q.W.W.W.W.W.W.Q.W.1., 8 9.Q.W.W.Q.W.Q.W.W.W.Q.W.W.W.W.# D.W.W.W.W.Q.W.Q.W.Q.W.W.W.Q.W.Q.L.o.1 m.W.Q.W.Q.Q.W.Q.W.W.W.W.Q.W.W.W.W.W.Q.W.Q.W.Q.W.Q.Q.W.W.W.1.3 A T.Q.Q.W.W.W.W.W.Q.W.Q.W.Q.Q.W.W.7. f W.Q.W.W.Q.q. Z.W.W.W.W.Q.W.W.W.Q.A Z.W.W.W.Q.Q.W.W.W.Q.W.W.W.W.W.W.T.D o o F L.Q.W.W.W.W.W.Q.W.Q.Q.W.Q.W.W.W.W.G D W.W.W.Q.W.o. ,.W.W.W.W.W.,. @ W.Q.W.W.W.W.Q.Q.W.Q.W.W.W.W.Q.Q.Q.W.Q.W.W.Q.W.Q.W.Q.W.Q.W.Q.W.W.", -"W.W.W.W.W.W.W.W.W.Q.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.Q.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.Q.W.,.8 X k 9.W.W.W.W.W.W.W.W.W.Q.W.W.W.W.W.Q.% Z.Y.W.Q.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.0.o.k @ 3 m.W.W.W.W.W.W.W.W.W.W.W.W.Q.W.W.W.Q.W.W.Q.W.Q.W.Q.W.W.W.W.W.1.f c m.W.W.W.W.W.W.W.W.W.W.Q.W.W.W.W.W.W.7. f Q.W.Q.W.W.0. Z.W.W.Q.W.W.W.W.W.W.9. A.W.W.W.Q.W.W.W.W.W.Q.W.W.W.W.W.W.W.L.o.% @ A L.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.O. D W.W.W.W.W.@. ,.W.W.W.W.W.,. @ W.Q.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.Q.W.W.W.W.W.W.W.W.Q.W.", -"W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.m.O.0 X X f o.Z.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.m.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.0.0.0.T.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.T.Z.m.o X % 3 8 8 8 8 8 8 8 S W.W.W.W.W.R.W.Q.R.W.R.W.R.W.W.W.W.W.W.W.L.o.f @ 0 @.L.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.L.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.0.0.0.m.W.W.W.W.W.I.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.R.Q.W.W.W.W.W.W.W.W.W.m.m.m.n.n.m.m.m.m.m.m.m.m.m.m.m.m.m.T.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.0.A 1 k ,.T.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.D.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.0.0.0.Z.W.W.W.W.W.L.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.L.W.W.W.W.W.L.m.m.m.m.m.m.m.m.m.m.m.m.m.m.n.m.m.m.Z.W.W.W.W.W.W.W.W.W.W.W.W.W.Q.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.", -"W.W.W.W.R.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.R.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.Y.W.L.m.%.S k f 8 1 , , 3 8 f A %.0.T.Y.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.Y.W.W.W.% k W.W.W.W.W.W.W.Y.W.W.W.W.W.W.Y.Q.Y.W.W.W.W.W.W.W.m.%.D z 8 8 1 1 , 8 8 k A o.0.I.W.W.Y.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.Y.W.W.W.W.W.W.Y.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.Y.W.W.Y.W.W.W.Y.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.Y.Q.W.W.W.W.W.W.Y.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.R.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.Z.7.%.A f q 8 1 , , 8 f f C %.m.T.W.W.W.Y.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.Y.W.W.W.W.W.Y.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.Y.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.Y.W.Y.W.W.W.W.W.W.W.W.W.W.Y.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.R.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.R.R.W.W.W.W.W.W.W.W.", -"W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.R.W.W.W.W.W.Y.W.W.W.W.Y.W.Y.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.Y.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.1 k W.W.W.W.W.W.Y.Q.W.W.R.W.W.W.W.W.W.W.W.W.W.W.Y.W.W.W.W.Y.W.W.W.W.Y.W.W.W.W.W.Y.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.Y.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.Y.Q.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.Y.W.W.W.Y.Q.Y.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.Y.W.W.W.Y.W.Y.W.W.Y.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.Y.W.W.W.W.W.W.W.W.W.W.Y.W.W.W.W.R.W.W.W.W.W.W.W.W.W.W.W.W.W.W.R.W.W.W.W.W.W.W.W.W.W.W.W.W.Y.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.Y.W.W.W.W.W.Y.W.W.W.W.W.W.W.W.W.W.W.Y.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.Y.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.R.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.", -"W.W.W.R.W.W.W.W.W.W.W.W.R.W.W.R.W.W.W.R.W.W.R.W.W.W.W.W.W.R.W.R.W.W.W.W.W.R.W.Y.Y.W.W.W.W.Y.W.W.W.R.W.W.W.W.W.W.W.W.W.Y.W.W.W.W.W.W.W.W.W.W.W.W.W.W.Y.W.R.W.W.R.W.W.W.W.W.W.W.W.W.W.W.Y.W.W.W.W.W.W.W.W.Y.W.Y.W.W.W.W.W.W.W.W.W.W.W.W.Y.W.W.W.W.W.W.Y.W.W.W.Y.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.8 k W.Y.W.Y.W.W.W.W.R.W.W.R.R.W.W.W.W.W.W.W.Y.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.Y.W.W.W.W.Y.W.W.W.W.W.W.W.W.W.Y.W.W.W.W.W.W.W.W.W.Y.W.W.Y.W.W.W.W.Y.W.W.W.W.W.W.W.W.Y.W.W.W.W.W.Y.W.Y.W.W.W.W.W.W.W.W.W.Y.W.W.Y.W.W.W.W.W.W.Y.W.W.W.W.W.W.W.W.W.W.W.W.W.Y.W.W.Y.W.W.W.W.Y.W.Y.W.W.W.W.W.W.W.W.W.W.W.Y.W.Y.W.W.Y.W.W.W.W.W.W.W.W.W.W.W.W.W.W.R.W.Y.W.W.W.W.W.W.W.Y.W.Y.W.W.W.W.W.W.W.W.W.Y.W.W.Y.W.W.W.W.W.W.W.W.Y.W.Y.W.W.R.W.W.R.W.W.W.W.W.W.Y.W.W.W.W.W.W.W.W.Y.W.W.W.W.Y.W.W.W.W.W.W.Y.W.W.W.Y.W.W.W.W.Y.W.W.W.W.W.W.W.W.Y.W.W.W.W.Y.W.W.W.Y.W.W.W.W.W.W.W.W.Y.W.W.W.W.W.W.W.W.W.W.W.W.W.W.W.Y.W.W.Y.Y.W.W.Y.W.W.W.W.W.W.W.W.W.W.R.W.W.W.R.W.W.W.W.R.W.W.R.W.W.W.R.R.W.W.W.W.R.W.W.W.W.R.W.W.R.W.W.W.", -"R.W.W.R.W.R.R.W.R.R.R.W.R.W.W.R.R.W.W.R.W.R.W.W.R.R.R.W.R.W.W.R.W.R.R.W.R.W.W.W.Y.W.R.W.W.W.W.W.R.W.W.Y.W.Y.R.W.Y.W.W.W.W.W.W.W.W.Y.W.Y.Y.W.W.Y.Y.W.W.W.W.R.R.W.Y.W.W.Y.W.W.Y.W.Y.W.W.W.W.Y.Y.W.Y.W.Y.W.W.W.W.W.Y.W.W.Y.W.W.Y.W.Y.W.W.W.W.Y.Y.W.Y.W.W.W.W.W.W.W.W.Y.Y.W.W.Y.W.W.Y.W.W.Y.W.Y.Y.W.Y.W.Y.R.k k W.W.W.W.Y.W.Y.W.W.R.Y.W.W.W.R.W.Y.W.W.W.W.W.W.W.W.Y.Y.W.Y.W.Y.W.Y.W.W.W.W.W.W.W.W.W.Y.W.W.Y.Y.W.W.Y.W.W.Y.W.W.W.W.R.R.W.W.W.W.R.Y.W.W.W.W.W.W.Y.W.Y.Y.W.W.Y.W.W.Y.W.Y.W.W.W.W.W.W.Y.Y.W.W.W.Y.R.W.W.W.W.W.Y.Y.W.Y.W.W.W.W.Y.Y.W.Y.W.W.Y.Y.W.Y.W.W.W.W.W.W.Y.Y.W.W.W.W.W.W.Y.Y.W.W.Y.Y.W.Y.W.W.W.W.W.W.W.W.Y.Y.W.R.W.Y.W.Y.W.Y.W.R.W.W.R.W.W.W.Y.Y.W.Y.W.W.W.W.W.Y.W.W.Y.Y.W.Y.W.W.W.W.W.W.Y.Y.W.Y.W.Y.W.W.W.W.W.W.W.R.W.W.W.R.W.W.Y.W.W.Y.W.W.W.Y.W.W.W.W.W.W.Y.W.W.W.Y.W.Y.Y.W.Y.W.W.W.W.W.W.Y.W.W.W.Y.W.Y.Y.W.W.Y.W.W.Y.W.W.W.W.Y.W.W.Y.W.W.W.Y.W.W.W.W.W.W.W.Y.W.W.Y.Y.W.W.Y.Y.W.Y.W.W.W.W.W.W.W.W.W.W.Y.W.W.Y.W.W.Y.R.W.W.R.R.R.W.W.W.R.R.W.R.W.W.R.R.R.W.W.W.R.R.R.W.W.R.W.R.W.R.W.W.R.R.R.", -"R.R.W.W.R.R.R.R.W.W.R.R.R.R.W.W.R.R.W.W.R.R.R.R.W.W.R.R.R.R.W.W.R.R.R.R.W.W.R.Y.W.W.R.W.Y.Y.W.Y.R.W.W.W.Y.Y.W.W.W.W.Y.Y.Y.W.W.Y.Y.W.W.Y.W.R.W.R.W.R.W.R.R.R.R.W.Y.W.W.Y.Y.W.W.Y.W.Y.Y.W.W.W.W.W.W.Y.Y.W.W.Y.Y.W.Y.W.W.Y.Y.W.W.Y.W.Y.Y.W.W.W.Y.W.W.Y.Y.W.W.Y.Y.W.R.W.W.Y.Y.W.W.Y.Y.W.W.Y.W.W.R.W.W.W.R.R.O. z R.R.Y.W.W.W.W.R.W.Y.W.W.R.R.W.R.W.W.Y.Y.Y.W.W.Y.W.Y.W.W.W.W.Y.W.W.W.Y.Y.Y.W.W.Y.Y.Y.W.W.W.Y.W.W.W.W.Y.W.W.W.Y.Y.R.R.R.W.Y.Y.W.W.W.W.Y.Y.Y.W.W.W.Y.Y.W.W.W.Y.W.W.W.Y.Y.W.W.Y.Y.W.R.W.W.Y.Y.W.R.W.W.Y.Y.W.W.W.Y.W.W.Y.Y.W.W.W.W.W.Y.W.W.W.W.W.Y.W.W.Y.Y.W.W.W.Y.W.W.Y.Y.W.W.W.W.W.W.W.W.W.W.Y.Y.W.W.Y.W.W.W.W.W.Y.Y.W.W.R.W.Y.W.R.W.R.R.R.R.R.Y.W.W.Y.Y.W.W.Y.Y.W.Y.W.W.W.W.W.Y.W.W.Y.Y.W.W.W.W.W.W.Y.Y.W.W.Y.Y.W.R.R.W.R.R.R.R.R.W.W.Y.W.W.W.Y.Y.W.W.Y.Y.Y.W.W.W.Y.Y.W.W.W.Y.W.W.W.W.Y.Y.Y.W.W.W.Y.W.W.W.Y.Y.W.W.W.Y.W.W.W.W.Y.Y.W.W.Y.W.W.W.Y.Y.W.W.Y.Y.Y.W.W.Y.Y.W.W.Y.Y.W.W.W.W.W.Y.W.W.Y.Y.W.Y.W.W.Y.Y.W.W.Y.Y.W.Y.W.W.R.R.R.R.W.R.R.W.R.R.W.W.R.R.R.R.W.R.R.W.R.W.R.R.R.W.R.W.R.R.R.W.R.W.R.", -"W.R.R.R.R.W.W.R.R.R.R.W.W.R.R.R.W.R.R.R.R.W.W.R.R.R.R.W.W.R.R.R.R.W.W.R.R.R.R.W.W.Y.W.Y.W.W.R.W.W.Y.R.R.W.W.W.Y.Y.W.W.W.W.Y.Y.W.W.Y.W.W.R.W.Y.W.Y.W.R.R.W.W.R.R.W.W.Y.W.W.Y.W.Y.W.W.Y.W.Y.W.Y.Y.W.W.W.W.Y.W.W.Y.W.W.Y.W.W.Y.W.Y.W.W.Y.W.Y.W.W.Y.W.W.W.W.Y.W.W.Y.W.Y.W.W.W.Y.Y.W.W.W.Y.W.Y.W.R.R.W.Y.R.Y.m. k W.R.W.R.W.Y.Y.W.R.W.R.R.W.R.R.R.W.Y.W.W.W.Y.Y.W.Y.W.W.Y.Y.W.W.R.Y.W.W.W.W.Y.Y.W.W.W.Y.W.Y.W.W.Y.Y.W.W.Y.W.Y.W.W.R.W.W.Y.W.W.Y.W.W.Y.W.W.W.Y.Y.W.W.W.W.Y.Y.W.W.Y.W.W.W.W.Y.W.W.Y.R.W.R.W.W.Y.W.Y.W.W.W.Y.Y.W.W.Y.W.W.W.W.Y.Y.W.Y.W.W.Y.Y.W.Y.W.Y.W.W.W.Y.Y.W.W.Y.W.W.W.W.Y.Y.W.Y.Y.W.Y.Y.W.W.W.W.Y.W.Y.W.Y.Y.W.W.W.W.Y.R.W.W.Y.W.R.W.Y.W.W.R.W.R.W.W.W.W.Y.W.W.Y.W.W.Y.Y.W.Y.W.Y.W.W.Y.W.Y.W.Y.Y.W.W.W.W.Y.W.W.Y.W.R.R.R.W.R.R.R.Y.W.W.Y.W.Y.W.W.W.Y.W.W.W.Y.Y.W.W.W.Y.W.Y.W.W.Y.W.Y.W.W.W.Y.Y.W.W.Y.Y.W.W.W.W.Y.Y.W.W.Y.Y.W.W.W.Y.W.W.Y.W.Y.W.W.Y.W.W.W.W.Y.Y.W.W.W.Y.W.W.W.Y.Y.W.Y.W.Y.W.W.W.Y.W.Y.W.W.W.Y.W.Y.W.W.Y.W.R.W.R.R.R.R.W.R.R.W.R.R.R.R.W.W.R.R.W.R.R.R.W.R.W.R.R.R.W.R.W.R.R.R.W.R.", -"R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.T.R.R.R.R.R.R.Y.W.Y.W.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.W.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.T.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.o. k R.R.R.R.R.R.R.R.R.R.R.W.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.Y.T.R.R.R.R.R.R.Y.Y.W.Y.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.W.R.R.R.R.R.W.R.R.R.R.R.W.R.R.R.T.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.W.R.R.R.R.R.W.R.R.R.R.R.W.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.T.R.R.R.R.R.R.Y.W.Y.W.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.", -"R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.W.Y.W.Y.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.7.8 k R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.Y.W.Y.W.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.W.Y.R.Y.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.", -"R.R.R.U.R.R.R.R.R.R.R.U.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.Y.R.R.R.R.Y.R.R.Y.R.R.R.R.Y.R.R.Y.R.R.R.R.Y.R.R.R.Y.R.R.Y.R.R.R.Y.R.R.Y.R.R.R.R.R.Y.R.R.R.R.R.R.R.U.R.R.R.R.R.R.R.R.R.U.R.R.R.R.R.U.R.R.R.R.R.R.R.R.R.R.U.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.Y.R.R.R.R.R.R.R.Y.R.R.Y.R.R.R.R.R.Y.R.Y.W.Y.Y.m.o.C k f 8 1 , 1 , , , , , , , , , , , , , 1 C R.R.U.R.R.R.R.U.R.R.R.R.R.R.R.R.R.R.R.U.R.R.R.R.R.R.R.U.R.R.R.R.R.R.R.R.R.R.U.R.R.R.R.R.R.R.U.R.R.R.R.R.R.R.Y.R.R.R.R.R.R.R.R.R.R.R.Y.R.R.R.R.Y.R.R.R.Y.R.R.Y.R.R.R.R.R.R.R.R.Y.R.R.R.R.R.Y.R.R.R.R.R.R.R.R.U.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.U.R.R.R.R.U.R.R.R.R.R.U.R.R.R.R.R.U.U.R.R.R.R.Y.R.R.R.R.R.R.R.Y.R.R.Y.R.R.R.R.R.Y.R.R.R.R.R.R.R.R.R.R.R.R.U.R.R.R.R.R.U.R.R.R.R.R.U.R.R.R.R.R.R.R.R.R.R.U.R.R.R.R.R.R.R.R.U.R.R.R.U.R.R.R.R.R.R.R.U.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.Y.R.R.R.R.Y.R.R.Y.R.R.R.R.Y.R.R.Y.R.R.R.R.Y.R.R.R.Y.R.R.Y.R.R.R.R.R.R.Y.R.R.R.R.R.Y.Y.R.R.R.R.R.R.U.R.R.R.R.R.R.R.R.R.R.R.U.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.U.R.R.R.R.R.", -"R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.U.R.R.R.R.R.U.R.U.R.R.R.R.R.U.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.Y.R.Y.Y.R.R.R.R.R.Y.R.R.R.R.R.R.Y.R.R.R.R.R.R.R.R.R.R.U.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.U.R.R.R.R.R.R.R.Y.R.R.R.Y.R.R.R.R.R.Y.Y.R.R.R.R.R.R.Y.Y.Y.Y.R.R.U.R.R.Y.Y.Y.Y.Y.W.Y.R.R.R.R.Y.Y.Y.W.Y.Y.Y.Y.R.R.R.R.R.R.R.R.U.R.R.R.R.R.U.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.Y.R.R.Y.R.R.R.R.Y.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.Y.R.R.Y.Y.R.R.R.R.Y.R.R.R.R.R.Y.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.U.R.R.R.R.R.R.R.R.R.R.R.R.R.U.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.Y.R.R.R.Y.R.R.R.R.R.Y.Y.R.R.R.R.R.R.Y.Y.R.R.R.R.U.R.R.R.R.R.U.R.R.R.R.R.R.R.R.R.R.R.U.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.U.R.R.R.R.R.U.R.U.R.R.R.R.R.U.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.Y.R.Y.Y.R.R.R.R.R.R.Y.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.U.R.R.R.R.R.R.R.R.R.R.R.R.U.R.R.R.R.R.R.R.R.R.R.U.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.R.", -"R.R.R.R.R.U.R.U.R.R.R.R.R.U.R.U.R.R.R.R.U.R.R.R.R.R.R.R.U.R.R.R.U.U.R.R.Y.R.Y.Y.Y.R.Y.R.R.R.Y.R.Y.R.Y.Y.Y.R.Y.Y.Y.R.Y.R.Y.Y.Y.T.R.R.R.Y.R.Y.R.Y.R.R.Y.R.R.R.Y.R.U.R.R.R.R.R.R.R.R.U.R.R.U.R.U.R.R.U.U.R.R.R.R.U.R.U.R.U.R.R.R.R.U.R.R.U.R.R.R.U.U.R.R.R.U.R.U.R.Y.R.Y.Y.Y.R.Y.Y.Y.R.R.Y.R.Y.R.Y.R.R.R.R.Y.W.Y.R.R.U.R.R.R.R.R.R.Y.Y.Y.Y.Y.W.R.R.R.R.R.R.Y.R.R.R.R.R.R.R.U.R.U.R.R.R.R.R.U.R.R.R.R.R.R.R.R.R.U.U.R.R.R.R.R.R.U.U.U.R.R.R.R.U.R.R.U.R.R.R.R.U.R.R.R.R.Y.Y.R.Y.R.R.R.R.Y.R.Y.Y.Y.R.Y.R.Y.R.R.R.Y.Y.R.R.Y.R.Y.Y.Y.T.R.R.R.R.Y.R.R.R.Y.R.R.R.Y.R.Y.R.R.U.R.U.R.R.R.R.U.R.R.U.R.R.R.U.U.R.U.R.U.R.U.R.R.U.R.R.R.R.R.U.R.R.U.R.R.R.U.R.U.R.U.R.R.R.R.R.Y.R.Y.Y.Y.R.Y.Y.Y.R.R.Y.R.Y.R.Y.R.Y.Y.R.R.R.Y.R.R.U.R.R.R.R.Y.R.R.R.R.U.R.R.R.U.U.R.U.R.R.R.R.R.R.R.U.U.R.R.R.R.U.R.R.U.R.R.R.R.R.R.R.R.R.U.R.U.R.R.R.R.R.U.R.U.R.R.R.R.U.R.R.R.R.R.R.R.U.R.R.R.U.U.R.R.Y.R.Y.Y.Y.R.Y.R.R.R.Y.R.Y.R.Y.Y.Y.R.Y.Y.Y.R.Y.R.Y.Y.Y.T.R.Y.R.R.R.Y.R.Y.R.R.Y.R.Y.Y.R.Y.U.R.R.R.R.R.R.R.U.R.R.R.U.R.Y.R.R.Y.U.R.R.R.U.R.R.R.U.U.R.U.U.R.U.R.U.R.R.R.R.U.R.U.U.R.U.R.U.R.", -"R.U.R.U.Y.Y.R.R.R.U.R.U.Y.Y.R.R.R.U.R.U.R.Y.R.Y.R.U.R.U.R.Y.R.Y.R.R.Y.R.R.Y.Y.R.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.R.R.Y.Y.R.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.R.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.R.Y.R.Y.Y.R.U.R.R.R.Y.R.Y.R.R.Y.R.R.R.R.U.R.R.R.Y.Y.R.R.U.U.R.U.U.R.Y.R.Y.R.Y.Y.R.Y.Y.Y.R.R.U.R.R.Y.Y.R.Y.Y.Y.Y.Y.Y.Y.Y.R.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.R.U.Y.R.U.R.Y.Y.Y.W.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.R.R.R.R.R.U.Y.Y.U.R.Y.Y.R.U.R.U.Y.Y.R.R.R.U.R.U.Y.Y.R.R.R.U.R.U.Y.R.R.Y.R.U.R.U.Y.R.R.Y.Y.Y.Y.R.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.R.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.R.R.Y.R.U.R.U.R.Y.R.Y.R.Y.Y.R.R.R.Y.R.R.U.R.Y.R.R.Y.R.U.R.R.R.U.R.Y.Y.Y.Y.R.R.R.R.Y.R.U.R.U.R.Y.Y.R.Y.Y.Y.Y.Y.Y.Y.Y.R.Y.Y.Y.Y.R.Y.Y.Y.Y.Y.Y.Y.Y.R.Y.Y.Y.Y.Y.U.R.Y.Y.U.R.Y.R.R.R.R.Y.R.U.R.U.Y.Y.R.R.Y.R.U.R.U.R.Y.R.Y.R.Y.Y.R.U.R.U.Y.Y.R.R.R.U.R.U.Y.Y.R.R.R.U.R.U.R.Y.R.Y.R.U.R.U.R.Y.R.Y.R.R.Y.R.R.Y.Y.R.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.R.R.Y.Y.R.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.R.Y.Y.Y.Y.Y.Y.Y.Y.R.R.Y.R.Y.R.Y.U.R.U.R.R.R.Y.R.Y.R.R.Y.Y.R.R.R.U.R.R.R.Y.Y.R.R.R.R.R.R.U.R.R.Y.R.U.Y.R.R.R.R.Y.R.R.U.R.", -"Y.Y.U.R.Y.Y.Y.Y.Y.Y.U.R.R.Y.U.R.Y.Y.R.U.Y.Y.Y.Y.Y.Y.R.U.Y.Y.R.U.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.R.U.U.R.U.R.Y.Y.Y.Y.Y.Y.Y.Y.Y.R.U.R.Y.Y.Y.Y.R.R.R.R.R.R.U.R.Y.Y.Y.Y.U.R.Y.Y.Y.R.R.U.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.R.U.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.U.R.U.R.R.U.R.R.R.Y.Y.Y.Y.Y.U.R.Y.Y.Y.Y.Y.Y.U.R.R.R.R.U.Y.Y.R.U.Y.Y.Y.Y.Y.Y.R.U.Y.Y.U.R.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.R.U.R.R.U.R.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.R.U.Y.Y.Y.Y.U.R.U.R.R.U.R.R.Y.Y.Y.Y.Y.Y.Y.Y.R.U.U.R.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.R.U.R.Y.R.Y.Y.Y.Y.Y.Y.Y.R.U.R.U.Y.Y.Y.Y.Y.Y.R.U.R.R.U.R.Y.Y.Y.Y.Y.Y.U.R.Y.Y.Y.Y.Y.Y.U.R.R.Y.U.R.Y.Y.R.U.Y.Y.Y.Y.Y.Y.R.U.Y.Y.R.U.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.R.Y.R.U.U.R.U.R.Y.Y.Y.Y.Y.Y.Y.Y.Y.R.U.R.Y.Y.Y.Y.U.R.U.R.R.R.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.R.U.", -"Y.Y.Y.R.Y.Y.Y.Y.Y.Y.Y.R.R.U.R.R.Y.Y.Y.R.Y.Y.Y.Y.Y.Y.Y.R.Y.Y.Y.R.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.U.R.R.U.R.U.Y.Y.Y.Y.Y.Y.Y.Y.Y.U.R.U.Y.Y.Y.Y.Y.Y.U.R.U.R.R.U.Y.Y.Y.Y.Y.R.Y.Y.Y.U.R.R.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.R.U.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.R.U.U.R.U.R.Y.Y.Y.Y.Y.Y.Y.R.Y.Y.Y.Y.Y.Y.Y.R.U.R.U.R.Y.Y.Y.R.Y.Y.Y.Y.Y.Y.Y.R.Y.Y.R.R.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.U.R.U.R.R.U.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.R.R.Y.Y.Y.Y.R.U.R.R.U.R.U.R.Y.Y.Y.Y.Y.Y.R.R.U.R.U.R.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.U.R.R.Y.Y.Y.Y.Y.Y.Y.Y.Y.R.R.U.R.Y.Y.Y.Y.Y.Y.U.R.U.R.R.U.Y.Y.Y.Y.Y.Y.Y.R.Y.Y.Y.Y.Y.Y.Y.R.R.U.R.R.Y.Y.Y.R.Y.Y.Y.Y.Y.Y.Y.R.Y.Y.Y.R.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.U.R.R.U.R.U.Y.Y.Y.Y.Y.Y.Y.Y.Y.U.R.U.Y.Y.Y.R.R.U.R.U.R.U.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.R.R.", -"Y.Y.R.U.R.R.U.R.U.R.U.U.R.U.R.U.Y.Y.R.U.R.U.R.U.Y.U.Y.Y.Y.Y.U.R.Y.Y.U.R.U.U.R.U.Y.Y.U.Y.U.Y.U.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.U.R.R.U.U.R.R.U.Y.Y.U.R.U.U.R.U.R.U.R.U.R.U.R.U.R.U.U.R.Y.Y.Y.Y.Y.Y.Y.Y.R.R.U.U.R.R.U.R.R.U.R.U.R.U.U.R.R.U.U.R.Y.Y.U.R.U.U.R.U.Y.Y.U.Y.U.Y.Y.Y.U.Y.U.Y.Y.Y.U.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.U.Y.R.U.R.R.R.U.R.U.R.U.R.U.Y.Y.U.R.U.U.R.Y.R.U.U.R.U.R.U.R.U.R.R.U.Y.Y.Y.Y.Y.Y.R.U.R.R.U.R.R.U.R.R.U.R.U.R.Y.Y.U.R.U.R.U.R.Y.U.Y.Y.Y.Y.R.U.Y.Y.R.U.R.U.R.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.U.Y.Y.Y.Y.Y.U.Y.Y.Y.Y.Y.Y.U.R.R.U.U.R.R.U.Y.Y.U.R.U.R.Y.Y.R.U.R.R.U.R.U.R.R.U.U.R.Y.Y.Y.Y.Y.U.R.Y.U.R.U.U.R.U.R.U.U.R.U.U.U.R.R.U.U.R.R.U.Y.Y.R.U.R.U.R.U.Y.Y.U.Y.U.Y.Y.Y.U.Y.U.Y.Y.Y.U.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.R.U.U.R.R.U.U.R.Y.Y.U.R.U.R.U.R.R.U.R.R.U.R.U.R.R.U.U.R.Y.Y.Y.Y.Y.Y.R.U.R.R.U.R.U.R.U.U.R.U.R.U.Y.Y.R.U.R.U.R.U.Y.U.Y.Y.Y.Y.U.R.Y.Y.U.R.U.U.R.U.Y.Y.U.Y.U.Y.U.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.U.R.R.U.U.R.R.U.Y.Y.U.R.U.U.R.U.R.U.R.R.U.R.U.R.Y.Y.R.U.Y.Y.Y.Y.Y.Y.Y.Y.U.R.U.R.U.U.R.U.U.R.U.R.R.U.U.R.R.U.U.R.Y.Y.U.R.U.R.U.R.", -"U.U.U.R.U.U.U.U.R.U.U.R.U.R.U.U.U.U.U.U.U.R.R.U.Y.Y.Y.U.Y.U.U.R.Y.U.R.U.U.R.U.R.Y.Y.Y.Y.U.Y.Y.Y.Y.Y.U.Y.U.Y.Y.U.U.Y.Y.U.Y.U.Y.U.R.U.U.R.R.U.U.R.Y.U.R.U.U.R.U.R.U.U.U.R.R.U.U.R.Y.R.U.U.U.Y.U.Y.Y.U.Y.U.U.U.U.R.U.U.U.U.U.U.U.R.U.R.U.U.U.R.U.U.Y.U.R.U.U.R.Y.R.Y.Y.Y.Y.U.Y.U.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.U.Y.U.U.Y.U.Y.U.Y.U.R.U.U.U.R.U.R.U.R.U.R.Y.Y.R.U.U.R.Y.Y.U.R.R.U.U.U.R.U.R.U.U.R.U.U.Y.Y.U.U.U.R.U.U.R.U.U.R.U.U.U.U.U.R.U.Y.U.R.R.U.U.U.Y.Y.Y.U.U.U.U.U.Y.U.U.R.Y.U.U.Y.U.Y.U.Y.Y.U.U.Y.Y.Y.Y.Y.Y.U.U.U.Y.Y.Y.U.Y.U.U.Y.R.U.U.R.R.U.U.R.Y.U.R.U.R.U.U.U.U.R.U.U.U.U.R.U.U.R.U.U.U.Y.U.Y.Y.U.U.Y.R.U.U.R.U.R.R.U.R.U.U.R.R.U.U.R.R.U.U.R.U.Y.U.U.U.R.R.U.Y.Y.Y.Y.U.Y.U.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.Y.U.U.Y.Y.U.U.Y.Y.U.U.Y.U.Y.U.R.U.U.U.R.U.U.U.Y.U.R.R.U.U.U.U.R.U.U.R.U.U.R.U.U.R.U.Y.U.Y.U.U.U.U.R.U.U.U.U.R.U.U.R.U.R.U.U.U.U.U.U.U.R.R.U.Y.Y.Y.U.Y.U.U.R.Y.U.R.U.U.R.U.R.Y.Y.Y.Y.U.Y.Y.Y.Y.Y.U.Y.U.Y.Y.U.U.Y.Y.U.Y.U.Y.U.R.U.U.R.R.U.U.R.Y.U.R.U.U.R.R.U.U.R.U.U.U.U.R.U.Y.R.U.R.U.Y.U.Y.U.Y.U.U.U.R.R.U.U.R.R.U.R.U.R.U.U.R.U.U.U.R.U.U.U.Y.U.R.R.U.U.U.", -"U.R.U.U.U.R.R.U.R.U.U.U.U.R.U.R.U.R.U.R.U.R.U.U.Y.U.Y.Y.U.U.U.U.U.U.U.U.U.U.U.U.Y.U.Y.Y.Y.Y.U.Y.Y.Y.U.U.U.Y.U.U.Y.U.U.Y.U.U.Y.Y.U.U.U.U.U.U.U.U.U.U.U.R.U.U.U.U.U.R.R.U.U.U.R.U.U.U.U.R.U.Y.Y.U.U.R.U.U.U.R.R.U.U.R.R.U.U.R.R.U.U.U.U.R.U.U.U.R.U.U.U.U.U.R.U.U.Y.U.Y.U.Y.Y.U.Y.U.Y.U.Y.U.Y.U.Y.U.Y.U.Y.Y.Y.Y.U.U.U.Y.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.R.R.U.U.U.U.U.U.U.U.U.U.R.U.U.U.U.Y.U.Y.U.U.R.U.U.U.R.U.U.U.U.U.U.R.U.U.U.U.U.R.U.R.U.U.R.Y.U.U.Y.U.R.U.R.U.Y.U.U.U.R.U.U.U.Y.U.Y.Y.U.Y.Y.Y.Y.U.U.U.Y.U.U.Y.Y.U.Y.U.U.Y.Y.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.R.U.U.U.U.U.U.R.Y.U.Y.U.U.R.U.U.R.U.U.R.U.R.U.U.R.U.U.R.U.U.R.U.U.U.U.U.Y.U.U.R.U.U.U.U.Y.U.Y.U.Y.Y.U.Y.U.Y.U.Y.U.Y.U.Y.Y.U.U.Y.Y.U.U.Y.U.Y.U.Y.U.Y.U.Y.U.U.U.R.U.U.U.R.U.U.R.U.R.U.U.R.U.U.U.U.U.U.R.U.U.R.R.U.U.U.U.Y.U.R.U.U.U.R.R.U.R.U.U.U.U.R.U.R.U.R.U.R.U.R.U.U.Y.U.Y.Y.U.U.U.U.U.U.U.U.U.U.U.U.Y.U.Y.Y.Y.Y.U.Y.Y.Y.U.U.U.Y.U.U.Y.U.U.Y.U.U.Y.Y.U.U.U.U.U.U.U.U.U.U.U.R.U.U.U.U.U.U.U.U.R.U.U.U.U.U.U.U.U.Y.Y.U.U.U.U.U.R.U.U.U.U.U.U.U.R.U.U.U.U.U.U.R.U.U.U.R.U.U.R.U.R.U.U.R.", -"U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.R.U.U.U.U.R.U.U.R.U.U.U.Y.U.U.U.U.U.U.U.U.U.U.U.Y.U.U.Y.U.Y.U.Y.U.U.U.U.U.R.U.U.U.U.U.U.U.U.U.U.R.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.R.U.U.U.R.U.U.U.U.U.U.R.U.U.U.U.U.U.U.Y.U.U.U.U.U.U.U.Y.U.U.Y.U.Y.U.U.U.U.U.U.Y.R.U.U.U.R.U.U.U.U.U.U.R.U.U.U.U.U.U.U.U.U.U.U.U.R.U.U.U.U.R.U.U.U.U.U.U.Y.U.U.U.U.U.U.U.U.U.U.U.U.R.U.U.U.U.R.U.U.U.U.U.U.U.U.U.U.Y.U.U.U.U.U.U.U.U.U.U.U.U.U.U.Y.U.U.U.U.Y.U.U.U.U.U.Y.U.U.U.Y.Y.U.U.U.U.Y.U.U.U.U.U.R.U.U.U.U.U.U.U.R.U.U.R.U.U.R.U.U.U.U.R.U.R.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.R.U.U.U.U.U.Y.U.U.U.U.U.U.U.Y.U.U.Y.U.Y.Y.U.U.U.Y.U.U.U.U.U.U.Y.U.U.U.R.U.U.U.R.U.U.U.U.U.U.U.U.U.U.U.U.R.U.U.U.U.U.U.U.U.U.U.U.U.Y.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.R.U.U.U.U.R.U.U.R.U.U.U.Y.U.U.U.U.U.U.U.U.U.U.U.Y.U.U.Y.U.Y.U.Y.U.U.U.U.R.U.U.U.U.U.U.U.U.U.U.R.U.U.U.R.U.U.U.U.R.U.U.U.U.U.U.U.U.Y.U.R.U.U.U.U.U.U.U.R.U.U.U.U.U.U.R.U.U.U.R.U.U.U.U.U.U.U.U.U.U.U.", -"U.U.U.U.U.U.R.U.U.U.U.U.U.U.U.U.U.U.U.U.U.R.U.U.U.U.Y.U.U.Y.U.U.U.U.U.U.R.U.U.U.U.U.U.U.Y.U.U.U.Y.U.U.U.U.U.U.Y.U.U.U.U.U.Y.U.U.U.U.U.U.U.U.U.U.U.U.U.U.R.U.U.U.U.U.U.U.U.U.U.U.U.U.R.U.Y.U.U.Y.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.R.U.Y.U.U.U.Y.U.U.U.Y.U.U.U.U.U.U.U.U.Y.U.U.Y.U.U.U.U.U.U.U.U.U.U.R.U.U.U.U.U.U.R.U.U.U.U.U.U.U.U.U.U.Y.U.U.U.U.U.U.R.U.U.Y.U.U.Y.U.U.U.U.U.U.R.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.Y.U.U.Y.U.Y.U.U.U.U.U.R.U.U.U.U.U.U.U.U.U.U.U.U.U.U.Y.U.U.Y.U.U.U.U.U.U.U.U.R.U.U.U.U.U.U.U.U.U.U.U.R.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.Y.U.U.Y.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.R.U.U.U.U.U.U.U.U.U.U.U.R.U.U.U.Y.U.U.U.Y.U.U.U.Y.U.U.U.U.U.U.U.Y.U.Y.U.U.Y.U.Y.U.U.U.Y.U.U.Y.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.R.U.U.Y.U.U.U.U.U.U.U.R.U.U.U.U.U.U.U.U.U.U.U.U.U.U.R.U.U.U.U.Y.U.U.Y.U.U.U.U.U.U.R.U.U.U.U.U.U.U.Y.U.U.U.Y.U.U.U.U.U.U.Y.U.U.U.U.U.Y.U.U.U.R.U.U.U.U.U.U.U.U.U.U.U.R.U.U.U.U.U.U.U.U.U.U.U.U.U.R.U.Y.U.U.U.R.U.U.U.U.U.U.U.R.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.", -"U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.Y.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.Y.U.U.U.U.Y.U.Y.U.U.U.U.U.Y.U.U.U.R.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.Y.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.Y.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.Y.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.Y.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.Y.U.U.U.U.Y.U.Y.U.U.U.U.U.Y.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.", -"U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.K.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.K.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.Y.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.K.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.K.U.U.U.K.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.Y.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.Y.U.U.U.K.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.K.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.K.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.K.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.", -"U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.K.U.U.U.U.U.U.K.U.U.U.U.U.U.U.U.U.U.K.U.U.U.U.U.K.U.K.U.U.U.U.K.U.U.U.U.K.U.K.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.K.U.U.U.U.U.U.U.U.U.U.U.U.K.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.K.U.U.U.U.U.U.U.U.U.U.K.U.U.U.K.U.U.U.U.K.U.U.U.U.K.U.U.U.K.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.K.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.K.U.U.U.U.K.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.K.U.U.U.U.U.K.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.K.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.K.U.K.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.K.U.U.U.K.U.U.U.U.K.U.U.U.U.K.U.K.U.U.U.U.U.K.U.U.K.K.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.K.U.U.U.U.U.U.U.U.U.U.U.U.K.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.K.U.U.U.U.U.U.K.U.U.U.U.U.U.U.U.U.U.K.U.U.U.U.U.K.U.K.U.U.U.U.K.U.U.U.U.K.U.K.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.K.U.U.U.U.U.U.U.U.U.U.K.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.", -"U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.K.U.K.U.U.U.U.U.U.U.U.U.U.U.U.K.U.U.K.U.K.U.U.K.U.K.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.K.U.K.U.U.U.U.U.U.K.U.U.U.K.U.U.U.U.K.U.U.U.U.U.U.K.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.K.U.U.U.U.U.K.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.K.U.K.U.K.U.K.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.K.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.K.U.K.U.U.U.U.K.U.U.K.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.K.U.U.U.U.U.K.U.K.U.K.U.U.U.U.K.U.K.U.U.U.U.U.U.K.U.U.U.K.U.U.U.U.U.K.U.U.U.U.U.U.U.U.U.K.U.K.U.K.U.K.K.U.K.U.K.U.K.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.K.U.K.U.K.U.K.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.K.U.K.U.U.U.U.U.U.U.U.U.U.U.U.K.U.U.K.U.K.U.U.K.U.K.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.K.U.K.U.U.U.U.U.U.K.U.U.K.U.U.U.K.U.K.U.U.U.U.U.U.K.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.K.U.U.U.U.U.K.", -"U.K.U.K.K.U.K.U.U.K.K.U.K.U.U.K.K.U.U.K.K.U.U.K.U.K.U.K.K.U.K.U.U.U.U.U.U.U.U.U.K.U.U.U.U.U.K.U.K.U.K.U.U.K.K.U.K.U.U.K.U.K.K.U.U.U.U.U.U.U.K.U.U.K.K.U.U.U.U.K.U.U.U.U.K.U.U.U.U.K.K.U.U.U.U.K.K.U.K.U.K.U.K.U.U.K.U.U.U.K.U.K.U.U.U.K.U.K.K.U.U.U.U.K.K.U.U.U.K.U.K.U.U.K.K.U.K.U.U.K.U.K.K.U.U.U.U.U.U.U.U.U.K.U.K.U.K.U.K.U.U.K.K.U.K.U.U.U.K.U.K.U.U.K.K.U.U.K.U.K.K.U.U.K.K.U.K.U.U.K.K.U.U.K.U.K.K.U.K.U.U.K.K.U.K.U.U.K.U.K.K.U.U.K.U.U.K.U.U.U.U.U.U.U.U.K.K.U.K.U.U.K.U.K.K.U.K.U.U.K.U.K.K.U.U.U.U.U.K.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.K.K.U.U.U.U.K.U.U.U.K.K.U.U.U.U.K.K.U.U.K.U.K.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.U.K.K.U.K.U.U.K.U.K.K.U.U.K.U.K.K.U.K.U.U.K.K.U.K.U.U.K.U.K.K.U.U.U.U.U.U.U.U.U.K.U.K.U.K.U.K.U.U.U.K.U.K.U.U.K.K.U.K.U.U.K.K.U.U.K.K.U.K.U.U.K.K.U.U.K.U.K.K.U.U.K.U.K.K.U.K.U.U.K.K.U.K.U.U.K.K.U.U.K.K.U.U.K.U.K.U.K.K.U.K.U.U.U.U.U.U.U.U.U.K.U.U.U.U.U.K.U.K.U.K.U.U.K.K.U.K.U.U.K.U.K.K.U.K.U.U.U.U.U.K.U.U.U.K.U.U.U.U.U.U.U.U.U.U.U.K.U.U.K.K.U.U.U.U.K.K.U.K.U.K.U.K.U.U.K.U.U.U.K.U.U.U.U.U.K.U.K.K.U.U.U.U.U.K.U.U.U.", -"K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.U.U.U.K.U.U.K.U.K.U.U.U.K.U.U.K.K.U.U.K.U.K.U.K.U.K.U.K.U.K.K.U.K.U.K.U.K.U.K.U.K.U.U.U.K.U.K.K.U.K.U.K.U.K.U.U.K.U.K.U.K.U.K.K.U.K.U.K.K.U.U.U.K.U.K.U.K.U.U.K.U.K.U.K.U.K.K.U.U.K.K.U.U.U.K.U.K.U.U.U.K.U.K.U.K.U.U.K.K.U.K.U.K.U.K.U.K.U.K.U.K.U.U.U.K.U.K.U.K.U.K.U.K.U.U.K.K.U.U.K.U.K.K.U.U.K.K.U.K.U.U.K.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.U.U.U.K.K.U.K.U.K.U.K.U.K.U.K.U.U.U.K.U.U.K.U.K.K.U.K.U.U.K.U.K.U.U.U.K.K.U.K.U.K.U.K.U.K.U.K.U.U.U.K.U.K.K.U.K.U.K.K.U.U.K.U.K.K.K.U.K.U.K.K.U.U.U.K.U.K.U.K.U.K.U.K.U.U.K.K.U.U.U.K.U.K.U.K.U.K.U.U.U.K.U.K.U.K.U.K.U.U.K.K.U.U.U.U.K.K.U.U.U.U.U.U.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.U.U.K.U.K.U.K.U.K.U.K.U.U.K.K.U.U.K.U.K.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.U.U.U.U.U.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.U.U.U.K.U.U.K.U.K.U.U.U.K.U.U.K.K.U.U.K.U.K.U.K.U.K.U.K.U.K.K.U.K.U.K.U.K.U.K.U.K.U.U.U.K.U.U.K.U.K.U.K.U.K.U.K.U.K.K.K.U.K.K.K.U.K.U.K.U.K.U.U.K.U.K.U.K.U.U.K.U.K.U.K.U.K.K.U.U.K.K.U.U.K.K.U.K.U.U.U.K.U.K.U.K.K.U.K.K.U.", -"U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.K.K.K.U.K.U.U.K.U.K.K.K.U.K.K.U.K.K.K.U.K.U.K.U.K.U.K.U.K.U.U.K.U.K.U.K.U.K.U.K.U.K.K.K.U.K.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.K.K.K.U.K.U.K.K.U.K.U.K.U.K.U.K.U.K.K.K.U.K.K.K.U.U.K.U.K.K.U.K.U.K.U.K.U.K.U.K.K.U.K.U.K.U.K.U.K.U.K.U.K.K.U.K.K.U.K.U.K.U.K.U.K.U.K.U.K.K.U.U.K.U.K.K.U.K.U.K.K.K.U.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.K.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.K.U.K.U.K.U.K.U.K.U.K.K.K.U.K.U.K.K.K.U.U.K.U.K.U.K.U.K.U.K.U.K.K.U.K.U.K.U.K.U.K.U.K.K.K.U.K.U.K.U.K.U.K.U.K.K.K.K.U.K.K.U.K.U.K.U.K.U.K.U.K.K.K.K.U.K.U.K.U.K.U.K.K.K.U.K.U.K.U.K.U.K.U.K.U.K.K.K.K.U.U.K.K.K.K.K.K.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.K.U.K.K.U.K.U.K.U.K.U.K.U.K.U.K.K.U.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.K.K.K.K.K.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.K.K.K.U.K.U.U.K.U.K.K.K.U.K.K.U.K.K.K.U.K.U.K.U.K.U.K.U.K.U.U.K.U.K.U.K.U.K.U.K.U.K.K.K.U.K.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.U.K.K.K.U.K.K.K.U.U.K.U.K.K.U.K.U.K.U.K.U.K.U.K.K.", -"K.U.K.U.K.U.K.U.U.K.K.U.K.U.K.U.U.K.U.U.U.U.U.K.K.U.U.K.U.K.K.U.U.K.U.K.U.K.U.K.K.U.U.K.U.U.K.K.U.K.U.U.K.U.K.K.K.U.K.U.K.K.K.U.K.U.U.K.U.U.K.U.U.K.K.K.U.K.K.U.K.U.U.K.U.U.K.U.U.K.K.U.U.K.K.U.U.U.K.K.K.U.K.K.U.U.K.U.U.K.K.K.K.K.K.U.K.K.U.K.K.U.K.U.U.U.K.U.U.K.U.U.K.U.U.K.K.U.K.U.K.K.K.U.K.K.U.K.U.K.U.U.K.K.U.K.K.K.K.U.K.U.U.K.U.U.K.U.U.K.U.U.K.U.K.U.U.K.K.U.K.U.K.U.U.K.U.U.K.U.U.K.K.U.K.U.K.U.K.U.U.K.K.U.K.K.U.K.U.K.K.K.K.U.K.U.U.K.U.K.U.K.U.K.K.U.K.U.K.U.K.U.U.K.K.U.K.K.U.K.U.K.K.K.U.K.K.U.U.K.U.K.U.K.U.K.K.U.U.K.U.U.K.U.U.K.K.U.U.K.K.U.K.U.K.U.U.U.K.U.U.K.U.U.U.K.K.U.K.K.K.U.U.K.U.U.K.K.U.K.U.K.U.U.K.U.U.K.K.U.K.U.U.K.K.U.K.K.U.K.U.K.U.U.K.U.U.K.K.U.K.U.K.K.K.U.K.K.U.K.U.K.U.U.K.K.U.K.K.K.K.U.U.K.K.U.K.U.K.U.U.K.U.U.K.U.U.K.U.K.K.U.K.K.U.K.U.K.U.U.K.U.U.K.K.U.K.U.K.U.K.U.U.K.K.U.K.U.K.U.U.K.U.U.U.U.U.K.K.U.U.K.U.K.K.U.U.K.U.K.U.K.U.K.K.U.U.K.U.U.K.K.U.K.U.U.K.U.K.K.K.U.K.U.K.K.K.U.K.U.U.K.U.U.K.U.K.U.K.K.U.K.K.U.K.U.U.K.U.U.K.U.U.K.K.K.U.K.K.U.U.U.K.K.K.U.K.K.U.U.K.U.K.U.K.K.K.K.K.U.K.K.U.K.K.U.U.K.U.U.K.U.", -"K.K.U.K.K.K.U.K.K.U.K.K.K.K.K.K.K.U.K.K.K.K.K.U.K.K.K.U.K.U.U.K.U.K.K.K.U.K.K.U.K.K.K.U.K.K.K.U.K.K.K.K.K.K.K.K.K.K.U.K.K.U.U.K.K.K.K.U.K.K.K.K.K.U.U.K.K.U.K.K.U.K.K.U.K.K.K.K.K.U.U.K.K.K.U.K.K.K.K.U.U.K.K.U.K.K.K.K.K.U.U.K.K.U.U.K.K.U.K.K.U.K.K.K.K.K.K.K.K.K.K.K.K.K.K.U.K.K.U.K.K.U.U.K.K.U.U.K.K.K.K.K.U.K.U.K.K.L.K.K.U.K.K.U.K.K.U.K.K.U.K.K.K.K.U.K.K.U.K.K.K.K.K.K.K.K.K.K.K.K.K.U.K.K.K.U.K.K.U.K.K.U.K.K.K.U.K.K.K.U.U.K.U.K.U.K.U.K.U.K.U.K.K.K.K.K.K.U.K.K.K.U.K.U.K.K.K.U.U.K.K.U.U.K.K.U.K.K.U.K.K.K.U.K.K.U.U.K.K.U.K.K.K.K.K.U.U.K.K.K.U.K.U.K.K.K.K.K.K.K.K.U.K.K.K.K.U.K.K.U.K.K.K.U.K.K.K.U.U.K.K.K.K.K.K.K.K.U.K.K.K.U.K.K.U.K.K.U.U.K.K.K.K.K.K.K.K.U.K.K.U.K.K.U.U.K.K.U.U.K.K.K.K.K.U.K.U.K.K.L.K.K.K.U.K.K.K.K.K.K.K.K.K.K.K.K.K.U.K.U.K.K.K.U.U.K.K.K.K.K.K.K.K.U.K.K.U.K.K.K.U.K.K.U.K.K.K.K.K.K.K.U.K.K.K.K.K.U.K.K.K.U.K.U.U.K.U.K.K.K.U.K.K.U.K.K.K.U.K.K.K.U.K.K.K.K.K.K.K.K.K.K.U.K.K.U.U.K.K.K.K.U.K.K.K.K.K.U.U.K.K.U.K.K.U.K.K.U.K.K.K.K.K.U.U.K.K.U.K.K.K.K.K.U.U.K.K.U.K.K.K.K.K.U.U.K.K.U.U.K.K.U.K.K.U.K.K.K.K.K.K.K.", -"K.U.K.K.K.K.U.K.K.K.U.K.K.K.K.U.K.K.K.U.K.U.K.K.U.K.K.K.K.K.U.K.K.K.K.U.K.K.K.K.K.U.K.K.K.U.K.K.K.U.K.K.K.K.K.L.K.K.U.K.K.K.U.K.U.K.K.K.K.U.K.K.K.K.K.U.K.K.K.K.K.K.K.K.K.U.K.K.K.K.K.U.K.K.U.K.K.U.K.K.K.K.K.K.K.K.K.K.K.K.K.U.K.K.U.K.K.K.K.U.K.K.K.U.K.K.K.K.K.U.K.K.K.K.K.K.K.K.U.K.K.K.K.U.K.K.K.K.K.U.K.K.U.K.K.K.K.K.K.K.K.K.K.K.K.U.K.K.K.K.K.U.K.K.K.K.K.K.U.K.K.K.K.U.K.U.K.K.K.K.K.K.K.U.K.K.K.U.K.K.K.K.U.K.K.K.U.K.K.K.K.U.K.K.K.K.K.K.U.K.K.K.K.U.K.U.K.K.K.U.K.K.K.K.U.K.K.K.K.K.K.K.K.U.K.K.K.K.K.K.K.U.K.K.K.K.K.K.K.K.K.U.K.K.K.K.K.U.K.K.K.K.K.K.K.U.K.K.K.K.K.K.K.U.K.K.U.K.K.K.K.U.K.K.K.U.K.K.K.K.K.U.K.K.K.U.K.K.K.U.K.K.K.K.U.K.K.K.K.K.K.U.K.K.K.K.K.K.K.K.U.K.K.K.K.U.K.K.K.K.K.U.K.K.U.K.K.K.K.K.K.K.K.K.U.K.K.K.K.U.K.U.K.K.K.U.K.K.K.K.U.K.K.K.K.K.U.K.K.K.K.U.K.K.K.U.K.K.K.K.U.K.K.K.U.K.K.K.K.U.K.K.K.U.K.U.K.K.U.K.K.K.K.K.U.K.K.K.K.U.K.K.K.K.K.U.K.K.K.U.K.K.K.U.K.K.K.K.K.L.K.K.U.K.K.K.U.K.K.U.K.K.K.U.K.K.K.K.U.K.K.K.K.K.K.K.K.K.K.U.K.K.K.K.K.U.K.K.K.U.K.U.K.K.U.K.K.K.K.U.K.K.K.K.K.K.K.K.U.K.K.K.K.U.K.K.K.U.K.K.K.K.", -"K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.J.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.U.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.U.K.K.K.K.U.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.U.K.K.K.K.K.U.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.U.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.U.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.U.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.J.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.U.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.U.K.K.", -"K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.J.K.K.K.K.K.K.K.K.K.K.K.U.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.J.K.K.K.K.U.K.K.K.K.K.K.K.K.K.K.K.K.J.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.J.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.J.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.L.J.K.K.K.K.K.K.K.K.K.K.K.K.U.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.J.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.U.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.J.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.J.K.K.K.K.K.U.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.J.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.J.U.K.J.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.", -"J.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.J.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.J.K.K.K.K.K.K.J.K.J.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.J.K.K.K.K.K.K.K.K.K.K.K.J.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.J.U.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.J.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.J.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.J.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.J.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.J.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.J.J.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.J.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.J.K.K.K.K.K.K.K.K.J.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.", -"K.K.K.K.K.K.K.K.K.K.K.K.J.K.J.K.K.J.K.K.J.K.K.K.K.K.K.K.K.K.J.K.J.K.K.J.K.K.K.J.K.K.K.K.K.K.K.K.K.K.K.K.K.K.J.J.J.K.K.K.J.K.K.K.K.K.K.K.J.K.K.K.J.K.K.K.K.K.J.K.J.K.K.K.K.J.K.K.K.K.K.K.K.K.J.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.J.K.K.K.K.K.K.K.K.K.J.K.K.K.K.K.K.J.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.J.J.K.K.K.K.J.K.K.K.K.K.K.J.K.K.J.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.J.K.J.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.J.K.K.J.K.K.J.K.K.K.K.K.K.J.K.J.K.J.K.K.K.K.K.K.K.K.K.K.K.K.K.K.J.K.K.J.K.J.K.K.J.J.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.J.K.K.J.K.K.K.K.K.J.K.K.K.K.K.K.J.K.K.K.K.K.K.K.K.J.K.K.K.J.J.K.K.K.J.K.J.K.K.K.K.K.K.K.K.K.K.K.K.J.K.K.K.K.K.K.K.K.J.K.J.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.J.J.K.K.K.K.J.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.K.J.K.K.K.K.K.K.K.K.K.K.K.K.J.K.K.J.K.K.K.K.K.K.K.K.K.K.K.K.K.K.J.K.J.K.K.J.K.K.J.K.K.K.K.K.K.K.K.K.J.K.J.K.K.J.K.K.K.J.K.K.K.K.K.K.K.K.K.K.K.K.K.K.J.J.J.K.K.K.J.K.K.K.K.K.K.K.K.K.K.K.J.K.K.K.K.K.K.J.J.K.K.K.J.K.K.K.J.K.K.K.K.K.J.K.K.K.K.K.K.K.K.K.K.K.J.K.K.K.K.K.J.K.K.K.K.K.K.K.K.J.K.J.K.K.K.K.", -"K.J.K.J.K.J.J.K.K.K.J.K.K.K.J.K.K.K.J.K.K.J.K.J.K.J.J.K.K.J.K.K.J.K.K.K.J.K.K.K.K.J.K.J.J.J.K.J.K.J.K.J.J.K.K.K.J.K.K.K.J.K.K.K.J.K.J.K.K.K.J.K.K.K.K.J.J.K.K.K.K.K.J.K.K.K.J.K.J.K.K.J.J.K.K.K.K.J.K.J.J.K.J.K.J.K.K.K.J.K.J.K.K.K.K.J.K.K.K.J.K.K.K.K.J.K.J.K.K.K.J.K.K.J.K.J.K.J.J.K.K.J.J.K.K.K.K.K.K.K.J.K.J.K.K.K.J.K.J.K.J.K.J.K.K.K.J.K.J.K.J.K.J.K.J.K.K.J.K.K.K.K.J.K.J.K.J.K.K.K.J.K.K.J.J.K.K.J.J.K.K.K.J.K.K.J.K.K.J.K.K.K.J.K.J.K.K.K.K.J.K.K.K.J.K.J.J.K.K.J.J.K.K.K.J.K.K.K.J.K.K.K.J.K.K.K.K.J.K.J.J.K.K.J.J.K.J.K.J.K.K.K.J.K.K.K.K.J.J.K.K.K.J.K.J.K.K.K.J.K.J.K.J.K.J.K.K.K.K.K.K.K.K.J.K.K.K.K.J.K.K.J.K.J.K.J.J.K.K.J.K.K.K.K.J.K.K.J.K.K.K.K.J.K.K.J.K.J.K.J.J.K.K.J.J.K.K.K.K.K.K.K.J.K.J.K.K.K.J.K.J.K.K.J.K.K.K.J.K.K.J.K.J.K.K.K.J.K.K.J.K.K.K.J.K.K.J.K.J.K.K.K.J.K.K.J.K.J.K.J.J.K.K.K.J.K.K.K.J.K.K.K.J.K.K.J.K.J.K.J.J.K.K.J.K.K.J.K.K.K.J.K.K.K.K.J.K.J.J.J.K.J.K.J.K.J.J.K.K.K.J.K.K.K.J.K.K.K.J.K.J.K.J.K.K.K.K.K.K.J.J.K.K.K.K.K.J.K.K.K.J.K.K.K.K.J.J.K.K.K.K.J.K.J.J.K.K.J.J.K.K.K.K.K.J.K.J.K.K.J.K.K.K.J.K.K.K.K.J.K.J.K.", -"K.J.K.K.K.J.K.K.J.K.K.J.K.K.J.K.J.K.K.J.K.J.J.K.J.J.K.J.J.K.J.K.K.K.J.K.J.K.K.J.K.J.K.K.K.K.J.K.K.J.K.K.J.K.K.J.K.K.J.K.K.J.K.J.K.J.K.K.J.K.K.J.J.K.K.J.K.J.J.K.K.J.J.K.J.K.K.J.K.J.J.K.K.J.J.K.K.J.K.J.K.J.K.J.K.K.J.J.J.K.K.J.J.K.J.K.J.J.K.K.K.J.K.J.K.J.K.K.J.K.J.J.K.K.J.K.J.K.K.J.J.K.J.K.J.K.J.K.J.J.K.J.K.J.K.K.J.K.K.J.K.J.J.K.J.K.K.J.K.J.K.K.J.K.J.K.J.K.J.K.J.K.K.J.K.J.J.K.J.K.K.J.K.J.K.K.K.K.J.K.J.K.J.K.K.K.J.K.J.K.J.K.J.K.K.J.J.K.J.K.K.J.K.K.J.J.K.K.J.K.J.K.J.K.J.K.K.J.K.K.J.K.K.J.K.J.J.K.J.J.K.J.J.K.J.K.K.J.J.K.J.K.K.J.J.K.K.J.K.K.J.K.K.J.J.K.J.K.K.J.K.J.K.J.K.K.J.K.J.K.J.K.J.K.J.K.J.K.K.J.K.J.J.K.J.J.K.J.J.K.J.K.J.K.J.K.J.K.J.K.J.K.J.J.K.K.J.K.J.K.K.J.J.K.J.K.J.K.J.K.J.J.K.J.K.J.K.K.J.K.K.J.J.K.J.K.J.K.K.J.K.J.J.K.J.K.K.J.J.K.J.K.K.J.K.J.K.J.K.K.J.K.K.J.K.J.K.K.K.J.K.K.J.K.K.J.K.K.J.K.J.K.K.J.K.J.J.K.J.J.K.J.J.K.J.K.K.K.J.K.J.K.K.J.K.J.K.K.K.K.J.K.K.J.K.K.J.K.K.J.K.K.J.K.K.J.K.J.K.J.K.K.J.K.J.K.J.K.K.J.K.J.J.K.K.J.K.K.J.K.J.K.K.J.K.K.J.K.J.K.K.J.K.J.K.J.K.J.K.K.J.K.J.K.K.J.K.K.J.K.K.J.K.K.K.J.K.J.K.J.K.K.", -"J.K.K.J.J.K.K.J.K.J.K.K.J.K.K.J.K.J.J.K.J.K.K.J.K.K.J.K.K.K.K.J.J.K.J.K.K.J.J.K.J.K.J.J.K.J.J.K.J.K.J.K.K.K.J.K.J.K.K.J.K.J.J.K.J.K.J.K.K.J.K.J.J.K.J.K.K.K.K.K.J.K.K.K.K.J.K.J.J.K.K.K.J.K.K.J.K.K.J.K.J.K.K.K.J.K.K.J.K.J.K.K.K.J.K.J.J.K.J.K.K.K.J.K.J.K.K.J.K.J.K.K.J.J.K.J.K.J.K.K.K.K.K.J.K.J.K.K.K.K.K.K.J.K.K.J.K.J.K.K.K.K.K.K.K.J.J.K.J.K.J.K.K.J.K.J.K.J.K.J.J.K.J.K.J.K.K.K.K.J.K.J.J.K.K.J.J.K.K.J.K.J.K.K.J.K.K.J.K.K.K.J.K.J.K.K.K.J.K.J.J.K.K.J.K.K.K.J.K.K.K.J.K.J.K.K.J.K.K.J.K.J.J.K.J.K.K.J.K.K.J.K.K.K.K.J.J.K.K.K.K.J.K.J.J.K.J.K.K.J.K.K.J.K.K.K.K.J.K.J.J.K.K.J.K.J.K.J.K.J.K.K.K.J.K.J.K.J.J.K.J.K.K.J.K.K.J.K.K.J.K.J.K.J.K.K.K.J.J.K.K.J.K.K.J.J.K.J.K.J.K.K.K.K.K.J.K.J.K.K.K.K.K.K.J.K.K.J.K.J.K.K.K.J.K.J.J.K.J.K.J.K.K.K.K.J.K.J.K.J.K.J.J.K.J.K.K.K.J.K.K.J.J.K.J.K.K.J.J.K.K.J.K.J.K.K.J.K.K.J.K.J.J.K.J.K.K.J.K.K.J.K.K.K.K.J.J.K.J.K.K.J.J.K.J.K.J.J.K.J.J.K.J.K.J.K.K.K.J.K.J.K.K.J.K.J.J.K.J.K.J.K.K.J.J.J.K.J.J.K.K.K.K.K.J.K.J.K.K.J.K.J.J.K.J.K.K.J.K.K.J.K.J.K.J.K.K.K.J.J.K.J.K.J.K.K.J.K.K.J.J.K.J.K.K.K.J.K.J.K.K.J.", -"K.J.J.K.K.J.J.K.J.K.K.J.J.K.J.K.J.K.K.J.K.J.K.K.J.K.K.J.K.J.K.J.J.K.K.J.J.K.K.J.K.J.J.K.J.K.K.J.K.J.J.K.J.J.K.J.J.K.K.J.J.K.J.K.K.K.J.J.J.J.K.J.J.J.K.K.J.K.J.J.K.K.J.J.J.J.K.K.K.K.J.J.K.K.J.K.J.J.J.K.J.K.J.J.K.J.J.K.J.K.K.J.J.K.J.K.K.J.J.K.J.J.K.J.J.K.J.J.J.K.K.J.J.K.J.K.K.J.J.K.K.J.K.J.J.K.K.J.K.J.J.K.K.J.J.K.J.K.K.J.J.K.J.J.J.J.K.K.K.K.J.J.J.J.K.K.J.K.J.K.J.J.K.K.K.K.J.J.J.J.K.K.K.J.J.K.K.J.J.K.J.K.K.J.J.K.J.K.K.J.J.K.J.K.K.J.K.J.J.K.K.J.J.K.K.J.J.K.K.J.K.J.J.K.K.J.K.J.J.K.J.K.K.J.K.J.J.K.K.J.K.J.K.J.K.J.K.K.J.J.J.J.K.J.J.K.J.K.J.K.J.J.K.K.J.J.J.J.K.K.K.K.J.K.J.J.K.K.J.K.K.J.K.J.J.K.J.K.K.J.K.J.J.K.K.J.K.J.K.J.K.J.J.K.K.J.K.J.J.K.J.K.K.J.J.K.J.K.K.J.J.K.K.J.K.J.J.K.K.J.K.J.J.K.K.J.J.K.J.K.K.J.J.J.K.K.J.K.J.J.K.K.J.J.J.J.K.K.J.J.K.K.K.K.J.J.J.K.J.J.J.J.K.K.K.J.J.K.K.J.J.K.J.K.K.J.J.K.J.K.J.K.K.J.K.J.K.K.J.K.K.J.K.J.K.J.J.K.K.J.J.K.K.J.K.J.J.K.J.K.K.J.K.J.J.K.J.J.K.J.J.K.K.J.J.K.J.K.K.K.J.J.J.J.K.K.J.J.K.K.J.K.J.J.K.K.J.J.J.J.K.K.K.K.J.J.K.K.J.J.K.K.J.K.J.K.J.J.K.J.J.K.J.K.K.J.J.K.J.K.J.J.J.K.J.J.K.J.J.K.J.J.", -"J.K.J.J.J.J.K.J.J.J.J.J.K.J.J.J.K.J.J.J.K.J.J.K.J.J.K.J.J.J.J.K.J.J.J.K.K.J.J.J.K.J.K.J.J.J.K.J.J.K.J.J.J.K.J.K.J.J.J.K.K.J.J.J.J.J.J.K.J.K.J.J.K.J.J.J.J.J.K.J.J.J.J.K.J.K.J.J.J.J.J.K.J.J.K.J.J.K.J.K.J.J.J.K.J.J.K.J.J.J.J.J.K.J.J.J.J.K.J.J.J.K.J.K.J.J.J.K.K.J.J.K.J.J.K.J.J.K.J.J.J.J.J.K.J.J.J.J.J.K.J.J.J.J.K.J.J.J.J.K.J.J.K.J.K.J.J.J.J.J.J.K.J.K.J.J.J.J.K.J.K.J.J.J.J.J.J.K.J.K.J.J.J.K.J.J.J.J.K.J.J.J.J.J.K.J.J.J.J.J.K.J.J.J.K.J.J.K.J.J.J.K.J.J.J.K.J.J.J.J.J.K.J.J.J.J.J.K.J.J.K.J.J.J.K.J.K.J.J.K.K.J.J.J.J.K.J.J.J.K.J.K.J.J.K.J.J.J.J.J.K.J.J.J.K.J.J.K.J.J.J.J.K.J.J.K.J.J.K.J.J.J.J.K.J.J.K.J.J.J.K.J.K.J.J.J.K.J.J.J.J.K.J.J.J.J.J.K.J.J.K.J.J.K.J.J.K.J.J.K.J.J.J.J.J.K.J.J.J.J.J.K.J.J.J.J.K.J.J.J.J.K.J.K.J.J.K.J.J.J.J.J.J.K.J.K.J.J.J.K.J.J.J.J.J.K.J.J.K.K.K.J.J.J.J.K.J.J.J.J.K.J.J.J.J.J.K.J.J.J.K.J.J.J.K.J.J.K.J.J.K.J.J.J.J.K.J.J.J.K.K.J.J.J.K.J.K.J.J.J.K.J.J.K.J.J.J.K.J.K.J.J.J.K.K.J.J.J.J.J.J.K.J.K.J.J.K.J.J.J.J.J.K.J.J.J.J.K.J.K.J.J.J.J.J.K.J.J.K.J.K.J.J.K.J.J.K.J.J.J.K.J.J.J.J.J.K.J.J.J.J.K.J.J.J.K.J.K.J.J.J.K.", -"J.J.J.J.J.J.J.J.J.J.K.J.J.J.J.K.J.J.J.K.J.J.J.K.J.J.J.J.J.J.J.J.J.J.K.K.J.J.J.J.J.J.J.J.J.J.J.J.K.K.J.J.K.J.K.J.L.H.H.J.J.J.J.K.J.J.J.J.J.J.K.J.J.J.J.J.J.J.H.H.J.J.K.J.J.J.J.J.J.J.K.J.J.K.J.J.K.J.J.K.J.J.J.J.J.J.J.J.J.J.J.J.K.J.J.K.J.J.J.J.K.J.J.J.J.J.J.J.H.J.J.J.K.J.J.J.J.K.J.J.J.J.J.K.J.J.J.J.K.J.J.K.J.J.J.J.J.J.J.J.J.K.J.J.J.J.K.J.J.J.J.J.J.K.J.J.J.J.K.J.J.J.J.J.J.J.K.J.J.K.J.J.J.J.J.J.J.J.J.J.J.J.K.J.J.K.J.J.J.J.K.J.J.J.J.J.J.J.J.J.J.J.J.J.H.J.J.J.J.J.K.J.J.K.J.J.J.J.J.J.J.J.J.J.K.K.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.K.J.J.J.J.J.J.J.H.H.J.J.K.J.J.J.J.J.J.J.K.J.J.K.J.J.J.J.K.K.J.J.J.K.J.J.J.J.K.J.J.J.J.K.J.J.J.J.J.J.J.J.J.J.K.J.J.K.H.J.J.J.K.J.J.J.J.K.J.J.J.J.J.K.J.J.J.J.K.J.J.K.J.J.J.J.J.J.J.J.J.K.J.J.J.J.K.J.J.J.J.J.J.K.J.J.J.J.K.J.J.J.J.J.J.J.K.J.J.K.J.J.J.J.J.J.J.J.J.J.J.J.K.J.J.J.J.K.J.J.J.K.J.J.J.K.J.J.J.J.J.J.J.J.J.J.K.K.J.J.J.J.J.J.J.J.J.J.J.J.K.K.J.J.K.J.K.J.L.H.H.J.J.J.J.K.J.J.J.J.J.J.K.J.J.J.J.J.J.J.H.H.J.J.K.J.J.J.J.J.J.J.K.J.J.K.J.J.J.J.K.J.J.J.J.J.J.J.J.J.J.J.J.J.K.J.J.K.J.K.J.J.K.J.J.J.J.K.J.J.", -"J.J.J.K.K.J.K.J.J.J.J.J.K.K.J.J.J.K.J.J.J.J.J.J.J.J.J.K.J.K.K.J.J.J.J.J.J.J.J.K.J.K.K.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.K.J.J.J.K.J.K.K.J.J.J.J.K.J.K.K.J.J.L.K.J.J.J.J.K.J.K.K.J.J.J.J.J.J.K.J.J.J.J.J.K.K.J.J.J.K.J.J.K.J.J.J.J.J.J.J.J.J.J.J.J.K.J.J.K.J.J.H.L.J.J.J.J.K.J.J.J.J.J.J.J.J.J.J.K.J.J.J.J.J.J.J.K.K.J.J.K.J.J.J.J.J.K.K.J.J.J.J.J.J.H.J.J.J.J.K.J.J.J.J.K.J.K.K.J.J.J.J.J.J.K.K.J.J.K.K.J.J.K.J.J.J.J.K.J.J.J.J.K.J.J.J.J.J.K.J.J.J.K.K.J.J.K.L.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.K.J.J.J.J.J.K.J.J.J.K.J.J.J.K.J.K.J.K.K.J.J.J.J.K.J.K.K.J.J.L.K.J.J.J.J.K.J.K.K.J.J.J.J.J.J.K.J.K.J.J.J.J.J.J.J.J.J.J.J.J.K.J.J.J.K.J.J.J.J.J.J.K.J.J.J.J.J.J.H.L.J.J.J.J.K.J.J.J.J.J.J.J.J.J.J.K.J.J.J.J.J.J.J.K.K.J.J.K.J.J.J.J.J.K.K.J.J.J.J.J.J.J.J.J.J.J.K.J.J.J.J.K.J.K.K.J.J.J.J.J.J.K.J.J.J.K.K.J.K.J.J.J.J.J.K.K.J.J.J.K.J.J.J.J.J.J.J.J.J.K.J.K.K.J.J.J.J.J.J.J.J.K.J.K.K.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.K.J.J.J.K.J.K.K.J.J.J.J.K.J.K.K.J.J.L.K.J.J.J.J.K.J.K.K.J.J.J.J.J.J.K.J.J.J.J.J.K.K.J.J.J.K.J.K.J.J.J.J.J.K.J.J.J.J.J.J.J.K.J.J.J.J.J.", -"J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.K.J.H.K.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.K.J.K.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.H.K.J.J.J.J.J.J.H.K.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.H.H.J.K.J.K.J.J.J.J.J.J.J.J.J.J.J.L.J.J.J.J.H.K.J.J.J.J.J.J.H.K.J.J.J.J.J.J.J.J.H.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.H.L.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.H.K.J.J.J.J.J.J.H.K.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.H.H.J.K.J.K.J.J.J.J.J.J.J.J.J.J.L.H.J.J.J.J.H.K.J.J.J.J.J.J.H.K.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.K.J.H.K.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.K.J.K.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.H.K.J.J.J.J.J.J.H.K.J.J.J.J.J.J.J.J.J.J.J.H.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.", -"J.J.J.J.J.J.J.J.J.J.J.J.J.H.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.H.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.H.J.H.J.J.J.J.J.H.J.J.J.J.J.H.J.J.J.J.J.H.J.J.J.J.J.J.J.H.J.J.J.J.J.J.J.J.J.J.J.J.H.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.H.L.H.J.H.J.J.J.J.J.H.J.J.J.J.J.J.J.J.J.J.J.J.H.J.J.J.J.J.J.J.H.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.H.J.J.J.J.J.J.J.J.J.J.H.J.J.J.J.J.J.H.J.J.J.J.H.J.J.J.J.J.J.J.H.J.J.J.J.J.J.H.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.H.L.H.J.H.J.J.J.J.J.H.J.J.J.J.J.J.J.J.J.J.J.J.H.J.J.J.J.J.J.J.H.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.H.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.H.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.H.J.H.J.J.J.J.J.H.J.J.J.J.J.H.J.J.J.J.J.H.J.J.J.J.J.J.J.H.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.H.J.J.J.J.J.J.J.J.J.J.J.J.J.J.", -"J.J.J.J.J.J.H.J.J.J.J.J.H.J.J.J.H.J.H.J.J.J.J.J.J.J.J.J.J.H.J.J.J.H.J.J.J.J.J.J.J.J.J.J.H.J.H.J.H.J.J.H.J.J.J.J.J.H.J.J.J.J.H.J.J.J.J.J.J.H.J.J.J.J.J.J.J.J.J.J.J.H.J.J.J.J.J.J.J.H.J.J.J.J.J.J.J.J.J.J.J.H.J.J.J.J.J.J.J.H.J.J.J.J.J.J.J.J.J.H.J.J.H.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.H.J.J.J.J.J.H.H.J.J.H.J.J.H.J.J.J.J.H.H.J.J.J.J.J.J.H.J.H.J.J.J.H.J.J.J.J.J.J.J.H.J.J.J.J.J.J.J.J.J.J.J.J.J.H.J.J.J.J.H.J.J.H.J.H.H.J.J.J.J.J.J.J.J.J.J.H.J.J.J.J.H.J.J.J.J.J.J.J.J.H.J.J.J.J.J.J.J.J.J.J.H.J.J.J.J.J.H.J.J.H.J.J.J.J.J.H.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.H.J.J.J.J.J.J.H.J.J.J.H.J.J.H.H.J.J.J.J.J.H.J.J.J.J.J.H.J.J.J.J.H.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.H.J.J.J.J.J.H.H.J.J.H.J.J.H.J.J.J.J.H.H.J.J.J.J.J.J.H.J.H.J.J.J.H.J.J.J.J.J.J.J.H.J.J.J.J.J.J.J.J.J.J.J.J.H.J.J.J.J.J.H.J.J.J.H.J.H.J.J.J.J.J.J.J.J.J.J.H.J.J.J.H.J.J.J.J.J.J.J.J.J.J.H.J.H.J.H.J.J.H.J.J.J.J.J.H.J.J.J.J.H.J.J.J.J.J.J.H.J.J.J.J.J.J.J.J.J.J.J.H.J.J.J.J.J.J.J.H.J.J.J.J.J.J.J.J.J.J.J.H.J.J.J.J.J.J.J.H.J.J.J.J.J.J.J.J.J.H.J.J.H.J.J.J.J.J.", -"J.H.J.J.H.J.J.J.J.H.J.H.J.J.J.H.J.J.J.J.H.J.J.J.J.J.H.J.J.J.J.J.J.J.J.J.J.J.H.J.H.J.J.J.J.J.J.J.J.J.J.J.J.J.J.H.J.J.J.J.J.J.J.J.H.J.J.H.J.J.J.J.J.H.J.H.J.J.H.J.J.J.J.J.H.J.J.H.J.J.J.J.J.H.J.H.J.J.H.J.J.J.J.J.J.J.H.J.J.J.J.J.J.J.H.J.J.J.J.J.H.J.J.J.J.J.J.J.J.J.H.J.J.H.J.J.J.H.J.J.J.J.H.J.J.J.J.J.J.J.J.J.J.J.J.J.H.J.J.J.H.J.J.J.J.J.H.J.J.J.J.J.J.J.J.H.J.J.J.J.J.H.J.H.J.J.J.J.J.H.J.H.J.H.J.J.J.H.J.J.H.J.J.H.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.H.J.J.J.J.J.J.J.J.J.H.J.H.J.J.J.J.J.J.H.J.J.H.J.J.J.J.H.J.J.H.J.J.J.J.H.J.J.H.J.J.H.J.J.J.J.J.H.J.J.H.J.J.J.J.J.H.J.H.J.J.J.H.J.J.J.J.J.J.J.J.J.J.J.J.J.H.J.J.J.J.H.J.J.J.J.J.J.J.J.J.J.J.H.J.J.H.J.J.J.H.J.J.J.J.H.J.J.J.J.J.J.J.J.J.J.J.J.J.H.J.J.J.H.J.J.J.J.J.H.J.J.J.J.J.J.J.J.H.J.J.J.J.J.H.J.H.J.J.J.J.J.H.J.H.J.H.J.J.H.J.J.J.J.H.J.H.J.J.J.H.J.J.J.J.H.J.J.J.J.J.H.J.J.J.J.J.J.J.J.J.J.J.H.J.H.J.J.J.J.J.J.J.J.J.J.J.J.J.J.H.J.J.J.J.J.J.J.J.H.J.J.H.J.J.J.J.J.H.J.H.J.J.H.J.J.J.J.J.H.J.J.H.J.J.J.J.J.H.J.H.J.J.H.J.J.J.J.J.J.J.H.J.J.J.J.J.J.J.H.J.J.H.J.J.H.J.J.J.J.J.J.J.", -"H.J.H.J.J.H.H.J.J.J.J.J.J.H.J.J.H.J.J.J.J.J.J.H.J.J.H.J.J.H.H.J.H.J.J.H.H.J.H.J.J.J.H.H.J.H.J.J.J.H.J.J.J.J.J.H.J.J.J.J.H.J.J.J.J.J.J.H.H.J.J.H.J.J.J.H.J.H.H.J.J.J.J.J.J.J.J.J.J.H.H.J.J.J.H.J.H.J.H.J.J.H.H.J.J.H.H.J.J.H.J.H.H.J.J.J.J.J.H.J.J.J.J.J.J.J.J.J.J.H.H.J.H.J.J.H.J.J.H.J.H.J.J.J.J.H.J.H.H.J.J.H.J.J.J.J.J.J.J.J.H.J.J.H.J.J.J.J.H.J.J.H.J.H.H.J.J.H.H.J.J.J.J.J.J.H.H.J.J.J.H.J.H.J.J.H.H.J.H.J.J.J.J.J.J.J.J.J.J.H.J.J.H.J.J.H.H.J.H.J.J.H.H.J.J.H.J.H.H.J.J.H.J.J.H.J.H.J.J.J.J.H.J.H.H.J.H.J.J.J.J.J.J.H.J.J.J.J.J.H.H.J.J.H.J.J.J.H.J.H.H.J.J.J.H.J.J.J.J.J.J.H.H.J.J.J.H.J.J.H.J.J.H.J.J.H.J.J.J.J.H.J.J.J.J.J.H.J.J.J.J.J.J.H.J.H.H.J.J.H.J.H.H.J.H.J.J.H.J.J.H.J.H.J.J.J.J.H.J.H.H.J.J.H.J.J.J.J.J.J.J.J.H.J.J.H.J.J.J.J.H.J.J.H.J.H.H.J.J.H.H.J.J.J.J.J.J.H.H.J.J.J.H.J.H.J.H.J.J.H.H.J.J.J.J.J.J.H.J.J.H.J.J.J.J.J.J.H.J.J.H.J.J.H.H.J.H.J.J.H.H.J.H.J.J.J.H.H.J.H.J.J.J.H.J.J.J.J.J.H.J.J.J.J.H.J.J.J.J.J.J.H.H.J.J.H.J.J.J.H.J.H.H.J.J.J.J.J.J.J.J.J.J.H.H.J.J.J.H.J.H.J.H.J.J.J.H.J.J.H.H.J.J.H.J.H.H.J.J.J.J.J.H.J.J.J.J.J.J.J.J.J.", -"H.J.J.H.J.J.J.H.H.J.H.J.H.J.J.H.J.H.H.J.H.J.H.J.J.H.J.J.H.J.J.H.J.H.J.J.J.H.J.J.H.J.J.J.H.J.H.J.H.J.H.J.H.J.H.J.H.J.H.H.J.H.H.J.H.J.H.J.J.J.H.J.H.J.H.J.J.H.J.J.H.H.J.H.H.J.H.J.H.J.J.H.J.H.J.J.J.H.J.J.H.J.J.H.J.H.J.J.H.J.J.H.J.H.H.J.H.J.J.H.J.H.H.J.H.H.J.H.J.H.J.J.H.J.J.H.H.J.J.H.J.H.H.J.H.J.J.H.J.J.H.J.H.J.H.H.J.H.H.J.J.J.H.J.H.J.H.H.J.J.H.J.J.H.J.J.H.J.J.H.H.J.H.J.H.J.J.H.J.H.J.J.H.J.J.H.J.J.H.J.H.J.H.H.J.H.H.J.H.J.J.H.J.H.H.J.J.H.J.H.J.J.J.H.J.H.J.J.H.J.J.J.H.J.J.H.J.H.H.J.H.J.J.H.J.J.H.J.H.J.H.J.H.J.H.J.H.J.H.J.J.J.H.J.H.J.H.J.J.H.J.J.H.H.J.H.H.J.H.J.H.J.J.H.J.H.J.J.H.J.J.H.J.J.H.J.H.J.H.H.J.H.H.J.H.J.J.H.J.H.H.J.H.J.J.H.J.J.H.J.J.H.J.J.H.J.J.H.H.J.J.H.J.H.H.J.H.J.J.H.J.J.H.J.H.J.H.H.J.H.H.J.J.J.H.J.H.J.H.H.J.J.H.J.J.H.J.J.H.J.J.H.H.J.H.J.H.J.J.H.J.H.J.J.H.J.J.H.J.J.J.H.H.J.H.J.H.J.J.H.J.H.H.J.H.J.H.J.J.H.J.J.H.J.J.H.J.H.J.J.J.H.J.J.H.J.J.J.H.J.H.J.H.J.H.J.H.J.H.J.H.J.H.H.J.H.H.J.H.J.H.J.J.J.H.J.H.J.H.J.J.H.J.J.H.H.J.H.H.J.H.J.H.J.J.H.J.H.J.J.J.H.J.J.H.H.J.H.J.H.J.J.H.J.J.H.J.H.H.J.H.J.J.H.J.H.H.J.H.H.J.H.", -"H.J.H.J.H.J.H.H.J.H.J.H.J.H.H.J.H.J.H.J.H.H.J.H.H.J.H.H.J.H.J.H.J.H.H.J.H.J.J.H.J.H.J.H.H.J.H.J.J.H.J.H.J.H.H.J.H.J.H.J.H.H.J.H.H.J.H.H.J.H.J.H.H.J.H.J.H.J.J.H.J.H.H.H.H.J.H.J.J.H.H.J.H.J.J.H.H.J.H.J.H.H.J.J.J.H.H.J.H.J.H.J.J.H.H.J.H.J.J.H.H.J.J.H.J.H.H.J.J.H.J.H.H.J.H.J.H.J.J.H.H.J.H.J.J.H.H.J.J.H.H.J.J.H.J.H.J.H.J.H.H.J.H.J.J.H.J.H.H.J.H.J.J.H.J.H.J.H.H.J.H.J.H.J.J.H.H.J.H.J.J.H.H.J.H.J.H.J.H.H.J.H.J.H.J.H.J.J.H.J.H.J.J.H.J.H.H.J.H.H.H.H.J.H.J.H.J.J.H.J.H.H.J.H.J.H.H.J.H.J.J.J.H.J.H.J.H.J.H.H.J.H.J.H.J.J.H.J.H.H.J.H.J.H.H.J.H.J.H.J.J.H.J.H.H.H.H.J.H.J.H.H.H.J.H.J.J.H.J.H.J.H.J.H.J.J.H.H.J.H.H.H.J.H.H.J.J.H.J.H.H.J.J.H.H.J.H.H.J.H.J.H.J.H.H.J.H.J.H.J.J.H.H.J.H.J.J.H.H.J.J.H.H.J.J.H.J.H.J.H.J.H.H.J.H.J.J.H.J.H.H.J.H.J.J.H.J.H.J.H.H.J.H.J.H.J.J.H.H.J.H.J.J.H.H.J.H.J.H.J.H.H.J.H.J.H.J.H.H.J.H.J.H.J.H.H.J.H.H.J.H.H.J.H.J.H.J.H.H.J.H.J.J.H.J.H.J.H.H.J.H.J.J.H.J.H.J.H.H.J.H.J.H.J.H.H.J.H.H.J.H.H.J.H.J.H.H.J.H.J.H.J.J.H.J.H.H.H.H.J.H.J.J.H.H.J.H.J.J.H.H.J.H.H.H.J.J.H.J.J.H.J.H.J.H.J.J.H.H.J.H.J.J.H.H.H.J.H.J.J.H.H.", -"J.H.J.H.J.H.H.J.H.J.J.H.H.J.J.H.H.H.J.H.J.J.H.J.J.H.J.H.H.J.H.J.H.H.H.H.J.H.H.J.H.J.H.J.J.H.J.H.H.J.J.H.H.J.J.H.J.H.H.J.J.H.H.J.J.H.J.H.H.J.J.J.H.J.J.H.H.H.H.J.H.J.H.J.J.H.H.H.H.H.J.H.J.H.H.J.J.H.H.H.J.H.J.H.H.J.J.H.H.J.J.H.H.H.J.H.J.H.H.J.H.H.H.J.H.J.J.H.H.J.H.J.J.H.J.H.J.H.J.J.J.H.J.H.H.J.J.H.H.J.J.H.H.J.H.J.H.J.H.J.J.H.J.J.H.J.J.H.J.H.J.H.H.J.H.J.H.J.H.J.J.H.H.H.H.J.J.H.J.H.H.J.J.H.J.H.J.H.J.H.H.J.H.J.H.J.H.H.J.H.J.H.H.J.H.J.H.H.J.H.H.J.H.J.H.J.H.H.J.H.J.H.H.J.H.J.H.H.J.H.H.H.J.H.J.H.J.H.H.J.H.J.H.J.H.H.J.H.J.H.H.J.H.J.H.J.J.H.H.H.H.J.H.J.H.J.J.H.H.H.H.J.J.H.J.H.H.J.H.J.J.H.H.J.H.J.J.H.H.J.J.H.H.J.J.H.H.J.H.H.J.H.J.H.J.H.J.H.H.J.H.J.H.J.J.H.J.H.J.H.J.J.J.H.J.H.H.J.J.H.H.J.J.H.H.J.H.J.H.J.H.J.J.H.J.J.H.J.J.H.J.H.J.H.H.J.H.J.H.J.H.J.J.H.H.H.H.J.J.H.J.H.H.J.J.H.J.H.J.H.H.J.H.J.J.H.H.J.J.H.H.H.J.H.J.J.H.J.J.H.J.H.H.J.H.J.H.H.H.H.J.H.H.J.H.J.H.J.J.H.J.H.H.J.J.H.H.J.J.H.J.H.H.J.J.H.H.J.J.H.J.H.H.J.J.J.H.J.J.H.H.H.H.J.H.J.H.J.J.H.H.H.H.H.J.H.J.H.H.J.J.H.H.J.J.H.H.J.H.H.J.H.H.J.J.H.H.H.J.H.J.H.H.J.H.J.H.J.H.H.J.H.", -"J.H.J.H.H.J.H.H.J.H.H.H.H.H.H.H.J.H.J.H.H.H.H.H.H.H.H.H.J.H.H.H.H.H.H.H.H.H.J.H.J.H.H.H.H.H.J.H.J.H.H.H.H.H.H.H.H.J.H.J.H.J.H.H.H.J.H.J.J.J.H.H.J.H.H.H.J.H.J.H.H.H.H.H.H.J.J.H.J.H.H.H.H.H.J.H.H.J.J.H.H.H.H.H.H.H.H.H.H.H.H.H.J.H.H.J.H.H.H.H.J.H.J.H.H.H.H.H.H.H.H.H.H.J.H.J.H.H.H.H.H.J.H.H.H.H.H.H.J.H.H.H.H.J.H.J.H.H.H.H.H.J.H.H.J.H.H.H.J.H.H.H.H.J.J.H.H.H.H.H.H.J.J.H.J.H.H.H.H.H.J.H.J.H.J.H.H.J.H.H.J.H.H.H.H.H.H.H.H.H.J.H.H.J.H.H.H.J.H.J.J.H.H.J.H.H.H.H.H.J.H.J.H.J.H.H.J.H.H.H.H.H.H.H.J.H.H.H.J.H.J.H.H.H.H.H.H.J.H.J.H.J.J.H.J.H.H.H.J.H.J.H.H.H.H.H.H.J.J.H.J.H.H.H.H.H.J.H.J.H.H.H.H.H.H.H.H.J.H.J.H.J.H.H.H.H.J.H.H.J.H.J.H.J.H.J.H.J.H.H.H.H.H.H.H.J.H.J.H.H.H.H.H.J.H.H.H.H.H.H.J.H.H.H.H.J.H.J.H.H.H.H.H.J.H.H.J.H.H.H.J.H.H.H.H.J.J.H.H.H.H.H.H.J.J.H.J.H.H.H.H.H.J.H.J.H.J.H.H.J.H.H.J.H.H.H.H.H.H.H.J.H.J.H.H.H.H.H.H.H.H.H.J.H.H.H.H.H.H.H.H.H.J.H.J.H.H.H.H.H.J.H.J.H.H.H.H.H.H.H.H.J.H.J.H.J.H.H.H.J.H.J.J.J.H.H.J.H.H.H.J.H.J.H.H.H.H.H.H.J.J.H.J.H.H.H.H.H.J.H.H.J.J.H.H.H.H.H.H.H.H.H.H.H.H.H.J.H.H.J.H.H.J.H.J.H.J.H.H.H.H.H.", -"H.H.H.H.H.H.H.H.H.H.J.H.H.H.H.H.H.H.H.H.H.J.H.H.H.H.J.H.H.H.H.J.G.L.H.H.H.H.H.H.H.H.J.H.H.H.H.H.H.H.J.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.J.H.J.H.H.H.H.H.H.J.H.H.H.H.H.H.H.H.H.H.H.H.H.J.H.J.H.H.H.H.H.H.H.H.H.J.H.H.H.H.H.H.H.J.H.J.H.H.H.H.H.H.H.H.H.H.J.H.H.H.H.H.H.J.J.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.J.H.H.H.H.H.H.H.H.H.H.J.H.J.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.J.H.H.H.H.H.H.H.H.H.H.H.H.J.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.J.H.H.H.H.H.H.J.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.J.H.J.H.H.H.H.H.H.J.H.H.H.H.H.H.H.J.H.H.H.H.H.H.H.H.H.H.H.H.H.J.H.H.H.H.H.H.H.H.H.H.H.H.H.H.J.H.H.H.H.H.H.H.H.H.J.H.H.H.H.H.H.J.J.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.J.H.H.H.H.H.H.H.H.H.H.J.H.J.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.J.H.H.H.H.H.H.H.H.H.H.J.H.H.H.H.J.H.H.H.H.J.G.L.H.H.H.H.H.H.H.H.J.H.H.H.H.H.H.H.J.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.J.H.J.H.H.H.H.H.H.J.H.H.H.H.H.H.H.H.H.H.H.H.H.H.J.H.H.H.H.H.H.H.H.H.H.J.H.H.H.H.H.H.H.H.J.J.H.", -"H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.J.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.J.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.J.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.J.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.J.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.J.", -"H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.J.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.G.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.G.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.J.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.G.H.H.H.H.H.H.H.H.H.H.H.", -"H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.", -"H.H.H.H.H.H.G.H.H.H.H.H.H.H.H.G.H.H.H.H.H.H.H.G.H.H.H.H.G.H.H.H.H.H.G.H.H.H.H.G.H.H.H.H.H.G.H.H.H.H.H.G.H.H.H.H.H.H.H.H.H.G.H.H.H.H.H.H.G.H.H.H.G.H.H.H.H.G.H.H.H.H.G.H.H.H.H.H.G.H.H.H.H.G.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.G.H.H.H.H.H.H.H.H.H.G.H.H.H.H.G.H.H.H.H.H.G.H.H.H.H.G.H.H.H.H.H.G.H.H.H.G.H.H.H.H.G.H.H.H.H.G.H.H.H.G.H.H.H.G.H.H.H.H.G.H.H.H.G.H.H.H.H.H.H.H.H.H.H.G.H.H.H.H.G.H.H.H.H.H.H.H.H.G.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.G.H.H.H.H.G.H.H.H.H.H.H.H.G.H.H.H.H.H.H.H.H.H.G.H.H.H.H.H.H.H.G.H.H.H.H.H.H.H.H.H.G.H.H.H.H.H.H.H.G.H.H.H.H.G.H.H.H.H.G.H.H.H.H.H.G.H.H.H.H.G.H.H.H.H.H.H.H.H.H.G.H.H.H.H.H.H.H.H.G.H.H.H.H.H.G.H.H.H.G.H.H.H.H.H.H.H.H.G.H.H.H.H.G.H.H.H.H.H.G.H.H.H.G.H.H.H.H.G.H.H.H.H.G.H.H.H.G.H.H.H.G.H.H.H.H.G.H.H.H.G.H.H.H.H.H.H.H.H.H.H.G.H.H.H.H.G.H.H.H.H.H.H.H.H.G.H.H.H.H.H.H.H.H.G.H.H.H.H.H.H.H.G.H.H.H.H.G.H.H.H.H.H.G.H.H.H.H.G.H.H.H.H.H.G.H.H.H.H.H.G.H.H.H.H.H.H.H.H.H.G.H.H.H.H.H.H.G.H.H.H.G.H.H.H.H.G.H.H.H.H.G.H.H.H.H.H.G.H.H.H.H.G.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.G.H.H.H.H.H.H.H.H.H.G.H.H.H.H.G.H.H.", -"G.H.H.H.H.H.H.H.H.H.H.H.H.H.H.G.H.G.H.H.H.H.H.H.G.H.H.G.H.H.H.G.H.H.G.G.H.H.H.H.H.H.G.H.H.G.H.H.H.H.G.H.G.H.H.H.H.H.H.H.H.H.H.G.G.H.H.H.H.H.G.H.H.G.H.H.H.H.G.H.G.H.H.H.H.G.H.H.G.H.H.H.H.G.H.H.G.H.H.H.H.H.H.H.H.H.H.H.H.H.H.G.G.H.H.H.H.H.H.G.H.H.H.G.H.H.H.G.G.H.H.H.H.G.H.H.G.H.H.H.G.H.H.H.G.H.H.H.H.H.H.H.H.H.H.H.H.H.G.H.H.H.H.G.H.H.G.H.H.H.H.H.H.H.G.H.G.H.H.H.H.G.H.H.G.H.H.H.H.G.H.H.G.H.H.H.H.H.H.H.H.H.H.H.H.H.H.G.H.H.G.H.H.H.H.H.G.H.H.G.H.H.H.G.G.H.H.H.H.G.H.H.G.G.H.H.G.H.H.H.H.H.G.H.G.H.H.H.H.H.H.H.H.H.H.G.H.H.H.G.H.H.G.G.H.H.H.H.H.H.G.H.G.H.H.H.H.G.H.H.G.H.H.H.H.G.H.H.G.H.H.H.H.H.H.H.H.H.H.H.H.H.H.G.H.H.H.G.H.G.H.H.H.G.H.H.G.G.H.H.G.H.H.H.H.G.H.H.G.H.H.H.G.H.H.H.G.H.H.H.H.H.H.H.H.H.H.H.H.H.G.H.H.H.H.G.H.H.G.H.H.H.H.H.H.H.G.H.G.H.H.H.H.G.H.H.G.H.H.H.H.G.H.H.G.H.H.H.H.H.H.H.H.H.H.H.H.H.H.G.H.G.H.H.H.H.H.H.G.H.H.G.H.H.H.G.H.H.G.G.H.H.H.H.H.H.G.H.H.G.H.H.H.H.G.H.G.H.H.H.H.H.H.H.H.H.H.G.G.H.H.H.H.H.G.H.H.G.H.H.H.H.G.H.G.H.H.H.H.G.H.H.G.H.H.H.H.G.H.H.G.H.H.H.H.H.H.H.H.H.H.H.H.H.H.G.G.G.H.H.H.H.H.G.H.H.G.H.H.H.H.G.", -"H.H.G.G.G.H.G.G.H.G.H.G.G.G.H.H.G.H.H.G.G.H.G.H.G.H.H.G.H.G.G.H.G.H.H.H.H.G.G.H.G.H.G.H.H.G.H.G.G.G.H.H.H.H.G.H.G.H.G.G.G.G.H.H.H.G.H.G.G.H.H.H.H.H.G.H.G.H.G.H.H.H.G.H.G.H.H.G.H.G.H.G.H.G.H.G.H.H.G.G.G.H.G.G.G.H.G.G.G.G.H.H.H.G.H.G.G.H.G.H.G.G.H.G.G.H.H.H.H.H.G.H.G.H.G.H.H.G.H.G.H.H.G.H.Z.H.G.G.G.H.G.G.G.H.G.G.G.G.H.H.H.G.H.H.H.G.H.G.H.G.G.H.G.H.H.G.H.H.G.H.G.H.H.G.H.G.H.G.H.G.H.G.H.H.G.G.G.H.G.G.H.G.H.G.G.G.H.H.G.H.H.G.G.H.G.H.G.H.H.G.H.G.H.H.H.H.G.H.G.H.H.G.H.G.H.G.H.H.G.H.G.G.H.H.H.H.G.H.G.H.G.G.G.G.H.H.H.G.H.H.G.H.H.H.H.H.G.H.G.H.H.G.H.H.G.H.G.H.H.G.H.G.H.G.H.G.H.G.H.H.G.G.G.H.G.G.G.H.G.G.G.G.H.H.G.H.G.H.H.G.H.G.H.H.G.H.H.H.G.G.H.H.G.H.G.H.G.H.H.G.H.G.H.H.G.H.Z.H.G.G.G.H.G.G.G.H.G.G.G.G.H.H.H.G.H.H.H.G.H.G.H.G.G.H.G.H.H.G.H.H.G.H.G.H.H.G.H.G.H.G.H.G.H.G.H.H.G.G.G.H.G.G.H.G.H.G.G.G.H.H.G.H.H.G.G.H.G.H.G.H.H.G.H.G.G.H.G.H.H.H.H.G.G.H.G.H.G.H.H.G.H.G.G.G.H.H.H.H.G.H.G.H.G.G.G.G.H.H.H.G.H.G.G.H.H.H.H.H.G.H.G.H.G.H.H.H.G.H.G.H.H.G.H.G.H.G.H.G.H.G.H.H.G.G.G.H.G.G.G.H.G.G.G.G.H.H.H.H.H.G.G.H.G.H.H.G.H.H.G.H.G.H.", -"H.H.H.H.H.G.G.H.G.H.H.H.H.H.G.H.H.G.H.G.H.G.H.H.H.G.H.H.G.H.H.H.G.H.G.G.G.H.H.G.G.H.H.G.H.H.H.G.H.H.H.G.G.H.G.G.H.G.G.H.H.H.G.H.H.H.G.H.G.H.G.H.G.H.H.H.H.G.H.G.H.G.H.G.H.H.G.H.H.H.G.H.H.H.G.G.H.H.H.H.H.G.G.H.H.G.H.H.H.H.G.H.H.H.G.H.G.H.G.H.H.G.H.H.G.H.G.H.H.G.H.H.H.H.G.H.H.H.G.H.H.G.H.G.G.G.H.H.H.G.G.H.H.G.G.H.H.H.H.G.G.H.G.H.H.H.G.H.G.H.H.H.H.G.H.G.H.G.H.G.H.H.G.H.H.H.G.H.H.H.G.G.H.H.H.H.H.G.G.H.G.H.H.H.H.H.G.H.H.G.H.G.H.G.H.H.H.G.H.H.G.H.G.H.H.G.H.H.H.H.G.H.H.H.G.H.H.G.H.G.H.H.H.G.G.H.G.G.H.G.G.H.G.H.G.H.G.H.G.H.G.H.G.H.G.H.H.H.H.G.H.G.H.G.H.G.H.H.G.H.H.H.G.H.H.H.G.G.H.G.H.H.H.G.G.H.H.G.H.H.H.H.G.H.G.H.H.H.H.H.H.H.G.H.G.H.H.H.H.H.H.G.H.H.H.H.G.H.H.H.G.H.H.G.H.G.G.G.H.H.H.G.G.H.H.G.G.H.H.H.H.G.G.H.G.H.H.H.G.H.G.H.H.H.H.G.H.G.H.G.H.G.H.H.G.H.H.H.G.H.H.H.G.G.H.H.H.H.H.G.G.H.G.H.H.H.H.H.G.H.H.G.H.G.H.G.H.H.H.G.H.H.G.H.H.H.G.H.G.G.G.H.H.G.G.H.H.G.H.H.H.G.H.H.H.G.G.H.G.G.H.G.G.H.H.H.G.H.H.H.G.H.G.H.G.H.G.H.H.H.H.G.H.G.H.G.H.G.H.H.G.H.H.H.G.H.H.H.G.G.H.H.H.H.H.G.G.H.H.G.H.H.H.H.G.H.H.H.G.H.G.H.G.H.H.G.H.G.G.H.H.H.", -"H.G.G.H.G.H.H.H.H.G.G.H.G.G.H.G.G.H.G.H.H.G.G.G.G.H.G.H.H.G.H.G.G.G.G.Z.H.G.G.H.H.H.G.H.G.H.G.H.H.G.H.G.H.G.G.G.G.H.H.G.G.G.H.G.G.G.H.G.H.G.H.H.H.G.G.G.G.H.G.H.G.H.H.H.G.H.H.G.G.G.H.G.G.H.G.G.H.G.G.H.G.H.H.H.G.H.G.H.G.G.H.G.G.G.H.G.H.G.H.H.G.H.G.H.H.H.G.H.G.H.G.G.G.G.H.G.G.G.H.G.G.H.G.G.G.G.G.H.G.H.H.H.G.H.H.G.H.G.H.G.H.G.H.G.G.H.H.H.H.G.G.G.G.H.G.H.G.H.H.H.G.H.H.G.G.G.H.G.G.H.G.G.H.G.G.H.G.H.H.H.H.G.G.H.G.G.H.G.G.H.G.H.H.G.G.G.G.H.G.H.H.G.H.G.G.H.G.G.G.H.H.G.G.G.H.G.G.H.G.G.H.G.H.G.H.G.G.G.G.H.H.G.H.G.H.G.H.G.H.G.H.G.H.H.H.G.G.G.G.H.G.H.G.H.H.H.G.H.H.G.G.G.H.G.G.H.G.G.H.H.G.H.G.H.H.H.G.H.G.H.G.G.H.G.H.H.G.G.G.H.G.H.H.G.H.G.G.G.H.G.G.H.G.G.G.H.G.G.G.G.H.G.G.H.G.G.G.G.G.H.G.H.H.H.G.H.H.G.H.G.H.G.H.G.H.G.G.H.H.H.H.G.G.G.G.H.G.H.G.H.H.H.G.H.H.G.G.G.H.G.G.H.G.G.H.G.G.H.G.H.H.H.H.G.G.H.G.G.H.G.G.H.G.H.H.G.G.G.G.H.G.H.H.G.H.G.G.G.G.Z.H.G.G.H.H.H.G.H.G.H.G.H.H.G.H.G.H.G.G.G.G.H.H.G.G.G.H.G.G.G.H.G.H.G.H.H.H.G.G.G.G.H.G.H.G.H.H.H.G.H.H.G.G.G.H.G.G.H.G.G.H.G.G.H.G.H.H.H.G.H.G.H.G.G.H.G.G.G.H.G.H.G.H.H.G.H.G.H.H.H.G.G.", -"G.H.G.G.H.G.H.G.G.G.H.G.H.G.H.H.H.G.G.G.H.G.G.H.G.H.H.G.G.H.G.H.G.H.G.G.H.G.G.G.G.G.G.H.G.G.H.G.G.H.G.H.H.G.Z.G.H.G.H.G.H.G.H.H.G.H.H.G.G.H.G.G.H.G.G.G.H.H.G.G.G.H.G.H.H.G.G.G.G.H.H.G.G.H.G.G.G.G.G.H.H.G.H.G.G.G.H.G.H.G.H.H.G.H.H.G.H.G.G.G.H.G.H.G.G.G.G.H.G.H.G.H.H.G.G.G.G.H.H.G.G.H.G.G.G.G.G.H.H.G.H.G.H.G.H.G.G.G.H.H.G.G.H.G.G.H.G.G.H.G.G.H.H.H.G.G.G.H.G.H.H.G.G.G.G.H.H.G.G.H.G.G.G.H.G.G.H.G.H.G.G.G.H.G.H.G.H.H.H.G.G.G.H.G.G.H.G.H.G.H.G.G.G.H.G.H.G.H.H.G.G.G.G.H.H.G.G.H.G.G.G.H.G.H.H.G.Z.G.H.G.H.G.H.G.H.H.G.H.H.G.G.H.G.G.H.G.G.H.H.H.G.G.G.H.G.H.H.G.G.G.G.H.H.G.G.H.G.G.G.G.G.H.H.G.H.G.G.G.H.G.H.G.H.H.G.G.G.H.G.H.G.G.G.H.G.H.G.G.G.G.G.H.G.H.H.G.G.G.G.H.H.G.G.H.G.G.G.G.G.H.H.G.H.G.H.G.H.G.G.G.H.H.G.G.H.G.G.H.G.G.H.G.G.H.H.H.G.G.G.H.G.H.H.G.G.G.G.H.H.G.G.H.G.G.G.H.G.G.H.G.H.G.G.G.H.G.H.G.H.H.H.G.G.G.H.G.G.H.G.H.H.G.G.H.G.H.G.H.G.G.H.G.G.G.G.G.G.H.G.G.H.G.G.H.G.H.H.G.Z.G.H.G.H.G.H.G.H.H.G.H.H.G.G.H.G.G.H.G.G.G.H.H.G.G.G.H.G.H.H.G.G.G.G.H.H.G.G.H.G.G.G.G.G.H.H.G.H.G.G.G.H.G.H.G.H.H.G.H.H.G.H.G.G.G.H.H.H.G.G.H.G.G.", -"G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.H.G.G.G.H.G.G.G.G.G.G.G.G.G.H.G.G.G.H.G.G.G.H.G.H.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.H.G.G.G.G.G.G.G.G.G.G.G.G.G.G.H.H.G.G.G.H.G.H.G.G.G.G.G.G.G.G.G.G.G.G.Z.G.G.G.G.G.G.G.G.G.H.G.G.G.G.G.G.G.G.G.G.G.G.G.H.G.G.G.H.G.G.G.G.G.H.G.G.G.G.G.G.G.G.G.G.H.G.G.G.G.G.G.G.G.G.G.G.G.G.G.H.G.G.G.G.G.G.H.G.G.G.G.G.G.G.H.G.H.G.G.H.G.G.H.G.G.G.G.G.G.G.G.G.G.G.G.Z.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.H.G.G.G.G.H.G.G.G.G.G.H.G.G.H.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.H.G.G.G.G.G.G.G.G.G.G.G.G.G.G.H.G.G.G.G.H.G.G.H.G.G.G.G.G.G.G.G.G.G.G.G.Z.G.G.G.G.G.G.G.G.G.H.G.G.G.G.G.G.G.H.G.G.H.G.G.G.G.H.H.G.G.H.G.H.G.H.G.G.G.G.G.G.G.G.G.G.H.G.G.G.G.G.G.G.G.G.G.G.G.G.G.H.G.G.G.G.G.G.H.G.G.G.G.G.G.G.H.G.H.G.G.H.G.G.H.G.G.G.G.G.G.G.G.G.G.G.G.Z.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.H.G.G.G.H.G.G.G.G.G.G.G.G.G.H.G.G.G.H.G.G.G.H.G.H.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.H.G.G.G.G.G.G.G.G.G.G.G.G.G.G.H.H.G.G.G.H.G.H.G.G.G.G.G.G.G.G.G.G.G.G.Z.G.G.G.G.G.G.G.G.G.H.G.G.G.G.G.G.G.G.G.G.G.G.G.H.G.G.G.G.G.G.G.G.G.", -"G.H.H.G.G.H.G.H.G.H.H.G.G.G.G.G.H.G.G.G.G.H.G.G.H.H.G.H.G.G.G.H.G.G.G.G.G.G.G.G.G.G.H.G.G.H.G.H.G.G.G.G.G.H.G.H.G.H.H.G.G.G.G.G.G.H.G.H.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.H.H.G.G.G.G.H.H.G.G.H.G.H.G.H.H.G.G.G.G.G.G.G.G.H.H.G.G.G.G.G.G.H.H.G.G.H.G.G.G.G.G.G.G.G.G.G.G.H.H.G.G.G.H.G.G.H.G.H.G.H.H.H.G.G.G.G.G.G.G.H.G.H.G.G.G.H.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.H.H.G.G.G.G.H.H.G.G.H.G.H.G.H.H.G.G.G.G.G.H.G.H.G.G.H.G.G.H.H.H.G.G.G.G.H.G.G.G.G.G.G.G.G.G.G.G.H.H.G.G.G.G.G.G.G.G.H.G.H.G.H.H.G.G.G.G.G.G.H.G.H.G.G.G.H.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.H.H.G.G.G.G.H.H.G.G.H.G.H.G.H.H.G.G.G.G.G.G.H.G.G.G.H.G.H.G.G.H.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.H.H.G.G.G.H.G.G.H.G.H.G.H.H.H.G.G.G.G.G.G.G.H.G.H.G.G.G.H.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.H.H.G.G.G.G.H.H.G.G.H.G.H.G.H.H.G.G.G.G.G.H.G.G.G.G.H.G.G.H.H.G.H.G.G.G.H.G.G.G.G.G.G.G.G.G.G.H.G.G.H.G.H.G.G.G.G.G.H.G.H.G.H.H.G.G.G.G.G.G.H.G.H.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.H.H.G.G.G.G.H.H.G.G.H.G.H.G.H.H.G.G.G.G.G.G.G.G.G.H.G.H.G.G.H.G.H.H.G.G.H.", -"G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.H.G.G.H.G.G.G.G.G.G.G.G.G.H.G.G.H.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.H.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.H.G.G.H.H.G.H.G.G.G.H.G.G.H.G.G.H.G.G.G.G.H.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.H.G.G.G.G.G.H.G.G.G.G.G.G.G.G.G.H.H.G.G.H.G.G.G.H.G.G.G.G.G.G.Z.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.H.G.G.G.G.G.G.G.H.G.G.G.H.G.G.H.G.G.G.G.H.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.H.G.G.G.G.G.G.G.G.G.H.G.G.H.G.H.G.G.H.H.G.G.G.G.G.Z.G.G.G.H.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.H.G.G.G.G.H.G.G.H.G.G.G.H.G.G.H.G.G.G.G.H.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.H.G.G.H.H.G.G.H.G.G.G.H.G.G.G.G.G.G.Z.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.H.G.G.G.G.G.G.G.H.G.G.G.H.G.G.H.G.G.G.G.H.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.H.G.G.H.G.G.G.G.G.G.G.G.G.H.G.G.H.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.H.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.H.G.G.H.H.G.H.G.G.G.H.G.G.H.G.G.H.G.G.G.G.H.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.H.G.G.H.G.G.G.G.G.G.G.G.G.G.G.G.", -"G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.", -"G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.", -"G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.", -"G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.", -"G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.", -"G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.", -"G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.", -"G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G.G." -}; diff --git a/sequencer/instruments/Default.inst b/sequencer/instruments/Default.inst deleted file mode 100644 index af358b6..0000000 --- a/sequencer/instruments/Default.inst +++ /dev/null @@ -1,13 +0,0 @@ -"Kick", 36, 100 -"Snare", 38, 100 -"Closed Hat", 42, 80 -"Open Hat", 46, 80 -"Rim Shot", 37, 100 -"Ride", 51, 80 -"Crash", 49, 80 -"Hi Tom", 48, 100 -"Mid Tom", 45, 100 -"Low Tom", 41, 100 -"Hi Conga", 62, 80 -"Low Conga", 63, 80 -"Timbale", 65, 80 diff --git a/sequencer/instruments/GM-Drum.inst b/sequencer/instruments/GM-Drum.inst deleted file mode 100644 index dce977d..0000000 --- a/sequencer/instruments/GM-Drum.inst +++ /dev/null @@ -1,44 +0,0 @@ -"Bass Drum 1", 36, 100 -"Side Stick", 37, 80 -"Acoustic Snare", 38, 100 -"Hand Clap", 39, 80 -"Electric Snare", 40, 100 -"Low Floor Tom", 41, 100 -"Closed Hi-Hat", 42, 80 -"High Floor Tom", 43, 100 -"Pedal Hi-Hat", 44, 80 -"Low Tom", 45, 100 -"Open Hi-Hat", 46, 64 -"Low-Mid Tom", 47, 90 -"Hi-Mid Tom", 48, 90 -"Crash Cymbal 1", 49, 80 -"High Tom", 50, 100 -"Ride Cymbal 1", 51, 75 -"Chinese Cymbal", 52, 75 -"Ride Bell", 53, 75 -"Tambourine", 54, 64 -"Splash Cymbal", 55, 64 -"Cowbell", 56, 64 -"Crash Cymbal 2", 57, 64 -"Hi Bongo", 60, 100 -"Low Bongo", 61, 100 -"Mute Hi Conga", 62, 80 -"Open Hi Conga", 63, 100 -"Low Conga", 64, 100 -"High Timbale", 65, 80 -"Low Timbale", 66, 80 -"High Agogo", 67, 64 -"Low Agogo", 68, 64 -"Cabasa", 69, 64 -"Maracas", 70, 70 -"Short Whistle", 71, 64 -"Long Whistle", 72, 64 -"Short Guiro", 73, 64 -"Long Guiro", 74, 64 -"Claves", 75, 80 -"Hi Wood Block", 76, 80 -"Low Wood Block", 77, 80 -"Mute Cuica", 78, 64 -"Open Cuica", 79, 64 -"Mute Triangle", 80, 64 -"Open Triangle", 81, 64 diff --git a/sequencer/instruments/GS-Brush.inst b/sequencer/instruments/GS-Brush.inst deleted file mode 100644 index f7195b8..0000000 --- a/sequencer/instruments/GS-Brush.inst +++ /dev/null @@ -1,61 +0,0 @@ -"High Q", 27, 100 -"Slap", 28, 100 -"Scratch Push", 29, 100 -"Scratch Pull", 30, 100 -"Sticks", 31, 100 -"Square Click", 32, 100 -"Metronome Click", 33, 100 -"Metronome Bell", 34, 100 -"Acoustic Bass Drum", 35, 100 -"Bass Drum 1", 36, 100 -"Side Stick", 37, 100 -"Brush Tap", 38, 100 -"Brush Slap", 39, 100 -"Brush Swirl", 40, 100 -"Low Floor Tom", 41, 100 -"Closed Hi-Hat", 42, 100 -"High Floor Tom", 43, 100 -"Pedal Hi-Hat", 44, 100 -"Low Tom", 45, 100 -"Open Hi-Hat", 46, 100 -"Low-Mid Tom", 47, 100 -"Hi-Mid Tom", 48, 100 -"Crash Cymbal 1", 49, 100 -"High Tom", 50, 100 -"Ride Cymbal 1", 51, 100 -"Chinese Cymbal", 52, 100 -"Ride Bell", 53, 100 -"Tambourine", 54, 100 -"Splash Cymbal", 55, 100 -"Cowbell", 56, 100 -"Crash Cymbal 2", 57, 100 -"Vibraslap", 58, 100 -"Ride Cymbal 2", 59, 100 -"Hi Bongo", 60, 100 -"Low Bongo", 61, 100 -"Mute Hi Conga", 62, 100 -"Open Hi Conga", 63, 100 -"Low Conga", 64, 100 -"High Timbale", 65, 100 -"Low Timbale", 66, 100 -"High Agogo", 67, 100 -"Low Agogo", 68, 100 -"Cabasa", 69, 100 -"Maracas", 70, 100 -"Short Whistle", 71, 100 -"Long Whistle", 72, 100 -"Short Guiro", 73, 100 -"Long Guiro", 74, 100 -"Claves", 75, 100 -"Hi Wood Block", 76, 100 -"Low Wood Block", 77, 100 -"Mute Cuica", 78, 100 -"Open Cuica", 79, 100 -"Mute Triangle", 80, 100 -"Open Triangle", 81, 100 -"Shaker", 82, 100 -"Jungle Bell", 83, 100 -"Belltree", 84, 100 -"Castanets", 85, 100 -"Mute Surdo", 86, 100 -"Open Surdo", 87, 100 diff --git a/sequencer/instruments/GS-Electronic.inst b/sequencer/instruments/GS-Electronic.inst deleted file mode 100644 index 2c378ea..0000000 --- a/sequencer/instruments/GS-Electronic.inst +++ /dev/null @@ -1,61 +0,0 @@ -"High Q", 27, 100 -"Slap", 28, 100 -"Scratch Push", 29, 100 -"Scratch Pull", 30, 100 -"Sticks", 31, 100 -"Square Click", 32, 100 -"Metronome Click", 33, 100 -"Metronome Bell", 34, 100 -"Acoustic Bass Drum", 35, 100 -"Elec BD", 36, 100 -"Side Stick", 37, 100 -"Elec SD", 38, 100 -"Hand Clap", 39, 100 -"Gated SD", 40, 100 -"Elec Low Tom 2", 41, 100 -"Closed Hi-Hat", 42, 100 -"Elec Low Tom 1", 43, 100 -"Pedal Hi-Hat", 44, 100 -"Elec Mid Tom 2", 45, 100 -"Open Hi-Hat", 46, 100 -"Elec Mid Tom 1", 47, 100 -"Elec Hi Tom 2", 48, 100 -"Crash Cymbal 1", 49, 100 -"Elec High Tom 1", 50, 100 -"Ride Cymbal 1", 51, 100 -"Reverse Cymbal", 52, 100 -"Ride Bell", 53, 100 -"Tambourine", 54, 100 -"Splash Cymbal", 55, 100 -"Cowbell", 56, 100 -"Crash Cymbal 2", 57, 100 -"Vibraslap", 58, 100 -"Ride Cymbal 2", 59, 100 -"Hi Bongo", 60, 100 -"Low Bongo", 61, 100 -"Mute Hi Conga", 62, 100 -"Open Hi Conga", 63, 100 -"Low Conga", 64, 100 -"High Timbale", 65, 100 -"Low Timbale", 66, 100 -"High Agogo", 67, 100 -"Low Agogo", 68, 100 -"Cabasa", 69, 100 -"Maracas", 70, 100 -"Short Whistle", 71, 100 -"Long Whistle", 72, 100 -"Short Guiro", 73, 100 -"Long Guiro", 74, 100 -"Claves", 75, 100 -"Hi Wood Block", 76, 100 -"Low Wood Block", 77, 100 -"Mute Cuica", 78, 100 -"Open Cuica", 79, 100 -"Mute Triangle", 80, 100 -"Open Triangle", 81, 100 -"Shaker", 82, 100 -"Jungle Bell", 83, 100 -"Belltree", 84, 100 -"Castanets", 85, 100 -"Mute Surdo", 86, 100 -"Open Surdo", 87, 100 diff --git a/sequencer/instruments/GS-Jazz.inst b/sequencer/instruments/GS-Jazz.inst deleted file mode 100644 index 96368f3..0000000 --- a/sequencer/instruments/GS-Jazz.inst +++ /dev/null @@ -1,61 +0,0 @@ -"High Q", 27, 100 -"Slap", 28, 100 -"Scratch Push", 29, 100 -"Scratch Pull", 30, 100 -"Sticks", 31, 100 -"Square Click", 32, 100 -"Metronome Click", 33, 100 -"Metronome Bell", 34, 100 -"Acoustic Bass Drum", 35, 100 -"Bass Drum 1", 36, 100 -"Side Stick", 37, 100 -"Acoustic Snare", 38, 100 -"Hand Clap", 39, 100 -"Electric Snare", 40, 100 -"Low Floor Tom", 41, 100 -"Closed Hi-Hat", 42, 100 -"High Floor Tom", 43, 100 -"Pedal Hi-Hat", 44, 100 -"Low Tom", 45, 100 -"Open Hi-Hat", 46, 100 -"Low-Mid Tom", 47, 100 -"Hi-Mid Tom", 48, 100 -"Crash Cymbal 1", 49, 100 -"High Tom", 50, 100 -"Ride Cymbal 1", 51, 100 -"Chinese Cymbal", 52, 100 -"Ride Bell", 53, 100 -"Tambourine", 54, 100 -"Splash Cymbal", 55, 100 -"Cowbell", 56, 100 -"Crash Cymbal 2", 57, 100 -"Vibraslap", 58, 100 -"Ride Cymbal 2", 59, 100 -"Hi Bongo", 60, 100 -"Low Bongo", 61, 100 -"Mute Hi Conga", 62, 100 -"Open Hi Conga", 63, 100 -"Low Conga", 64, 100 -"High Timbale", 65, 100 -"Low Timbale", 66, 100 -"High Agogo", 67, 100 -"Low Agogo", 68, 100 -"Cabasa", 69, 100 -"Maracas", 70, 100 -"Short Whistle", 71, 100 -"Long Whistle", 72, 100 -"Short Guiro", 73, 100 -"Long Guiro", 74, 100 -"Claves", 75, 100 -"Hi Wood Block", 76, 100 -"Low Wood Block", 77, 100 -"Mute Cuica", 78, 100 -"Open Cuica", 79, 100 -"Mute Triangle", 80, 100 -"Open Triangle", 81, 100 -"Shaker", 82, 100 -"Jungle Bell", 83, 100 -"Belltree", 84, 100 -"Castanets", 85, 100 -"Mute Surdo", 86, 100 -"Open Surdo", 87, 100 diff --git a/sequencer/instruments/GS-Orchestra.inst b/sequencer/instruments/GS-Orchestra.inst deleted file mode 100644 index 9edecea..0000000 --- a/sequencer/instruments/GS-Orchestra.inst +++ /dev/null @@ -1,62 +0,0 @@ -"Closed HH", 27, 100 -"Pedal HH", 28, 100 -"Open HH", 29, 100 -"Hide Cymbal", 30, 100 -"Sticks", 31, 100 -"Square Click", 32, 100 -"Metronome Click", 33, 100 -"Metronome Bell", 34, 100 -"Concert BD2", 35, 100 -"Concert BD1", 36, 100 -"Side Stick", 37, 100 -"Concert SD", 38, 100 -"Castanets", 39, 100 -"Concert SD", 40, 100 -"Timpani F", 41, 100 -"Timpani F#", 42, 100 -"Timpani G", 43, 100 -"Timpani G#", 44, 100 -"Timpani A", 45, 100 -"Timpani A#", 46, 100 -"Timpani B", 47, 100 -"Timpani c", 48, 100 -"Timpani c#", 49, 100 -"Timpani d", 50, 100 -"Timpani d#", 51, 100 -"Timpani e", 52, 100 -"Timpani f", 53, 100 -"Tambourine", 54, 100 -"Splash Cymbal", 55, 100 -"Cowbell", 56, 100 -"Concert Cymbal 2", 57, 100 -"Vibraslap", 58, 100 -"Concert Cymbal 1", 59, 100 -"Hi Bongo", 60, 100 -"Low Bongo", 61, 100 -"Mute Hi Conga", 62, 100 -"Open Hi Conga", 63, 100 -"Low Conga", 64, 100 -"High Timbale", 65, 100 -"Low Timbale", 66, 100 -"High Agogo", 67, 100 -"Low Agogo", 68, 100 -"Cabasa", 69, 100 -"Maracas", 70, 100 -"Short Whistle", 71, 100 -"Long Whistle", 72, 100 -"Short Guiro", 73, 100 -"Long Guiro", 74, 100 -"Claves", 75, 100 -"Hi Wood Block", 76, 100 -"Low Wood Block", 77, 100 -"Mute Cuica", 78, 100 -"Open Cuica", 79, 100 -"Mute Triangle", 80, 100 -"Open Triangle", 81, 100 -"Shaker", 82, 100 -"Jungle Bell", 83, 100 -"Belltree", 84, 100 -"Castanets", 85, 100 -"Mute Surdo", 86, 100 -"Open Surdo", 87, 100 -"Applause", 88, 100 diff --git a/sequencer/instruments/GS-Power.inst b/sequencer/instruments/GS-Power.inst deleted file mode 100644 index 11bf902..0000000 --- a/sequencer/instruments/GS-Power.inst +++ /dev/null @@ -1,61 +0,0 @@ -"High Q", 27, 100 -"Slap", 28, 100 -"Scratch Push", 29, 100 -"Scratch Pull", 30, 100 -"Sticks", 31, 100 -"Square Click", 32, 100 -"Metronome Click", 33, 100 -"Metronome Bell", 34, 100 -"Acoustic Bass Drum", 35, 100 -"MONDO Kick", 36, 100 -"Side Stick", 37, 100 -"Gated SD", 38, 100 -"Hand Clap", 39, 100 -"Electric Snare", 40, 100 -"Room Low Tom 2", 41, 100 -"Closed Hi-Hat", 42, 100 -"Room Low Tom 1", 43, 100 -"Pedal Hi-Hat", 44, 100 -"Room Mid Tom 2", 45, 100 -"Open Hi-Hat", 46, 100 -"Room Mid Tom 1", 47, 100 -"Room Hi Tom 2", 48, 100 -"Crash Cymbal 1", 49, 100 -"Room High Tom 1", 50, 100 -"Ride Cymbal 1", 51, 100 -"Chinese Cymbal", 52, 100 -"Ride Bell", 53, 100 -"Tambourine", 54, 100 -"Splash Cymbal", 55, 100 -"Cowbell", 56, 100 -"Crash Cymbal 2", 57, 100 -"Vibraslap", 58, 100 -"Ride Cymbal 2", 59, 100 -"Hi Bongo", 60, 100 -"Low Bongo", 61, 100 -"Mute Hi Conga", 62, 100 -"Open Hi Conga", 63, 100 -"Low Conga", 64, 100 -"High Timbale", 65, 100 -"Low Timbale", 66, 100 -"High Agogo", 67, 100 -"Low Agogo", 68, 100 -"Cabasa", 69, 100 -"Maracas", 70, 100 -"Short Whistle", 71, 100 -"Long Whistle", 72, 100 -"Short Guiro", 73, 100 -"Long Guiro", 74, 100 -"Claves", 75, 100 -"Hi Wood Block", 76, 100 -"Low Wood Block", 77, 100 -"Mute Cuica", 78, 100 -"Open Cuica", 79, 100 -"Mute Triangle", 80, 100 -"Open Triangle", 81, 100 -"Shaker", 82, 100 -"Jungle Bell", 83, 100 -"Belltree", 84, 100 -"Castanets", 85, 100 -"Mute Surdo", 86, 100 -"Open Surdo", 87, 100 diff --git a/sequencer/instruments/GS-Room.inst b/sequencer/instruments/GS-Room.inst deleted file mode 100644 index 454fa36..0000000 --- a/sequencer/instruments/GS-Room.inst +++ /dev/null @@ -1,61 +0,0 @@ -"High Q", 27, 100 -"Slap", 28, 100 -"Scratch Push", 29, 100 -"Scratch Pull", 30, 100 -"Sticks", 31, 100 -"Square Click", 32, 100 -"Metronome Click", 33, 100 -"Metronome Bell", 34, 100 -"Acoustic Bass Drum", 35, 100 -"Kick Drum 1", 36, 100 -"Side Stick", 37, 100 -"Acoustic Snare", 38, 100 -"Hand Clap", 39, 100 -"Electric Snare", 40, 100 -"Room Low Tom 2", 41, 100 -"Closed Hi-Hat", 42, 100 -"Room Low Tom 1", 43, 100 -"Pedal Hi-Hat", 44, 100 -"Room Mid Tom 2", 45, 100 -"Open Hi-Hat", 46, 100 -"Room Mid Tom 1", 47, 100 -"Room Hi Tom 2", 48, 100 -"Crash Cymbal 1", 49, 100 -"Room High Tom 1", 50, 100 -"Ride Cymbal 1", 51, 100 -"Chinese Cymbal", 52, 100 -"Ride Bell", 53, 100 -"Tambourine", 54, 100 -"Splash Cymbal", 55, 100 -"Cowbell", 56, 100 -"Crash Cymbal 2", 57, 100 -"Vibraslap", 58, 100 -"Ride Cymbal 2", 59, 100 -"Hi Bongo", 60, 100 -"Low Bongo", 61, 100 -"Mute Hi Conga", 62, 100 -"Open Hi Conga", 63, 100 -"Low Conga", 64, 100 -"High Timbale", 65, 100 -"Low Timbale", 66, 100 -"High Agogo", 67, 100 -"Low Agogo", 68, 100 -"Cabasa", 69, 100 -"Maracas", 70, 100 -"Short Whistle", 71, 100 -"Long Whistle", 72, 100 -"Short Guiro", 73, 100 -"Long Guiro", 74, 100 -"Claves", 75, 100 -"Hi Wood Block", 76, 100 -"Low Wood Block", 77, 100 -"Mute Cuica", 78, 100 -"Open Cuica", 79, 100 -"Mute Triangle", 80, 100 -"Open Triangle", 81, 100 -"Shaker", 82, 100 -"Jungle Bell", 83, 100 -"Belltree", 84, 100 -"Castanets", 85, 100 -"Mute Surdo", 86, 100 -"Open Surdo", 87, 100 diff --git a/sequencer/instruments/GS-SFX.inst b/sequencer/instruments/GS-SFX.inst deleted file mode 100644 index a404b30..0000000 --- a/sequencer/instruments/GS-SFX.inst +++ /dev/null @@ -1,58 +0,0 @@ -"High Q", 27, 100 -"Slap", 28, 100 -"Scratch Push", 29, 100 -"Scratch Pull", 30, 100 -"Sticks", 31, 100 -"Square Click", 32, 100 -"Metronome Click", 33, 100 -"Metronome Bell", 34, 100 -"Acoustic Bass Drum", 35, 100 -"Bass Drum 1", 36, 100 -"Side Stick", 37, 100 -"Acoustic Snare", 38, 100 -"High Q", 39, 100 -"Slap", 40, 100 -"Scratch Push", 41, 100 -"Scratch Pull", 42, 100 -"Sticks", 43, 100 -"Sqare Click", 44, 100 -"Metronome Click", 45, 100 -"Metronome Bell", 46, 100 -"Guitar sld fing.", 47, 100 -"Guitar cutt down", 48, 100 -"Guitar cutt up", 49, 100 -"String slap", 50, 100 -"Fl. Key Click", 51, 100 -"Laughing", 52, 100 -"Screamming", 53, 100 -"Punch", 54, 100 -"Heart Beat", 55, 100 -"Footsteps 1", 56, 100 -"Footsteps 2", 57, 100 -"Aplause", 58, 100 -"Door Creaking", 59, 100 -"Door", 60, 100 -"Scratch", 61, 100 -"Windchime", 62, 100 -"Car-Engine", 63, 100 -"Car-Stop", 64, 100 -"Car-Pass", 65, 100 -"Car-Crash", 66, 100 -"Siren", 67, 100 -"Train", 68, 100 -"Jetplane", 69, 100 -"Helicopter", 70, 100 -"Starship", 71, 100 -"Gun Shot", 72, 100 -"Machine Gun", 73, 100 -"Lasergun", 74, 100 -"Explosion", 75, 100 -"Dog", 76, 100 -"Horse-Gallop", 77, 100 -"Birds", 78, 100 -"Rain", 79, 100 -"Thunder", 80, 100 -"Wind", 81, 100 -"Seashore", 82, 100 -"Stream", 83, 100 -"Bubble", 84, 100 diff --git a/sequencer/instruments/GS-Standard.inst b/sequencer/instruments/GS-Standard.inst deleted file mode 100644 index 96368f3..0000000 --- a/sequencer/instruments/GS-Standard.inst +++ /dev/null @@ -1,61 +0,0 @@ -"High Q", 27, 100 -"Slap", 28, 100 -"Scratch Push", 29, 100 -"Scratch Pull", 30, 100 -"Sticks", 31, 100 -"Square Click", 32, 100 -"Metronome Click", 33, 100 -"Metronome Bell", 34, 100 -"Acoustic Bass Drum", 35, 100 -"Bass Drum 1", 36, 100 -"Side Stick", 37, 100 -"Acoustic Snare", 38, 100 -"Hand Clap", 39, 100 -"Electric Snare", 40, 100 -"Low Floor Tom", 41, 100 -"Closed Hi-Hat", 42, 100 -"High Floor Tom", 43, 100 -"Pedal Hi-Hat", 44, 100 -"Low Tom", 45, 100 -"Open Hi-Hat", 46, 100 -"Low-Mid Tom", 47, 100 -"Hi-Mid Tom", 48, 100 -"Crash Cymbal 1", 49, 100 -"High Tom", 50, 100 -"Ride Cymbal 1", 51, 100 -"Chinese Cymbal", 52, 100 -"Ride Bell", 53, 100 -"Tambourine", 54, 100 -"Splash Cymbal", 55, 100 -"Cowbell", 56, 100 -"Crash Cymbal 2", 57, 100 -"Vibraslap", 58, 100 -"Ride Cymbal 2", 59, 100 -"Hi Bongo", 60, 100 -"Low Bongo", 61, 100 -"Mute Hi Conga", 62, 100 -"Open Hi Conga", 63, 100 -"Low Conga", 64, 100 -"High Timbale", 65, 100 -"Low Timbale", 66, 100 -"High Agogo", 67, 100 -"Low Agogo", 68, 100 -"Cabasa", 69, 100 -"Maracas", 70, 100 -"Short Whistle", 71, 100 -"Long Whistle", 72, 100 -"Short Guiro", 73, 100 -"Long Guiro", 74, 100 -"Claves", 75, 100 -"Hi Wood Block", 76, 100 -"Low Wood Block", 77, 100 -"Mute Cuica", 78, 100 -"Open Cuica", 79, 100 -"Mute Triangle", 80, 100 -"Open Triangle", 81, 100 -"Shaker", 82, 100 -"Jungle Bell", 83, 100 -"Belltree", 84, 100 -"Castanets", 85, 100 -"Mute Surdo", 86, 100 -"Open Surdo", 87, 100 diff --git a/sequencer/instruments/GS-TR-808.inst b/sequencer/instruments/GS-TR-808.inst deleted file mode 100644 index e47460d..0000000 --- a/sequencer/instruments/GS-TR-808.inst +++ /dev/null @@ -1,61 +0,0 @@ -"High Q", 27, 100 -"Slap", 28, 100 -"Scratch Push", 29, 100 -"Scratch Pull", 30, 100 -"Sticks", 31, 100 -"Square Click", 32, 100 -"Metronome Click", 33, 100 -"Metronome Bell", 34, 100 -"Acoustic Bass Drum", 35, 100 -"808 BD", 36, 100 -"808 Rim Shot", 37, 100 -"808 Snare Drum", 38, 100 -"Hand Clap", 39, 100 -"Gated SD", 40, 100 -"808 Low Tom 2", 41, 100 -"808 CHH", 42, 100 -"808 Low Tom 1", 43, 100 -"808 CHH", 44, 100 -"808 Mid Tom 2", 45, 100 -"808 OHH", 46, 100 -"808 Mid Tom 1", 47, 100 -"808 Hi Tom 2", 48, 100 -"808 Cymbal", 49, 100 -"808 High Tom 1", 50, 100 -"Ride Cymbal 1", 51, 100 -"Reverse Cymbal", 52, 100 -"Ride Bell", 53, 100 -"Tambourine", 54, 100 -"Splash Cymbal", 55, 100 -"Cowbell", 56, 100 -"Crash Cymbal 2", 57, 100 -"Vibraslap", 58, 100 -"Ride Cymbal 2", 59, 100 -"Hi Bongo", 60, 100 -"Low Bongo", 61, 100 -"808 Hi Conga", 62, 100 -"808 Mid Conga", 63, 100 -"808 Low Conga", 64, 100 -"High Timbale", 65, 100 -"Low Timbale", 66, 100 -"High Agogo", 67, 100 -"Low Agogo", 68, 100 -"Cabasa", 69, 100 -"808 Maracas", 70, 100 -"Short Whistle", 71, 100 -"Long Whistle", 72, 100 -"Short Guiro", 73, 100 -"Long Guiro", 74, 100 -"808 Claves", 75, 100 -"Hi Wood Block", 76, 100 -"Low Wood Block", 77, 100 -"Mute Cuica", 78, 100 -"Open Cuica", 79, 100 -"Mute Triangle", 80, 100 -"Open Triangle", 81, 100 -"Shaker", 82, 100 -"Jungle Bell", 83, 100 -"Belltree", 84, 100 -"Castanets", 85, 100 -"Mute Surdo", 86, 100 -"Open Surdo", 87, 100 diff --git a/sequencer/non-sequencer.desktop.in b/sequencer/non-sequencer.desktop.in deleted file mode 100644 index f3a3c8e..0000000 --- a/sequencer/non-sequencer.desktop.in +++ /dev/null @@ -1,9 +0,0 @@ -[Desktop Entry] -Name=Non Sequencer -Comment=Realtime MIDI sequencer for JACK MIDI -Comment[fr]=Séquenceur MIDI temps-réel pour JACK MIDI -Exec=@BIN_PATH@/non-sequencer -Terminal=false -Type=Application -Icon=non-sequencer -Categories=AudioVideo;Audio;Midi; diff --git a/sequencer/src/NSM.C b/sequencer/src/NSM.C deleted file mode 100644 index 8d4c26e..0000000 --- a/sequencer/src/NSM.C +++ /dev/null @@ -1,134 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2012 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "NSM.H" - - -#include -#include -#include -#include - -#include "common.h" -#include "config.h" -#include "non.H" -#include "jack.H" -#include "transport.H" - -#include "gui/ui.H" - -#define OSC_INTERVAL 0.2f - -extern Transport transport; -extern char *instance_name; - -extern NSM_Client *nsm; - -extern UI *ui; - -NSM_Client::NSM_Client ( ) -{ - project_filename = 0; -} - -int command_open ( const char *name, const char *display_name, const char *client_id, char **out_msg ); -int command_save ( char **out_msg ); - - -int -NSM_Client::command_save ( char **out_msg ) -{ - save_song( nsm->project_filename ); - return ERR_OK; -} - -int -NSM_Client::command_open ( const char *name, const char *display_name, const char *client_id, char **out_msg ) -{ - if ( transport.rolling ) - { - *out_msg = strdup( "Cannot open while transport is running." ); - - return ERR_NOT_NOW; - } - - if ( song.dirty() ) - { - *out_msg = strdup( "Song has unsaved changes!" ); - - return ERR_UNSAVED_CHANGES; - } - - if ( instance_name ) - free( instance_name ); - - instance_name = strdup( client_id ); - - if ( ! midi_is_active() ) - { - setup_jack(); - } - else - { - midi_all_sound_off(); - midi_shutdown(); - setup_jack(); - } - - char *new_filename; - - asprintf( &new_filename, "%s.non", name ); - - struct stat st; - - if ( 0 == stat( new_filename, &st ) ) - { - if ( ! load_song( new_filename ) ) - { - *out_msg = strdup( "Could not open file" ); - return ERR_GENERAL; - } - } - else - { - save_song( new_filename ); - } - - if ( nsm->project_filename ) - free( nsm->project_filename ); - - nsm->project_filename = new_filename; - - return ERR_OK; -} - -void -NSM_Client::command_active ( bool b ) -{ - if ( b ) - { - ui->sm_indicator->value( 1 ); - ui->sm_indicator->tooltip( session_manager_name() ); - } - else - { - ui->sm_indicator->tooltip( NULL ); - ui->sm_indicator->value( 0 ); - } -} diff --git a/sequencer/src/NSM.H b/sequencer/src/NSM.H deleted file mode 100644 index 0f787d8..0000000 --- a/sequencer/src/NSM.H +++ /dev/null @@ -1,41 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2012 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include "NSM/Client.H" - -class NSM_Client : public NSM::Client -{ - - char *project_filename; - -public: - - NSM_Client ( ); - ~NSM_Client ( ) { }; - -protected: - - int command_open ( const char *name, const char *display_name, const char *client_id, char **out_msg ); - int command_save ( char **out_msg ); - int command_quit ( char **out_msg ); - - void command_active ( bool ); -}; diff --git a/sequencer/src/NSM/Client.C b/sequencer/src/NSM/Client.C deleted file mode 100644 index fae4b9c..0000000 --- a/sequencer/src/NSM/Client.C +++ /dev/null @@ -1,298 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2012 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "../debug.h" -#include "Client.H" -#include -#include -#include -#include - -#pragma GCC diagnostic ignored "-Wunused-parameter" - -namespace NSM -{ - -/************************/ -/* OSC Message Handlers */ -/************************/ - -#undef OSC_REPLY -#undef OSC_REPLY_ERR - -#define OSC_REPLY( value ) lo_send_from( ((NSM::Client*)user_data)->nsm_addr, ((NSM::Client*)user_data)->_server, LO_TT_IMMEDIATE, "/reply", "ss", path, value ) - -#define OSC_REPLY_ERR( errcode, value ) lo_send_from( ((NSM::Client*)user_data)->nsm_addr, ((NSM::Client*)user_data)->_server, LO_TT_IMMEDIATE, "/error", "sis", path, errcode, value ) - - Client::Client ( ) - { - nsm_addr = 0; - nsm_client_id = 0; - _session_manager_name = 0; - nsm_is_active = false; - _server = 0; - _st = 0; - } - - Client::~Client ( ) - { - if ( _st ) - stop(); - - if ( _st ) - lo_server_thread_free( _st ); - else - lo_server_free ( _server ); - } - - void - Client::announce ( const char *application_name, const char *capabilities, const char *process_name ) - { - MESSAGE( "Announcing to NSM" ); - - lo_address to = lo_address_new_from_url( nsm_url ); - - if ( ! to ) - { - MESSAGE( "Bad address" ); - return; - } - - int pid = (int)getpid(); - - lo_send_from( to, _server, LO_TT_IMMEDIATE, "/nsm/server/announce", "sssiii", - application_name, - capabilities, - process_name, - 1, /* api_major_version */ - 0, /* api_minor_version */ - pid ); - - lo_address_free( to ); - } - - void - Client::progress ( float p ) - { - if ( nsm_is_active ) - { - lo_send_from( nsm_addr, _server, LO_TT_IMMEDIATE, "/nsm/client/progress", "f", p ); - } - } - - void - Client::is_dirty ( void ) - { - if ( nsm_is_active ) - { - lo_send_from( nsm_addr, _server, LO_TT_IMMEDIATE, "/nsm/client/is_dirty", "" ); - } - } - - void - Client::is_clean ( void ) - { - if ( nsm_is_active ) - { - lo_send_from( nsm_addr, _server, LO_TT_IMMEDIATE, "/nsm/client/is_clean", "" ); - } - } - - void - Client::message ( int priority, const char *msg ) - { - if ( nsm_is_active ) - { - lo_send_from( nsm_addr, _server, LO_TT_IMMEDIATE, "/nsm/client/message", "is", priority, msg ); - } - } - - - void - Client::broadcast ( lo_message msg ) - { - if ( nsm_is_active ) - { - lo_send_message_from( nsm_addr, _server, "/nsm/server/broadcast", msg ); - } - } - - void - Client::check ( int timeout ) - { - if ( lo_server_wait( _server, timeout ) ) - while ( lo_server_recv_noblock( _server, 0 ) ) {} - } - - void - Client::start ( ) - { - lo_server_thread_start( _st ); - } - - void - Client::stop ( ) - { - lo_server_thread_stop( _st ); - } - - int - Client::init ( const char *nsm_url ) - { - this->nsm_url = nsm_url; - - lo_address addr = lo_address_new_from_url( nsm_url ); - int proto = lo_address_get_protocol( addr ); - lo_address_free( addr ); - - _server = lo_server_new_with_proto( NULL, proto, NULL ); - - if ( ! _server ) - return -1; - - lo_server_add_method( _server, "/error", "sis", &Client::osc_error, this ); - lo_server_add_method( _server, "/reply", "ssss", &Client::osc_announce_reply, this ); - lo_server_add_method( _server, "/nsm/client/open", "sss", &Client::osc_open, this ); - lo_server_add_method( _server, "/nsm/client/save", "", &Client::osc_save, this ); - lo_server_add_method( _server, "/nsm/client/session_is_loaded", "", &Client::osc_session_is_loaded, this ); - lo_server_add_method( _server, NULL, NULL, &Client::osc_broadcast, this ); - - return 0; - } - - int - Client::init_thread ( const char *nsm_url ) - { - this->nsm_url = nsm_url; - - lo_address addr = lo_address_new_from_url( nsm_url ); - int proto = lo_address_get_protocol( addr ); - lo_address_free( addr ); - - _st = lo_server_thread_new_with_proto( NULL, proto, NULL ); - _server = lo_server_thread_get_server( _st ); - - if ( ! _server || ! _st ) - return -1; - - lo_server_thread_add_method( _st, "/error", "sis", &Client::osc_error, this ); - lo_server_thread_add_method( _st, "/reply", "ssss", &Client::osc_announce_reply, this ); - lo_server_thread_add_method( _st, "/nsm/client/open", "sss", &Client::osc_open, this ); - lo_server_thread_add_method( _st, "/nsm/client/save", "", &Client::osc_save, this ); - lo_server_thread_add_method( _st, "/nsm/client/session_is_loaded", "", &Client::osc_session_is_loaded, this ); - lo_server_thread_add_method( _st, NULL, NULL, &Client::osc_broadcast, this ); - - return 0; - } - -/************************/ -/* OSC Message Handlers */ -/************************/ - - int - Client::osc_broadcast ( const char *path, const char *types, lo_arg **argv, int argc, lo_message msg, void *user_data ) - { - return ((NSM::Client*)user_data)->command_broadcast( path, msg ); - } - - int - Client::osc_save ( const char *path, const char *types, lo_arg **argv, int argc, lo_message msg, void *user_data ) - { - char *out_msg = NULL; - - int r = ((NSM::Client*)user_data)->command_save(&out_msg); - - if ( r ) - OSC_REPLY_ERR( r, ( out_msg ? out_msg : "") ); - else - OSC_REPLY( "OK" ); - - if ( out_msg ) - free( out_msg ); - - return 0; - } - - int - Client::osc_open ( const char *path, const char *types, lo_arg **argv, int argc, lo_message msg, void *user_data ) - { - char *out_msg = NULL; - - NSM::Client *nsm = (NSM::Client*)user_data; - - nsm->nsm_client_id = strdup( &argv[2]->s ); - - int r = ((NSM::Client*)user_data)->command_open( &argv[0]->s, &argv[1]->s, &argv[2]->s, &out_msg); - - if ( r ) - OSC_REPLY_ERR( r, ( out_msg ? out_msg : "") ); - else - OSC_REPLY( "OK" ); - - if ( out_msg ) - free( out_msg ); - - return 0; - } - - int - Client::osc_session_is_loaded ( const char *path, const char *types, lo_arg **argv, int argc, lo_message msg, void *user_data ) - { - NSM::Client *nsm = (NSM::Client*)user_data; - - nsm->command_session_is_loaded(); - - return 0; - } - - int - Client::osc_error ( const char *path, const char *types, lo_arg **argv, int argc, lo_message msg, void *user_data ) - { - if ( strcmp( &argv[0]->s, "/nsm/server/announce" ) ) - return -1; - - NSM::Client *nsm = (NSM::Client*)user_data; - - - WARNING( "Failed to register with NSM: %s", &argv[2]->s ); - nsm->nsm_is_active = false; - - nsm->command_active( nsm->nsm_is_active ); - - return 0; - } - - int - Client::osc_announce_reply ( const char *path, const char *types, lo_arg **argv, int argc, lo_message msg, void *user_data ) - { - if ( strcmp( &argv[0]->s, "/nsm/server/announce" ) ) - return -1; - - NSM::Client *nsm = (NSM::Client*)user_data; - - MESSAGE( "Successfully registered. NSM says: %s", &argv[1]->s ); - nsm->nsm_is_active = true; - nsm->_session_manager_name = strdup( &argv[2]->s ); - nsm->nsm_addr = lo_address_new_from_url( lo_address_get_url( lo_message_get_source( msg ) )); - - nsm->command_active( nsm->nsm_is_active ); - - return 0; - } -}; diff --git a/sequencer/src/NSM/Client.H b/sequencer/src/NSM/Client.H deleted file mode 100644 index f417944..0000000 --- a/sequencer/src/NSM/Client.H +++ /dev/null @@ -1,109 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2012 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include - -namespace NSM -{ - - class Client - { - - private: - - const char *nsm_url; - - lo_server _server; - lo_server_thread _st; - lo_address nsm_addr; - - bool nsm_is_active; - char *nsm_client_id; - char *_session_manager_name; - - public: - - enum - { - ERR_OK = 0, - ERR_GENERAL = -1, - ERR_INCOMPATIBLE_API = -2, - ERR_BLACKLISTED = -3, - ERR_LAUNCH_FAILED = -4, - ERR_NO_SUCH_FILE = -5, - ERR_NO_SESSION_OPEN = -6, - ERR_UNSAVED_CHANGES = -7, - ERR_NOT_NOW = -8 - }; - - Client ( ); - virtual ~Client ( ); - - bool is_active ( void ) { return nsm_is_active; } - - const char *session_manager_name ( void ) { return _session_manager_name; } - - /* Client->Server methods */ - void is_dirty ( void ); - void is_clean ( void ); - void progress ( float f ); - void message( int priority, const char *msg ); - void announce ( const char *appliction_name, const char *capabilities, const char *process_name ); - - void broadcast ( lo_message msg ); - - /* init without threading */ - int init ( const char *nsm_url ); - /* init with threading */ - int init_thread ( const char *nsm_url ); - - /* call this periodically to check for new messages */ - void check ( int timeout = 0 ); - - /* or call these to start and stop a thread (must do your own locking in handler!) */ - void start ( void ); - void stop ( void ); - - protected: - - /* Server->Client methods */ - virtual int command_open ( const char *name, const char *display_name, const char *client_id, char **out_msg ) = 0; - virtual int command_save ( char **out_msg ) = 0; - - virtual void command_active ( bool ) { } - - virtual void command_session_is_loaded ( void ) { } - - /* invoked when an unrecognized message is received. Should return 0 if you handled it, -1 otherwise. */ - virtual int command_broadcast ( const char *, lo_message ) { return -1; } - - private: - - /* osc handlers */ - static int osc_open ( const char *path, const char *types, lo_arg **argv, int argc, lo_message msg, void *user_data ); - static int osc_save ( const char *path, const char *types, lo_arg **argv, int argc, lo_message msg, void *user_data ); - static int osc_announce_reply ( const char *path, const char *types, lo_arg **argv, int argc, lo_message msg, void *user_data ); - static int osc_error ( const char *path, const char *types, lo_arg **argv, int argc, lo_message msg, void *user_data ); - static int osc_session_is_loaded ( const char *path, const char *types, lo_arg **argv, int argc, lo_message msg, void *user_data ); - static int osc_broadcast ( const char *path, const char *types, lo_arg **argv, int argc, lo_message msg, void *user_data ); - - }; -}; diff --git a/sequencer/src/canvas.C b/sequencer/src/canvas.C deleted file mode 100644 index ba3509a..0000000 --- a/sequencer/src/canvas.C +++ /dev/null @@ -1,1897 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2007-2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -/* This is a generic double-buffering, optimizing canvas interface to - grids (patterns and phrases). It draws only what is necessary to keep - the display up-to-date. Actual drawing functions are in draw.C */ -#include -#include - -#include "canvas.H" -#include "pattern.H" -#include "common.h" - -#include "non.H" -#include -#include -#include "gui/ui.H" -#include -#include - -using namespace MIDI; -extern UI *ui; - -extern Fl_Color velocity_colors[]; -const int ruler_height = 14; - - - - -class Canvas::Canvas_Panzoomer : public Fl_Panzoomer -{ - Fl_Offscreen backbuffer; - -public: - - Canvas_Panzoomer( int X, int Y,int W, int H, const char *L = 0 ) - : Fl_Panzoomer(X,Y,W,H,L) - { - backbuffer = 0; - } - - Canvas *canvas; - -private: - - static void draw_dash ( tick_t x, int y, tick_t l, int color, int selected, void *userdata ) - { - Canvas_Panzoomer *o = (Canvas_Panzoomer*)userdata; - - o->draw_dash( x,y,l,color,selected ); - } - - void draw_dash ( tick_t x, int y, tick_t w, int color, int selected ) const - { - if ( selected ) - color = FL_MAGENTA; - else - color = velocity_colors[ color ]; - - Canvas *c = canvas; - - double VS = (double)this->h() / c->m.maxh; - double HS = (double)this->w() / ( _xmax - _xmin ); - - y = c->ntr( y ); - - if ( y < 0 ) - return; - - y *= VS; - - fl_color( fl_color_average( color, FL_GRAY, 0.5 ) ); - - fl_rectf( - x * HS, - y, - (w * HS) + 0.5, - 1 * VS + 0.5 ); - } - -protected: - - void draw_background ( int X, int Y, int W, int H ) - { - - /* DMESSAGE( "%s%s%s%s%s%s", */ - /* damage() & FL_DAMAGE_CHILD ? "CHILD " : "", */ - /* damage() & FL_DAMAGE_ALL ? "ALL " : "", */ - /* damage() & FL_DAMAGE_USER1 ? "USER 1 ": "", */ - /* damage() & FL_DAMAGE_EXPOSE ? "EXPOSE " : "", */ - /* damage() & FL_DAMAGE_SCROLL ? "SCROLL " : "", */ - /* damage() & FL_DAMAGE_OVERLAY ? "OVERLAY " : ""); */ - - if ( ! backbuffer || - ! ( damage() & FL_DAMAGE_USER1 ) ) - { - if ( !backbuffer ) - backbuffer = fl_create_offscreen( W, H ); - - DMESSAGE( "redrawing preview" ); - - fl_begin_offscreen(backbuffer); - - fl_rectf( 0, 0, W, H, color() ); - canvas->m.grid->draw_notes( draw_dash, this ); - - fl_end_offscreen(); - } - - fl_copy_offscreen( X,Y,W,H,backbuffer,0, 0 ); - } -public: - - void resize ( int X, int Y, int W, int H ) - { - Fl_Panzoomer::resize( X,Y,W,H ); - if ( backbuffer ) - fl_delete_offscreen( backbuffer ); - backbuffer = 0; - redraw(); - } - - void draw_overlay ( void ) - { - Canvas *c = canvas; - - double HS = (double)w() /( _xmax - _xmin ); - - tick_t new_x = c->grid()->x_to_ts( c->grid()->ts_to_x( c->grid()->index() ) ); - fl_color( fl_color_add_alpha( FL_RED, 100 ) ); - fl_line( x() + new_x * HS, y(), x() + new_x * HS, y() + h() ); - } - -}; - -static note_properties *ghost_note = 0; - -Canvas::Canvas ( int X, int Y, int W, int H, const char *L ) : Fl_Group( X,Y,W,H,L ) -{ - _selection_mode = SELECT_NONE; - _move_mode = false; - - { Fl_Box *o = new Fl_Box( X, Y, W, H - 75 ); - /* this is a dummy group where the canvas goes */ - Fl_Group::current()->resizable( o ); - } - { Fl_Group *o = new Fl_Group( X, Y + H - 75, W, 75 ); - - { - Canvas_Panzoomer *o = new Canvas_Panzoomer( X, Y + H - 75, W - 14, 75 ); - o->canvas = this; - o->box( FL_FLAT_BOX ); -// o->color(fl_color_average( FL_BLACK, FL_WHITE, 0.90 )); - o->color( FL_BLACK ); -// o->color(FL_BACKGROUND_COLOR); -// o->type( FL_HORIZONTAL ); - o->callback( cb_scroll, this ); - o->when( FL_WHEN_CHANGED ); - panzoomer = o; - } - - { - Fl_Slider *o = new Fl_Slider( X + W - 14, Y + H - panzoomer->h(), 14, panzoomer->h() ); - o->range( 1, 128 ); - o->step( 1 ); - o->type( FL_VERTICAL ); - o->tooltip( "Vertical Zoom" ); - o->callback( cb_scroll, this ); - vzoom = o; - } - o->end(); - } - - m.origin_x = m.origin_y = m.height = m.width = m.div_w = m.div_h = m.margin_top = m.margin_left = m.playhead = m.w = m.h = m.p1 = m.p2 = m.p3 = m.p4 = 0; - - m.margin_top = ruler_height; - - m.draw = false; - m.ruler_drawn = false; - m.grid_drawn = false; - -// m.current = m.previous = NULL; - - m.row_compact = true; - - m.maxh = 128; - - m.vp = NULL; - - m.grid = NULL; - - end(); - - resize( X,Y,W,H); -} - -Canvas::~Canvas ( ) -{ - -} - -void -Canvas::handle_event_change ( void ) -{ - /* mark the song as dirty and pass the signal on */ - song.set_dirty(); - - Grid *g = grid(); - panzoomer->x_value( g->x_to_ts( m.vp->x), g->x_to_ts( m.vp->w ), 0, g->length()); - - // panzoomer->redraw(); - - redraw(); -} - -/** change grid to /g/, returns TRUE if new grid size differs from old */ -void -Canvas::grid ( Grid *g ) -{ - m.grid = g; - - if ( ! g ) - return; - - m.vp = &g->viewport; - - char *s = m.vp->dump(); - DMESSAGE( "viewport: %s", s ); - free( s ); - - m.ruler_drawn = false; - - resize_grid(); - - vzoom->range( 1, m.maxh ); - vzoom->value( m.vp->h ); - - update_mapping(); - - /* connect signals */ - /* FIXME: what happens when we do this twice? */ - g->signal_events_change.connect( mem_fun( this, &Canvas::handle_event_change ) ); - g->signal_settings_change.connect( signal_settings_change.make_slot() ); - - redraw(); - -// parent()->redraw(); - signal_settings_change(); -} - -/** keep row compaction tables up-to-date */ -void -Canvas::_update_row_mapping ( void ) -{ - /* reset */ - for ( int i = 128; i-- ; ) - m.rtn[i] = m.ntr[i] = -1; - - DMESSAGE( "updating row mapping" ); - - /* rebuild */ - int r = 0; - for ( int n = 0; n < 128; ++n ) - { - if ( m.grid->row_name( n ) ) - { - m.rtn[r] = n; - m.ntr[n] = r; - ++r; - } - } - - if ( m.row_compact && r ) - m.maxh = r; - else - m.maxh = 128; - - m.vp->h = min( m.vp->h, m.maxh ); - - resize_grid(); -} - -/** update everything about mapping, leaving the viewport alone */ -void -Canvas::update_mapping ( void ) -{ - _update_row_mapping(); - - adj_size(); - -// int old_margin = m.margin_left; - - m.margin_left = 0; - - m.draw = false; - - m.grid->draw_row_names( this ); - - m.draw = true; - -/* if ( m.margin_left != old_margin ) */ -/* { */ -/* // signal_resize(); */ -/* redraw(); */ -/* } */ -/* else */ - - damage(FL_DAMAGE_USER1); - -} - -/** change grid mapping */ -void -Canvas::changed_mapping ( void ) -{ - update_mapping(); - - m.vp->h = min( m.vp->h, m.maxh ); - - if ( m.vp->y + m.vp->h > m.maxh ) - m.vp->y = (m.maxh / 2) - (m.vp->h / 2); -} - -Grid * -Canvas::grid ( void ) -{ - return m.grid; -} - - -/** recalculate node sizes based on physical dimensions */ -void -Canvas::adj_size ( void ) -{ - if ( ! m.vp ) - return; - - m.div_w = (m.width - m.margin_left) / m.vp->w; - m.div_h = (m.height - m.margin_top) / m.vp->h; -} - -/** reallocate buffers to match grid dimensions */ -void -Canvas::resize_grid ( void ) -{ - adj_size(); - - DMESSAGE( "resizing grid %dx%d", m.vp->w, m.vp->h ); - - Grid *g = grid(); - panzoomer->x_value( g->x_to_ts( m.vp->x), g->x_to_ts( m.vp->w ), 0, g->length()); - panzoomer->y_value( m.vp->y, m.vp->h, 0, m.maxh ); - - panzoomer->zoom_range( 2, 16 ); - -// m.vp->w = max( 32, min( (int)(m.vp->w * n), 256 ) ); - -} - -/** inform the canvas with new phsyical dimensions */ -void -Canvas::resize ( int x, int y, int w, int h ) -{ - m.origin_x = x; - m.origin_y = y; - - m.width = w; - m.height = h - 75; - - Fl_Group::resize(x,y,w,h); - - adj_size(); -} - - - -/***********/ -/* Drawing */ -/***********/ - -/** is /x/ within the viewport? */ -bool -Canvas::viewable_x ( int x ) -{ - return x >= m.vp->x && x < m.vp->x + m.vp->w; -} - -static -int -gui_draw_ruler ( int x, int y, int w, int div_w, int div, int ofs, int p1, int p2 ) -{ - /* Across the top */ - - - fl_font( FL_TIMES, ruler_height ); - - int h = ruler_height; - - fl_color( FL_BACKGROUND_COLOR ); - - w += 100; /* FIXME: hack */ - - // fl_rectf( x, y, x + (div_w * w), y + h ); - fl_rectf( x, y, (div_w * w), h ); - - - fl_color( FL_FOREGROUND_COLOR ); - - fl_line( x + div_w / 2, y, x + div_w * w, y ); - - char pat[40]; - int z = div; - int i; - for ( i = 0; i < w; i++ ) - { - int k = ofs + i; - if ( 0 == k % z ) - { - int nx = x + (i * div_w) + (div_w / 2); - - fl_color( FL_FOREGROUND_COLOR ); - - fl_line( nx, y, nx, y + h - 1 ); - - sprintf( pat, "%i", 1 + (k / z )); - - fl_color( FL_FOREGROUND_COLOR ); - fl_draw( pat, nx + div_w / 2, y + h + 1 / 2 ); - } - } - - if ( p1 != p2 ) - { - if ( p1 >= 0 ) - { - if ( p1 < p2 ) - fl_color( fl_color_add_alpha( FL_GREEN, 100 ) ); - else - fl_color( fl_color_add_alpha( FL_GREEN, 100 ) ); - - fl_rectf( x + (div_w * p1), y + h / 2, div_w, h / 2 ); - - } - if ( p2 >= 0 ) - { - if ( p2 < p1 ) - fl_color( fl_color_add_alpha( FL_GREEN, 100 ) ); - else - fl_color( fl_color_add_alpha( FL_RED, 100 ) ); - fl_rectf( x + (div_w * p2), y + h / 2, div_w, h / 2 ); - - } - } - - return h; -} - -static -int -gui_draw_string ( int x, int y, int w, int h, int color, const char *s, bool draw ) -{ - int rw; - - if ( ! s ) - return 0; - - fl_font( FL_COURIER, min( h, 18 ) ); - - rw = fl_width( s ); - - if ( fl_not_clipped( x, y, rw, h ) && draw ) - { -// fl_rectf( x,y,w,h, FL_BACKGROUND_COLOR ); - - if ( color ) - fl_color( velocity_colors[ color ] ); - else - fl_color( FL_DARK_CYAN ); - - fl_draw( s, x, y + h / 2 + fl_descent() ); - } - - return rw; -} - -/** callback called by Grid::draw_row_names() to draw an individual row name */ -void -Canvas::draw_row_name ( int y, const char *name, int color ) -{ - bool draw = m.draw; - - y = ntr( y ); - - y -= m.vp->y; - - int bx = m.origin_x; - int by = m.origin_y + m.margin_top + y * m.div_h; - int bw = m.margin_left; - int bh = m.div_h; - - if ( y < 0 || y >= m.vp->h ) - draw = false; - - if ( draw && name ) - { - fl_rectf( bx, by, bw, bh, index(name, '#') ? FL_GRAY : FL_BLACK ); - fl_rect( bx, by, bw, bh, FL_BLACK ); - } - - m.margin_left = max( m.margin_left, gui_draw_string( bx + 1, by + 2, - bw - 1, bh - 4, - color, - name, - draw ) ); -} - -void -Canvas::draw_mapping ( void ) -{ -// int old_margin = m.margin_left; - - m.margin_left = 0; - - m.draw = false; - - m.grid->draw_row_names( this ); - - adj_size(); - - m.draw = true; - - m.grid->draw_row_names( this ); -} - -void -Canvas::draw_ruler ( void ) -{ - m.margin_top = gui_draw_ruler( m.origin_x + m.margin_left, - m.origin_y, - m.vp->w, - m.div_w, - m.grid->division(), - m.vp->x, - m.p1 - m.vp->x, - m.p2 - m.vp->x ); -} - -void -Canvas::damage_grid ( tick_t x, int y, tick_t w, int h = 1 ) -{ - y = ntr( y ); - - if ( y < 0 ) - return; - - // adjust for viewport. - - x = m.grid->ts_to_x(x); - w = m.grid->ts_to_x(w); - - x -= m.vp->x; - y -= m.vp->y; - - if ( x < 0 || y < 0 || x >= m.vp->w || y >= m.vp->h ) - return; - - damage(FL_DAMAGE_USER1, m.origin_x + m.margin_left + x * m.div_w, - m.origin_y + m.margin_top + y * m.div_h, - m.div_w * w, - m.div_h * h ); -} - -void -Canvas::draw_dash ( tick_t x, int y, tick_t w, int color, int selected ) const -{ - if ( m.grid->velocity_sensitive() ) - color = velocity_colors[ color ]; - else - color = velocity_colors[ 127 ]; - - y = ntr( y ); - - if ( y < 0 ) - return; - - // adjust for viewport. - - x = m.grid->ts_to_x(x); - w = m.grid->ts_to_x(w); - - x -= m.vp->x; - y -= m.vp->y; - - x = m.origin_x + m.margin_left + x * m.div_w; - y = m.origin_y + m.margin_top + y * m.div_h; - w *= m.div_w; - - /* fl_rectf( x, y + 1, w, m.div_h - 1, fl_color_add_alpha( color, 170 ) ); */ - - /* fl_rect( x, y + 1, w, m.div_h - 1, selected ? FL_MAGENTA : fl_lighter( FL_BACKGROUND_COLOR )); */ - - if ( w > 4 ) - { - fl_draw_box( FL_ROUNDED_BOX, x, y + 1, w, m.div_h - 1, color ); - - if ( selected ) - { - cairo_set_operator( Fl::cairo_cc(),CAIRO_OPERATOR_HSL_COLOR ); - - fl_draw_box( FL_ROUNDED_BOX, x, y + 1, w, m.div_h - 1, FL_MAGENTA ); - - cairo_set_operator( Fl::cairo_cc(),CAIRO_OPERATOR_OVER); - } - /* if ( selected ) */ - /* fl_draw_box( FL_ROUNDED_FRAME, x, y + 1, w, m.div_h - 1, FL_MAGENTA ); */ - } - -// fl_color_add_alpha( color, 170 )); -} - -/** callback used by Grid::draw() */ -void -Canvas::draw_dash ( tick_t x, int y, tick_t w, int color, int selected, void *userdata ) -{ - Canvas *o = (Canvas*)userdata; - - o->draw_dash( x,y,w,color,selected ); -} - -int -Canvas::playhead_moved ( void ) -{ - int x = m.grid->ts_to_x( m.grid->index() ); - - return m.playhead != x; -} - -void -Canvas::redraw_playhead ( void ) -{ - int old_x = m.playhead; - - int new_x = m.grid->ts_to_x( m.grid->index() ); - - if ( old_x != new_x ) - { - window()->damage( FL_DAMAGE_OVERLAY ); - } - - if ( m.playhead < m.vp->x || m.playhead >= m.vp->x + m.vp->w ) - { - if ( config.follow_playhead ) - { - new_x = m.playhead; - - panzoomer->x_value( m.grid->index() ); - panzoomer->do_callback(); - } - } -} - -void -Canvas::draw_overlay ( void ) -{ - if ( ! visible_r() ) - return; - - /* fl_push_no_clip(); */ - - fl_push_clip( x() + m.margin_left, - y() + m.margin_top, - w() - m.margin_left, - h() - panzoomer->h() - m.margin_top ); - - draw_playhead(); - - if ( _selection_mode ) - { - int X,Y,W,H; - - SelectionRect &s = _selection_rect; - - X = s.x1 < s.x2 ? s.x1 : s.x2; - Y = s.y1 < s.y2 ? s.y1 : s.y2; - W = s.x1 < s.x2 ? s.x2 - s.x1 : s.x1 - s.x2; - H = s.y1 < s.y2 ? s.y2 - s.y1 : s.y1 - s.y2; - - /* fl_rectf( X,Y,W,H, fl_color_add_alpha( FL_MAGENTA, 50 ) ); */ - - fl_rect( X,Y,W,H, FL_MAGENTA ); - - } - - fl_pop_clip(); - - panzoomer->draw_overlay(); - - /* fl_pop_clip(); */ - -} - -/** draw only the playhead--without reexamining the grid */ -void -Canvas::draw_playhead ( void ) -{ - int x = m.grid->ts_to_x( m.grid->index() ); - - /* if ( m.playhead == x ) */ - /* return; */ - - m.playhead = x; - - /* if ( m.playhead < m.vp->x || m.playhead >= m.vp->x + m.vp->w ) */ - /* return; */ - - int px = m.origin_x + m.margin_left + ( x - m.vp->x ) * m.div_w; - - int X,Y,W,H; - - X = px; - Y = m.origin_y + m.margin_top; - W = m.div_w; - H = m.origin_y + m.margin_top + m.vp->h * m.div_h; - - cairo_set_operator( Fl::cairo_cc(), CAIRO_OPERATOR_HSL_COLOR ); - - fl_rectf( X,Y,W,H, FL_RED ); - - cairo_set_operator( Fl::cairo_cc(), CAIRO_OPERATOR_OVER ); - - fl_rect( X,Y,W,H, FL_RED ); -} - -void -Canvas::draw_clip ( void *v, int X, int Y, int W, int H ) -{ - ((Canvas*)v)->draw_clip( X,Y,W,H ); -} - -void -Canvas::draw_clip ( int X, int Y, int W, int H ) -{ - box( FL_FLAT_BOX ); - labeltype( FL_NO_LABEL ); - - fl_push_clip( X,Y,W,H ); - - - fl_push_clip( m.origin_x + m.margin_left, - m.origin_y + m.margin_top, - w() - m.margin_left, - h() - m.margin_top - panzoomer->h() ); - - fl_rectf( m.origin_x + m.margin_left, m.origin_y + m.margin_top, w(), h(), FL_BLACK ); - - /* draw bar/beat lines */ - - for ( int gx = m.vp->x; - gx < m.vp->x + m.vp->w + 200; /* hack */ - gx++ ) - { - if ( m.grid->x_to_ts( gx ) > m.grid->length() ) - continue; - - if ( gx % m.grid->division() == 0 ) - fl_color( fl_color_average( FL_GRAY, FL_BLACK, 0.80 ) ); - else if ( gx % m.grid->subdivision() == 0 ) - fl_color( fl_color_average( FL_GRAY, FL_BLACK, 0.40 ) ); - else - continue; - - fl_rectf( m.origin_x + m.margin_left + ( ( gx - m.vp->x ) * m.div_w ), - m.origin_y + m.margin_top, - m.div_w, - y() + h() - m.margin_top ); - } - - m.grid->draw_notes( draw_dash, this ); - - if ( ghost_note ) - draw_dash( ghost_note->start, - ghost_note->note, - ghost_note->duration, - ghost_note->velocity, - 1 ); - - fl_color( fl_color_add_alpha( fl_rgb_color( 127,127,127 ), 50 )); - - /* draw grid */ - - fl_begin_line(); - - if ( m.div_w > 4 ) - { - for ( int gx = m.origin_x + m.margin_left; - gx < x() + w(); - gx += m.div_w ) - { -// fl_line( gx, m.origin_y + m.margin_top, gx, y() + h() ); - fl_vertex( gx, m.origin_y + m.margin_top ); - fl_vertex( gx, y() + h() ); - fl_gap(); - } - } - - if ( m.div_h > 2 ) - { - for ( int gy = m.origin_y + m.margin_top; - gy < y() + h(); - gy += m.div_h ) - { -// fl_line( m.origin_x + m.margin_left, gy, x() + w(), gy ); - fl_vertex( m.origin_x + m.margin_left, gy ); - fl_vertex( x() + w(), gy ); - fl_gap(); - } - } - - fl_end_line(); - -//done: - fl_pop_clip(); - - fl_pop_clip(); -} - - -/** draw ONLY those nodes necessary to bring the canvas up-to-date with the grid */ -void -Canvas::draw ( void ) -{ - box( FL_NO_BOX ); - labeltype( FL_NO_LABEL ); - - /* DMESSAGE( "%s%s%s%s%s%s", */ - /* damage() & FL_DAMAGE_CHILD ? "CHILD " : "", */ - /* damage() & FL_DAMAGE_ALL ? "ALL " : "", */ - /* damage() & FL_DAMAGE_USER1 ? "USER 1 ": "", */ - /* damage() & FL_DAMAGE_EXPOSE ? "EXPOSE " : "", */ - /* damage() & FL_DAMAGE_SCROLL ? "SCROLL " : "", */ - /* damage() & FL_DAMAGE_OVERLAY ? "OVERLAY " : ""); */ - - - if ( damage() & FL_DAMAGE_SCROLL ) - { - draw_ruler(); - - int dx = ( _old_scroll_x - m.vp->x ) * m.div_w; - int dy = ( _old_scroll_y - m.vp->y ) * m.div_h; - - fl_scroll( m.origin_x + m.margin_left, - m.origin_y + m.margin_top, - w() - m.margin_left, - h() - m.margin_top - panzoomer->h(), - dx, dy, - draw_clip, - this ); - - if ( dy ) - draw_mapping(); - - _old_scroll_x = m.vp->x; - _old_scroll_y = m.vp->y; - - if ( damage() & FL_DAMAGE_CHILD ) - clear_damage( FL_DAMAGE_CHILD ); - } - else if ( damage() & ~FL_DAMAGE_CHILD ) - { - draw_mapping(); - draw_ruler(); - - draw_clip( x(), y(), w(), h() ); - } - - draw_children(); -} - -void -Canvas::cb_scroll ( Fl_Widget *w, void *v ) -{ - ((Canvas*)v)->cb_scroll( w ); -} - -void -Canvas::cb_scroll ( Fl_Widget *w ) -{ - if ( w == panzoomer ) - { - Fl_Panzoomer *o = (Fl_Panzoomer*)w; - - _old_scroll_x = m.vp->x; - _old_scroll_y = m.vp->y; - - m.vp->x = grid()->ts_to_x( o->x_value() ); - m.vp->y = o->y_value(); - - if ( m.vp->x != _old_scroll_x || m.vp->y != _old_scroll_y ) - damage( FL_DAMAGE_SCROLL ); - - if ( o->zoom_changed() ) - { - m.vp->w = m.grid->division() * o->zoom(); - resize_grid(); - redraw(); - } - } - else if ( w == vzoom ) - { - Fl_Slider *o = (Fl_Slider*)w; - - float n = o->value(); - - m.vp->h = min( (int)n, m.maxh ); - - resize_grid(); - - song.set_dirty(); - - redraw(); - } - -} - - -/** convert pixel coords into grid coords. returns true if valid */ -bool -Canvas::grid_pos ( int *x, int *y ) const -{ - /* if ( ( *x < m.origin_x + m.margin_left ) || */ - /* ( *y < m.origin_y + m.margin_top ) || */ - /* ( *x > m.origin_x + w() ) || */ - /* (*y > m.origin_y + h() - panzoomer->h() ) ) */ - /* return false; */ - - *y = (*y - m.margin_top - m.origin_y) / m.div_h; - *x = (*x - m.margin_left - m.origin_x) / m.div_w; - - /* if ( *x < 0 || *y < 0 || *x >= m.vp->w || *y >= m.vp->h ) */ - /* return false; */ - - /* adjust for viewport */ - *x += m.vp->x; - *y += m.vp->y; - - /* adjust for row-compaction */ - *y = rtn( *y ); - - return true; -} - - - -/******************/ -/* Input handlers */ -/******************/ - -/* These methods translate viewport pixel coords to absolute grid - coords and pass on to the grid. */ - -/** if coords correspond to a row name entry, return the (absolute) note number, otherwise return -1 */ -int -Canvas::is_row_press ( void ) const -{ - if ( Fl::event_inside( this->x(), - this->y() + this->m.margin_top, - this->m.margin_left, - ( this->h() - this->m.margin_top ) - this->panzoomer->h() ) ) - { - int dx,dy; - dx = Fl::event_x(); - dy = Fl::event_y(); - - grid_pos( &dx, &dy ); - - return m.grid->y_to_note(dy ); - } - else - return -1; -} - -bool -Canvas::is_ruler_click ( void ) const -{ - return Fl::event_y() < m.origin_y + m.margin_top; -} - -void -Canvas::start_cursor ( int x, int y ) -{ - if ( ! grid_pos( &x, &y ) ) - return; - - m.ruler_drawn = false; - - m.p1 = x; - - - /* m.p3 = ntr( y ); */ - - _lr(); - - redraw(); -} - -void -Canvas::end_cursor ( int x, int y ) -{ - if ( ! grid_pos( &x, &y ) ) - return; - - m.ruler_drawn = false; - - m.p2 = x; - - /* m.p4 = ntr( y ); */ - - _lr(); - - redraw(); -} - -void -Canvas::adj_color ( int x, int y, int n ) -{ - if ( ! grid_pos( &x, &y ) ) - return; - - m.grid->adj_velocity( x, y, n ); -} - -void -Canvas::adj_length ( int x, int y, int n ) -{ - if ( ! grid_pos( &x, &y ) ) - return; - - m.grid->adj_duration( x, y, n ); -} - -void -Canvas::set_end ( int x, int y, int n ) -{ - if ( ! grid_pos( &x, &y ) ) - return; - - m.grid->set_end( x, y, n ); -} - -void -Canvas::select ( int x, int y ) -{ - if ( ! grid_pos( &x, &y ) ) - return; - - m.grid->toggle_select( x, y ); -} - -void -Canvas::move_selected ( int dir, int n ) -{ - switch ( dir ) - { - case RIGHT: - m.grid->nudge_selected( n ); - break; - case LEFT: - m.grid->nudge_selected( 0 - n ); - break; - case UP: - case DOWN: - { - /* row-compaction makes this a little complicated */ - event_list *el = m.grid->events(); - - /* FIXME: don't allow movement beyond the edges! */ - -/* int hi, lo; */ - -/* m.grid->selected_hi_lo_note( &hi, &lo ); */ - -/* hi = ntr( hi ) > 0 ? ntr( hi ) : */ - -/* if ( m.grid->y_to_note( ntr( hi ) ) ) */ - - - if ( dir == UP ) - for ( int y = 0; y <= m.maxh; ++y ) - el->rewrite_selected( m.grid->y_to_note( rtn( y ) ), m.grid->y_to_note( rtn( y - n ) ) ); - else - for ( int y = m.maxh; y >= 0; --y ) - el->rewrite_selected( m.grid->y_to_note( rtn( y ) ), m.grid->y_to_note( rtn( y + n ) ) ); - - m.grid->events( el ); - - delete el; - break; - } - } -} - -void -Canvas::_lr ( void ) -{ - int l, r; - - if ( m.p2 > m.p1 ) - { - l = m.p1; - r = m.p2; - } - else - { - l = m.p2; - r = m.p1; - } - - m.p1 = l; - m.p2 = r; -} - -void -Canvas::select_range ( void ) -{ - if ( m.p3 == m.p4 ) - m.grid->select( m.p1, m.p2 ); - else - m.grid->select( m.p1, m.p2, rtn( m.p3 ), rtn( m.p4 ) ); -} - -void -Canvas::invert_selection ( void ) -{ - m.grid->invert_selection(); -} - -void -Canvas::crop ( void ) -{ - if ( m.p3 == m.p4 ) - m.grid->crop( m.p1, m.p2 ); - else - m.grid->crop( m.p1, m.p2, rtn( m.p3 ), rtn( m.p4 ) ); - - m.vp->x = 0; - - m.p2 = m.p2 - m.p1; - m.p1 = 0; - - m.ruler_drawn = false; -} - -void -Canvas::delete_time ( void ) -{ - m.grid->delete_time( m.p1, m.p2 ); -} - - -void -Canvas::insert_time ( void ) -{ - m.grid->insert_time( m.p1, m.p2 ); -} - -/** paste range as new grid */ -void -Canvas::duplicate_range ( void ) -{ - Grid *g = m.grid->clone(); - - g->crop( m.p1, m.p2 ); - g->viewport.x = 0; -} - -void -Canvas::cut ( void ) -{ - m.grid->cut(); -} - -void -Canvas::copy ( void ) -{ - m.grid->copy(); -} - -void -Canvas::paste ( void ) -{ - if ( m.p1 != m.p2 && m.p1 > m.vp->x && m.p1 < m.vp->x + m.vp->w ) - m.grid->paste( m.p1 ); - else - m.grid->paste( m.vp->x ); -} - -void -Canvas::row_compact ( int n ) -{ - switch ( n ) - { - case OFF: - m.row_compact = false; - m.maxh = 128; - break; - case ON: - m.row_compact = true; - m.vp->y = 0; - _update_row_mapping(); - break; - case TOGGLE: - row_compact( m.row_compact ? OFF : ON ); - break; - } -// _reset(); -} - -void -Canvas::pan ( int dir, int n ) -{ - - switch ( dir ) - { - case LEFT: case RIGHT: case TO_PLAYHEAD: case TO_NEXT_NOTE: case TO_PREV_NOTE: - /* handle horizontal movement specially */ - n *= m.grid->division(); - m.ruler_drawn = false; - break; - default: - n *= 5; - break; - } - - switch ( dir ) - { - case LEFT: - m.vp->x = max( m.vp->x - n, 0 ); - break; - case RIGHT: - m.vp->x += n; - break; - case TO_PLAYHEAD: - m.vp->x = m.playhead - (m.playhead % m.grid->division()); - break; - case UP: - m.vp->y = max( m.vp->y - n, 0 ); - break; - case DOWN: - m.vp->y = min( m.vp->y + n, m.maxh - m.vp->h ); - break; - case TO_NEXT_NOTE: - { - int x = m.grid->next_note_x( m.vp->x ); - m.vp->x = x - (x % m.grid->division() ); - break; - } - case TO_PREV_NOTE: - { - int x = m.grid->prev_note_x( m.vp->x ); - m.vp->x = x - (x % m.grid->division() ); - break; - } - } - - damage(FL_DAMAGE_USER1); -} - -void -Canvas::can_scroll ( int *left, int *right, int *up, int *down ) -{ - *left = m.vp->x; - *right = -1; - *up = m.vp->y; - *down = m.maxh - ( m.vp->y + m.vp->h ); -} - - -/** adjust horizontal zoom (* n) */ -void -Canvas::h_zoom ( float n ) -{ - m.vp->w = max( 32, min( (int)(m.vp->w * n), 256 ) ); - - resize_grid(); - - song.set_dirty(); -} - -void -Canvas::selected_velocity ( int v ) -{ - grid()->selected_velocity( v ); -} - -void -Canvas::v_zoom_fit ( void ) -{ - if ( ! m.grid ) - return; - - changed_mapping(); - - m.vp->h = m.maxh; - m.vp->y = 0; - - resize_grid(); - - song.set_dirty(); - -} - -/** adjust vertical zoom (* n) */ -void -Canvas::v_zoom ( float n ) -{ - m.vp->h = max( 1, min( (int)(m.vp->h * n), m.maxh ) ); - - resize_grid(); - - song.set_dirty(); -} - -void -Canvas::notes ( char *s ) -{ - m.grid->notes( s ); -} - -char * -Canvas::notes ( void ) -{ - return m.grid->notes(); -} - - -int -Canvas::handle ( int m ) -{ - Canvas *c = this; - - static int last_move_x = 0; - static int last_move_y = 0; - -// static bool range_select; - - int x, y; - int processed = 1; - - x = Fl::event_x(); - y = Fl::event_y(); - - static int drag_x; - static int drag_y; - static bool delete_note; - static note_properties *drag_note; - - switch ( m ) - { - case FL_FOCUS: - case FL_UNFOCUS: - damage( FL_DAMAGE_ALL ); - return 1; - case FL_ENTER: - case FL_LEAVE: - fl_cursor( FL_CURSOR_DEFAULT ); - return 1; - case FL_MOVE: - { - if ( Fl::event_inside( this->x() + this->m.margin_left, - this->y() + this->m.margin_top, - this->w() - this->m.margin_left, - ( this->h() - this->m.margin_top ) - this->panzoomer->h() ) ) - fl_cursor( FL_CURSOR_HAND ); - else - fl_cursor( FL_CURSOR_DEFAULT ); - - return 1; - break; - } - case FL_KEYBOARD: - { - -/* if ( Fl::event_state() & FL_ALT || Fl::event_state() & FL_CTRL ) */ -/* // this is more than a simple keypress. */ -/* return 0; */ - - if ( Fl::event_state() & FL_CTRL ) - { - switch ( Fl::event_key() ) - { - case FL_Delete: - c->delete_time(); - break; - case FL_Insert: - c->insert_time(); - break; - case FL_Right: - c->pan( TO_NEXT_NOTE, 0 ); - break; - case FL_Left: - c->pan( TO_PREV_NOTE, 0 ); - break; - default: - return 0; - } - } - else - if ( Fl::event_state() & FL_ALT ) - return 0; - - switch ( Fl::event_key() ) - { - case FL_Left: - c->pan( LEFT, 1 ); - break; - case FL_Right: - c->pan( RIGHT, 1 ); - break; - case FL_Up: - c->pan( UP, 1 ); - break; - case FL_Down: - c->pan( DOWN, 1 ); - break; - default: - /* have to do this to get shifted keys */ - switch ( *Fl::event_text() ) - { - case 'f': - c->pan( TO_PLAYHEAD, 0 ); - break; - case 'r': - c->select_range(); - break; - case 'q': - c->grid()->select_none(); - break; - case 'i': - c->invert_selection(); - break; - /* case '1': */ - /* c->h_zoom( 2.0f ); */ - /* break; */ - /* case '2': */ - /* c->h_zoom( 0.5f ); */ - /* break; */ - /* case '3': */ - /* c->v_zoom( 2.0f ); */ - /* break; */ - /* case '4': */ - /* c->v_zoom( 0.5f ); */ - /* break; */ - /* case ' ': */ - /* transport.toggle(); */ - /* break; */ - -#define IS_PATTERN (parent() == ui->pattern_tab) -#define IS_PHRASE (parent() == ui->phrase_tab) -#define IS_SEQUENCE (parent() == ui->sequence_tab) - case '<': - c->move_selected( LEFT, 1 ); - break; - case '>': - c->move_selected( RIGHT, 1 ); - break; - case ',': - c->move_selected( UP, 1 ); - break; - case '.': - c->move_selected( DOWN, 1 ); - break; - case 'C': - c->crop(); - break; - case 'd': - { - MESSAGE( "duplicating thing" ); - c->grid( c->grid()->clone() ); - - // number of phrases may have changed. - ui->update_sequence_widgets(); - - break; - - } - case 'D': - c->duplicate_range(); - break; - case 't': - c->grid()->trim(); - break; - default: - processed = 0; - break; - } - break; - } - break; - } - case FL_PUSH: - { - Fl::focus(this); - - switch ( Fl::event_button() ) - { - case 1: - { - if ( is_ruler_click() ) - { - c->start_cursor( x, y ); - // return 1; - _selection_mode = SELECT_RANGE; - - } - - if ( _selection_mode ) - { - drag_x = Fl::event_x(); - drag_y = Fl::event_y(); - - _selection_rect.x1 = drag_x; - _selection_rect.y1 = drag_y; - _selection_rect.x2 = drag_x; - _selection_rect.y2 = drag_y; - - if ( _selection_mode == SELECT_RANGE ) - { - _selection_rect.y1 = 0; - _selection_rect.y2 = 2000; - } - - return 1; - } - - delete_note = true; - - if ( Fl::event_ctrl() ) - { - c->select( x, y ); - processed = 2; - break; - } - - int dx = x; - int dy = y; - - grid_pos( &dx, &dy ); - - int note; - if ( ( note = c->is_row_press() ) >= 0 ) - { - if ( IS_PATTERN ) - ((pattern *)c->grid())->row_name_press( note ); - - processed = 2; - break; - } - - if ( Fl::event_inside( this->x() + this->m.margin_left, - this->y() + this->m.margin_top, - this->w() - this->m.margin_left, - ( this->h() - this->m.margin_top ) - this->panzoomer->h() ) ) - { - - if ( ! this->m.grid->is_set( dx,dy )) - { - ghost_note = new note_properties; - drag_note = new note_properties; - - ghost_note->start = this->m.grid->x_to_ts( dx ); - ghost_note->note = dy; - ghost_note->duration = this->m.grid->default_length(); - ghost_note->velocity = 64; - - drag_note->start = this->m.grid->x_to_ts( dx ); - drag_note->note = dy; - drag_note->duration = this->m.grid->default_length(); - drag_note->velocity = 64; - - - - delete_note = false; - - processed = 1; - break; - } - else - { - note_properties np; - this->m.grid->get_note_properties( dx, dy, &np ); - - if ( np.selected ) - { - _move_mode = true; - /* initiate move */ - last_move_x = dx; - last_move_y = ntr( dy ); - } - else - { - ghost_note = new note_properties; - drag_note = new note_properties; - this->m.grid->get_note_properties( dx, dy, ghost_note ); - this->m.grid->get_note_properties( dx, dy, drag_note ); - this->m.grid->del( dx, dy ); - - delete_note = true; - } - } - - this->m.grid->get_start( &dx, &dy ); - - drag_x = x; - drag_y = y; - - take_focus(); - } - else - processed = 0; - - break; - } - case 3: - { - int note; - if ( ( note = is_row_press() ) >= 0 ) - { - /* inside the note headings */ - - DMESSAGE( "click on row %d", note ); - if ( IS_PATTERN ) - { - Instrument *i = ((pattern *)c->grid())->mapping.instrument(); - - if ( i ) - { - ui->edit_instrument_row( i, note ); - - c->changed_mapping(); - } - } - } - else - { - _selection_mode = SELECT_RECTANGLE; - { - drag_x = Fl::event_x(); - drag_y = Fl::event_y(); - - _selection_rect.x1 = drag_x; - _selection_rect.y1 = drag_y; - _selection_rect.x2 = drag_x; - _selection_rect.y2 = drag_y; - signal_settings_change(); - return 1; - } - - return 1; - break; - - - } - - /* if ( Fl::event_state() & FL_SHIFT ) */ - /* { */ - /* c->end_cursor( x, y ); */ - /* break; */ - /* } */ - break; - } - default: - processed = 0; - } - break; - } - case FL_RELEASE: - { - _move_mode = false; - - if ( SELECT_RANGE == _selection_mode ) - { - select_range(); - _selection_mode = SELECT_NONE; - return 1; - } - else if ( SELECT_RECTANGLE == _selection_mode ) - { - int X,Y,W,H; - - SelectionRect &s = _selection_rect; - - X = s.x1 < s.x2 ? s.x1 : s.x2; - Y = s.y1 < s.y2 ? s.y1 : s.y2; - W = s.x1 < s.x2 ? s.x2 - s.x1 : s.x1 - s.x2; - H = s.y1 < s.y2 ? s.y2 - s.y1 : s.y1 - s.y2; - - int endx = X + W; - int endy = Y + H; - int beginx = X; - int beginy = Y; - - grid_pos( &beginx, &beginy ); - grid_pos( &endx, &endy ); - - /* if ( is_ruler_click() ) */ - /* { */ - /* grid()->select( beginx, endx ); */ - /* } */ - /* else */ - { - grid()->select( beginx, endx, beginy, endy ); - } - - _selection_mode = SELECT_NONE; - - _selection_rect.x1 = 0; - _selection_rect.y1 = 0; - _selection_rect.x2 = 0; - _selection_rect.y2 = 0; - - damage(FL_DAMAGE_OVERLAY); - signal_settings_change(); - return 1; - } - - int dx = x; - int dy = y; - grid_pos( &dx, &dy ); - - if ( delete_note ) - { -// this->m.grid->del( dx, dy ); - if ( ghost_note ) - { - damage_grid( ghost_note->start, ghost_note->note, ghost_note->duration, 1 ); - - delete ghost_note; - } - ghost_note = 0; - } - else - if ( ghost_note ) - { - this->m.grid->put( this->m.grid->ts_to_x( ghost_note->start ), - ghost_note->note, - ghost_note->duration, - ghost_note->velocity); - - delete_note = false; - - delete ghost_note; - ghost_note = 0; - } - - if ( drag_note ) - delete drag_note; - drag_note = 0; - - grid()->select_none(); - - break; - } - - case FL_DRAG: - - if ( Fl::event_is_click() ) - return 1; - - { - if ( _selection_mode ) - { - grid()->select_none(); - - _selection_rect.x2 = x; - _selection_rect.y2 = y; - - if ( SELECT_RANGE == _selection_mode ) - { - _selection_rect.y2 = 2000; - c->end_cursor( x, y ); - } - - damage(FL_DAMAGE_OVERLAY); - - return 1; - } - - - int dx = x; - int dy = y; - - grid_pos( &dx, &dy ); - - if ( _move_mode ) - { - int odx = drag_x; - int ody = drag_y; - grid_pos( &odx, &ody ); - - if ( last_move_x != dx ) - { - //this->m.grid->move_selected( dx - move_xoffset ); - if ( dx > last_move_x ) - move_selected( RIGHT, dx - last_move_x ); - else - move_selected( LEFT, last_move_x - dx ); - } - - dy = ntr( dy ); - - if ( dy != last_move_y ) - { - if ( dy > last_move_y ) - move_selected( DOWN, dy - last_move_y ); - else - move_selected( UP, last_move_y - dy ); - } - - last_move_y = dy; - last_move_x = dx; - return 1; - } - - if ( ghost_note ) - { - damage_grid( ghost_note->start, ghost_note->note, ghost_note->duration, 1 ); - - int ody = drag_y; - int odx = drag_x; - - if ( drag_note ) - { - grid_pos( &odx, &ody ); - - /* cursor must leave the row to begin adjusting velocity. */ - if ( ody != dy ) - { - ghost_note->velocity = - drag_note->velocity + - ( (drag_y - y) / 3.0f ); - - if ( ghost_note->velocity < 0 ) - ghost_note->velocity = 0; - else if ( ghost_note->velocity > 127 ) - ghost_note->velocity = 127; - } - } - - if ( dx != odx ) - { - if ( dx > this->m.grid->ts_to_x( ghost_note->start ) ) - { - ghost_note->duration = this->m.grid->x_to_ts( dx ) - ghost_note->start; - } - } - - - damage_grid( ghost_note->start, ghost_note->note, ghost_note->duration, 1 ); - - delete_note = false; - - processed = 2; - - } - } - break; - default: - processed = 0; - } - - if ( processed ) - window()->damage(FL_DAMAGE_OVERLAY); - - if ( processed == 1 ) - damage(FL_DAMAGE_USER1); - - if ( ! processed ) - return Fl_Group::handle( m ); - - return processed; -} diff --git a/sequencer/src/canvas.H b/sequencer/src/canvas.H deleted file mode 100644 index b715f17..0000000 --- a/sequencer/src/canvas.H +++ /dev/null @@ -1,201 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2007-2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include "grid.H" -#include - -#include -using namespace sigc; - -class Mapping; - -enum { LEFT, RIGHT, UP, DOWN, TO_PLAYHEAD, TO_NEXT_NOTE, TO_PREV_NOTE }; - -class Fl_Scrollbar; -class Fl_Slider; - -class Canvas : public Fl_Group, public trackable -{ - class Canvas_Panzoomer; - - struct SelectionRect { - int x1,y1,x2,y2; - }; - - SelectionRect _selection_rect; - - int _selection_mode; - bool _move_mode; - Canvas_Panzoomer *panzoomer; - Fl_Slider *vzoom; - - /* these are grid coords, not pixels */ - int _old_scroll_x; - int _old_scroll_y; - - struct { - int origin_x, origin_y; - int width, height; - - int margin_left, margin_top; - int div_w, div_h; - - int old_div_w, old_div_h; - - int maxh; - - bool ruler_drawn; - bool mapping_drawn; - - bool grid_drawn; - - int playhead; /* where the playhead is for this canvas. only used for display. */ - - enum { PATTERN, SEQUENCE } mode; - - Grid *grid; /* grid currently connected to this canvas */ - - size_t size; - - bool draw; /* really drawing, or just checking size? */ - - int rule; - - bool row_compact; /* use row-compaction? */ - - /* tables used for row-compaction */ - int rtn[128]; /* row-to-note */ - int ntr[128]; /* note-to-row */ - - Viewport *vp; - int w, h; - - uint p1, p2; /* range cursors */ - uint p3, p4; /* row cursors */ - } m; - - bool is_ruler_click ( void ) const; - int rtn ( int r ) const; - int ntr ( int n ) const; - - void _update_row_mapping ( void ); - - void draw_mapping ( void ); - void draw_ruler ( void ); - - void _reset ( void ); - void _lr ( void ); - - bool viewable_x ( int x ); - - void update_mapping ( void ); - - static void cb_scroll ( Fl_Widget *w, void *v ); - void cb_scroll ( Fl_Widget *w ); - static void draw_clip ( void *v, int X, int Y, int W, int H ); - void draw_clip ( int X, int Y, int W, int H ); - -enum { - SELECT_NONE = 0, - SELECT_RECTANGLE, - SELECT_RANGE -}; - -public: - - bool selection_mode ( void ) const { return _selection_mode; } - void selection_mode ( bool b ) - { - _selection_mode = b ? SELECT_RECTANGLE : SELECT_NONE; - } - - enum { OFF, ON, TOGGLE }; - - signal signal_settings_change; - - Canvas ( int X, int Y, int W, int H, const char *L=0 ); - virtual ~Canvas ( ); - - void cut ( void ); - void paste ( void ); - void redraw_playhead ( void ); - void handle_event_change ( void ); - void set ( int x, int y ); - void grid ( Grid *g ); - void changed_mapping ( void ); - Grid * grid ( void ); - void adj_size ( void ); - void resize_grid ( void ); - void resize ( int x, int y, int w, int h ); - void copy ( void ); - void draw_row_name ( int y, const char *name, int color ); - // void draw_shape ( int x, int y, int w, int color ); - static void draw_dash ( tick_t x, int y, tick_t l, int color, int selected, void *userdata ); - void draw_dash ( tick_t x, int y, tick_t w, int color, int selected ) const; - void damage_grid ( tick_t x, int y, tick_t w, int h ); - void draw_overlay ( void ); - void draw_playhead ( void ); - void draw ( void ); - bool grid_pos ( int *x, int *y ) const; - int is_row_press ( void ) const; - void unset ( int x, int y ); - void adj_color ( int x, int y, int n ); - void adj_length ( int x, int y, int n ); - void set_end ( int x, int y, int n ); - void select ( int x, int y ); - void select_range ( void ); - void invert_selection ( void ); - void duplicate_range ( void ); - void crop ( void ); - void row_compact ( int n ); - void pan ( int dir, int n ); - void can_scroll ( int *left, int *right, int *up, int *down ); - void h_zoom ( float n ); - void v_zoom ( float n ); - void v_zoom_fit ( void ); - void notes ( char *s ); - char * notes ( void ); - int playhead_moved ( void ); - - void start_cursor ( int x, int y ); - void end_cursor ( int x, int y ); - - void delete_time ( void ); - void insert_time ( void ); - - void move_selected ( int dir, int n ); - void selected_velocity ( int v ); - - virtual int handle ( int m ); - -}; - -inline int -Canvas::rtn ( int r ) const -{ - return m.row_compact ? m.rtn[ r ] : r; -} - -inline int -Canvas::ntr ( int n ) const -{ - return m.row_compact ? m.ntr[ n ] : n; -} diff --git a/sequencer/src/common.h b/sequencer/src/common.h deleted file mode 100644 index 7c179a8..0000000 --- a/sequencer/src/common.h +++ /dev/null @@ -1,38 +0,0 @@ - - -/*******************************************************************************/ -/* Copyright (C) 2007,2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -// #pragma once - -typedef unsigned char byte_t; -typedef double tick_t; -typedef unsigned int uint; - - -/* #define min(x,y) ((x) < (y) ? (x) : (y)) */ -/* #define max(x,y) ((x) > (y) ? (x) : (y)) */ - -#include -using namespace std; - -#define elementsof(x) (sizeof((x)) / sizeof((x)[0])) - -#include "config.h" -#include "const.h" -#include "debug.h" diff --git a/sequencer/src/config.h b/sequencer/src/config.h deleted file mode 100644 index 853ca18..0000000 --- a/sequencer/src/config.h +++ /dev/null @@ -1,3 +0,0 @@ - - -// #define INSTALL_PREFIX "/usr/local/" diff --git a/sequencer/src/const.h b/sequencer/src/const.h deleted file mode 100644 index 0eeb0d6..0000000 --- a/sequencer/src/const.h +++ /dev/null @@ -1,41 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2007,2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -/* getting around this will require bank switching etc, and - before that happens I'd like to see a song with 128 phrases in it. */ -const int MAX_PHRASE = 128; -const int MAX_PATTERN = 128; - -const unsigned int PPQN = 480; - -/* interval between GUI updates for playhead movement, etc. */ -const double TRANSPORT_POLL_INTERVAL = 0.02; - -const char APP_NAME[] = "Non-Sequencer"; -const char APP_TITLE[] = "The Non-Sequencer"; -const char COPYRIGHT[] = "Copyright (c) 2007-2013 Jonathan Moore Liles"; - -#define PACKAGE "non-sequencer" - -/* directories */ - -#define USER_CONFIG_DIR ".non/" -#define INSTRUMENT_DIR "instruments/" diff --git a/sequencer/src/debug.C b/sequencer/src/debug.C deleted file mode 100644 index 47e46fe..0000000 --- a/sequencer/src/debug.C +++ /dev/null @@ -1,62 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "debug.h" - -void -warnf ( warning_t level, - const char *module, - const char *file, - const char *function, size_t line, const char *fmt, ... ) -{ - va_list args; - static const char *level_tab[] = { - "message", "\033[1;32m", - "warning", "\033[1;33m", - "assertion", "\033[1;31m" - }; - - FILE *fp = W_MESSAGE == level ? stdout : stderr; - - if ( module ) - fprintf( fp, "[%s] ", module ); -#ifndef NDEBUG - if ( file ) - fprintf( fp, "%s", file ); - if ( line ) - fprintf( fp, ":%lu", line ); - if ( function ) - fprintf( fp, " %s()", function ); - - fprintf( fp, ": " ); -#endif - - if ( unsigned( ( level << 1 ) + 1 ) < - ( sizeof( level_tab ) / sizeof( level_tab[0] ) ) ) - fprintf( fp, "%s", level_tab[( level << 1 ) + 1] ); - - if ( fmt ) - { - va_start( args, fmt ); - vfprintf( fp, fmt, args ); - va_end( args ); - } - - fprintf( fp, "\033[0m\n" ); -} diff --git a/sequencer/src/debug.h b/sequencer/src/debug.h deleted file mode 100644 index 126d6fc..0000000 --- a/sequencer/src/debug.h +++ /dev/null @@ -1,116 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -/* debug.h - * - * 11/21/2003 - Jonathan Moore Liles - * - * Debuging support. - * - * Disable by defining the preprocessor variable NDEBUG prior to inclusion. - * - * The following macros sould be defined as string literals - * - * name value - * - * __MODULE__ Name of module. eg. "libfoo" - * - * __FILE__ Name of file. eg. "foo.c" - * - * __FUNCTION__ Name of enclosing function. eg. "bar" - * - * (inteter literal) - * __LINE__ Number of enclosing line. - * - * - * __FILE__, and __LINE__ are automatically defined by standard CPP - * implementations. __FUNCTION__ is more or less unique to GNU, and isn't - * strictly a preprocessor macro, but rather a reserved word in the compiler. - * There is a sed script available with this toolset that is able to fake - * __FUNCTION__ (among other things) with an extra preprocesessing step. - * - * __MODULE__ is nonstandard and should be defined the enclosing program(s). - * Autoconf defines PACKAGE as the module name, and these routines will use its - * value instead if __MODULE__ is undefined. - * - * The following routines are provided (as macros) and take the same arguments - * as printf(): - * - * MESSAGE( const char *format, ... ) - * WARNING( const char *format, ... ) - * ASSERTION( const char *format, ... ) - * - * Calling MESSAGE or WARNING prints the message to stderr along with module, - * file and line information, as well as appropriate emphasis. Calling - * ASSERTION will do the same, and then call abort() to end the program. It is - * unwise to supply any of these marcros with arguments that produce side - * effects. As, doing so will most likely result in Heisenbugs; program - * behavior that changes when debugging is disabled. - * - */ - - -#ifndef _DEBUG_H -#define _DEBUG_H - -#ifndef __MODULE__ -#ifdef PACKAGE -#define __MODULE__ PACKAGE -#else -#define __MODULE__ NULL -#endif -#endif - -#ifndef __GNUC__ - #define __FUNCTION__ NULL -#endif - -#include -#include -#include - -typedef enum { - W_MESSAGE = 0, - W_WARNING, - W_ASSERTION -} warning_t; - -void -warnf ( warning_t level, - const char *module, - const char *file, - const char *function, size_t line, const char *fmt, ... ); - - -#ifndef NDEBUG -#define DMESSAGE( fmt, args... ) warnf( W_MESSAGE, __MODULE__, __FILE__, __FUNCTION__, __LINE__, fmt, ## args ) -#define DWARNING( fmt, args... ) warnf( W_WARNING, __MODULE__, __FILE__, __FUNCTION__, __LINE__, fmt, ## args ) -#define ASSERT( pred, fmt, args... ) do { if ( ! (pred) ) { warnf( W_ASSERTION, __MODULE__, __FILE__, __FUNCTION__, __LINE__, fmt, ## args ); abort(); } } while ( 0 ) -#else -#define DMESSAGE( fmt, args... ) -#define DWARNING( fmt, args... ) -#define ASSERT( pred, fmt, args... ) -#endif - -/* these are always defined */ -#define MESSAGE( fmt, args... ) warnf( W_MESSAGE, __MODULE__, __FILE__, __FUNCTION__, __LINE__, fmt, ## args ) -#define WARNING( fmt, args... ) warnf( W_WARNING, __MODULE__, __FILE__, __FUNCTION__, __LINE__, fmt, ## args ) -#define ASSERTION( fmt, args... ) ( warnf( W_ASSERTION, __MODULE__, __FILE__, __FUNCTION__, __LINE__, fmt, ## args ), abort() ) - -#endif diff --git a/sequencer/src/grid.C b/sequencer/src/grid.C deleted file mode 100644 index 121f14b..0000000 --- a/sequencer/src/grid.C +++ /dev/null @@ -1,1024 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2007-2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "grid.H" -#include "common.h" -#include "canvas.H" - -#include "non.H" - -#include "smf.H" - -using namespace MIDI; - -MIDI::event_list Grid::_clipboard; - -Grid::Grid ( void ) -{ - _name = NULL; - _notes = NULL; - _number = 0; - _height = 0; - - _rd = new data; - _rw = NULL; - - // we need to initialize it here. - data *d = (data *)_rd; - - _mode = 0; - _locked = 0; - - d->length = 0; - - _bpb = 4; - /* how many grid positions there are per beat */ - _ppqn = 4; - - viewport.h = 32; - viewport.w = 32; - viewport.x = 0; - viewport.y = 0; - - _playing = false; - _start = _end = _index = 0; -} - -Grid::~Grid ( void ) -{ - DMESSAGE( "deleting grid" ); - - if ( _name ) - free( _name ); - if ( _notes ) - free( _notes ); - - if ( _rw ) - delete _rw; - if ( _rd ) - delete _rd; - -} - -/* copy constructor */ -Grid::Grid ( const Grid &rhs ) : sigc::trackable() -{ - _rd = new data( *rhs._rd ); - _rw = NULL; - - _name = rhs._name ? strdup( rhs._name ) : NULL; - _notes = rhs._notes ? strdup( rhs._notes ) : NULL; - _number = rhs._number; - _height = rhs._height; - - _mode = 0; - _locked = 0; - _playing = false; - _index = 0; - _start = 0; - _end = 0; - - _bpb = rhs._bpb; - _ppqn = rhs._ppqn; - - viewport = rhs.viewport; -} - -void -Grid::lock ( void ) -{ - if ( ! _locked++ ) - _rw = new data( *_rd ); -} - -void -Grid::unlock ( void ) -{ - if ( 0 == --_locked ) - { - _history.push_back( const_cast( _rd ) ); - - if ( _history.size() > MAX_UNDO + 1 ) - { - data *d = _history.front(); - - delete d; - - _history.pop_front(); - } - - // swap the copy back in (atomically). - _rd = (const data *)_rw; - - _rw = NULL; - - signal_events_change(); - } -} - -event * -Grid::_event ( int x, int y, bool write ) const -{ - const data *d = const_cast< data * >(_rd); - - const event_list *r = write ? &_rw->events : &d->events; - - tick_t xt = x_to_ts(x); - - if ( r->empty() ) -/* || xt > _rd->length ) */ - return NULL; - - int note = y_to_note( y ); - - for ( event *e = r->first(); e; e = e->next() ) - { - if ( ! e->is_note_on() ) - continue; - - if ( e->note() != note ) - continue; - - tick_t ts = e->timestamp(); - tick_t l = 0; - - if ( e->linked() ) - l = e->link()->timestamp() - ts; - else - WARNING( "found unlinked event... event list is corrupt." ); - - if ( xt >= ts && xt < ts + l ) - // this is a little nasty - return const_cast(e); - } - - return NULL; -} - -bool -Grid::_delete ( int x, int y ) -{ - event *e = _event ( x, y, true ); - - if ( e ) - { - if ( e->linked() ) - _rw->events.remove( e->link() ); - - _rw->events.remove( e ); - - return true; - } - - return false; -} - -void -Grid::clear ( void ) -{ - lock(); - - _rw->events.clear(); - - unlock(); -} - -void -Grid::del ( int x, int y ) -{ - lock(); - - _delete( x, y ); - - unlock(); -} - -int -Grid::next_note_x ( int x ) const -{ - for ( const event *e = _rd->events.first(); e; e = e->next() ) - if ( e->is_note_on() && (ts_to_x( e->timestamp() ) > (uint)x ) ) - return ts_to_x( e->timestamp() ); - - return 0; -} - -int -Grid::prev_note_x ( int x ) const -{ - for ( const event *e = _rd->events.last(); e; e = e->prev() ) - if ( e->is_note_on() && (ts_to_x( e->timestamp() ) < (uint)x) ) - return ts_to_x( e->timestamp() ); - - return 0; -} - - -void -Grid::_fix_length ( void ) -{ - tick_t beats = (unsigned long)(_rw->length / PPQN); - tick_t rem = (unsigned long)_rw->length % PPQN; - - _rw->length = (rem ? (beats + 1) : beats) * PPQN; -} - -/** Trim the length of the grid to the last event */ -void -Grid::trim ( void ) -{ - lock(); - - event *e = _rw->events.last(); - - if ( e ) - { - tick_t ts = e->timestamp(); - - _rw->length = ts; - - _fix_length(); - } - - unlock(); -} - -void -Grid::fit ( void ) -{ - int hi, lo; - - _rd->events.hi_lo_note( &hi, &lo ); - - viewport.h = abs( hi - lo ) + 1; - - viewport.y = note_to_y( hi ); -} - -/** Expand the length of the grid to the last event */ -void -Grid::expand ( void ) -{ - lock(); - - event *e = _rw->events.last(); - - if ( e ) - { - tick_t ts = e->timestamp(); - - _rw->length = ts > _rw->length ? ts : _rw->length; - - _fix_length(); - } - - unlock(); -} - -/** returns true if there is a note event at x,y */ -bool -Grid::is_set ( int x, int y ) const -{ - return _event( x, y, false ); -} - -void -Grid::put ( int x, int y, tick_t l, int velocity ) -{ - - int xl = ts_to_x( l ); - tick_t ts = x_to_ts( x ); - - event *on = new event; - event *off = new event; - - // Don't allow overlap (Why not?) - if ( _event( x, y, false ) || - _event( x + xl, y, false ) ) - return; - - DMESSAGE( "put %d,%d", x, y ); - - lock(); - - int note = y_to_note( y ); - - on->status( event::NOTE_ON ); - on->note( note ); - on->timestamp( ts ); - on->note_velocity( velocity ); - on->link( off ); - - off->status( event::NOTE_OFF ); - off->note( note ); - off->timestamp( ts + l ); - off->note_velocity( velocity ); - off->link( on ); - - _rw->events.insert( on ); - _rw->events.insert( off ); - - - expand(); - - unlock(); -} - - -// void -// pattern::move ( int x, int y, int nx ) -// { -// event *e = _event( x, y, false ); - -// if ( e ) -// e->timestamp( nx ); -// } - - -void -Grid::move ( int x, int y, int nx, int ny ) -{ - lock(); - - event *e = _event( x, y, true ); - - if ( e ) - { - DMESSAGE( "moving note" ); - - event *on = e, - *off = e->link(); - - _rw->events.unlink( on ); - _rw->events.unlink( off ); - - on->note( y_to_note( ny ) ); - - tick_t l = on->note_duration(); - on->timestamp( x_to_ts( ny ) ); - on->note_duration( l ); - - _rw->events.insert( off ); - _rw->events.insert( on ); - } - - unlock(); -} - - -void -Grid::adj_velocity ( int x, int y, int n ) -{ - lock(); - - event *e = _event( x, y, true ); - - if ( e ) - { - DMESSAGE( "adjusting velocity" ); - - { - int v = e->note_velocity(); - - v += n; - - if ( v > 127 ) - v = 127; - - e->note_velocity( v > 0 ? v : 1 ); - } - - } - - unlock(); - -} - -void -Grid::adj_duration ( int x, int y, int l ) -{ - lock(); - - event *e = _event( x, y, true ); - - if ( e ) - { - DMESSAGE( "adjusting duration" ); - - { - int v = ts_to_x( e->note_duration() ); - - v += l; - - e->note_duration( x_to_ts( v > 0 ? v : 1 ) ); - - _rw->events.sort( e->link() ); - } - - } - - unlock(); - -} - -void -Grid::set_duration ( int x, int y, int ex ) -{ - if ( ex < 1 ) - return; - - lock(); - - event *e = _event( x, y, true ); - - if ( e ) - { - DMESSAGE( "adjusting duration" ); - - e->note_duration( x_to_ts( ex ) ); - - _rw->events.sort( e->link() ); - } - - unlock(); -} - -void -Grid::get_note_properties ( int x, int y, note_properties *p ) const -{ - const event *e = _event( x, y, false ); - - e->get_note_properties( p ); - - p->start = p->start; - p->duration = p->duration; - p->note = note_to_y( p->note ); -} - -/* void */ -/* Grid::set_note_properties ( int x, int y, const note_properties *p ) */ -/* { */ -/* lock(); */ - -/* const event *e = _event( x, y, true ); */ - -/* e->set_note_properties( p ); */ - -/* unlock(); */ -/* } */ - - - - -/** if there's a note at grid coordinates x,y, then adjust them to the beginning of the note */ -int -Grid::get_start ( int *x, int *y ) const -{ - const event *e = _event( *x, *y, false ); - - if ( e ) - { - *x = ts_to_x( e->timestamp() ); - return 1; - } - else - return 0; -} - -void -Grid::set_end ( int x, int y, int ex ) -{ - lock(); - - event *e = _event( x, y, true ); - - if ( e ) - { - DMESSAGE( "adjusting duration" ); - - tick_t ts = x_to_ts( ex ); - - if ( ts > e->timestamp() && - ts - e->timestamp() > x_to_ts( 1 ) ) - { - e->note_duration( ts - e->timestamp() ); - - _rw->events.sort( e->link() ); - } - } - - unlock(); -} - -void -Grid::toggle_select ( int x, int y ) -{ - lock(); - - event *e = _event( x, y, true ); - - if ( e ) - { - if ( e->selected() ) - e->deselect(); - else - e->select(); - } - - unlock(); -} - -/** copy selected notes to clipboard */ -void -Grid::copy ( void ) -{ - _rd->events.copy_selected( &_clipboard ); -} - -void -Grid::cut ( void ) -{ - _rd->events.copy_selected( &_clipboard ); - - lock(); - - _rw->events.remove_selected(); - - unlock(); -} - -void -Grid::selected_velocity ( int v ) -{ - lock(); - - _rw->events.selected_velocity( v ); - - unlock(); -} - -void -Grid::paste ( int offset ) -{ - lock(); - - _rw->events.paste( x_to_ts( offset ), &_clipboard ); - - expand(); - - unlock(); - -} - -/** insert /l/ ticks of time after /x/ */ -void -Grid::insert_time ( int l, int r ) -{ - tick_t start = x_to_ts( l ); - tick_t end = x_to_ts( r ); - - lock(); - - _rw->events.insert_time( start, end - start ); - - expand(); - - unlock(); -} - -/** select all events in range (notes straddling the border will also be selected */ -void -Grid::select ( int l, int r ) -{ - tick_t start = x_to_ts( l ); - tick_t end = x_to_ts( r ); - - lock(); - - _rw->events.select( start, end ); - - unlock(); -} - -/** select all (note) events in rectangle */ -void -Grid::select ( int l, int r, int t, int b ) -{ - tick_t start = x_to_ts( l ); - tick_t end = x_to_ts( r ); - - lock(); - - _rw->events.select( start, end, y_to_note( t) , y_to_note( b ) ); - - unlock(); -} - -/** delete events from /x/ to /l/, compressing time. */ -void -Grid::delete_time ( int l, int r ) -{ - tick_t start = x_to_ts( l ); - tick_t end = x_to_ts( r ); - - lock(); - - _rw->events.delete_time( start, end ); - - unlock(); -} - -void -Grid::select_none ( void ) -{ - lock(); - - _rw->events.select_none(); - - unlock(); -} - -void -Grid::select_all ( void ) -{ - lock(); - - _rw->events.select_all(); - - unlock(); -} - -void -Grid::invert_selection ( void ) -{ - lock(); - - _rw->events.invert_selection(); - - unlock(); -} - -void -Grid::delete_selected ( void ) -{ - lock(); - - _rw->events.remove_selected(); - - unlock(); -} - -void -Grid::nudge_selected ( int l ) -{ - long o = x_to_ts( abs( l ) ); - - if ( l < 0 ) - o = 0 - o; - - lock(); - -// MESSAGE( "moving by %ld", o ); - - _rw->events.nudge_selected( o ); - - unlock(); -} - -void -Grid::move_selected ( int l ) -{ - tick_t o = x_to_ts( l ); - - lock(); - -// MESSAGE( "moving by %ld", o ); - - _rw->events.move_selected( o ); - - unlock(); -} - -void -Grid::crop ( int l, int r ) -{ - lock(); - - if ( (uint)r < ts_to_x( _rw->length ) ) - delete_time( r, ts_to_x( _rw->length ) ); - if ( l > 0 ) - delete_time( 0, l ); - - trim(); - - unlock(); -} - -void -Grid::crop ( int l, int r, int t, int b ) -{ - lock(); - - _rw->events.push_selection(); - - select( l, r, t, b ); - - _rw->events.invert_selection(); - _rw->events.remove_selected(); - - _rw->events.pop_selection(); - - crop( l, r ); - - unlock(); -} - -int -Grid::min_selected ( void ) const -{ - return ts_to_x( _rd->events.selection_min() ); -} - -void -Grid::_relink ( void ) -{ - _rw->events.relink(); -} - -/* Dump the event list -- used by pattern / phrase dumppers */ -void -Grid::dump ( smf *f, int channel ) const -{ - data *d = const_cast(_rd); - - midievent me; - - for ( event *e = d->events.first(); e; e = e->next() ) - { - me = *e; - me.channel( channel ); - - f->write_event( &me ); - } -} - -void -Grid::print ( void ) const -{ - data *d = const_cast(_rd); - - for ( event *e = d->events.first(); e; e = e->next() ) - e->print(); -} - - -/* */ - -/** Invoke /draw_note/ function for every note in the viewport */ -void -Grid::draw_notes ( draw_note_func_t draw_note, void *userdata ) const -{ - data *d = const_cast< data *>( _rd ); - - for ( const event *e = d->events.first(); e; e = e->next() ) - { - if ( ! e->is_note_on() ) - continue; - - const tick_t ts = e->timestamp(); - - ASSERT( e->link(), "found a non-linked note" ); - - const tick_t tse = e->link()->timestamp(); - - draw_note( - ts, - note_to_y( e->note() ), - tse - ts, - e->note_velocity(), - e->selected(), - userdata ); - } -} - - /*******************************************/ - /* Generic accessors -- boy C++ is verbose */ - /*******************************************/ - -/** Returns the index (playhead) for this grid */ -tick_t -Grid::index ( void ) const -{ - /* FIXME: considering the type of tick_t, we really need some kind - of locking here to insure that this thread doesn't read _index - while the RT thread is writing it. */ - return _index; -} - -bool -Grid::playing ( void ) const -{ - return _playing; -} - -int -Grid::height ( void ) const -{ - return _height; -} - -void -Grid::height ( int h ) -{ - _height = h; -} - -tick_t -Grid::length ( void ) const -{ - return _rd->length; -} - -void -Grid::length ( tick_t l ) -{ - lock(); - - _rw->length = l; - - unlock(); -} - -void -Grid::bars ( int n ) -{ - lock(); - - _rw->length = n * _bpb * PPQN; - - _fix_length(); - - unlock(); - - // trim(); - - signal_events_change(); -} - -int -Grid::bars ( void ) const -{ - return beats() / _bpb; -} - -int -Grid::beats ( void ) const -{ - return _rd->length / PPQN; -} - -int -Grid::division ( void ) const -{ - return _bpb * _ppqn; -} - -int -Grid::subdivision ( void ) const -{ - return _ppqn; -} - -int -Grid::ppqn ( void ) const -{ - return _ppqn; -} - -/** set grid resolution to /n/, where /n/ is the denominator e.g. 1/n. */ -void -Grid::resolution ( unsigned int n ) -{ - float W = viewport.w / _ppqn; - - _ppqn = n; - - viewport.w = _ppqn * W; - - signal_events_change(); - - signal_settings_change(); -} - -int -Grid::resolution ( void ) const -{ - return _ppqn; -} - -int -Grid::number ( void ) const -{ - return _number; -} - -void -Grid::name ( char *s ) -{ - if ( _name ) free ( _name ); - - _name = s; - - signal_settings_change(); -} - -const char * -Grid::name ( void ) const -{ - return _name; -} - -void -Grid::notes ( char *s ) -{ - if ( _notes ) free ( _notes ); - - _notes = s; - - signal_settings_change(); -} - -char * -Grid::notes ( void ) const -{ - return _notes; -} - -void -Grid::mode ( int m ) -{ - _mode = m; - - /* can't do this in RT thread, sorry. */ -/// signal_settings_change(); -} - -int -Grid::mode ( void ) const -{ - return _mode; -} - -void -Grid::undo ( void ) -{ - if ( ! _history.size() ) - return; - - data *d = _history.back(); - - _history.pop_back(); - - // swap the copy back in (atomically). - _rd = (const data *)d; - - _rw = NULL; - - signal_events_change(); -} - -/** return a pointer to a copy of grid's event list in raw form */ -event_list * -Grid::events ( void ) const -{ - data * d = const_cast< data * >( _rd ); - - return new event_list( d->events ); -} - -/** replace event list with a copy of /el/ */ -void -Grid::events ( const event_list * el ) -{ - lock(); - - _rw->events = *el; - - unlock(); -} diff --git a/sequencer/src/grid.H b/sequencer/src/grid.H deleted file mode 100644 index ca39d43..0000000 --- a/sequencer/src/grid.H +++ /dev/null @@ -1,282 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2007-2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include -#include -#include "const.h" -#include "instrument.H" - -class smf; - -#include "debug.h" - -const int MAX_UNDO = 50; - -#include - -#include -using namespace sigc; - -using std::list; - -/* patterns and phrases use this structure */ - -class Canvas; - -/* everything that must be lock-free. This whole structure gets copied and swapped - for each write method */ -struct data { - - tick_t length; - int state; - MIDI::event_list events; - - data( void ) - { - length = 0; - state = 0; - } - - data( const data &rhs ) - { - events = rhs.events; - length = rhs.length; - state = rhs.state; - } -/* data() { MESSAGE( "allocating new editable data" ); } */ - // ~data() { MESSAGE( "deleting old undo data, freeing at least %d bytes.", events.size() * sizeof ( event ) + sizeof ( list )); } -}; - - -struct Viewport { - - #define format "%d:%d:%d:%d" - - int x, y, w, h; - - Viewport ( void ) - { - x = y = w = h = 0; - } - - char * - dump ( void ) const - { - char *s; - - asprintf( &s, format, x, y, w, h ); - - return s; - } - - void - read( const char *s ) - { - sscanf( s, format, &x, &y, &w, &h ); - } - - #undef format -}; - - - -class Grid : public trackable -{ - static MIDI::event_list _clipboard; - -protected: - - unsigned int _height; - char *_notes; - char *_name; - int _number; - - unsigned int _bpb; /* beats per bar */ - unsigned int _ppqn; /* pulses per quarter note (beat) */ - - - /* Used by playback thread. When a pattern or phrase is triggered, - these fields are filled in appropriately */ - mutable tick_t _start; /* absolute start tick of loop */ - mutable tick_t _end; /* absolute end tick of loop */ - volatile mutable tick_t _index; /* playhead, relative to start -- primarily used to draw the playhead */ - volatile mutable bool _playing; /* true if currently playing */ - - mutable volatile int _mode; /* mute, solo */ - - // FIXME: shouldn't this be "volatile"? -// const volatile data *_rd; /* read only data used by RT thread */ - const data * volatile _rd; - data *_rw; /* temporary writable copy used by UI thread */ - - list _history; - - void _remove_marked ( void ); - MIDI::event * _event ( int x, int y, bool write ) const; - bool _delete ( int x, int y ); - void _link ( void ); - void _relink ( void ); - void _fix_length ( void ); - - -private: - - volatile int _locked; - -public: - - typedef void draw_note_func_t ( tick_t x, int y, tick_t l, int velocity, int selected, void *userdata ); - - void draw_notes ( draw_note_func_t draw_note, void *userdata ) const; - - signal signal_events_change; - signal signal_settings_change; - - Viewport viewport; /* used by the Canvas */ - - Grid ( void ); - virtual ~Grid ( void ); - Grid ( const Grid &rhs ); - - virtual bool velocity_sensitive ( void ) const { return true; } - - int y_to_note ( int y ) const; - int note_to_y ( int n ) const; - tick_t x_to_ts ( unsigned long x ) const; - double ts_to_x ( tick_t ts ) const; - - virtual Grid * create ( void ) = 0; - virtual Grid * clone ( void ) = 0; - virtual void draw_row_names ( Canvas *c ) const = 0; - virtual const char * row_name ( int r ) const = 0; - - virtual Grid * by_number ( int n ) const = 0; - - virtual void put ( int x, int y, tick_t l, int velocity = 64 ); - virtual bool is_set ( int x, int y ) const; - - void lock ( void ); - void unlock ( void ); - void clear ( void ); - void del ( int x, int y ); - void adj_velocity ( int x, int y, int n ); - void adj_duration ( int x, int y, int l ); - void set_duration ( int x, int y, int l ); - void set_end ( int x, int y, int l ); - int get_start ( int *x, int *y ) const; - void move ( int x, int y, int nx, int ny ); - void record_event ( MIDI::event *e ); - tick_t index ( void ) const; - bool playing ( void ) const; - - int height ( void ) const; - void height ( int h ); - tick_t length ( void ) const; - void length ( tick_t l ); - - void bars ( int n ); - int bars ( void ) const; - int beats ( void ) const; - void trim ( void ); - void expand ( void ); - int division ( void ) const; - int subdivision ( void ) const; - int ppqn ( void ) const; - int number ( void ) const; - void name ( char *s ); - const char * name ( void ) const; - void notes ( char *s ); - char * notes ( void ) const; - virtual void mode ( int m ); - virtual int mode ( void ) const; - int next_note_x ( int x ) const; - int prev_note_x ( int x ) const; - - void fit ( void ); - - void delete_selected ( void ); - void move_selected ( int l ); - void nudge_selected ( int l ); - void selected_velocity ( int v ); - - void crop ( int l, int r ); - void crop ( int l, int r, int t, int b ); - - void toggle_select ( int x, int y ); - void insert_time ( int x, int r ); - void select ( int start, int end ); - void select ( int start, int end, int t, int b ); - void delete_time ( int start, int end ); - void select_none ( void ); - void select_all ( void ); - void invert_selection ( void ); - - void resolution ( unsigned int n ); - int resolution ( void ) const; - - void dump ( smf *f, int channel ) const; - void draw ( Canvas *c, int bx, int by, int bw, int bh ); - void print ( void ) const; - - MIDI::event_list * events ( void ) const; - void events ( const MIDI::event_list * el ); - - void get_note_properties ( int x, int y, MIDI::note_properties *p ) const; - - int min_selected ( void ) const; - - void cut ( void ); - void copy ( void ); - void paste ( int offset ); - - void undo ( void ); - - virtual tick_t default_length ( void ) const - { - return PPQN; - } - -}; - - -inline int -Grid::y_to_note ( int y ) const -{ - return 127 - y; -} - -inline int -Grid::note_to_y ( int n ) const -{ - return 127 - n; -} - -inline tick_t -Grid::x_to_ts ( unsigned long x ) const -{ - return (x * PPQN) / _ppqn; -} - -inline double -Grid::ts_to_x ( tick_t ts ) const -{ - return (ts * _ppqn) / PPQN; -} diff --git a/sequencer/src/gui/event_edit.fl b/sequencer/src/gui/event_edit.fl deleted file mode 100644 index d4c924b..0000000 --- a/sequencer/src/gui/event_edit.fl +++ /dev/null @@ -1,546 +0,0 @@ -# data file for the Fltk User Interface Designer (fluid) -version 1.0300 -header_name {.H} -code_name {.C} -comment {// -// Copyright (C) 2008 Jonathan Moore Liles -// -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -// -} {in_source in_header -} - -decl {\#include "../grid.H"} {private local -} - -decl {\#include "../scale.H"} {private local -} - -decl {\#include } {public global -} - -decl {\#include } {selected public global -} - -decl {using namespace MIDI;} {private local -} - -decl {extern Fl_Color velocity_colors[];} {private local -} - -decl {class Event_Widget;} {public local -} - -class Event_Editor {open -} { - decl {int _h;} {private local - } - decl {Grid *_grid;} {private local - } - decl {MIDI::event_list *_old;} {private local - } - decl {MIDI::event_list *_el;} {private local - } - decl {int _y;} {private local - } - Function {make_window( Grid *g )} {open - } { - Fl_Window window { - label {Event Editor} - callback {delete _el; - -_grid->events( _old ); - -delete _old; - -_el = _old = NULL; - -o->hide(); - -Fl::delete_widget( o );} open - xywh {968 122 655 805} type Double resizable - code0 {\#include "event_edit.H"} - code1 {\#include "../grid.H"} modal size_range {0 0 659 803} visible - } { - Fl_Scroll {} { - label {Event List} open - xywh {10 29 635 737} type VERTICAL_ALWAYS box FLAT_BOX - } { - Fl_Pack pack {open - xywh {10 29 635 737} color 47 when 6 resizable - } {} - } - Fl_Return_Button {} { - label {&Save} - callback {delete window; -delete _el; -delete _old;} - xywh {489 771 76 25} - } - Fl_Button {} { - label {&Discard} - callback {window->do_callback();} - xywh {575 771 74 25} - } - Fl_Button {} { - label Del - user_data this user_data_type {Event_Editor *} - callback {_el->remove_selected(); - -sync();} - xywh {10 771 74 25} shortcut 0xffff color 88 - } - Fl_Menu_Button {} { - label {&Insert} - user_data this user_data_type {Event_Editor *} - callback {if ( o->value() == 0 ) -{ - // note; - - event *on = new event; - event *off = new event; - - on->status( event::NOTE_ON ); - on->note( 64 ); - on->note_velocity( 64 ); - - off->status( event::NOTE_OFF ); - off->note( 64 ); - off->timestamp( 1 ); - off->note_velocity( 64 ); - - on->link( off ); - - _el->insert( on ); - _el->insert( off ); - -} -else -{ - event *e = new event; - - int opcode = e->name( o->menu()[ o->value() ].text ); - - if ( opcode < 0 ) - return; - - e->status( opcode ); - - Event_Widget *ew = v->value(); - - if ( ew && ew->ev() ) - e->timestamp( ew->ev()->timestamp() ); - - - _el->insert( e ); -} - -sync();} open - xywh {94 771 121 25} color 63 - } { - MenuItem {} { - label Note - xywh {10 10 40 25} - } - MenuItem {} { - label Aftertouch - xywh {50 50 40 25} - } - MenuItem {} { - label {Control Change} - xywh {20 20 40 25} - } - MenuItem {} { - label {Program Change} - xywh {30 30 40 25} - } - MenuItem {} { - label {Channel Pressure} - xywh {60 60 40 25} - } - MenuItem {} { - label {Pitch Wheel} - xywh {40 40 40 25} - } - } - } - code {// keep a copy -_old = g->events(); -_el = g->events(); - -_grid = g; -_y = 0; - -_h = pack->h() / 24; - -update_widgets();} {} - } - Function {sync( void )} {open return_type void - } { - code {DMESSAGE( "syncing events to grid" ); - -_grid->events( _el ); - -update_widgets();} {} - } - Function {update_widgets( void )} {open return_type void - } { - code {int i = 0; -if ( ! _el->empty() ) - -for ( event* e = (*_el)[0]; e; ( e = e->next() ), i++ ) -{ - Event_Widget *ew; - - if ( i < pack->children() ) - { - ew = (Event_Widget*)pack->child(i); - } - else - { - - ew = new Event_Widget( 0, 0, pack->w() - Fl::box_dw( pack->box() ), 24, 0 ); - - ew->callback( cb_changed, (void*)this ); - ew->when( FL_WHEN_CHANGED ); - pack->add( ew ); - } - - ew->ev( e ); -} - -// pack->parent()->redraw();} {} - } - Function {value( void )} {return_type {Event_Widget *} - } { - code {for ( int i = 0; i < pack->children(); i++ ) -{ - Event_Widget *w = (Event_Widget*)pack->child( i ); - if ( w->selected() ) - return w; -} - -return NULL;} {} - } - Function {cb_changed( Fl_Widget *w, void *ee )} {open return_type {static void} - } { - code {Event_Widget *ew = (Event_Widget*)w; - -if ( ew->changed() ) - // sorting order changed. - ((Event_Editor*)ee)->_el->sort( ew->ev() ); - -((Event_Editor*)ee)->sync();} {} - } -} - -Function {event_editor( Grid *g )} {open C return_type void -} { - code {Event_Editor ee; - - -Fl_Window *w = ee.make_window( g ); - -w->modal(); -w->show(); - -while( w->shown() ) - Fl::wait();} {} -} - -widget_class Event_Widget {user_data_type {void *} open - xywh {945 239 590 30} type Single - code0 {_event = NULL;} - class Fl_Group size_range {400 24 0 24} visible -} { - decl {static const Fl_Color note_color = FL_BLACK;} {private local - } - decl {static const Fl_Color control_color = FL_BLUE;} {private local - } - decl {static const Fl_Color prog_color = FL_RED;} {private local - } - decl {static const Fl_Color pressure_color = FL_YELLOW;} {private local - } - decl {static const Fl_Color after_color = FL_CYAN;} {private local - } - decl {static const Fl_Color pitch_color = FL_GREEN} {private local - } - decl {MIDI::event *_event;} {private local - } - decl {Fl_Group *tab;} {private local - } - Function {ev( MIDI::event * e )} {open return_type void - } { - code {if ( e && ( _event == NULL ) ) - activate(); -else -if ( ! e ) -{ - _event = NULL; - deactivate(); - return; -} - -activate(); - -_event = e; - -name->label( e->name() ); -time->value( e->timestamp() ); - -// hide all tabs -for ( int i = 2; i < children(); i++ ) - child( i )->hide(); - -Fl_Valuator *d1, *d2; - -d1 = d2 = NULL; - -name->color( FL_BLACK ); -name->value( e->selected() ); - -// display the proper subtype -switch ( e->opcode() ) -{ -\#define TWO d1 = (Fl_Valuator*)tab->child( 0 ); d2 = (Fl_Valuator*)tab->child( 1 ) -\#define ONE d1 = (Fl_Valuator*)tab->child( 0 ); d2 = NULL - - case midievent::NOTE_ON: - case midievent::NOTE_OFF: - tab = note_tab; - name->color( note_color ); - - note_name->label( Scale::chromatic_name( e->note() ) ); - note_name->labelcolor( velocity_colors[ e->note_velocity() ] ); - - TWO; - break; - case midievent::CONTROL_CHANGE: - tab = control_tab; - name->color( control_color ); - - TWO; - break; - case midievent::AFTERTOUCH: - tab = after_tab; - name->color( after_color ); - - TWO; - break; - case midievent::CHANNEL_PRESSURE: - tab = pressure_tab; - name->color( pressure_color ); - - ONE; - break; - case midievent::PROGRAM_CHANGE: - tab = prog_tab; - name->color( prog_color ); - - ONE; - break; - case midievent::PITCH_WHEEL: - tab = pitch_tab; - name->color( pitch_color ); - - ONE; - d1->value( e->pitch() ); - goto pitch; - break; -} - - -byte_t D1, D2; - -e->data( &D1, &D2 ); - -d1->value( D1 ); -if ( d2 ) - d2->value( D2 ); - - -pitch: - -// show the current tab -tab->show(); - -time->redraw(); -name->redraw(); - -// redraw();} {} - } - Function {ev( void )} {open return_type {MIDI::event *} - } { - code {return _event;} {} - } - Fl_Value_Input time { - callback {if ( _event->is_note_off() ) -{ - if ( o->value() < _event->link()->timestamp() ) - { - o->value( _event->timestamp() ); - return; - } -} -else -if ( _event->is_note_on() ) - if ( o->value() > _event->link()->timestamp() ) - { - o->value( _event->timestamp() ); - return; - } - - -_event->timestamp( o->value() ); - -set_changed(); -do_callback();} - xywh {3 0 125 24} labeltype NO_LABEL align 0 when 8 maximum 0 - code1 {o->maximum( (unsigned long)-1 );} - } - Fl_Button name { - label {} user_data_type {void*} - callback {if ( o->value() ) - _event->select(); -else - _event->deselect(); - -do_callback();} - xywh {132 -1 149 25} type Toggle when 1 - } - Fl_Group note_tab {open - xywh {282 -3 324 37} align 16 - } { - Fl_Value_Input {} { - label {Note:} - user_data this - callback cb_note - xywh {359 0 51 24} when 4 maximum 127 step 1 - } - Fl_Value_Slider {} { - label {Velocity:} - user_data this user_data_type {void *} - callback cb_msb - xywh {480 0 110 24} type {Horz Fill} selection_color 80 align 4 when 4 maximum 127 step 1 - } - Fl_Box note_name { - label {A\#} - private xywh {284 1 31 24} labeltype SHADOW_LABEL labelfont 14 labelcolor 135 - } - } - Fl_Group after_tab {open - xywh {317 0 277 25} align 16 hide - } { - Fl_Value_Input {} { - label {Note:} - user_data this - callback cb_note - xywh {359 0 51 24} when 4 maximum 127 step 1 - } - Fl_Value_Slider {} { - label {Pressure:} - user_data this user_data_type {void *} - callback cb_msb - xywh {480 0 110 24} type {Horz Fill} selection_color 80 align 4 when 4 maximum 127 step 1 - } - } - Fl_Group control_tab {open - xywh {358 0 238 34} align 16 hide - } { - Fl_Value_Input {} { - label {Control:} - user_data this - callback cb_lsb - xywh {359 0 51 24} when 4 maximum 127 step 1 - } - Fl_Value_Input {} { - label {Value:} - user_data this - callback cb_msb - xywh {480 0 51 24} when 4 maximum 127 step 1 - } - } - Fl_Group prog_tab {open - xywh {287 0 238 25} align 16 hide - } { - Fl_Value_Input {} { - label {Program:} - user_data this - callback cb_lsb - xywh {359 0 51 24} when 4 maximum 127 step 1 - } - } - Fl_Group pitch_tab {open - xywh {306 0 290 24} align 16 hide - } { - Fl_Slider {} { - label {Pitch:} user_data_type {void *} - callback {_event->pitch( o->value() ); -do_callback();} - xywh {358 0 231 24} type Horizontal align 4 when 4 minimum -8192 maximum 8191 step 1 - } - } - Fl_Group pressure_tab {open - xywh {307 0 291 24} align 16 hide - } { - Fl_Slider {} { - label {Pressure:} - user_data this - callback cb_lsb - xywh {359 0 230 24} type {Horz Fill} align 4 when 4 maximum 127 step 1 - } - } - Function {select( bool b )} {open return_type void - } { - code {/* -_selected = b; - -if ( b ) - name->color( FL_WHITE ); - -redraw(); -*/} {} - } - Function {button()} {open return_type {Fl_Button *} - } { - code {return name;} {} - } - Function {selected( void )} {open return_type bool - } { - code {/* -int n = name->value(); -name->value( 0 ); -return n; -*/ - -return name->value();} {} - } - Function {cb_lsb( Fl_Valuator *o, Event_Widget *w )} {open return_type {static void} - } { - code {w->ev()->lsb( o->value() ); - -w->do_callback();} {} - } - Function {cb_msb( Fl_Valuator *o, Event_Widget *w )} {open return_type {static void} - } { - code {w->ev()->msb( o->value() ); -w->do_callback();} {} - } - Function {cb_note( Fl_Valuator *o, Event_Widget *w )} {open return_type {static void} - } { - code {w->ev()->note( o->value() ); -w->do_callback();} {} - } -} diff --git a/sequencer/src/gui/ui.fl b/sequencer/src/gui/ui.fl deleted file mode 100644 index b46abc9..0000000 --- a/sequencer/src/gui/ui.fl +++ /dev/null @@ -1,2040 +0,0 @@ -# data file for the Fltk User Interface Designer (fluid) -version 1.0300 -header_name {.H} -code_name {.C} -comment {// -// Copyright (C) 2008 Jonathan Moore Liles -// -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -// -} {in_source in_header -} - -decl {\#include } {public local -} - -decl {\#include } {private local -} - -decl {class Fl_Scalepack;} {public local -} - -decl {class Fl_Sometimes_Input;} {public local -} - -decl {\#include } {public global -} - -decl {\#include } {public local -} - -decl {\#include } {private local -} - -decl {\#include } {public global -} - -decl {\#include } {private local -} - -decl {\#include } {private local -} - -decl {\#include } {private local -} - -decl {\#include } {private local -} - -decl {\#include } {private local -} - -decl {\#include "event_edit.H"} {private local -} - -decl {\#include "../jack.H"} {private local -} - -decl {\#include "../NSM.H"} {private local -} - -decl {extern NSM_Client *nsm;} {private local -} - -decl {\#include "../transport.H"} {private local -} - -decl {extern UI *ui;} {private local -} - -decl {class O_Canvas;} {private local -} - -decl {class Triggers;} {public local -} - -decl {class Instrument_Editor;} {private local -} - -decl {Fl_Color canvas_background_color;} {public local -} - -decl {Fl_Color velocity_colors[128];} {public local -} - -Function {init_colors()} {open private C return_type {static void} -} { - code {unsigned int i; - /* velocity colors */ - - Fl_Color lo = fl_color_average( FL_CYAN, FL_BLACK, 0.10 ); - Fl_Color hi = fl_color_average( FL_CYAN, FL_WHITE, 0.80 ); - - for ( i = 128; i--; ) - { - velocity_colors[i] = fl_color_average( hi, lo, 1.0 * ((float)i / 128) ); - }} {} -} - -widget_class Visual_Metronome {open - xywh {978 1028 100 100} type Double visible -} { - Fl_Slider progress { - private xywh {139 115 1149 23} type Horizontal box FLAT_BOX color 7 selection_color 54 - code0 {o->resize( x(), (y() + h()) - (h() / 3), w(), h() / 3 );} - code1 {o->slider_size( 0.25 );} - code2 {o->slider( FL_FLAT_BOX );} - } - Function {draw(void)} {open protected return_type void - } { - code {if ( damage() & ~FL_DAMAGE_CHILD ) -{ - if ( ! _bpb ) - return; - -int bw = w() / _bpb; - -int b = _bpb; - -if ( b ) -{ - -for ( int i = 0; i < b; ++i ) -{ - if ( i == _beat ) - fl_color( velocity_colors[ i * 127 / _bpb ] ); - else - fl_color( FL_GRAY ); - - int X = x() + ( i * bw ); - int Y = y(); - int W = bw; - int H = h() - 14; - - fl_rectf(X,Y,W,H); - fl_color( fl_darker( fl_color() ) ); - fl_rect( X,Y,W,H); - - char pat[4]; - - snprintf( pat, sizeof(pat), "%d", i + 1 ); - fl_font( FL_HELVETICA_BOLD, 24 ); - fl_draw( pat, X,Y,W,H, FL_ALIGN_CENTER ); - -} -} -} -progress->resize( x(), y() + h() - 14, w(), 14 ); - -if ( damage() & FL_DAMAGE_CHILD ) - update_child( *progress ); -else - draw_child( *progress ); - -// _flip = ! _flip;} {} - } - decl {int _bpb} {private local - } - decl {int _tpb} {private local - } - decl {int _beat} {private local - } - decl {bool _flip} {private local - } - decl {int _tick} {private local - } - Function {bpb( int b )} {open private return_type void - } { - code {if ( b != _bpb ) -{ - _bpb = b; - redraw(); -}} {} - } - Function {tpb( int ticks )} {open private return_type void - } { - code {_tpb = ticks; - -progress->minimum( 0 ); -progress->maximum( ticks );} {} - } - Function {beat( int b )} {open private return_type void - } { - code {if ( b == _beat || b >= _bpb ) - return; - -_flip = ! _flip; - -_beat = b; -redraw();} {} - } - Function {tick( int tick )} {open private return_type void - } { - code {if ( tick == _tick ) - return; - -if ( _beat < 0 ) - return; - -if ( _flip ) -{ - progress->value( _tpb - tick ); -} -else -{ - progress->value( tick ); -} - -_tick = tick;} {} - } - Function {update( void )} {open return_type void - } { - code {if ( transport.beats_per_bar ) { -bpb( transport.beats_per_bar ); -tpb( transport.ticks_per_beat ); -beat( transport.beat - 1 ); -tick( transport.tick - 1 );}} {} - } - code {_bpb = 0; -_tpb = 0; -_beat = 0; -_tick = 0; -_flip = 0;} {} -} - -class Overlay_Callback_Window {: {public Fl_Overlay_Window} -} { - decl {void (*_draw_overlay_callback)(void*);} {private local - } - decl {void *_draw_overlay_userdata;} {private local - } - Function {Overlay_Callback_Window(int X, int Y, int W, int H, const char *L=0) : Fl_Overlay_Window(X,Y,W,H,L)} {open - } { - code {_draw_overlay_callback = 0; -_draw_overlay_userdata = 0;} {} - } - Function {Overlay_Callback_Window(int W, int H, const char *L=0) : Fl_Overlay_Window(W,H,L)} {open - } { - code {_draw_overlay_callback = 0; -_draw_overlay_userdata = 0;} {} - } - Function {draw_overlay()} {open return_type {virtual void} - } { - code {if ( _draw_overlay_callback ) - _draw_overlay_callback( _draw_overlay_userdata );} {} - } - Function {draw_overlay_callback( void(*cb)(void*), void *v)} {open return_type void - } { - code {_draw_overlay_callback = cb; -_draw_overlay_userdata = v;} {} - } -} - -Function {update_transport( void * )} {open return_type void -} { - code {// transport_poll(); - -handle_midi_input(); - - ui->progress_group->do_callback(); - - ui->vmetro_widget->update(); - - ui->triggers_widget->update(); - -Fl::repeat_timeout( TRANSPORT_POLL_INTERVAL, update_transport ); - -static int oldstate = -1; - -if ( transport.rolling != oldstate ) -{ - - ui->play_button->label( transport.rolling ? "@square" : "@>" ); - oldstate = transport.rolling; - - if ( transport.rolling ) - { - ui->menu_new->deactivate(); - ui->menu_open->deactivate(); - } - else - { - ui->menu_new->activate(); - ui->menu_open->activate(); - } - -} - -if ( nsm && nsm->is_active() ) -{ - if ( ui->menu_new->active() ) - { - ui->menu_new->deactivate(); - ui->menu_open->deactivate(); - ui->menu_save_as->deactivate(); - } -} - -// JUST A TEST -if ( transport.rolling ) -{ - if ( ui->tabs->value() == ui->pattern_tab ) - ui->pattern_canvas_widget->redraw_playhead(); - else - if ( ui->tabs->value() == ui->phrase_tab ) - ui->phrase_canvas_widget->redraw_playhead(); - -} - -ui->transport_state->do_callback();} {} -} - -class UI {open -} { - decl {Fl_Text_Buffer *sequence_notes_buffer;} {private local - } - decl {Fl_Text_Buffer *pattern_notes_buffer;} {private local - } - decl {Fl_Text_Buffer *phrase_notes_buffer} {private local - } - Function {UI()} {open - } { - code {fl_register_images(); - -canvas_background_color = FL_GREEN; - -playback_mode_menu = NULL; - -main_window = make_main_window(); -seq_window = make_seq_window(); - -init_colors(); - -// make_instrument_edit_dialog(); - -// use old focus behavior -Fl::visible_focus( 0 ); - -// try to fill the screen, but only when the screen is tiny and our window is huge. -{ - int sx, sy, sw, sh; - - Fl::screen_xywh( sx, sy, sw, sh ); - - if ( sw < main_window->w() || sh < main_window->h() ) - main_window->resize( sx, sy, sw, sh ); -} - -Fl::add_timeout( TRANSPORT_POLL_INTERVAL, update_transport ); - - -playlist->signal_new_song.connect( sigc::mem_fun( this, &UI::update_sequence_widgets ) ); -pattern_canvas_widget->signal_settings_change.connect( sigc::mem_fun( this, &UI::update_pattern_widgets ) ); -phrase_canvas_widget->signal_settings_change.connect( sigc::mem_fun( this, &UI::update_phrase_widgets ) );} {} - } - Function {~UI()} {open - } { - code {delete seq_window; -delete main_window;} {} - } - Function {run()} {open - } { - code {Fl::run();} {} - } - Function {load_settings()} {open return_type void - } { - code {char *path; - -asprintf( &path, "%s/%s", config.user_config_dir, "view" ); - -((Fl_Menu_Settings*)menu_bar)->load( menu_bar->find_item( "&View" ), path ); - -free( path );} {} - } - Function {save_settings()} {open return_type void - } { - code {char *path; - -asprintf( &path, "%s/%s", config.user_config_dir, "view" ); - -((Fl_Menu_Settings*)menu_bar)->dump( menu_bar->find_item( "&View" ), path ); - -free( path );} {} - } - Function {draw_overlay( void *v )} {open protected return_type {static void} - } { - code {((UI*)v)->draw_overlay();} {} - } - Function {draw_overlay()} {open protected return_type void - } { - code {Canvas *c = current_canvas(); -if ( c ) - c->draw_overlay();} {} - } - Function {make_main_window()} {open - } { - Fl_Window main_window { - label {Non Sequencer} - callback {// Ignore escape -if ( Fl::event() == FL_SHORTCUT && Fl::event_key() == FL_Escape ) - return; - -if ( maybe_save_song() ) - quit();} open - xywh {213 323 865 805} type Double color 47 resizable - code0 {o->color( FL_BACKGROUND_COLOR );} - code1 {o->draw_overlay_callback( &UI::draw_overlay, this );} - code2 {o->xclass( APP_NAME );} - class Overlay_Callback_Window size_range {700 509 0 0} visible - } { - Fl_Group {} {open - xywh {0 25 865 70} box FLAT_BOX - } { - Fl_Group {} {open - xywh {552 26 312 69} - code0 {o->resizable(0);} - } { - Fl_Value_Input {} { - label BPM - callback {transport.set_beats_per_minute( o->value() );} - xywh {825 39 35 19} labelsize 9 align 1 when 8 textsize 10 - code1 {transport.signal_tempo_change.connect( sigc::mem_fun( o, static_cast(&Fl_Valuator::value) ) );} - code2 {o->value( transport.beats_per_minute );} - } - Fl_Group {} { - label {Time Sig.} open - xywh {756 38 64 21} labelsize 9 - } { - Fl_Value_Input {} { - callback {transport.set_beats_per_bar( o->value() );} - xywh {756 39 24 19} textsize 10 - code0 {transport.signal_bpb_change.connect( sigc::mem_fun( o, static_cast(&Fl_Valuator::value) ) );} - code1 {o->value( transport.beats_per_bar );} - } - Fl_Box {} { - label {/} - xywh {780 38 14 21} - } - Fl_Value_Input {} { - callback {transport.set_beat_type( o->value() );} - xywh {795 39 24 19} textsize 10 - code0 {transport.signal_beat_change.connect( sigc::mem_fun( o, static_cast(&Fl_Valuator::value) ) );} - code1 {o->value( transport.beat_type );} - } - } - Fl_Choice record_mode_menu { - label {Record Mode} - callback {if ( ! transport.recording ) - config.record_mode = (record_mode_e)o->value(); -else - o->value( config.record_mode );} - xywh {555 39 105 19} box DOWN_BOX down_box BORDER_BOX color 37 labelsize 9 align 1 textsize 9 - } { - MenuItem {} { - label Merge - xywh {15 15 40 25} labelfont 3 labelsize 10 - } - MenuItem {} { - label Overwrite - xywh {25 25 40 25} labelfont 3 labelsize 10 - } - MenuItem {} { - label Layer - xywh {35 35 40 25} labelfont 3 labelsize 10 - } - MenuItem {} { - label New - xywh {45 45 40 25} labelfont 3 labelsize 10 - } - } - Fl_Choice playback_mode_menu { - label {Playback &Mode} - xywh {665 39 85 19} box DOWN_BOX down_box BORDER_BOX color 37 labelsize 9 align 1 - } { - MenuItem {} { - label Pattern - callback {song.play_mode = PATTERN;} - xywh {5 5 40 25} labelfont 3 labelsize 10 - } - MenuItem {} { - label Sequence - callback {song.play_mode = SEQUENCE;} - xywh {15 15 40 25} labelfont 3 labelsize 10 - } - MenuItem {} { - label Trigger - callback {song.play_mode = TRIGGER;} - xywh {25 25 40 25} labelfont 3 labelsize 10 - } - MenuItem {} { - label Queue - callback {song.play_mode = QUEUE;} - xywh {0 0 40 24} labelfont 3 labelsize 10 - } - } - Fl_Pack {} {open - xywh {555 60 305 30} type HORIZONTAL - class Fl_Scalepack - } { - Fl_Button {} { - label Sequence - callback {tabs->value( sequence_tab ); - - -edit_menu->deactivate(); -menu_bar->redraw();} - xywh {565 70 68 15} type Radio shortcut 0x80031 selection_color 69 - } - Fl_Button {} { - label Phrase - callback {tabs->value( phrase_tab ); - -edit_menu->activate(); -menu_bar->redraw();} - xywh {575 80 68 5} type Radio shortcut 0x80032 selection_color 69 - } - Fl_Button {} { - label Pattern - callback {tabs->value( pattern_tab ); - -edit_menu->activate(); -menu_bar->redraw();} - xywh {585 90 68 0} type Radio shortcut 0x80033 value 1 selection_color 69 - } - } - } - Fl_Pack vmetro_widget { - label Metronome - xywh {160 27 390 61} type HORIZONTAL box UP_BOX color 40 selection_color 48 labelsize 33 align 0 resizable - code0 {o->box( FL_FLAT_BOX );} - class Visual_Metronome - } {} - Fl_Pack transport_controls_group {open - xywh {4 27 151 60} type HORIZONTAL - code0 {o->spacing( 2 );} - class Fl_Scalepack - } { - Fl_Button play_button { - label {@>} - callback {transport.toggle();} - xywh {10 29 43 38} shortcut 0x20 labeltype ENGRAVED_LABEL - } - Fl_Button rec_button { - label {@circle} - callback {transport.recording = o->value(); - - -if ( o->value() ) -{ - if ( config.record_mode == NEW ) - { - pattern *p = new pattern; - p->length( -1 ); - - pattern_canvas_widget->grid( p ); - } - - ((pattern*)pattern_canvas_widget->grid())->record( 0 ); - - o->labelcolor( FL_RED ); -} -else -{ - pattern::recording()->record_stop(); - - o->labelcolor( FL_WHITE ); -}} - xywh {60 29 43 38} type Toggle shortcut 0x80072 selection_color 47 labeltype ENGRAVED_LABEL when 1 - } - Fl_Button home_button { - label {@|<} - callback {transport.locate( 0 );} - xywh {110 29 43 38} shortcut 0xff50 labeltype ENGRAVED_LABEL - } - } - } - Fl_Tabs tabs { - callback {((Fl_Group*)o->value())->child( 0 )->take_focus();} open - xywh {-1 91 868 694} box FLAT_BOX color 47 labeltype SHADOW_LABEL labelsize 19 when 1 resizable - code0 {canvas_background_color = fl_rgb_color( 18, 18, 18 );} - } { - Fl_Group sequence_tab {open - xywh {0 91 865 692} box FLAT_BOX color 37 labeltype NO_LABEL labelsize 12 hide resizable - code0 {update_sequence_widgets();} - } { - Fl_Group {} {open - xywh {5 118 240 502} labelsize 12 - } { - Fl_Browser playlist_browser { - label Playlist - xywh {5 155 240 398} type Hold box EMBOSSED_BOX color 39 selection_color 30 labelsize 12 labelcolor 55 align 1 when 4 textsize 18 textcolor 95 resizable - code0 {static int widths[] = { 40, 30, 0 };} - code1 {o->column_widths( widths ); o->column_char( '\\t' );} - code2 {o->value( 1 );} - } - Fl_Button sequence_phrase_delete_button { - label Delete - callback {int val = playlist_browser->value(); - -if ( val > 1 ) -{ -// playlist_browser->value( playlist_browser->value() + 1 ); - - playlist->remove( val - 2 ); - - update_sequence_widgets(); - - if ( ! playlist_browser->value() ) - playlist_browser->value( playlist_browser->size() ); -}} - xywh {6 559 64 25} shortcut 0xffff color 88 labelcolor 23 - } - Fl_Button sequence_phrase_up_button { - label Up - callback {if ( playlist_browser->value() > 2 ) -{ - playlist->move( playlist_browser->value() - 2, UP ); - playlist_browser->value( playlist_browser->value() - 1 ); - update_sequence_widgets(); -}} - xywh {135 559 45 25} shortcut 0xffbf - } - Fl_Button sequence_phrase_down_button { - label Down - callback {if ( playlist_browser->value() > 1 ) -{ - playlist->move( playlist_browser->value() - 2, DOWN ); - playlist_browser->value( playlist_browser->value() + 1 ); - update_sequence_widgets(); -}} - xywh {185 559 58 25} shortcut 0xffc0 - } - Fl_Menu_Button sequence_phrase_choice { - label {Insert Phrase} - callback {playlist->insert( playlist_browser->value() - 1, o->value() + 1 ); - -update_sequence_widgets(); - -int val = playlist_browser->value(); - -if ( val ) - playlist_browser->value( playlist_browser->value() + 1 ); -else - playlist_browser->value( playlist_browser->size() );} open - xywh {5 590 235 30} color 63 - } {} - } - Fl_Input sequence_name_field { - label Name - callback {playlist->name( o->value() );} - xywh {10 109 235 27} color 48 labelsize 12 align 1 when 1 - } - Fl_Light_Button detach_button { - label Detach - callback {if ( o->value() ) -{ - Fl_Group *g = seq_detached_group; - seq_window->show(); - g->add( sequence_tab ); - sequence_tab->resize( g->x(), g->y(), g->w(), g->h() ); - tabs->do_callback(); - main_window->redraw(); -} -else -{ - seq_window->hide(); - tabs->insert( (Fl_Widget&)*sequence_tab, 0 ); - sequence_tab->resize( pattern_tab->x(), pattern_tab->y(), pattern_tab->w(), pattern_tab->h() ); - tabs->do_callback(); -}} - xywh {7 749 78 26} - } - Fl_Text_Editor sequence_notes_edit { - label {Notes:} - callback {playlist->notes( o->buffer()->text() );} - xywh {254 732 606 48} selection_color 48 labelsize 12 align 5 textcolor 94 - code0 {o->buffer( sequence_notes_buffer = new Fl_Text_Buffer );} - } - Fl_Box triggers_widget { - label Patterns - xywh {253 118 607 598} box FLAT_BOX color 48 labelsize 12 align 1 resizable - code0 {o->color( FL_BACKGROUND_COLOR );} - code1 {o->rows( 32 );} - class Triggers - } - Fl_Group progress_group { - callback {if ( ! o->visible_r() ) - return; - -phrase *p = phrase::phrase_by_number( playlist->playing() ); - -if ( p ) - phrase_progress->value( p->index() / (double)p->length() ); - -if ( playlist->length() ) - sequence_progress->value( playlist->index() / (double)playlist->length() );} open - xywh {10 649 233 66} - } { - Fl_Slider phrase_progress { - label Phrase - xywh {10 649 233 24} type Horizontal labelsize 12 align 1 - } - Fl_Slider sequence_progress { - label Sequence - callback {transport.locate( (tick_t)((double)playlist->length() * o->value()) );} - xywh {10 691 233 24} type Horizontal labelsize 12 align 1 - } - } - } - Fl_Group phrase_tab { - xywh {0 91 865 693} box FLAT_BOX color 47 labeltype NO_LABEL hide - code0 {update_phrase_widgets();} - } { - Fl_Box phrase_canvas_widget { - label Phrase - xywh {0 91 865 637} box FLAT_BOX color 37 labelsize 100 align 16 resizable - class Canvas - } - Fl_Group phrase_settings_group {open - xywh {0 728 865 55} box FLAT_BOX color 47 - } { - Fl_Input phrase_name_field { - label {name:} - callback {phrase_canvas_widget->grid()->name( strdup( o->value() ) ); - -// if the name changed.. -update_sequence_widgets();} - xywh {5 734 185 21} box ROUNDED_BOX color 49 labelfont 2 labelsize 12 labelcolor 55 align 20 textfont 2 textsize 12 - code0 {o->up_box( FL_ROUNDED_BOX );} - class Fl_Sometimes_Input - } - Fl_Light_Button phrase_mute_button { - label Mute - xywh {0 751 93 23} color 37 hide - } - Fl_Light_Button phrase_solo_button { - label Solo - xywh {106 751 87 23} color 37 hide - } - Fl_Text_Editor phrase_notes_edit { - label {Notes:} - callback {phrase_canvas_widget->grid()->notes( o->buffer()->text() );} - xywh {200 742 660 36} selection_color 48 labelsize 12 textcolor 94 resizable - code0 {o->buffer( phrase_notes_buffer = new Fl_Text_Buffer );} - } - Fl_Value_Slider phrase_number_spinner { - label {Phrase:} - callback {phrase *p = ((phrase *)phrase_canvas_widget->grid())->by_number( o->value() ); - -if ( p ) - phrase_canvas_widget->grid( p ); - -o->maximum( phrase::phrases() );} - xywh {45 760 140 18} type Horizontal labelsize 10 align 4 minimum 1 maximum 128 step 1 value 1 textsize 14 - } - } - } - Fl_Group pattern_tab {open - xywh {0 91 867 694} box FLAT_BOX color 47 labeltype NO_LABEL - code0 {update_pattern_widgets();} - } { - Fl_Box pattern_canvas_widget { - label Pattern - xywh {0 91 865 637} box FLAT_BOX color 37 labelsize 100 align 16 resizable - class Canvas - } - Fl_Group pattern_settings_group {open - xywh {0 730 867 55} box FLAT_BOX color 47 - } { - Fl_Group {} {open - xywh {5 733 420 44} - code0 {o->resizable(0);} - } { - Fl_Input pattern_name_field { - label {name:} - callback {pattern_canvas_widget->grid()->name( strdup( o->value() ) );} - xywh {5 734 185 21} box BORDER_BOX color 49 labelsize 12 align 20 when 8 textsize 12 textcolor 55 - code0 {o->up_box( FL_BORDER_BOX );} - class Fl_Sometimes_Input - } - Fl_Light_Button pattern_mute_button { - label Mute - callback {Grid *g = pattern_canvas_widget->grid(); - -g->mode( g->mode() == MUTE ? PLAY : MUTE ); - -o->value( g->mode() == MUTE ); - -pattern_solo_button->value( 0 );} - xywh {195 734 58 19} type Normal shortcut 0x6d color 37 labelsize 12 - } - Fl_Light_Button pattern_solo_button { - label Solo - callback {Grid *g = pattern_canvas_widget->grid(); - -g->mode( g->mode() == SOLO ? PLAY : SOLO ); - -o->value( g->mode() == SOLO ); - -pattern_mute_button->value( 0 );} - xywh {195 758 58 19} type Normal shortcut 0x73 color 37 labelsize 12 - } - Fl_Value_Slider pattern_number_spinner { - label Pattern - callback {pattern *p = ((pattern *)pattern_canvas_widget->grid())->by_number( o->value() ); - -if ( p ) - pattern_canvas_widget->grid( p ); - -o->maximum( pattern::patterns() );} - xywh {45 759 140 18} type Horizontal labelsize 10 align 4 minimum 1 maximum 128 step 1 value 1 - } - Fl_Button pattern_selection_mode { - label Select - callback {pattern_canvas_widget->selection_mode( o->value() );} - tooltip {Enable selection mode (you can also just hold down shift and drag the mouse)} xywh {260 733 45 44} type Toggle selection_color 5 labelsize 10 - } - Fl_Value_Slider velocity_slider { - label Velocity - callback {pattern_canvas_widget->selected_velocity( o->value() );} selected - xywh {310 742 110 18} type {Horz Fill} labelsize 10 align 1 maximum 127 value 64 textsize 9 - } - } - Fl_Group {} {open - xywh {455 731 409 54} - } { - Fl_Output mapping_text { - label Mapping - xywh {535 761 105 19} labelsize 10 align 20 textsize 11 - } - Fl_Menu_Button mapping_menu { - label {@>} - callback {mapping_text->value( o->text() ); - - -char picked[80]; -mapping_menu->item_pathname(picked, sizeof(picked)-1 ); - -if ( 0 == strncmp( picked, "Instrument", strlen( "Instrument" ) ) ) -{ - ((pattern*)pattern_canvas_widget->grid())->mapping.open( Mapping::INSTRUMENT, o->text() ); - - pattern_canvas_widget->changed_mapping(); - - pattern_key_combo->deactivate(); -} -else -if ( 0 == strncmp( picked, "Scale", strlen( "Scale" ) ) ) -{ - ((pattern*)pattern_canvas_widget->grid())->mapping.open( Mapping::SCALE, o->text() ); - - pattern_canvas_widget->changed_mapping(); - - pattern_key_combo->activate(); -}} open - xywh {640 761 30 19} labeltype NO_LABEL labelsize 10 textsize 12 - code0 {update_mapping_menu();} - } { - Submenu mapping_scale_menu { - label Scale open - xywh {25 25 74 25} - } {} - Submenu mapping_instrument_menu { - label Instrument open - xywh {10 10 74 25} - } {} - } - Fl_Choice pattern_key_combo { - label {&Key} - callback {((pattern*)pattern_canvas_widget->grid())->mapping.key( o->value() ); - -pattern_canvas_widget->changed_mapping();} - xywh {700 761 75 19} down_box BORDER_BOX labelsize 10 when 1 textsize 11 - } { - MenuItem {} { - label C - xywh {30 30 40 25} labelsize 11 - } - MenuItem {} { - label {C\#/Db} - xywh {40 40 40 25} labelsize 11 - } - MenuItem {} { - label D - xywh {50 50 40 25} labelsize 11 - } - MenuItem {} { - label {D\#/Eb} - xywh {60 60 40 25} labelsize 11 - } - MenuItem {} { - label E - xywh {70 70 40 25} labelsize 11 - } - MenuItem {} { - label F - xywh {80 80 40 25} labelsize 11 - } - MenuItem {} { - label {F\#/Gb} - xywh {90 90 40 25} labelsize 11 - } - MenuItem {} { - label G - xywh {100 100 40 25} labelsize 11 - } - MenuItem {} { - label {G\#} - xywh {110 110 40 25} labelsize 11 - } - MenuItem {} { - label A - xywh {0 0 40 25} labelsize 11 - } - MenuItem {} { - label {A\#/Bb} - xywh {10 10 40 25} labelsize 11 - } - MenuItem {} { - label B - xywh {20 20 40 25} labelsize 11 - } - } - Fl_Choice pattern_note_combo { - label {&Note 1/} - callback {((pattern*)pattern_canvas_widget->grid())->note( atoi( o->menu()[ o->value() ].text ));} - xywh {715 736 45 19} down_box BORDER_BOX labelsize 10 when 1 textsize 12 - } { - MenuItem {} { - label 1 - xywh {0 0 40 25} labelsize 11 - } - MenuItem {} { - label 2 - xywh {10 10 40 25} labelsize 11 - } - MenuItem {} { - label 4 - xywh {20 20 40 25} labelsize 11 - } - MenuItem {} { - label 8 - xywh {30 30 40 25} labelsize 11 - } - MenuItem {} { - label 16 - xywh {40 40 40 25} labelsize 11 - } - MenuItem {} { - label 32 - xywh {50 50 40 25} labelsize 11 - } - MenuItem {} { - label 64 - xywh {60 60 40 25} labelsize 11 divider - } - MenuItem {} { - label 3 - xywh {60 60 40 25} labelsize 11 - } - MenuItem {} { - label 6 - xywh {70 70 40 25} labelsize 11 - } - MenuItem {} { - label 12 - xywh {80 80 40 25} labelsize 11 - } - MenuItem {} { - label 24 - xywh {90 90 40 25} labelsize 11 - } - } - Fl_Choice pattern_res_combo { - label {&Resolution 1/} - callback {pattern_canvas_widget->grid()->resolution( atoi( o->menu()[ o->value() ].text ));} - xywh {615 736 55 19} down_box BORDER_BOX labelsize 10 when 1 textsize 12 - } { - MenuItem {} { - label 1 - xywh {40 40 40 25} labelsize 11 - } - MenuItem {} { - label 2 - xywh {50 50 40 25} labelsize 11 - } - MenuItem {} { - label 4 - xywh {30 30 40 25} labelsize 11 - } - MenuItem {} { - label 8 - xywh {40 40 40 25} labelsize 11 - } - MenuItem {} { - label 16 - xywh {50 50 40 25} labelsize 11 - } - MenuItem {} { - label 32 - xywh {60 60 40 25} labelsize 11 - } - MenuItem {} { - label 64 - xywh {80 80 40 25} labelsize 11 - } - MenuItem {} { - label 128 - xywh {90 90 40 25} labelsize 11 divider - } - MenuItem {} { - label 3 - xywh {70 70 40 25} labelsize 11 - } - MenuItem {} { - label 6 - xywh {80 80 40 25} labelsize 11 - } - MenuItem {} { - label 12 - xywh {90 90 40 25} labelsize 11 - } - MenuItem {} { - label 24 - xywh {100 100 40 25} labelsize 11 - } - } - Fl_Choice pattern_channel_choice { - label {Channel:} - callback {((pattern *)pattern_canvas_widget->grid())->channel( o->value() );} open - xywh {810 735 47 19} down_box BORDER_BOX labelsize 10 textsize 12 - code0 {char pat[3]; for ( int i = 1; i <= 16; i++ ) { snprintf( pat, 3, "%i", i ); o->add( pat ); }} - } {} - Fl_Choice pattern_port_choice { - label {Port:} - callback {((pattern *)pattern_canvas_widget->grid())->port( o->value() );} open - xywh {810 760 47 19} down_box BORDER_BOX labelsize 10 textsize 12 - code0 {char pat[3]; for ( int i = 1; i <= 16; i++ ) { snprintf( pat, 3, "%i", i ); o->add( pat ); }} - } {} - Fl_Input_Choice pattern_bars_choice { - label {Bars:} - callback {((pattern *)pattern_canvas_widget->grid())->bars( atoi( o->value() ) );} open - xywh {486 736 55 19} labelsize 10 textsize 12 - code0 {char pat[4]; for ( int i = 1; i <= 16; i++ ) { snprintf( pat, 3, "%i", i ); o->add( pat ); }} - code1 {for ( int i = 32; i <= 256; i <<= 1 ) { snprintf( pat, sizeof(pat), "%i", i ); o->add( pat ); }} - } {} - Fl_Box {} { - xywh {455 735 0 46} labelsize 8 align 1 resizable - } - } - } - } - } - Fl_Group {} {open - xywh {0 784 865 23} - } { - Fl_Box status { - label status - xywh {1 784 782 23} box UP_BOX align 84 - code0 {o->label( NULL );} - } - Fl_Box transport_state { - label state - callback {const char *s = "INVALID"; - -if ( transport.master ) - s = "Master"; -else if ( transport.valid ) - s = "Slave"; - -if ( s != o->label() ) -{ - o->label( s ); - if ( ! strcmp( s, "INVALID" ) ) - o->color( fl_darker( FL_RED ) ); - else - o->color( FL_BACKGROUND_COLOR ); -}} - xywh {783 784 82 23} box THIN_UP_BOX align 64 - } - } - Fl_Group {} {open - xywh {0 0 865 24} - } { - Fl_Menu_Bar menu_bar {open - xywh {0 0 865 24} color 47 resizable - } { - Submenu {} { - label {&File} open - xywh {0 0 100 20} color 37 - } { - MenuItem menu_new { - label {&New} - callback {if ( maybe_save_song() ) -{ - init_song(); - - // Sync the GUI. - update_pattern_widgets(); - update_sequence_widgets(); - update_phrase_widgets(); - - - gui_status( "New song." ); -}} - xywh {0 0 40 25} - } - MenuItem menu_open { - label {&Open} - callback {char *name = fl_file_chooser( "Open File", "Non Files (*.non)", NULL, 0 ); - -if ( name ) -{ - if ( ! load_song( name ) ) - fl_alert( "Could not load song!" ); - else - gui_status( "Song opened." ); - - update_sequence_widgets(); - update_pattern_widgets(); - update_phrase_widgets(); - - playback_mode_menu->value( song.play_mode ); - playback_mode_menu->redraw(); -}} - xywh {0 0 40 25} shortcut 0x4006f color 37 - } - MenuItem menu_save { - label {&Save} - callback {save_dialog( song.filename );} - xywh {0 0 40 25} shortcut 0x40073 color 37 deactivate - code0 {song.signal_dirty.connect( sigc::mem_fun( o, &Fl_Menu_Item::activate ) );} - code1 {song.signal_clean.connect( sigc::mem_fun( o, &Fl_Menu_Item::deactivate ) );} - } - MenuItem menu_save_as { - label {Save &As} - callback {save_dialog( NULL );} - xywh {0 0 40 25} - } - MenuItem {} { - label {&Import} - callback {char *name = fl_file_chooser( "MIDI Import", "MIDI Files (*.mid)", NULL, 0 ); - -if ( ! name ) - return; - -smf f; - -if ( ! f.open( name, smf::READ ) ) -{ - fl_message( "could not open file" ); - return; -} - -f.read_header(); - -switch ( f.format() ) -{ - case 0: - if ( ! pattern::import( &f, 0 ) ) - fl_message( "Error importing MIDI" ); - break; - case 1: case 2: - { - char **sa = f.track_listing(); - - if ( sa && *sa ) - { - List_Chooser tc( "Select tracks to import:", "Import" ); - - char *s; - for ( int i = 0; (s = sa[i]); ++i ) - { - tc.add( s ); - free( s ); - } - - free( sa ); - - tc.show(); - - while( tc.shown() ) - Fl::wait(); - - int n = 0; - for ( int i = 1; i <= tc.browser->size(); ++i ) - { - if ( tc.browser->selected( i ) ) - { - if ( pattern::import( &f , i - 1 ) ) - ++n; - else - WARNING( "error importing track %d", i - 1 ); - } - - } - // fl_message( "%d patterns imported.", n ); - gui_status( "Imported %d tracks as patterns", n ); - } - - break; - } -}} - xywh {0 0 40 25} - code0 {\#include "../smf.H"} - } - MenuItem {} { - label {&Export} - callback {// Fl_File_Chooser::custom_filter_label = "*.mid"; - -Fl_File_Chooser *fc = new Fl_File_Chooser( ".", "MIDI Files (*.mid)", Fl_File_Chooser::CREATE, "MIDI Export" ); - -fc->show(); - -// wait for user to make a choice -while( fc->shown() ) - Fl::wait(); - -if ( ! fc->value() ) - return; - -if ( tabs->value() == pattern_tab ) - ((pattern*)pattern_canvas_widget->grid())->save( fc->value() );} - xywh {0 0 40 25} - code0 {\#include } - } - MenuItem {} { - label {&Quit} - callback {main_window->do_callback();} - xywh {0 0 40 25} shortcut 0x40071 color 37 - } - } - Submenu {} { - label {&View} open - xywh {10 10 74 25} color 37 - } { - MenuItem {} { - label {&Metronome} - callback {int val = o->menu()[ o->value() ].value(); - -if ( val ) - vmetro_widget->show(); -else - vmetro_widget->hide();} - xywh {0 0 40 25} type Toggle value 1 - } - MenuItem {} { - label {&Compacted} - callback {int val = o->menu()[ o->value() ].value(); - -pattern_canvas_widget->row_compact( val ? Canvas::ON : Canvas::OFF ); - -pattern_canvas_widget->redraw();} - xywh {10 10 40 25} type Toggle value 1 - } - MenuItem {} { - label {&Follow Playhead} - callback {int val = o->menu()[ o->value() ].value(); - -config.follow_playhead = val ? true : false;} - xywh {10 10 40 25} type Toggle value 1 - } - MenuItem {} { - label {&Theme} - callback {fl_theme_chooser();} - xywh {0 0 40 24} - } - } - Submenu {} { - label {&Help} open - xywh {100 0 74 25} color 37 - } { - MenuItem {} { - label {&Manual} - callback {show_help_dialog( "MANUAL" );} - xywh {10 10 40 25} divider - } - MenuItem {} { - label {&About} - callback {About_Dialog ab( PIXMAP_PATH "/non-sequencer/icon-256x256.png" ); - - ab.logo_box->label( VERSION ); - - ab.title->label( "Non Sequencer" ); - - ab.copyright->label( "Copyright (C) 2007-2013 Jonathan Moore Liles" ); - ab.credits->label( "Non Sequencer was written from scratch by\\nJonathan Moore Liles for his own use\\n(see the manual).\\n\\nNobody planned. Nobody helped.\\nYou can help now by donating time, money,\\nand/or replacing the rest of Linux Audio\\nwith fast, light, reliable alternatives.\\n" ); - - ab.website_url->label( "http://non.tuxfamily.org" ); - -ab.run();} - xywh {0 0 40 25} color 37 - code0 {\#include "../non.H"} - } - } - Submenu edit_menu { - label {&Edit} open - xywh {0 0 68 18} - } { - MenuItem {} { - label {Add New} - callback {Grid *g = current_canvas()->grid()->create(); - -current_canvas()->grid( g ); - -update_pattern_widgets(); -update_sequence_widgets(); -update_phrase_widgets();} - xywh {0 0 34 18} shortcut 0x61 - } - MenuItem {} { - label Previous - callback {if ( tabs->value() == pattern_tab ) -{ - pattern_number_spinner->value( max( 0, (int)pattern_number_spinner->value() - 1 ) ); - pattern_number_spinner->do_callback(); -} -else -{ - phrase_number_spinner->value( max( 0, (int)phrase_number_spinner->value() - 1 ) ); - phrase_number_spinner->do_callback(); -}} - xywh {10 10 34 18} shortcut 0x5b - } - MenuItem {} { - label Next - callback {if ( tabs->value() == pattern_tab ) -{ - pattern_number_spinner->value( min( 127, (int)pattern_number_spinner->value() + 1 )); - pattern_number_spinner->do_callback(); -} -else -{ - phrase_number_spinner->value( min( 127, (int)phrase_number_spinner->value() + 1 )); - phrase_number_spinner->do_callback(); -}} - xywh {20 20 34 18} shortcut 0x5d - } - MenuItem {} { - label Duplicate - callback {Canvas *w = current_canvas(); - -w->grid( w->grid()->clone() ); - -// number of phrases may have changed. -ui->update_sequence_widgets();} - xywh {30 30 34 18} shortcut 0x64 - } - MenuItem {} { - label {Delete Selected} - callback {Canvas *w = current_canvas(); - -w->grid()->delete_selected();} - xywh {50 50 34 18} shortcut 0xffff - } - MenuItem {} { - label Clear - callback {Canvas *w = current_canvas(); - -w->grid()->clear();} - xywh {60 60 34 18} shortcut 0x1ffff - } - MenuItem {} { - label {Edit Events} - callback {event_editor( pattern_canvas_widget->grid() );} - xywh {10 10 40 25} - } - MenuItem {} { - label {Select All} - callback {Canvas *w = current_canvas(); - -w->grid()->select_all();} - xywh {70 70 34 18} shortcut 0x40061 - } - MenuItem {} { - label {Select None} - callback {Canvas *w = current_canvas(); - -w->grid()->select_none();} - xywh {80 80 34 18} shortcut 0x50061 - } - MenuItem {} { - label {Invert Selection} - callback {Canvas *w = current_canvas(); - -w->grid()->invert_selection();} - xywh {90 90 34 18} shortcut 0x50069 - } - MenuItem {} { - label Cut - callback {Canvas *w = current_canvas(); - -w->cut();} - xywh {110 110 34 18} shortcut 0x40078 - } - MenuItem {} { - label Copy - callback {Canvas *w = current_canvas(); - -w->copy();} - xywh {100 100 34 18} shortcut 0x40063 - } - MenuItem {} { - label Paste - callback {Canvas *w = current_canvas(); - -w->paste();} - xywh {120 120 34 18} shortcut 0x40076 - } - MenuItem {} { - label Undo - callback {Canvas *w = current_canvas(); - -w->grid()->undo();} - xywh {110 110 34 18} shortcut 0x4007a - } - } - } - Fl_Button sm_indicator { - label SM - xywh {825 5 35 15} box ROUNDED_BOX down_box ROUNDED_BOX color 46 selection_color 93 labelfont 3 labelcolor 39 deactivate - } - } - } - } - Function {make_seq_window()} {} { - Fl_Window seq_window { - label {Non Sequencer - Sequence} - callback {sequence_tab->activate(); -o->hide(); -detach_button->value( 0 );} - xywh {681 189 876 675} type Double hide resizable - } { - Fl_Group seq_detached_group {open - xywh {0 0 876 675} resizable - } {} - } - } - Function {update_pattern_widgets()} {} { - code {if ( ! pattern_settings_group ) - return; - -if ( !pattern_canvas_widget) - return; - -pattern *g = (pattern *)pattern_canvas_widget->grid(); - -if ( !g ) - return; - -pattern_number_spinner->value( g->number() ); -pattern_name_field->value( g->name() ); -pattern_channel_choice->value( g->channel() ); -pattern_port_choice->value( g->port() ); -pattern_solo_button->value( g->mode() == SOLO ); -pattern_mute_button->value( g->mode() == MUTE ); -pattern_selection_mode->value( pattern_canvas_widget->selection_mode() ); -{ - char pat[5]; - snprintf( pat, sizeof(pat), "%i", g->bars() ); - pattern_bars_choice->value( pat ); -} - -if ( g->mapping.key() == -1 ) - pattern_key_combo->deactivate(); -else -{ - pattern_key_combo->activate(); - pattern_key_combo->value( g->mapping.key() ); -} - -mapping_text->value( g->mapping.name() ); - - - -pattern_note_combo->value( find_numeric_menu_item( menu_pattern_note_combo, g->note() )); -pattern_res_combo->value( find_numeric_menu_item( menu_pattern_res_combo, g->resolution() )); -/* -if ( g->notes() ) - pattern_notes_buffer->text( g->notes() ); -else - pattern_notes_buffer->text( strdup( "" ) ); -*/ -pattern_settings_group->redraw();} {} - } - Function {update_phrase_widgets()} {} { - code {if ( ! phrase_canvas_widget ) - return; - -phrase *g = (phrase *)phrase_canvas_widget->grid(); - -if ( ! g ) - return; - -g->viewport.y = 0; -g->viewport.h = pattern::patterns(); -phrase_canvas_widget->resize_grid(); -phrase_canvas_widget->changed_mapping(); -phrase_number_spinner->value( g->number() ); -phrase_name_field->value( g->name() ); -phrase_solo_button->value( g->mode() == SOLO ); -phrase_mute_button->value( g->mode() == MUTE ); - -if ( g->notes() ) - phrase_notes_buffer->text( g->notes() ); -else - phrase_notes_buffer->text( strdup( "" ) ); - -phrase_settings_group->redraw();} {} - } - Function {update_sequence_widgets()} {} { - code {if ( playlist->notes() ) - sequence_notes_buffer->text( playlist->notes() ); -else - sequence_notes_buffer->text( strdup( "" ) ); - -sequence_name_field->value( playlist->name() ); - -sequence_phrase_choice->clear(); - -for ( int i = 1; i <= phrase::phrases(); i++ ) -{ - phrase *p = phrase::phrase_by_number( i ); - - if ( p ) - sequence_phrase_choice->add( p->name() ); -} - - -Fl_Browser *o = playlist_browser; - -int val = o->value(); - -o->clear(); - -char *s = playlist->dump(); - -char *l = strtok( s, "\\n" ); - -o->add( "@b@C2Bar\\t@b@C2\#\\t@b@C2Name" ); - -if ( ! l ) - return; - -o->add( l ); - -while ( ( l = strtok( NULL, "\\n" ) ) ) -{ - o->add( l ); -} - -o->value( val ); - -free( s ); - - -if ( playback_mode_menu ) - playback_mode_menu->value( song.play_mode );} {} - } - Function {update_mapping_menu()} {} { - code {char **sa = Instrument::listing(); - -if ( sa ) -{ - - for ( int i = 0; sa[i]; i++ ) - { - char pat[512]; - snprintf( pat, 512, "Instrument/%s", sa[i] ); - mapping_menu->add( pat, 0, 0, 0, 0 ); - free( sa[i] ); - } - free( sa ); -} - -sa = Scale::listing(); -for ( int i = 0; sa[i]; i++ ) -{ - char pat[512]; - snprintf( pat, 512, "Scale/%s", sa[i] ); - mapping_menu->add( pat, 0, 0, 0, 0 ); - free( sa[i] ); -} -free( sa );} {} - } - Function {update_canvas_widgets()} {return_type {static void} - } { - code {if ( ui->pattern_canvas_widget->grid() ) - ui->update_pattern_widgets(); - - if ( ui->phrase_canvas_widget->grid() ) - ui->update_phrase_widgets();} {} - } - Function {find_numeric_menu_item( const Fl_Menu_Item *menu, int n )} {return_type {static int} - } { - code {for ( unsigned int i = 0; menu[i].text; i++ ) -{ - if ( atoi( menu[i].text ) == n ) - return i; -} - -return 0;} {} - } - Function {save_dialog( const char *name )} {return_type void - } { - code {if ( ! name ) -{ - - Fl_File_Chooser *fc = new Fl_File_Chooser( ".", "Non Sequences (*.non)", Fl_File_Chooser::CREATE, "Save sequence" ); - - fc->show(); - - // wait for user to make a choice - while( fc->shown() ) - Fl::wait(); - - if ( ! fc->value() ) - return; - - name = fc->value(); -} - -if ( ! save_song( name ) ) - fl_alert( "Could not save song" ); -else - gui_status( "Saved." );} {} - } - Function {show_help_dialog( const char *file )} {return_type void - } { - code {char pat[256]; - -snprintf( pat, 256, "file://%s/non-sequencer/%s.html", DOCUMENT_PATH, file ); - -open_url( pat );} {} - } - Function {maybe_save_song()} {return_type bool - } { - code {if ( song.dirty() ) -{ - int c = fl_choice( "Song has been modified since last save. What shall I do?", "&Cancel", "&Save", "&Discard" ); - - switch ( c ) - { - case 0: - return false; - case 1: - /* SAVE */ - save_dialog( song.filename ); - break; - case 2: - break; - } -} - -return true;} {} - } - Function {switch_to_pattern( int n )} {return_type void - } { - code {pattern *p = pattern::pattern_by_number( n ); - -if ( p ) -{ - - - - tabs->value( pattern_tab ); - - pattern_canvas_widget->take_focus(); - - pattern_canvas_widget->grid( p ); - -// update_pattern_widgets(); -}} {} - } - Function {edit_instrument_row( Instrument *i, int n )} {return_type void - } { - code {Instrument_Editor ie; - -ie.set( i, n ); - -ie.run();} {} - } - Function {current_canvas()} {open return_type {Canvas*} - } { - code {if ( tabs->value() == pattern_tab ) - return pattern_canvas_widget; -else if ( tabs->value() == phrase_tab ) - return phrase_canvas_widget; -else - return NULL;} {} - } -} - -class Instrument_Editor {} { - Function {Instrument_Editor()} {open return_type void - } { - code {make_window();} {} - } - decl {Instrument *_inst;} {private local - } - decl {int _note;} {private local - } - Function {make_window()} {open - } { - Fl_Window window { - label {Instrument Editor} - callback {done->do_callback();} open - xywh {670 458 335 190} type Double hide - } { - Fl_Box {} { - label {Instrument Row} - xywh {8 15 321 28} box ROUNDED_BOX color 94 labelsize 22 labelcolor 39 - } - Fl_Input name_field { - label Name - callback {_inst->note_name( _note, strdup( o->value() ) );} - xywh {10 70 321 25} selection_color 48 align 1 when 1 textcolor 32 - } - Fl_Value_Slider volume_slider { - label {Volume %} - callback {_inst->velocity( _note, o->value() );} - xywh {10 112 321 27} type Horizontal align 1 maximum 100 step 1 textsize 14 - } - Fl_Value_Output note_field { - label {Note:} - xywh {52 158 43 24} - } - Fl_Return_Button done { - label Done - callback {if ( _inst ) - _inst->save(); - -window->hide();} - xywh {255 157 76 25} - } - } - } - Function {set( Instrument *i, int n )} {open return_type void - } { - code {_inst = i; -_note = n; - -volume_slider->value( i->velocity( n ) ); -name_field->value( i->note_name( n ) ); -note_field->value( n );} {} - } - Function {run()} {open return_type void - } { - code {window->show(); - -while ( window->shown() ) - Fl::wait();} {} - } -} - -class Trigger {: {public Fl_Progress} -} { - Function {Trigger( int X, int Y, int W, int H, const char *L =0) : Fl_Progress( X, Y, W, H, L )} {open - } { - code {minimum( 0 ); -maximum( 1 ); -//angles( 0, 360 ); -// type( Fl_Dial::ARC_DIAL ); -// type(FL_VERTICAL);} {} - } - Function {handle( int m )} {open return_type int - } { - code {int r = 0; - -switch ( m ) -{ - case FL_PUSH: - { - switch ( Fl::event_button() ) - { - case 1: - { - pattern *p = pattern::pattern_by_number( atoi( label() ) ); - - if ( p ) - { - if ( TRIGGER == song.play_mode ) - { - if ( p->playing() ) - p->stop(); - else - p->trigger(); - } - else - { - if ( p->mode() == PLAY ) - p->mode( MUTE ); - else - p->mode( PLAY ); - } - } - - break; - } - case 2: - { - pattern *p = pattern::pattern_by_number( atoi( label() ) ); - - if ( p ) - { - if ( p->mode() != SOLO ) - p->mode( SOLO ); - else - p->mode( PLAY ); - } - - break; - } - case 3: - { - ui->switch_to_pattern( atoi( label() ) ); - } - break; - } - r = 1; - break; - } - case FL_RELEASE: - do_callback(); - r = 1; - break; - case FL_DRAG: - r = 1; - break; - default: - r = Fl_Widget::handle( m ); - break; -} - - -return r;} {} - } -} - -widget_class Triggers { - xywh {390 620 335 390} type Double hide - code0 {\#include } - code1 {populate();} - class Fl_Group -} { - Function {populate( void )} {open private return_type void - } { - code {_timer = 0; - - for ( int i = 0; i < 128; i++ ) - { - Trigger *b = new Trigger( 1,1,1,1 ); - - char pat[4]; - - sprintf( pat, "%d",i +1); - b->label( strdup( pat ) ); - b->labelsize( 8 ); - b->color2( FL_GRAY ); - b->box( FL_FLAT_BOX ); -// b->down_box( FL_ROUNDED_BOX ); - b->selection_color( FL_GREEN ); - b->color( FL_BLACK ); - b->color2( FL_GREEN ); - b->align( FL_ALIGN_CENTER ); - - add( b ); - }} {} - } - Function {update( void )} {open return_type void - } { - code {++_timer; - - if ( !visible_r() ) - return; - -if ( ! takesevents() ) - return; - - Fl_Color mode_color[3]; - - mode_color[PLAY] = fl_color_average( FL_GRAY, FL_GREEN, 0.5 ); -// mode_color[PLAY] = fl_color; - mode_color[MUTE] = FL_LIGHT2; - mode_color[SOLO] = fl_color_average( FL_GRAY, FL_RED, 0.5 ); - -if ( ! _rows ) - return; - -for ( int i = 0; i < MAX_PATTERN; i++ ) -{ - Trigger *b = (Trigger*)child( i ); - - if ( i >= pattern::patterns() ) - { - b->color( FL_BLACK ); - b->value( 0 ); - continue; - } - - pattern *p = pattern::pattern_by_number( i + 1 ); - - if ( p->playing() ) - { - b->color( FL_GRAY ); - - b->selection_color( mode_color[ p->mode() ] ); - - if ( p->queue() >= 0 ) - { - if ( _timer % 16 < 8 ) - { - b->color( mode_color[ p->queue() ] ); - } - } - - b->value( (double)p->index() / p->length() ); - } - else - { - b->value( 0 ); - } - -}} {} - } - decl {unsigned long _timer;} {private local - } - decl {int _rows;} {private local - } - Function {rows(int v)} {open return_type void - } { - code {_rows = v; -redraw();} {} - } - Function {draw()} {open return_type void - } { - code {int _cols = 128 / _rows; - -int bw = w() / _cols; -int bh = h() / _rows; - -int t = 0; -for ( int i = 0; i < _rows; i++ ) - for ( int j = 0; j < _cols ; j++, t++ ) - child( t )->resize( x() + (bw * j), y() + (bh * i), bw, bh ); - -Fl_Group::draw();} {} - } - decl {\#include } {private local - } -} - -class List_Chooser {} { - Function {List_Chooser( const char *name, const char *action )} {} { - Fl_Window window {open - xywh {525 313 310 545} type Single hide resizable non_modal size_range {310 524 0 0} - } { - Fl_Browser browser { - label name - xywh {5 26 300 480} type Multi box THIN_DOWN_BOX color 32 selection_color 0 align 1 textcolor 55 resizable - code0 {o->label( name );} - } - Fl_Group {} {open - xywh {5 505 300 39} - } { - Fl_Button {} { - label Cancel - callback {browser->clear(); -window->hide();} - xywh {5 513 75 27} - } - Fl_Return_Button button { - label action - callback {window->hide();} - xywh {115 513 190 27} - code0 {o->label( action );} - } - } - } - } - Function {show()} {open - } { - code {window->show();} {} - } - Function {shown()} {open return_type bool - } { - code {return window->shown();} {} - } - Function {add( const char *item )} {open - } { - code {browser->add( item );} {} - } -} - -decl {float status_intensity;} {private local -} - -Function {fade_status(void*)} {private return_type {static void} -} { - code {ui->status->labelcolor( fl_color_average( FL_FOREGROUND_COLOR, FL_BACKGROUND_COLOR, status_intensity ) ); - - status_intensity -= 0.01f; - - ui->status->redraw(); - - if ( status_intensity >= 0.01f ) - Fl::repeat_timeout( 1 / 15.0f, fade_status );} {} -} - -Function {gui_status( const char *fmt, ... )} {C return_type void -} { - code {va_list args; - - static char pat[256]; - - if ( fmt ) - { - va_start( args, fmt ); - vsnprintf( pat, 256, fmt, args ); - va_end( args ); - } - - ui->status->label( pat ); - ui->status->redraw(); - - status_intensity = 1.0f; - Fl::remove_timeout( fade_status ); - Fl::add_timeout( 1 / 15.0f, fade_status );} {} -} diff --git a/sequencer/src/instrument.C b/sequencer/src/instrument.C deleted file mode 100644 index ef14f24..0000000 --- a/sequencer/src/instrument.C +++ /dev/null @@ -1,330 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include -#include -#include - -#include "instrument.H" -#include "common.h" -#include "const.h" -#include "config.h" - -#include "non.H" - -#include -#include - - -#include - -#include - -#include -using namespace MIDI; - -using std::list; -using std::string; - -/****** - Instrument definition file format is thus: - - "Name", n, v - - Where /n/ is a note number from 0 to 127 and /v/ is a percentage of - volume. - - When a system installed instrument definition is modified, the - modified version is saved in the user's $HOME. Therefore, when - loading instruments, user defined instruments always hide system - defined instruments of the same name. - -*/ - -list Instrument::instruments; - -Instrument::Instrument ( const char *name ) -{ - - for ( int i = 0; i < 128; i++ ) - { - _map[i].name = NULL; - _map[i].velocity = 100; - } - - if ( name ) - { - _name = strdup( name ); - - read( name ); - } - else - { - _name = strdup( "not an instrument" ); - _height = 0; - } - - Instrument::instruments.push_front( this ); -} - -Instrument * -Instrument::open ( const char *name ) -{ - list ::iterator i = Instrument::instruments.begin(); - - if ( name ) - { - for ( ; i != Instrument::instruments.end(); i++ ) - if ( 0 == strcmp( (*i)->_name, name ) ) - return *i; - } - - return new Instrument ( name ); -} - -void -Instrument::note_name ( int n, char *s ) -{ - if ( _map[ n ].name ) - free( _map[ n ].name ); - - _map[ n ].name = s; - - _dirty = true; -} - -void -Instrument::velocity ( int n, int v ) -{ - _map[ n ].velocity = v; - - _dirty = true; -} - -/** Translate event, should only be passed NOTE ON/OFF events, returns - true if note is valid for this mapping */ -bool -Instrument::translate ( midievent *e ) const -{ - if ( ! note_name( e->note() ) ) - return false; - - e->note_velocity( e->note_velocity() * _map[ e->note() ].velocity / 100 ); - - return true; -} - -const char * -Instrument::note_name ( int n ) const -{ - return _map[ n ].name; -} - -int -Instrument::height ( void ) const -{ - return _height; -} - -int -Instrument::velocity ( int n ) const -{ - return _map[ n ].velocity; -} - -bool -Instrument::read ( const char *s ) -{ - FILE *fp; - - char pat[512]; - - sprintf( pat, "%s%s.inst", config.user_config_dir, s ); - - if ( ! ( fp = fopen( pat, "r" ) ) ) - { - - sprintf( pat, "%s/%s/%s.inst", SYSTEM_PATH, INSTRUMENT_DIR, s ); - - if ( ! ( fp = fopen( pat, "r" ) ) ) - return false; - } - - struct i_map m; - char namebuf[256]; - int note, velocity; - - int n = 0; - while ( 0 < fscanf( fp, "\"%[^\"]\", %d, %d\n", (char*)&namebuf, ¬e, &velocity ) ) n++; - - rewind( fp ); - - MESSAGE( "reading %d lines from instrument file \"%s\"", n, s ); - - int i; - for ( i = 0; i < n; i++ ) - { - fscanf( fp, "\"%[^\"]\", %d, %d\n", (char *)&namebuf, ¬e, &velocity ); - - m.name = strdup( namebuf ); - - if ( velocity > 100 ) - { - WARNING( "invalid volume percentage in instrument definition"); - m.velocity = 100; - } - else - m.velocity = velocity; - - DMESSAGE( "name: \"%s\", note: %d, velocity: %d%%", m.name, note, m.velocity ); - - _map[ note ] = m; - } - - _height = n; - - fclose( fp ); - - return true; -} - -bool -Instrument::write ( const char *s ) const -{ - FILE *fp; - - char pat[512]; - - sprintf( pat, "%s/%s.inst", config.user_config_dir, s ); - - if ( ! ( fp = fopen( pat, "w" ) ) ) - return false; - - int n = 0; - for ( int i = 0; i < 127; ++i ) - { - if ( _map[ i ].name ) - { - fprintf( fp, "\"%s\", %d, %d\n", _map[ i ].name, i, _map[ i ].velocity ); - ++n; - } - } - - DMESSAGE( "wrote %d lines to instrument file \"%s\"", n, pat ); - - fclose( fp ); - - return true; -} - -void -Instrument::save ( void ) const -{ - if ( _dirty ) - write( _name ); - - _dirty = false; -} - -static int -instrument_filter ( const struct dirent *d ) -{ - char suffix[] = "*.inst"; - - return 0 == fnmatch( suffix, d->d_name, 0 ); -} - -static -list * -get_listing( const char *dir ) -{ - list *sl = new list ; - - struct dirent **names; - int n; - - if ( 0 > ( n = scandir( dir, &names, instrument_filter, alphasort ) ) ) - { - WARNING( "couldn't open instrument directory" ); - return NULL; - } - else - { - while (n--) - { - char *c = rindex( names[n]->d_name, '.' ); - - if ( c ) - *c = '\0'; - - MESSAGE( "found instrument: %s", names[n]->d_name ); - - string s( names[n]->d_name ); - - sl->push_back( s ); - - free( names[n] ); - } - free( names ); - - return sl; - } -} - -/* Returns a list of available instruments */ -char ** -Instrument::listing ( void ) -{ - list *sys = get_listing( SYSTEM_PATH "/" INSTRUMENT_DIR ); - list *usr = get_listing( config.user_config_dir ); - - if ( ! ( usr || sys ) ) - return NULL; - - if ( sys && usr ) - usr->merge( *sys ); - else - if ( sys && ! usr ) - usr = sys; - - usr->unique(); - - usr->sort(); - - if ( sys ) - delete sys; - - char **sa = (char**)malloc( (usr->size() + 1) * sizeof( char * ) ); - - int i = 0; - for ( list ::iterator s = usr->begin(); s != usr->end(); s++, i++ ) - sa[i] = strdup( s->c_str() ); - - sa[i] = NULL; - - delete usr; - - return sa; -} - -const char * -Instrument::name ( void ) const -{ - return _name; -} diff --git a/sequencer/src/instrument.H b/sequencer/src/instrument.H deleted file mode 100644 index 350b644..0000000 --- a/sequencer/src/instrument.H +++ /dev/null @@ -1,66 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include -using std::list; - -#include - -struct i_map { - char *name; - unsigned char velocity; -}; - -class Instrument -{ - - static list instruments; - - char *_name; - int _height; - mutable bool _dirty; - - struct i_map _map[128]; /* note / velocity mappings */ - - Instrument ( const char *name ); - bool read ( const char *s ); - bool write ( const char *s ) const; - -public: - - static Instrument * open ( const char *name ); - static char ** listing ( void ); - - /* mutation */ - void note ( int from, int to ); - void velocity ( int n, int v ); - void note_name ( int n, char *s ); - - /* inspection */ - bool translate ( MIDI::midievent *e ) const; - const char * note_name ( int n ) const; - int height ( void ) const; - const char * name ( void ) const; - int velocity ( int n ) const; - - void save ( void ) const; - -}; diff --git a/sequencer/src/jack.C b/sequencer/src/jack.C deleted file mode 100644 index a42d241..0000000 --- a/sequencer/src/jack.C +++ /dev/null @@ -1,640 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2007-2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include -#include -#include -#include -/* jack */ -#include -#include -#include -#include - -#include "jack.H" -#include "non.H" -#include "transport.H" -#include "pattern.H" -#include "phrase.H" -#include -#include - -using namespace MIDI; - -#ifdef JACK_MIDI_PROTO_API -/* correct for prototype version of API */ -#define jack_midi_event_reserve( p, f, l ) jack_midi_event_reserve( p, f, l, nframes ) -#define jack_midi_event_get( e, b, f ) jack_midi_event_get( e, b, f, nframes ) -#define jack_midi_get_event_count( b ) jack_midi_get_event_count( b, nframes ) -#define jack_midi_clear_buffer( b ) jack_midi_clear_buffer( b, nframes ) -#define jack_midi_event_write( b, f, d, s ) jack_midi_event_write( b, f, d, s, nframes ) -#endif - - -/* MIDI channel to listen for pattern control changes on */ -int pattern_control_channel = 0; - -/* which control change number to use for pattern control */ -int pattern_control_cc = 20; - -jack_client_t *client; - -int sample_rate; - -const int MAX_PORT = 16; - -const int subticks_per_tick = 4096; - -/* timers for notes on all channels and ports. When a note is played, - * the respective value in this array is set to the note duraction in - * subticks (an arbitrary division of the tick used only for this - * purpose). Decremented in each process cycle, when this value - * reaches zero, a note off is generated--regardless of the state of - * the transport */ -int note_duration[MAX_PORT][16][128]; - -/* tracks the number of concurrent note ons for the same note so that - * we can be sure to emit the correct number of note offs */ -int notes_on[MAX_PORT][16][128]; - -typedef unsigned char byte_t; - -int num_output_ports = 1; - -event_list freelist; - -typedef struct { - void *buf; - jack_ringbuffer_t *ring_buf; /* for realtime output and recording */ - event_list events; /* events to be output this cycle */ - jack_port_t *port; -} port_t; - -static port_t output[MAX_PORT]; -static port_t input[2]; /* control, performance */ - -jack_nframes_t nframes; /* for compatibility with older jack */ - -bool -midi_is_active ( void ) -{ - return client != NULL; -} - -/** get next recorded event, if any--runs in UI thread */ -bool -midi_input_event ( int port, midievent *me ) -{ - if ( ! midi_is_active() ) - return NULL; - - if ( jack_ringbuffer_read_space( input[ port ].ring_buf ) >= sizeof( midievent ) ) - { - if ( jack_ringbuffer_read( input[ port ].ring_buf, (char *)me, sizeof( midievent ) ) ) - return true; - } - return false; -} - - -/** - * Queue an event for output. /tick/ is relative to the current cycle! */ -void -midi_output_event ( int port, const midievent *e ) -{ - if ( ! midi_is_active() ) - return; - - event *fe = freelist.first(); - - if ( ! fe ) - { - WARNING( "output buffer underrun" ); - } - else - { - if ( e->is_note_on() ) - { - if ( notes_on[ port ][ e->channel() ][ e->note() ] == 0 ) - { - freelist.unlink( fe ); - *fe = *e; - - output[ port ].events.insert( fe ); - ++notes_on[ port ][ e->channel() ][ e->note() ]; - } - else - { - DMESSAGE( "Dropping extra Note ON" ); - } - } - else if ( e->is_note_off() ) - { - if ( notes_on[ port ][ e->channel() ][ e->note() ] == 0 ) - { - DMESSAGE( "Dropping extra Note OFF" ); - } - else - { - freelist.unlink( fe ); - *fe = *e; - - output[ port ].events.insert( fe ); - --notes_on[ port ][ e->channel() ][ e->note() ]; - } - } - else - { - freelist.unlink( fe ); - *fe = *e; - - output[ port ].events.insert( fe ); - } - } -} - -/** same as above, but only for note-on + duration */ -void -midi_output_event ( int port, const midievent *e, tick_t duration ) -{ - if ( ! midi_is_active() ) - return; - - if ( duration ) - { - note_duration[ port ][ e->channel() ][ e->note() ] = (duration + e->timestamp()) * subticks_per_tick; - midi_output_event( port, e ); - } - else - { - /* We allow duplicate notes on and pass notes off through as - * is in order to support poly synths. */ - midi_output_event( port, e ); - } -} - -void -midi_write_event ( int port, const midievent *e ) -{ - byte_t *buffer; - - // what I want here is to translate a PPQN tick into the - // current period. - jack_nframes_t frame = transport.frames_per_tick * e->timestamp(); - - int l = e->size(); - - buffer = jack_midi_event_reserve( output[ port ].buf, frame, l ); - - if ( ! buffer ) - { - WARNING( "could not reserve buffer at frame %d, note event dropped!", frame ); - return; - } - -#ifdef DEBUG_EVENTS - e->pretty_print(); -#endif - - e->raw( buffer, l ); -} - - -/** Call this to send an event immediately from UI thread. Timestamp is meaningless */ -void -midi_output_immediate_event ( int port, const midievent *e ) -{ - if ( ! midi_is_active() ) - return; - - if ( jack_ringbuffer_write( output[ port ].ring_buf, (const char *)e, sizeof( midievent ) ) != sizeof( midievent ) ) - WARNING( "output ringbuffer overrun" ); - else - if ( e->is_note_on() ) - { - /* use timestamp as duration */ - note_duration[ port ][ e->channel() ][ e->note() ] = e->timestamp() * subticks_per_tick; - } -} - -/** stop all notes on all channels of all ports */ -void -midi_all_sound_off ( void ) -{ - if ( ! midi_is_active() ) - return; - - MESSAGE( "stopping all sound" ); - - midievent e; - - /* all notes off */ - e.status( midievent::CONTROL_CHANGE ); - e.data( 123, 0 ); - e.timestamp( 0 ); - - for ( int p = MAX_PORT; p--; ) - for ( int c = 16; c--; ) - { - e.channel( c ); - midi_output_immediate_event( p, &e ); - } -} - -static void -stop_all_patterns ( void ) -{ - for ( uint i = pattern::patterns(); i--; ) - { - pattern *p = pattern::pattern_by_number( i + 1 ); - - p->stop(); - } -} - -static int -sync ( jack_transport_state_t state, jack_position_t *pos, void * ) -{ - switch ( state ) - { - case JackTransportStopped: /* new position requested */ - /* JACK docs lie. This is only called when the transport - is *really* stopped, not when starting a slow-sync - cycle */ - stop_all_patterns(); - return 1; - case JackTransportStarting: /* this means JACK is polling slow-sync clients */ - { - stop_all_patterns(); - return 1; - } - case JackTransportRolling: /* JACK's timeout has expired */ - /* FIXME: what's the right thing to do here? */ -// request_locate( pos->frame ); - return 1; - break; - default: - WARNING( "unknown transport state" ); - } - - return 0; -} - - -static int -process ( jack_nframes_t nframes, void *arg ) -{ - static tick_t oph = 0; - static int old_play_mode = PATTERN; - - static int not_dropped = 0; - - ::nframes = nframes; - - transport.nframes = nframes; - transport.poll(); - - /* ph-nph is exclusive. It is important that in normal continuous playback each tick is covered exactly once! */ - const tick_t ph = transport.ticks; - const tick_t nph = transport.ticks + transport.ticks_per_period; - - if ( ! transport.valid ) - goto schedule; - - if ( ( ! transport.rolling ) || ph == oph ) - goto schedule; - - /* if ( ph != onph ) */ - /* { */ - /* if ( onph > ph ) */ - /* DWARNING( "duplicated %lu ticks (out of %d)", onph - ph, (int)(not_dropped * transport.ticks_per_period) ); */ - /* else */ - /* DWARNING( "dropped %lu ticks (out of %d), ticks per period = %f", ph - onph, (int)(not_dropped * transport.ticks_per_period) ); */ - - /* not_dropped = 0; */ - /* } */ - - ++not_dropped; - -// onph = nph; - - if ( old_play_mode != song.play_mode ) - { - switch ( old_play_mode ) - { - case PATTERN: - case TRIGGER: - case QUEUE: - DMESSAGE( "Stopping all patterns" ); - stop_all_patterns(); - break; - } - old_play_mode = song.play_mode; - } - -// DMESSAGE( "tpp %f %lu-%lu", transport.ticks_per_period, ph, nph ); - - /* now handle control input */ - { - int j = CONTROL; - - static midievent e; - - input[j].buf = jack_port_get_buffer( input[j].port, nframes ); - - jack_midi_event_t ev; - - jack_nframes_t count = jack_midi_get_event_count( input[j].buf ); - - for ( uint i = 0; i < count; ++i ) - { -// MESSAGE( "Got midi input!" ); - - jack_midi_event_get( &ev, input[j].buf, i ); - - /* time is frame within cycle, convert to absolute tick */ - e.timestamp( ph + (ev.time / transport.frames_per_tick) ); - e.status( ev.buffer[0] ); - e.lsb( ev.buffer[1] ); - if ( ev.size == 3 ) - e.msb( ev.buffer[2] ); - - /* no need to pass it to the GUI, we can trigger patterns here */ - - if ( e.channel() == pattern_control_channel && - e.opcode() == midievent::CONTROL_CHANGE && - e.lsb() == pattern_control_cc ) - { - if ( e.msb() < pattern::patterns() ) - { - - pattern *p = pattern::pattern_by_number( e.msb() + 1 ); - - if ( TRIGGER == song.play_mode ) - { - if ( p->playing() ) - { - DMESSAGE( "Untriggering pattern %i ph=%lu, ts=%lu", e.msb(), ph, e.timestamp() ); - - p->trigger( ph, e.timestamp() ); - } - else - { - DMESSAGE( "Triggering pattern %i ph=%lu, ts=%lu", e.msb(), ph, e.timestamp() ); - - p->trigger( e.timestamp(), INFINITY ); - } - } - else - { - if ( p->mode() == PLAY ) - { - DMESSAGE( "Dequeuing pattern %i ph=%lu, ts=%lu", e.msb(), ph, e.timestamp() ); - p->mode( MUTE ); - } - else - { - DMESSAGE( "Queuing pattern %i ph=%lu, ts=%lu", e.msb(), ph, e.timestamp() ); - - p->mode( PLAY ); - } - } - } - } - } - } - - - switch ( song.play_mode ) - { - case SEQUENCE: - playlist->play( ph, nph ); - break; - case QUEUE: - case PATTERN: - { - for ( uint i = pattern::patterns(); i--; ) - { - pattern *p = pattern::pattern_by_number( i + 1 ); - - p->trigger( 0, INFINITY ); - - p->play( ph, nph ); - } - break; - } - case TRIGGER: - { - for ( uint i = pattern::patterns(); i--; ) - { - pattern *p = pattern::pattern_by_number( i + 1 ); - - p->play( ph, nph ); - } - break; - } - } - - oph = ph; - - /* handle midi input */ -// for ( int j = transport.recording ? 2 : 1; j--; ) - - if ( transport.recording ) - { - int j = PERFORMANCE; - - static midievent e; - - input[j].buf = jack_port_get_buffer( input[j].port, nframes ); - - jack_midi_event_t ev; - - jack_nframes_t count = jack_midi_get_event_count( input[j].buf ); - - for ( uint i = 0; i < count; ++i ) - { -// MESSAGE( "Got midi input!" ); - - jack_midi_event_get( &ev, input[j].buf, i ); - - /* time is frame within cycle, convert to absolute tick */ - e.timestamp( ph + (ev.time / transport.frames_per_tick) ); - e.status( ev.buffer[0] ); - e.lsb( ev.buffer[1] ); - if ( ev.size == 3 ) - e.msb( ev.buffer[2] ); - - if ( jack_ringbuffer_write( input[j].ring_buf, (char*)&e, sizeof( midievent ) ) != sizeof( midievent ) ) - WARNING( "input buffer overrun" ); - } - } - - -schedule: - - const int subticks_per_period = transport.ticks_per_period * subticks_per_tick; - - for ( uint i = MAX_PORT; i-- ; ) - { - /* reserve and clear buffers */ - output[ i ].buf = jack_port_get_buffer( output[ i ].port, nframes ); - jack_midi_clear_buffer( output[ i ].buf ); - - /* handle scheduled note offs */ - for ( uint j = 16; j-- ; ) - { - register int *note = ¬e_duration[ i ][ j ][ 0 ]; - - for ( register uint k = 0; k < 128; ++note, ++k ) - if ( *note > 0 ) - if ( ( *note -= subticks_per_period ) <= 0 ) - { - while ( notes_on[ i ][ j ][ k] > 0 ) - { - static midievent e; - - e.status( midievent::NOTE_OFF ); - e.channel( j ); - e.note( k ); - e.note_velocity( 64 ); - - e.timestamp( (subticks_per_period + *note) / subticks_per_tick ); - - midi_output_event( i, &e ); - } - - *note = 0; - } - } - - - static midievent e; - /* first, write any immediate events from the UI thread */ - while ( jack_ringbuffer_read( output[ i ].ring_buf, (char *)&e, sizeof( midievent ) ) ) - { -// MESSAGE( "sending immediate event" ); - // FIXME: could we do better? - e.timestamp( 0 ); - - midi_output_event( i, &e ); - } - - /* Write queued events */ - event *n; - for ( event *e = output[ i ].events.first(); e; e = n ) - { - n = e->next(); - - midi_write_event( i, e ); - - output[ i ].events.unlink( e ); - - freelist.append( e ); - } - } - - return 0; -} - -const char * -midi_init ( const char *name ) -{ - MESSAGE( "Initializing Jack MIDI" ); - - if (( client = jack_client_open ( name, (jack_options_t)0, NULL )) == 0 ) - return NULL; - - /* create output ports */ - for ( int i = 0; i < MAX_PORT; i++ ) - { - char pat[40]; - - sprintf( pat, "midi_out-%d", i + 1 ); - output[i].port = jack_port_register( client, pat, JACK_DEFAULT_MIDI_TYPE, JackPortIsOutput, 0 ); - output[i].ring_buf = jack_ringbuffer_create( 16 * 16 * sizeof( midievent ) ); // why this value? - jack_ringbuffer_reset( output[i].ring_buf ); - - } - - /* create input ports */ - input[0].port = jack_port_register( client, "control_in", JACK_DEFAULT_MIDI_TYPE, JackPortIsInput, 0 ); - input[0].ring_buf = jack_ringbuffer_create( 128 * sizeof( midievent ) ); // why this value? - jack_ringbuffer_reset( input[0].ring_buf ); - input[1].port = jack_port_register( client, "midi_in", JACK_DEFAULT_MIDI_TYPE, JackPortIsInput, 0 ); - input[1].ring_buf = jack_ringbuffer_create( 128 * sizeof( midievent ) ); // why this value? - jack_ringbuffer_reset( input[1].ring_buf ); - - /* preallocate events */ - for ( int i = 32 * 16 * MAX_PORT; i-- ; ) - freelist.append( new event ); - - DMESSAGE( "allocated output buffer space for %lu events", freelist.size() ); - - /* clear notes */ - for ( int p = MAX_PORT; p--; ) - { - for ( int c = 16; c-- ; ) - for ( int n = 128; n-- ; ) - { - note_duration[ p ][ c ][ n ] = 0; - notes_on[ p ][ c ][ n ] = 0; - } - } - -//1 jack_set_buffer_size_callback( client, bufsize, 0 ); - jack_set_process_callback( client, process, 0 ); - jack_set_sync_callback( client, sync, 0 ); - -/* /\* initialize buffer size *\/ */ -/* transport_poll(); */ -/* bufsize( jack_get_buffer_size( client ), 0 ); */ - - if ( jack_set_timebase_callback( client, 1, Transport::timebase, NULL ) == 0 ) - { - MESSAGE( "running as timebase master" ); - transport.master = true; - } - else - WARNING( "could not take over as timebase master" ); - - jack_activate( client ); - - sample_rate = jack_get_sample_rate( client ); - - /* FIXME: hack! we need to wait until jack finally calls our - * timebase and process callbacks in order to be able to test for - * valid transport info. */ - MESSAGE( "Waiting for JACK..." ); - usleep( 500000 ); - - return (const char *) jack_get_client_name(client); -} - -void -midi_shutdown ( void ) -{ - // TODO: wait for all queued events to play. - if ( client ) - { - jack_deactivate( client ); - jack_client_close( client ); - client = NULL; - } -} diff --git a/sequencer/src/jack.H b/sequencer/src/jack.H deleted file mode 100644 index 7d6ed99..0000000 --- a/sequencer/src/jack.H +++ /dev/null @@ -1,17 +0,0 @@ - -#include -#include -#include "common.h" - -enum { CONTROL, PERFORMANCE }; - - -bool midi_input_event ( int port, MIDI::midievent *e ); -bool midi_is_active ( void ); -MIDI::midievent * midi_input_event ( int port ); -void midi_output_event ( int port, const MIDI::midievent *e ); -void midi_output_event ( int port, const MIDI::midievent *e, tick_t duration ); -void midi_all_sound_off ( void ); -const char * midi_init ( const char *name ); -void midi_shutdown ( void ); -void midi_output_immediate_event ( int port, const MIDI::midievent *e ); diff --git a/sequencer/src/main.C b/sequencer/src/main.C deleted file mode 100644 index a89cd96..0000000 --- a/sequencer/src/main.C +++ /dev/null @@ -1,292 +0,0 @@ -/**********************************************************************************/ -/* Copyright (C) 2007,2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or ; */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software ; */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/**********************************************************************************/ - -#include -#include -#include -#include - -#include "non.H" -// #include "gui/input.H" -#include "gui/ui.H" -#include "jack.H" -#include "NSM.H" -#include "transport.H" -#include "pattern.H" -#include "phrase.H" -#include -#include -using namespace MIDI; - -// extern const char *BUILD_ID; -// extern const char *VERSION; - -const double NSM_CHECK_INTERVAL = 0.25f; - -sequence *playlist; - -global_settings config; -song_settings song; - -NSM_Client *nsm; - -char *instance_name; - -/* default to pattern mode */ - -UI *ui; - -void -quit ( void ) -{ - /* clean up, only for valgrind's sake */ - ui->save_settings(); - - delete ui; - - midi_all_sound_off(); - - // wait for it... - sleep( 1 ); - - midi_shutdown(); - - - MESSAGE( "Your fun is over" ); - - exit( 0 ); -} - -void -clear_song ( void ) -{ -// song.filename = NULL; - - ui->pattern_canvas_widget->grid( NULL ); - ui->phrase_canvas_widget->grid( NULL ); - - playlist->reset(); - playlist->insert( 0, 1 ); - - ui->pattern_canvas_widget->grid( new pattern ); - ui->phrase_canvas_widget->grid( new phrase ); - - song.dirty( false ); -} - -void -init_song ( void ) -{ - if ( ! midi_is_active() ) - setup_jack(); - - if ( !( nsm && nsm->is_active() ) ) - song.filename = NULL; - - clear_song(); - - if ( nsm && nsm->is_active() ) - save_song( song.filename ); -} - -void -handle_midi_input ( void ) -{ - midievent e; - while ( ( midi_input_event( PERFORMANCE, &e ) ) ) - { - pattern::record_event( &e ); - } -} - -bool -load_song ( const char *name ) -{ - if ( ! midi_is_active() ) - setup_jack(); - - MESSAGE( "loading song \"%s\"", name ); - - Grid *pattern_grid = ui->pattern_canvas_widget->grid(); - Grid *phrase_grid = ui->phrase_canvas_widget->grid(); - - ui->pattern_canvas_widget->grid( NULL ); - ui->phrase_canvas_widget->grid( NULL ); - - if ( ! playlist->load( name ) ) - { - WARNING( "failed to load song file" ); - goto failed; - } - - ui->pattern_canvas_widget->grid( pattern::pattern_by_number( 1 ) ); - ui->phrase_canvas_widget->grid( phrase::phrase_by_number( 1 ) ); - - song.filename = strdup( name ); - - song.dirty( false ); - - return true; - -failed: - - ui->pattern_canvas_widget->grid( pattern_grid ); - ui->phrase_canvas_widget->grid( phrase_grid ); - - return false; -} - -bool -save_song ( const char *name ) -{ - playlist->save( name ); - - song.filename = strdup( name ); - song.dirty( false ); - - return true; -} - - -void -setup_jack ( ) -{ - const char *jack_name; - - jack_name = midi_init( instance_name ); - if ( ! jack_name ) - ASSERTION( "Could not initialize MIDI system! (is Jack running and with MIDI ports enabled?)" ); - - if ( ! transport.valid ) - { - if ( transport.master ) - ASSERTION( "The version of JACK you are using does not appear to be capable of passing BBT positional information." ); - else - ASSERTION( "Either the version of JACK you are using does pass BBT information, or the current timebase master does not provide it." ); - } -} - -static int got_sigterm = 0; - -void -sigterm_handler ( int ) -{ - got_sigterm = 1; - Fl::awake(); -} - -void -check_sigterm ( void * ) -{ - if ( got_sigterm ) - { - MESSAGE( "Got SIGTERM, quitting..." ); - quit(); - } -} - - -void -check_nsm ( void * v ) -{ - nsm->check(); - Fl::repeat_timeout( NSM_CHECK_INTERVAL, check_nsm, v ); -} - -int -main ( int argc, char **argv ) -{ - - printf( "%s %s %s -- %s\n", APP_TITLE, VERSION, "", COPYRIGHT ); - - if ( ! Fl::visual( FL_DOUBLE | FL_RGB ) ) - { - WARNING( "Xdbe not supported, FLTK will fake double buffering." ); - } - - ::signal( SIGTERM, sigterm_handler ); - ::signal( SIGHUP, sigterm_handler ); - ::signal( SIGINT, sigterm_handler ); - - config.follow_playhead = true; - config.record_mode = MERGE; - song.play_mode = PATTERN; - - asprintf( &config.user_config_dir, "%s/%s", getenv( "HOME" ), USER_CONFIG_DIR ); - mkdir( config.user_config_dir, 0777 ); - - playlist = new sequence; - - nsm = new NSM_Client; - - song.filename = NULL; - - ui = new UI; - - pattern::signal_create_destroy.connect( mem_fun( ui->phrase_canvas_widget, &Canvas::v_zoom_fit ) ); - pattern::signal_create_destroy.connect( mem_fun( song, &song_settings::set_dirty ) ); - phrase::signal_create_destroy.connect( mem_fun( song, &song_settings::set_dirty ) ); - - song.dirty( false ); - - clear_song(); - -#ifdef HAVE_XPM - ui->main_window->icon((char *)p); -#endif - ui->main_window->show( 0, 0 ); - - instance_name = strdup( APP_NAME ); - - const char *nsm_url = getenv( "NSM_URL" ); - - if ( nsm_url ) - { - if ( ! nsm->init( nsm_url ) ) - { - nsm->announce( APP_NAME, ":switch:dirty:", argv[0] ); - - song.signal_dirty.connect( sigc::mem_fun( nsm, &NSM_Client::is_dirty ) ); - song.signal_clean.connect( sigc::mem_fun( nsm, &NSM_Client::is_clean ) ); - - // poll so we can keep OSC handlers running in the GUI thread and avoid extra sync - Fl::add_timeout( NSM_CHECK_INTERVAL, check_nsm, NULL ); - } - else - WARNING( "Error initializing NSM" ); - } - else - { - setup_jack(); - if ( argc > 1 ) - { - /* maybe a filename on the commandline */ - if ( ! load_song( argv[ 1 ] ) ) - ASSERTION( "Could not load song \"%s\" specified on command line", argv[ 1 ] ); - } - } - - MESSAGE( "Initializing GUI" ); - - Fl::add_check( check_sigterm ); - - ui->load_settings(); - ui->run(); - - return 0; -} diff --git a/sequencer/src/mapping.C b/sequencer/src/mapping.C deleted file mode 100644 index 47c9b8e..0000000 --- a/sequencer/src/mapping.C +++ /dev/null @@ -1,170 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "mapping.H" -#include "stdlib.h" -#include "common.h" -#include - -using namespace MIDI; -/* Is C++'s dispatching useless or what? */ - -#define IS_INSTRUMENT ( _type == INSTRUMENT ) - -Mapping::Mapping ( ) -{ - _key = 0; - _type = NONE; -} - -bool -Mapping::open ( enum map_type type, const char *name ) -{ - switch ( type ) - { - case INSTRUMENT: - _instrument = Instrument::open( name ); - break; - case SCALE: - _scale = Scale::open( name ); - break; - default: - ASSERTION( "invalid mapping type "); - break; - } - - if ( ! _scale ) - return false; - - _type = type; - - return true; -} - -Mapping::Mapping ( const Mapping &rhs ) -{ - _key = rhs._key; - _type = rhs._type; - _instrument = rhs._instrument; -} - -const char * -Mapping::name ( void ) const -{ - switch ( _type ) - { - case INSTRUMENT: - return _instrument->name(); - case SCALE: - return _scale->name(); - } - - return NULL; -} - - -int -Mapping::height ( void ) const -{ - if ( IS_INSTRUMENT ) - return _instrument->height(); - else - return 0; -} - -void -Mapping::key ( int n ) -{ - if ( n > 11 || n < 0 ) - ASSERTION( "key selection out of range: %d", n ); - - _key = n; -} - -int -Mapping::key ( void ) const -{ - return _type == INSTRUMENT ? -1 : _key; -} - -bool -Mapping::translate ( midievent *e ) const -{ - switch ( _type ) - { - case INSTRUMENT: - return _instrument->translate( e ); - case SCALE: - return _scale->translate( _key, e ); - } - - return false; -} - -int -Mapping::velocity ( int n ) const -{ - switch ( _type ) - { - case INSTRUMENT: - return _instrument->velocity( n ); - case SCALE: - return 0; - } - - return 0; -} - -const char * -Mapping::note_name ( int n ) const -{ - switch ( _type ) - { - case INSTRUMENT: - return _instrument->note_name( n ); - case SCALE: - return _scale->note_name( _key, n ); - } - - return NULL; -} - -/* For the instrument editor... */ -Instrument * -Mapping::instrument ( void ) const -{ - if ( IS_INSTRUMENT ) - return _instrument; - else - return NULL; -} - -/** return a string describing the type of this mapping */ -const char * -Mapping::type ( void ) const -{ - return IS_INSTRUMENT ? "Instrument" : "Scale"; -} - - -bool -Mapping::editable ( void ) const -{ - return IS_INSTRUMENT ? true : false; -} diff --git a/sequencer/src/mapping.H b/sequencer/src/mapping.H deleted file mode 100644 index e00cece..0000000 --- a/sequencer/src/mapping.H +++ /dev/null @@ -1,76 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include "scale.H" -#include "instrument.H" -#include - -/* C++'s inheritance system falls down dead for this application, so we - have to do it backwards, using the base class (Mapping) as an interface - to Instrument and Scale */ - - -class Mapping -{ - -public: - - enum map_type { NONE, INSTRUMENT, SCALE }; - -private: - - union { - Instrument *_instrument; - Scale *_scale; - }; - - int _key; /* used for scales, 0 == A */ - - int _type; - -public: - - Mapping ( ); - Mapping ( const Mapping &rhs ); - - bool open ( map_type type, const char *name ); - - const char * name ( void ) const; - int height ( void ) const; - - Instrument * instrument ( void ) const; - - /* mutation */ - void note ( int from, int to ); - void velocity ( int n, int v ); - void note_name ( int n, char *s ); - void key ( int n ); - - /* inspection */ - bool translate ( MIDI::midievent *e ) const; - const char * note_name ( int n ) const; - int velocity ( int n ) const; - int key ( void ) const; - bool editable ( void ) const; - - const char * type ( void ) const; - -}; diff --git a/sequencer/src/non.H b/sequencer/src/non.H deleted file mode 100644 index 98453be..0000000 --- a/sequencer/src/non.H +++ /dev/null @@ -1,127 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2007,2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include "common.h" -#include "pattern.H" -#include "phrase.H" -#include "sequence.H" - -enum { - PLAY, - MUTE, - SOLO -}; - -class Canvas; -class Lash; - -extern Canvas *pattern_c, *phrase_c; -extern sequence *playlist; -extern Lash lash; - -void quit ( void ); -void init_song ( void ); -void handle_midi_input ( void ); -bool load_song ( const char *name ); -bool save_song ( const char *name ); -void setup_jack ( void ); - -#include "common.h" -#include "const.h" - - -enum play_mode_e { - PATTERN, - SEQUENCE, - TRIGGER, - QUEUE -// PHRASE, -}; - - -enum record_mode_e { - MERGE, - OVERWRITE, - LAYER, - NEW -}; - - -/* program settings (from rc file) */ -struct global_settings { - - enum record_mode_e record_mode; - - bool record_filtered; /* ignore non-note events while recording */ - bool visual_metronome; /* show visual metronome */ - bool follow_playhead; - - char *user_config_dir; - -}; -extern global_settings config; - -/* song settings (from song file) */ -struct song_settings -{ - - enum play_mode_e play_mode; - - char *filename; - - signal signal_dirty; /* emitted when first dirtied */ - signal signal_clean; /* emitted when first cleaned */ - - bool _dirty; - - bool dirty ( void ) - { - return _dirty; - } - - void - dirty( bool b ) - { - if ( _dirty != b ) - { - _dirty = b; - - if ( b ) - { - DMESSAGE( "song is now dirty" ); - signal_dirty(); - } - else - { - DMESSAGE( "song is now clean" ); - signal_clean(); - } - } - } - - void - set_dirty ( void ) - { - dirty( true ); - } - -}; -extern song_settings song; diff --git a/sequencer/src/pattern.C b/sequencer/src/pattern.C deleted file mode 100644 index c21f7d9..0000000 --- a/sequencer/src/pattern.C +++ /dev/null @@ -1,739 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2007-2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "pattern.H" -#include "non.H" -#include "common.h" -#include "smf.H" - -#include "jack.H" -#include "transport.H" -#include - -#include -using namespace MIDI; - -event_list pattern::_recorded_events; -vector pattern::_patterns; -int pattern::_solo; -int pattern::_pattern_recording; - -signal pattern::signal_create_destroy; - -pattern::pattern ( void ) -{ - viewport.h = 32; - viewport.w = 32; - - viewport.y = 64 - ( viewport.h + ( viewport.h / 2 ) ); - - _channel = _port = 0; - - _ppqn = 4; - _bpb = 4; - _note = 8; - - _queued = -1; - - int _bars = 2; - - // we need to reinitalize this. - data *d = const_cast< data * >( _rd ); - - d->length = x_to_ts( _bpb * _ppqn * _bars ); - -// mapping.open( Mapping::INSTRUMENT, "Default" ); - mapping.open( Mapping::SCALE, "Major" ); - - _add(); - - char *s; - asprintf( &s, "Pattern %d", number() ); - - name( s ); -} - -void -pattern::_add ( void ) -{ - // keep track of all the patterns - pattern::_patterns.push_back( this ); - _number = patterns(); - - signal_create_destroy(); -} - -pattern::~pattern ( void ) -{ - DMESSAGE( "deleting pattern %d", number() ); - signal_create_destroy(); -} - -/* copy constructor */ -pattern::pattern ( const pattern &rhs ) : Grid( rhs ) -{ - _note = rhs._note; - _port = rhs._port; - _channel = rhs._channel; - _queued = rhs._queued; - - mapping = rhs.mapping; - - _add(); -} - -pattern * -pattern::clone ( void ) -{ - return new pattern( *this ); -} - -/******************/ -/* Static methods */ -/******************/ - -int -pattern::solo ( void ) -{ - return pattern::_solo; -} - -int -pattern::patterns ( void ) -{ - return pattern::_patterns.size(); -} - -// this is the static one -pattern * -pattern::pattern_by_number ( int n ) -{ - if ( n <= patterns() && n > 0 ) - { - return pattern::_patterns[ n - 1 ]; - } - return NULL; -} - -/** delete all patterns in preparation for a reload */ -void -pattern::reset ( void ) -{ - for ( int n = pattern::patterns(); n-- ; ) - { - delete pattern::_patterns.back(); - pattern::_patterns.pop_back(); - } -} - -/* runs in the UI thread */ -/* records a MIDI event into a temporary buffer. It'll only be - * permanently added to pattern after recording stops or the pattern - * loops. */ -void -pattern::record_event ( const midievent *me ) -{ - /* set the events aside in a dedicated list--the recording pattern - * will decide what to do with them the next time around the - * loop */ - - /* FIXME: how does the pattern decide when to loop? It seems - reasonable that /merge/ and /replace/ modes should be bound to - the previous pattern length, but what about "NEW" mode? Should it - just use this entire list as a new pattern (of whatever length) - when recording is halted? */ - - event *e = new event; - - *e = *me; - - pattern::_recorded_events.append( e ); - - record_mode_e mode = config.record_mode; - - if ( mode == OVERWRITE || mode == LAYER ) - { - pattern *p = pattern::recording(); - - if ( ! p->_cleared ) - { - - if ( mode == LAYER ) - { - p->record_stop(); - - p = p->clone(); - - p->record( 0 ); - } - - p->clear(); - - p->_cleared = true; - } - - mode = MERGE; - } - - /* let's fill in the pattern 'live' in merge mode. looks a little - complicated because we have to wait for a note-off before it's - safe to insert */ - if ( mode == MERGE || mode == NEW ) - { - - pattern *p = pattern::recording(); - - p->lock(); - - event_list *el = &pattern::_recorded_events; - - if ( e->is_note_off() ) - { - event *off = e; - - for ( event *on = el->last(); on; on = on->prev() ) - { - if ( on->is_note_on() && - on->is_same_note( off ) ) - // && - // *on < *e ) - { - el->unlink( on ); - el->unlink( off ); - - tick_t duration = off->timestamp() - on->timestamp(); - - /* place within loop */ - on->timestamp( - fmod( on->timestamp() - p->_start, p->_rw->length ) ); - - on->link( off ); - on->note_duration( duration ); - - p->_rw->events.mix( on ); - - break; - } - } - } - else - if ( ! e->is_note_on() ) - { - - // if ( ! filter ) - - e->timestamp( fmod( e->timestamp(), p->_rw->length ) ); - - el->unlink( e ); - p->_rw->events.insert( e ); - } - - p->unlock(); - } -} - -pattern * -pattern::recording ( void ) -{ - return pattern::pattern_by_number( pattern::_pattern_recording ); -} - - - -/*******************/ -/* Virtual Methods */ -/*******************/ - -/* allows us to create a new pattern/phrase from a base class pointer */ -pattern * -pattern::create ( void ) -{ - if ( pattern::patterns() < 128 ) - { - return new pattern; - } - else - return NULL; -} - -pattern * -pattern::by_number ( int n ) const -{ - return pattern::pattern_by_number( n ); -} - -/** what to do when the row name is pressed */ -void -pattern::row_name_press ( int y ) -{ - /* echo note */ - midievent e; - - e.status( event::NOTE_ON ); - e.channel( _channel ); - e.timestamp( default_length() ); - e.note( y ); - e.note_velocity( 64 ); - - midi_output_immediate_event ( _port, &e ); -} - -void -pattern::put ( int x, int y, tick_t l ) -{ - l = l ? l : default_length(); - - Grid::put( x, y, l ); - - if ( ! transport.rolling ) - { - /* echo note */ - midievent e; - - e.status( event::NOTE_ON ); - e.channel( _channel ); - e.timestamp( l ); - e.note( y_to_note( y ) ); - e.note_velocity( 64 ); - - midi_output_immediate_event ( _port, &e ); - } -} - -const char * -pattern::row_name ( int r ) const -{ - return mapping.note_name( y_to_note( r ) ); -} - -void -pattern::draw_row_names ( Canvas *c ) const -{ - for ( int y = 128; y-- ; ) - c->draw_row_name( y, mapping.note_name( y_to_note( y ) ), mapping.velocity( y_to_note( y ) ) ); -} - -void -pattern::trigger ( tick_t start, tick_t end ) -{ - /* ASSERT( end != -1 && start <= end, "programming error: invalid loop trigger! (%lu-%lu)", start, end ); */ - - _start = start; - _end = end; -} - -/* trigger forever */ -void -pattern::trigger ( void ) -{ - trigger( transport.frame / transport.frames_per_tick, INFINITY ); -} - -void -pattern::stop ( void ) const -{ - _playing = false; - - _start = 0; - _end = 0; - _index = 0; -} - - -void -pattern::mode ( int n ) -{ - if ( QUEUE == song.play_mode ) - { - queue( n ); - return; - } - - if ( n == SOLO ) - { - if ( pattern::_solo ) - ((Grid*)pattern::pattern_by_number( pattern::_solo ))->mode( PLAY ); - pattern::_solo = _number; - Grid::mode( SOLO ); - } - else - { - if ( pattern::_solo == _number ) - pattern::_solo = 0; - - Grid::mode( n ); - } -} - -int -pattern::mode ( void ) const -{ - if ( pattern::_solo ) - { - if ( pattern::_solo == _number ) - return SOLO; - else - return MUTE; - } - else - return Grid::mode(); -} - -/* queue a mode change for the next loop */ -void -pattern::queue ( int m ) -{ - _queued = m; -} - -int -pattern::queue ( void ) const -{ - return _queued; -} - -/* WARNING: runs in the RT thread! */ -// output notes from /start/ to /end/ (absolute) -void -pattern::play ( tick_t start, tick_t end ) const -{ - /* get our own copy of this pointer so UI thread can change it. */ - const data *d = const_cast< const data * >(_rd); - - if ( start > _end ) - { - stop(); -// WARNING( "attempt to play a loop (pattern %d) that has ended (%lu, %lu)", number(), start, _end ); - return; - } - else - if ( end < _start ) - // not ready yet - return; - - if ( start < _start ) - start = _start; - - if ( end > _end ) - end = _end; - - // where we are in the absolute time - tick_t tick = start - _start; - int num_played = tick / d->length; - tick_t offset = _start + (d->length * num_played); - - const event *e; - - _index = fmod( tick, d->length ); - - bool reset_queued = false; - - if ( _index < end - start ) - { - /* period covers the beginning of the loop */ - DMESSAGE( "%s pattern %d at tick %f (ls: %f, le: %f, o: %f)", _playing ? "Looped" : "Triggered", number(), start, _start, _end, offset ); - - _cleared = false; - - if ( PLAY == _queued || SOLO == _queued ) - { - /* set the start point to loop boundary */ - start = start - _index; - _mode = _queued; - - if ( SOLO == _mode ) - { - if ( pattern::_solo ) - ((Grid*)pattern::pattern_by_number( pattern::_solo ))->mode( PLAY ); - - pattern::_solo = _number; - } - else - { - if ( pattern::_solo == _number ) - pattern::_solo = 0; - } - - reset_queued = true; - } - } - else if ( _index >= d->length - ( end - start ) ) - { - if ( MUTE == _queued ) - { - /* set the end point to loop boundary */ - end = end - _index; - - reset_queued = true; - } - } - - _playing = true; - - if ( mode() == MUTE ) - goto done; - -try_again: - - // pattern is empty - if ( d->events.empty() ) - goto done; - - for ( e = d->events.first(); e; e = e->next() ) - { - // MESSAGE( "s[%ld] -> t[%ld] : %ld, len %ld", start, end, e->timestamp(), _length ); // (*e).print(); - - tick_t ts = e->timestamp() + offset; - - if ( ts >= end ) - goto done; - - if ( ts >= start ) - { - midievent me = *e; - - - // MESSAGE( "timestamp %d, tick %d, ts - start == %lu", e->timestamp(), start, - // e->timestamp() - start); - - /* set the channel */ - me.channel( _channel ); - - /* set the in-cycle timestamp */ - me.timestamp ( ts - start ); - - if ( me.is_note_on() ) - { - if ( mapping.translate( &me ) ) - midi_output_event( _port, &me, 1 + e->note_duration() ); - } - else - if ( me.is_note_off() ) - { - if ( mapping.translate( &me ) ) - midi_output_event( _port, &me, 0 ); - } - else - /* any other event type */ - midi_output_event( _port, &me ); - } - } - - // ran out of events, but there's still some loop left to play. - offset += d->length; - goto try_again; - - DMESSAGE( "out of events, resetting to satisfy loop" ); - -done: - - if ( _queued >= 0 && reset_queued ) - { - _mode = _queued; - _queued = -1; - } - - if ( _end == end ) - { - /* we're done playing this trigger */ - DMESSAGE( "Pattern %d ended at tick %f (ls: %f, le: %f, o: %f)", number(), end, _start, _end, offset ); - - stop(); - } - -} - -/* Import /track/ of /f/ as new pattern */ -pattern * -pattern::import ( smf *f, int track ) -{ - if ( ! f->seek_track( track ) ) - return NULL; - - pattern *p = new pattern; - - p->lock(); - - p->load( f ); - - /* file could have any notes in it... Use Chromatic scale to - ensure all are visible */ - p->mapping.open( Mapping::SCALE, "Chromatic" ); - - p->unlock(); - - p->fit(); - - return p; -} - -/** fill pattern from current track of /f/ */ -void -pattern::load ( smf *f ) -{ - lock(); - - f->read_pattern_info( this ); - - tick_t len; - - list *e = f->read_track_events( &len ); - - /* set channel to channel of first event... */ - if ( e->size() ) - _channel = e->front().channel(); - - /* copy events into pattern */ - _rw->events = *e; - delete e; - - if ( len ) - _rw->length = len; - - unlock(); - -// print(); -} - -/** save (export) pattern to file /name/ */ -void -pattern::save ( const char *name ) const -{ - smf f; - - /* open for writing */ - f.open( name, smf::WRITE ); - - /* writing SMF 0 track */ - f.write_header( 0 ); - - f.open_track( _name, _number ); - - Grid::dump( &f, _channel ); - - f.close_track( length() ); -} - -/** dump pattern as a track in an already open MIDI file */ -void -pattern::dump ( smf *f ) const -{ - f->open_track( _name, _number ); - - f->write_pattern_info( this ); - - Grid::dump( f, _channel ); - - f->close_track( length() ); -} - - - -/*************/ -/* Recording */ -/*************/ - -void -pattern::record ( int mode ) -{ - _recording = true; - pattern::_pattern_recording = _number; -} - -void -pattern::record_stop ( void ) -{ - if ( ! _recording ) - return; - - _recording = false; - - if ( config.record_mode == NEW ) - trim(); - - pattern::_recorded_events.clear(); -} - - - -/*******************************/ -/* Pattern specific accessors. */ -/*******************************/ - - -int -pattern::port ( void ) const -{ - return _port; -} - -void -pattern::port ( int p ) -{ - _port = p; -} - -int -pattern::channel ( void ) const -{ - return _channel; -} - -void -pattern::channel ( int c ) -{ - _channel = c; -} - -int -pattern::note ( void ) const -{ - return _note; -} - -void -pattern::note ( int n ) -{ - _note = n; -} - - -int -pattern::ppqn ( void ) const -{ - return _ppqn; -} - -void -pattern::ppqn ( int n ) -{ - _ppqn = n; -} - -int -pattern::key ( void ) const -{ - return mapping.key(); -} - -void -pattern::key ( int k ) -{ - mapping.key( k ); -} diff --git a/sequencer/src/pattern.H b/sequencer/src/pattern.H deleted file mode 100644 index 3d2dab6..0000000 --- a/sequencer/src/pattern.H +++ /dev/null @@ -1,119 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2007-2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include "grid.H" -#include "canvas.H" -#include "mapping.H" -#include "common.h" - -#include -using std::vector; - -class pattern : public Grid -{ - static MIDI::event_list _recorded_events; - static vector _patterns; - static int _solo; - static int _pattern_recording; - - - static int solo ( void ); - - int _channel, _port; - - bool _recording; - mutable volatile bool _cleared; - - mutable volatile int _queued; - -// int _key; - - int _note; - - void _add ( void ); - - -public: - - static signal signal_create_destroy; - - Mapping mapping; - - pattern ( void ); - ~pattern ( void ); - pattern ( const pattern &rhs ); - - static int patterns ( void ); - static pattern * pattern_by_number ( int n ); - static void reset ( void ); - static pattern * import ( smf *f, int track ); - - static pattern * recording ( void ); - static void record_event ( const MIDI::midievent *e ); - - pattern * create ( void ); - pattern * by_number ( int n ) const; - - pattern * clone ( void ); - void put ( int x, int y, tick_t l ); - const char * row_name ( int r ) const; - void draw_row_names ( Canvas *c ) const; - void trigger ( tick_t start, tick_t end ); - void trigger ( void ); - void stop ( void ) const; - void play ( tick_t start, tick_t end ) const; - - void load ( smf *f ); - - void record( int mode ); - void record_stop ( void ); - - void queue ( int mode ); - int queue ( void ) const; - - void row_name_press ( int y ); - - int port ( void ) const; - void port ( int p ); - int channel ( void ) const; - void channel ( int c ); - int note ( void ) const; - void note ( int n ); - - void mode ( int n ); - int mode ( void ) const; - - int key ( void ) const; - void key ( int k ); - - int load ( const char *name ); - void save ( const char *name ) const; - void dump ( smf *f ) const; - - int ppqn ( void ) const; - void ppqn ( int n ); - - virtual tick_t default_length ( void ) const - { - return PPQN * 4 / _note; - } - -}; diff --git a/sequencer/src/phrase.C b/sequencer/src/phrase.C deleted file mode 100644 index 2d5ba68..0000000 --- a/sequencer/src/phrase.C +++ /dev/null @@ -1,274 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2007,2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "phrase.H" -#include "pattern.H" -#include "smf.H" -#include "common.h" -#include - -using namespace MIDI; - -vector phrase::_phrases; -signal phrase::signal_create_destroy; - -phrase::phrase ( void ) -{ - viewport.h = 32; - viewport.w = 32; - - _add(); - - char *s; - asprintf( &s, "Phrase %d", number() ); - - name( s ); - -} - - -phrase::~phrase ( void ) -{ - DMESSAGE( "deleting phrase %d", number() ); - signal_create_destroy(); -} - -void -phrase::_add ( void ) -{ - // keep track of all the phrases - phrase::_phrases.push_back( this ); - _number = phrases(); - - signal_create_destroy(); -} - -/* copy constructor */ -phrase::phrase ( const phrase &rhs ) : Grid( rhs ) -{ - _add(); -} - -phrase * -phrase::clone ( void ) -{ - return new phrase( *this ); -} - -/******************/ -/* Static methods */ -/******************/ - -int -phrase::phrases ( void ) -{ - return phrase::_phrases.size(); -} - -phrase * -phrase::phrase_by_number ( int n ) -{ - if ( n <= phrases() && n > 0 ) - { - return phrase::_phrases[ n - 1 ]; - } - return NULL; -} - -void -phrase::reset ( void ) -{ - for ( int n = phrase::phrases(); n-- ; ) - { - delete phrase::_phrases.back(); - phrase::_phrases.pop_back(); - } -} - - - - -/*******************/ -/* Virtual Methods */ -/*******************/ - -phrase * -phrase::create ( void ) -{ - if ( phrase::phrases() < 128 ) - { - return new phrase; - } - else - return NULL; -} - -phrase * -phrase::by_number ( int n ) const -{ - return phrase::phrase_by_number( n ); -} - -void -phrase::put ( int x, int y, tick_t l, int velocity ) -{ - // FIXME: use translation here. - pattern *p = pattern::pattern_by_number( y + 1 ); - - if ( ! p ) - return; - - l = p->length(); - - Grid::put( x, y, l ); -} - -const char * -phrase::row_name ( int r ) const -{ - pattern *p = pattern::pattern_by_number( r + 1 ); - - return p ? p->name() : NULL; -} - -void -phrase::draw_row_names ( Canvas *c ) const -{ - for ( int y = viewport.h; y--; ) - { - pattern *p = pattern::pattern_by_number( y + 1 ); - - if ( p && p->name() ) - c->draw_row_name( y, p->name(), 0 ); - } -} - - -void -phrase::trigger ( tick_t start, tick_t end ) -{ - _start = start; - _end = end; -} - -// FIXME: so much of this is copied from pattern.C, there has -// to be a way to share more of this code. -void -phrase::play ( tick_t start, tick_t end ) -{ - /* get our own copy of this pointer so UI thread can change it. */ - const data *d = const_cast< const data * >(_rd); - - if ( start > _end ) - { - _playing = false; - return; - } - - if ( start < _start ) - start = _start; - - if ( end > _end ) - end = _end; - - _playing = true; - - // where we are in the absolute time - tick_t tick = start - _start; - int num_played = tick / d->length; - tick_t offset = _start + (d->length * num_played); - - _index = fmod( tick, d->length ); - - if ( _index < end - start ) - DMESSAGE( "Triggered phrase %d at tick %lu (ls: %lu, le: %lu, o: %lu)", number(), start, _start, _end, offset ); - -try_again: - - // pattern is empty - if ( d->events.empty() ) - goto done; - - for ( const event *e = d->events.first(); e; e = e->next() ) - { - // MESSAGE( "s[%ld] -> t[%ld] : %ld, len %ld", start, end, e->timestamp(), _length ); // (*e).print(); - - const tick_t ts = e->timestamp() + offset; - - if ( ts >= end ) - goto done; - - if ( e->is_note_on() ) - { - const tick_t tse = offset + e->link()->timestamp(); - - if ( tse > start ) - { - pattern *p = pattern::pattern_by_number( 1 + note_to_y( e->note() ) ); - - p->trigger( ts, tse ); - - p->play( start, end ); - } - } - } - - // ran out of events, but there's still some loop left to play. - offset += d->length; - goto try_again; - - MESSAGE( "out of events, resetting to satisfy loop" ); - -done: ; -} - - -void -phrase::load ( smf *f ) -{ - lock(); - - f->read_phrase_info( this ); - - tick_t len; - - list *me = f->read_track_events( &len ); - - _rw->events = *me; - delete me; - - if ( len ) - _rw->length = len; - - unlock(); -} - -void -phrase::dump ( smf *f ) -{ - f->open_track( _name, -1 ); - - f->write_phrase_info( this ); - - f->cue( true ); - - Grid::dump( f, 0 ); - - f->close_track( length() ); -} diff --git a/sequencer/src/phrase.H b/sequencer/src/phrase.H deleted file mode 100644 index 24cdd03..0000000 --- a/sequencer/src/phrase.H +++ /dev/null @@ -1,63 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2007,2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include "grid.H" -#include "canvas.H" - -class pattern; - -#include -using std::vector; - -class phrase : public Grid -{ - - static vector _phrases; - - void _add ( void ); - -public: - - static signal signal_create_destroy; - - phrase ( void ); - ~phrase ( void ); - phrase ( const phrase &rhs ); - - static int phrases ( void ); - static phrase * phrase_by_number ( int n ); - static void reset ( void ); - - virtual bool velocity_sensitive ( void ) const { return false; } - - phrase *create ( void ); - phrase * by_number ( int n ) const; - - virtual void put ( int x, int y, tick_t l, int velocity = 64 ); - phrase * clone ( void ); - const char * row_name ( int r ) const; - void draw_row_names ( Canvas *c ) const; - void play ( tick_t start, tick_t end ); - void trigger ( tick_t start, tick_t end ); - - void load ( smf *f ); - void dump ( smf *f ); -}; diff --git a/sequencer/src/scale.C b/sequencer/src/scale.C deleted file mode 100644 index a14323b..0000000 --- a/sequencer/src/scale.C +++ /dev/null @@ -1,217 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "scale.H" -#include "common.h" - -#include "stdlib.h" -#include - -using namespace MIDI; - -/* Define some scales. These don't really need to be stored on - disk. Scales don't change that often. */ - -const char *Scale::chromatic_names[] = -/* { "A", */ -/* "A#/Bb", */ -/* "B", */ -/* "C", */ -/* "C#/Db", */ -/* "D", */ -/* "D#/Eb", */ -/* "E", */ -/* "F", */ -/* "F#/Gb", */ -/* "G", */ -/* "G#/Ab" }; */ - -/* { "C", */ -/* "C#/Db", */ -/* "D", */ -/* "D#/Eb", */ -/* "E", */ -/* "F", */ -/* "F#/Gb", */ -/* "G", */ -/* "G#/Ab", */ -/* "A", */ -/* "A#/Bb", */ -/* "B" }; */ - - -{ "C", - "C#", - "D", - "D#", - "E", - "F", - "F#", - "G", - "G#", - "A", - "A#", - "B" }; - - -Scale Scale::builtin_scales[] = { - { "Major", - 7, - { 0, 2, 4, 5, 7, 9, 11 } }, - { "Natural Minor", - 7, - { 0, 2, 3, 5, 7, 8, 10 } }, - { "Harmonic Minor", - 7, - { 0, 2, 3, 5, 7, 8, 11 } }, - { "Melodic Minor", - 7, - { 0, 2, 3, 5, 7, 9, 11 } }, - { "Major Pentatonic", - 5, - { 0, 2, 4, 7, 9 } }, - { "Minor Pentatonic", - 5, - { 0, 3, 5, 7, 10 } }, - { "Chromatic", - 12, - { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 } } -}; - -/* const Scale builtin_chords[] = { */ -/* { "Major Triad", */ -/* { 0, 4, 7, -1 } }, */ -/* { "Major Sixth", */ -/* { 0, 4, 7, 9, -1 } }, */ -/* { "Major Seventh", */ -/* { 0, 4, 7, 11, -1 } }, */ -/* { "Major Ninth", */ -/* { 0, 4, 7, 11, 14, -1 } }, */ -/* { "Major 6/9", */ -/* { 0, 4, 7, 9, 14, -1 } }, */ -/* { "Major Eleventh", */ -/* { 0, 4, 7, 11, 14, 17, -1 } }, */ -/* { "Major Thirteenth", */ -/* { 0, 4, 7, 11, 14, 17, 21, -1 } }, */ - -/* { "Minor Triad", */ -/* { 0, 3, 7, -1 } }, */ -/* { "Minor Sixth", */ -/* { 0, 3, 7, 9, -1 } }, */ -/* { "Minor Seventh", */ -/* { 0, 3, 7, 10, -1 } }, */ -/* { "Minor Ninth", */ -/* { 0, 3, 7, 10, 14, -1 } }, */ -/* { "Minor 6/9", */ -/* { 0, 3, 7, 9, 14, -1 } }, */ -/* { "Minor Eleventh", */ -/* { 0, 3, 7, 10, 14, 17, -1 } }, */ -/* { "Minor Thirteenth", */ -/* { 0, 3, 7, 10, 14, 17, 21, -1 } }, */ - -/* { "Augmented Triad", */ -/* { 0, 4, 8, -1 } }, */ -/* { "Diminished Triad", */ -/* { 0, 3, 6, -1 } } */ -/* }; */ - - -/* "Opens" a scale for compatibility with Instrument class */ -Scale * -Scale::open ( const char *name ) -{ - for ( int i = elementsof( builtin_scales ) - 1; i >= 0; --i ) - if ( 0 == strcmp( name, builtin_scales[i]._name ) ) - return &builtin_scales[i]; - - return NULL; -} - -/* Returns a list of available scales */ -char ** -Scale::listing ( void ) -{ - char **sa; - - int n = elementsof( builtin_scales ); - - sa = (char **)malloc( sizeof ( char * ) * ( n + 1 ) ); - sa[n] = NULL; - - while ( n-- ) - sa[n] = strdup( builtin_scales[n]._name ); - - return sa; -} - -const char * -Scale::chromatic_name ( int n ) -{ - return chromatic_names[ n % 12 ]; -} - -int -Scale::octave ( int n ) -{ - return n / 12; -} - -int -Scale::_degree ( int k, int n ) const -{ - return k + _degrees[ n % _notes ]; -} - -/* translate NOTE event. Behavior is undefined for other event types */ -bool -Scale::translate ( int k, midievent *e ) const -{ - if ( ! note_name( k, e->note() ) ) - return false; - else - return true; -} - -const char * -Scale::note_name ( int k, int n ) const -{ - /* all the magic is here */ - static char s[5]; - - const int mod_n = n % 12; - - // FIXME: searching is not efficient! - for ( int i = _notes; i-- ; ) - if ( mod_n == (_degrees[ i ] + k) % 12 ) - { - snprintf( s, sizeof(s), "%s%i", - chromatic_names[ mod_n ], - n / 12 ); - - return s; - } - - return NULL; -} - -const char * -Scale::name ( void ) const -{ - return _name; -} diff --git a/sequencer/src/scale.H b/sequencer/src/scale.H deleted file mode 100644 index 61f0ffb..0000000 --- a/sequencer/src/scale.H +++ /dev/null @@ -1,47 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once -#include - -class Scale -{ - - static const char *chromatic_names[]; - static Scale builtin_scales[]; - - int _degree ( int k, int n ) const; - -public: - const char *_name; - int _notes; - int _degrees[13]; - -public: - - static Scale * open ( const char *name ); - static char ** listing ( void ); - static const char * chromatic_name ( int n ); - static int octave ( int n ); - - bool translate ( int k, MIDI::midievent *e ) const; - int note ( int k, int n ) const; - const char * note_name ( int k, int n ) const; - const char * name ( void ) const; -}; diff --git a/sequencer/src/sequence.C b/sequencer/src/sequence.C deleted file mode 100644 index c6a0c38..0000000 --- a/sequencer/src/sequence.C +++ /dev/null @@ -1,456 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "sequence.H" -#include "phrase.H" -#include "pattern.H" -#include "smf.H" - -#include "non.H" - -#include - -/* #include */ - -/* using std::string; */ - -sequence::sequence ( void ) -{ - _rd = new data; - _name = _notes = NULL; - - _index = 0; - _playing = 0; -} - - -void -sequence::lock ( void ) -{ - // create a copy of the lock-free data. - _rw = new data; - - data *d = const_cast< data *> (_rd); - - _rw->phrases = d->phrases; - _rw->num = d->num; -} - -void -sequence::unlock ( void ) -{ - _history.push_back( const_cast( _rd ) ); - - if ( _history.size() > MAX_UNDO + 1 ) - { - data *d = _history.front(); - - if ( d == _rw || d == _rd ) - ASSERTION( "something bad has happend." ); - - delete d; - - _history.pop_front(); - } - - // swap the copy back in (atomically). - _rd = _rw; - - _rw = NULL; - - song.set_dirty(); -} - -void -sequence::insert ( unsigned int n, int pn ) -{ - lock(); - -/* if ( n > _rw->phrases.size() ) */ -/* _rw->phrases.resize( n + 10 ); */ - -// MESSAGE( "inserting %d at %d", pn, n ); - - _rw->phrases.insert( _find( n ), pn ); - _rw->num++; - - unlock(); -} - -vector ::iterator -sequence::_find ( int n ) -{ - // boy I hate C++/STL.. So lame. - int i = 0; - for ( vector ::iterator e = _rw->phrases.begin(); e != _rw->phrases.end(); e++ ) - { - if ( i == n ) - return e; - i++; - } - - return _rw->phrases.end(); -} - -void -sequence::remove ( int n ) -{ - lock(); - - _rw->phrases.erase( _find( n ) ); - _rw->num--; - - unlock(); -} - -/** return the number of phrases in this sequence */ -int -sequence::phrases ( void ) const -{ - return _rd->num; -} - -void -sequence::_swap ( int n1, int n2 ) -{ - int x = _rw->phrases[ n1 ]; - _rw->phrases[ n1 ] = _rw->phrases[ n2 ]; - _rw->phrases[ n2 ] = x; -} - -void -sequence::move ( int n, int dir ) -{ - lock(); - - switch ( dir ) - { - case UP: - { - if ( n - 1 >= 0 ) - _swap( n - 1, n ); - break; - } - case DOWN: - { - if ( n + 1 < _rw->num ) - _swap( n + 1, n ); - break; - } - - } - - unlock(); -} - -/* Render sequence to a string.. suitable for display in the UI */ -char * -sequence::dump ( void ) -{ - char *s = (char *)malloc( 256 ); - s[0] = '\0'; - size_t siz = 256; - - int start = 1; - for ( int i = 0; i < _rd->num; i++ ) - { - const int len = 256; - - char line[len]; - - int x = _rd->phrases[ i ]; - - phrase *p = phrase::phrase_by_number( x ); - - if ( ! p ) - return NULL; - - snprintf( line, len, "%d\t%d\t%s\n", start, p->number(), p->name() ); - - start += p->bars(); - - s = (char *)realloc( s, siz += strlen( line ) + 1 ); - - strcat( s, line ); - } - return s; -} - - -void -sequence::play ( tick_t start, tick_t end ) const -{ - // keep our own copy. - data *d = _rd; - - tick_t offset = 0; - for ( int i = 0; i < d->num; i++ ) - { - phrase *p = phrase::phrase_by_number( d->phrases[ i ] ); - if ( p ) - { - tick_t pstart = offset; - tick_t pend = offset + p->length(); - - // this phrase seems to be current. - if ( pend > start && pstart <= end ) - { - p->trigger( pstart, pend ); - - _playing = p->number(); - - _index = start; - - p->play( start, end ); - } - - offset = pend; - } - else - WARNING( "programming error: no such phrase." ); - } -} - -/** return the number of the currently playing phrase, or 0 if none. */ -int -sequence::playing ( void ) const -{ - return _playing; -} - -/** return the location of the playhead for this sequence */ -tick_t -sequence::index ( void ) const -{ - return _index; -} - -/** return the total length of the sequence in ticks */ -tick_t -sequence::length ( void ) const -{ - tick_t l = 0; - - for ( int i = 0; i < _rd->num; i++ ) - { - phrase *p = phrase::phrase_by_number( _rd->phrases[ i ] ); - - if ( ! p ) - break; - - l += p->length(); - } - - return l; -} - -/** return to a blank slate */ -void -sequence::reset ( void ) -{ -// MESSAGE( "reseting" ); - - lock(); - - _rw->num = 0; - - phrase::reset(); - pattern::reset(); - - unlock(); -} - -/** load entire sequence from file, replacing everything */ -bool -sequence::load ( const char *name ) -{ - smf f; - - if ( ! f.open( name, smf::READ ) ) - { - WARNING( "error opening file: %s", strerror( errno ) ); - return false; - } - - f.read_header(); - - if ( f.format() != 2 ) - { - WARNING( "not a Non song file" ); - return false; - } - - f.next_track(); - - DMESSAGE( "reading song info" ); - - /* read song info */ - int mode = PATTERN; - int phrases = 0; - int patterns = 0; - char *sname = NULL; - char *notes = NULL; - - if ( ! f.read_song_info( &mode, &phrases, &patterns, &sname, ¬es ) ) - { - WARNING( "not a Non song file" ); - return false; - } - - song.play_mode = (play_mode_e)mode; - - if ( sname ) - this->name( sname ); - - if ( notes ) - this->notes( notes ); - - /* tear it down */ - reset(); - - DMESSAGE( "reading playlist" ); - -// f.read_playlist( this ); - - lock(); - - char *s; - while ( (s = f.read_cue_point() ) ) - { - int n; - - sscanf( s, "%d:", &n ); - - _rw->phrases.insert( _find( _rw->num++ ), n ); - } - - /* read playlist */ - - DMESSAGE( "reading phrases" ); - - while ( phrases-- && f.next_track() ) - { - phrase *p = new phrase; - - p->load( &f ); - } - - DMESSAGE( "reading patterns" ); - - while ( patterns-- && f.next_track() ) - { - pattern *p = new pattern; - - p->load( &f ); - } - - unlock(); - - signal_new_song(); - - return true; -} - -/** save entire sequence to file */ -void -sequence::save ( const char *name ) const -{ - smf f; - - /* open for writing */ - f.open( name, smf::WRITE ); - - f.write_header( 2 ); - - DMESSAGE( "saving playlist" ); - - f.open_track( NULL, -1 ); - - DMESSAGE( "saving song info" ); - - f.write_song_info( song.play_mode, phrase::phrases(), pattern::patterns(), this->name(), notes() ); - - for ( int i = 0; i < _rd->num; ++i ) - { - char pat[256]; - - phrase *p = phrase::phrase_by_number( _rd->phrases[ i ] ); - - snprintf( pat, 256, "%d: %s", p->number(), p->name() ); - - f.write_meta_event( smf::CUEPOINT, pat ); - } - - f.close_track( 0 ); - - DMESSAGE( "saving phrases" ); - - for ( int i = 0; i < phrase::phrases(); i++ ) - { - phrase *p = phrase::phrase_by_number( i + 1 ); - - p->dump( &f ); - } - - DMESSAGE( "saving patterns" ); - - for ( int i = 0; i < pattern::patterns(); i++ ) - { - pattern *p = pattern::pattern_by_number( i + 1 ); - - p->dump( &f ); - } -} - - -/*************/ -/* Accessors */ -/*************/ - -char * -sequence::name ( void ) const -{ - return _name; -} - -void -sequence::name ( const char *s ) -{ - if ( _name ) free( _name ); - - _name = strdup( s ); - - song.set_dirty(); -} - -char * -sequence::notes ( void ) const -{ - return _notes; -} - -void -sequence::notes ( const char *s ) -{ - if ( _notes ) free( _notes ); - - _notes = strdup( s ); - - song.set_dirty(); -} diff --git a/sequencer/src/sequence.H b/sequencer/src/sequence.H deleted file mode 100644 index 321abd4..0000000 --- a/sequencer/src/sequence.H +++ /dev/null @@ -1,85 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include -#include - -#include - -#include "common.h" - -using std::vector; -using std::list; -using namespace sigc; - -class sequence : public trackable { - - struct data { - vector phrases; - int num; - - data() { num = 0; } - }; - - list _history; - - data *_rd; - data *_rw; - - char * _name; - char * _notes; - - mutable volatile int _playing; - mutable volatile tick_t _index; - - void lock ( void ); - void unlock ( void ); - - vector ::iterator _find ( int n ); - - void _swap ( int n1, int n2 ); - -public: - - signal signal_new_song; - - sequence( void ); - - void reset ( void ); - - void insert ( unsigned int n, int pn ); - void remove ( int n ); - void move ( int n, int dir ); - int phrases ( void ) const; - char * dump ( void ); - bool load ( const char *name ); - void save ( const char *name ) const; - void play ( tick_t start, tick_t end ) const; - int playing ( void ) const; - tick_t index ( void ) const; - tick_t length ( void ) const; - - char * name ( void ) const; - void name ( const char *s ); - char * notes ( void ) const; - void notes ( const char *s ); - -}; diff --git a/sequencer/src/smf.C b/sequencer/src/smf.C deleted file mode 100644 index 4ae2fb3..0000000 --- a/sequencer/src/smf.C +++ /dev/null @@ -1,1162 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "smf.H" -#include "phrase.H" -#include "pattern.H" - -using namespace MIDI; - -smf::smf ( void ) -{ - _name = NULL; - _pos = 0; - - _fp = NULL; - - _length = 0; - _length_pos = 0; - _num_tracks_pos = 0; - _tracks = 0; - _time = 0; - _tally = 0; - _cue = 0; - _track = 0; -} - -smf::~smf ( void ) -{ - /* fill in the number of tracks */ - if ( _num_tracks_pos ) - { - fseek( _fp, _num_tracks_pos, SEEK_SET ); - write_short( _tracks ); - } - - if ( _fp ) - fclose( _fp ); - - if ( _name ) - free( _name ); -} - -int -smf::open ( const char *name, int mode ) -{ - _name = strdup( name ); - - _mode = mode; - - _fp = fopen( _name, mode == smf::WRITE ? "w" : "r" ); - - return _fp != NULL; -} - -/*************************/ -/* Private bit twiddlers */ -/*************************/ - -unsigned long -smf::read_long ( void ) -{ - byte_t buf[4]; - unsigned long ret = 0; - - read_bytes( buf, 4 ); - - ret += *(buf + 0) << 24; - ret += *(buf + 1) << 16; - ret += *(buf + 2) << 8; - ret += *(buf + 3); - - return ret; -} - -unsigned short -smf::read_short ( void ) -{ - byte_t buf[2]; - unsigned short ret = 0; - - read_bytes( buf, 2 ); - - ret += *(buf + 0) << 8; - ret += *(buf + 1); - - return ret; -} - -unsigned long -smf::read_var ( void ) -{ - unsigned long ret = 0; - unsigned char c; - - /* while bit #7 is set */ - while ( ( ( c = read_byte() ) & 0x80 ) != 0x00 ) - { - - /* shift ret 7 bits */ - ret <<= 7; - /* add bits 0-6 */ - ret += c & 0x7F; - } - - /* bit was clear */ - ret <<= 7; - ret += c & 0x7F; - - return ret; -} - -void -smf::read_bytes ( void *p, int l ) -{ - fread( p, l, 1, _fp ); - - _pos += l; -} - -byte_t -smf::read_byte ( void ) -{ - byte_t b; - read_bytes( &b, 1 ); - - return b; -} - -void -smf::write_var ( long var ) -{ - long buffer; - buffer = var & 0x7F; - - /* we shift it right 7, if there is - still set bits, encode into buffer - in reverse order */ - while ( ( var >>= 7) ) - { - buffer <<= 8; - buffer |= ( var & 0x7F ) | 0x80; - } - - for ( ;; ) - { - write_byte( buffer ); - - if ( buffer & 0x80 ) - buffer >>= 8; - else - break; - } -} - - -void -smf::write_long ( unsigned long x ) -{ - byte_t buf[4]; - - buf[0] = ( x & 0xFF000000 ) >> 24; - buf[1] = ( x & 0x00FF0000 ) >> 16; - buf[2] = ( x & 0x0000FF00 ) >> 8; - buf[3] = x & 0x000000FF; - - write_bytes( buf, 4 ); -} - -void -smf::write_ascii ( const char *buf ) -{ - if ( strlen( buf ) != 4 ) - ASSERTION( "invalid MIDI value" ); - - write_bytes( (void *)buf, 4 ); -} - -void -smf::write_short ( unsigned short x ) -{ - byte_t buf[2]; - - buf[0] = (x & 0xFF00 ) >> 8; - buf[1] = x & 0x00FF; - - write_bytes( buf, 2 ); -} - -void -smf::write_byte ( byte_t b ) -{ - write_bytes( &b, 1 ); -} - - -void -smf::write_bytes ( const void *p, size_t l ) -{ - fwrite( p, l, 1, _fp ); - _tally += l; -} - - - -/*************************/ -/* Read and write tracks */ -/*************************/ - -/* write event /e/ to the currently open file (should only be used in a track) - if /cue/ is true, transform a notes-on/off into cue messages */ -void -smf::write_event ( const midievent *e ) -{ - tick_t ts = e->timestamp(); - tick_t delta = ts - _time; - _time = ts; - - write_var( delta ); - - if ( _cue && (e->is_note_off() || e->is_note_on() ) ) - { - /* begin cue message */ - write_byte( 0xF0 ); /* sysex */ - - write_var( 7 ); /* length of this message */ - - static byte_t data[] = { 0x7F, /* MTC */ - 0, /* id */ - 0x05 }; /* cue message */ - - write_bytes( data, sizeof( data ) ); - - write_byte( e->opcode() == event::NOTE_ON ? 0x05 : 0x06 ); - write_short( e->note() ); - - /* terminate */ - write_byte( 0xF7 ); - - _status = 0; - } - else - { - byte_t buf[4]; - - int l = e->size(); - - midievent me = *e; - - if ( me.opcode() == event::NOTE_OFF ) - { - me.opcode( event::NOTE_ON ); - me.note_velocity( 0 ); - } - - me.raw( buf, l ); - - /* write with running status */ - if ( buf[0] != _status ) - { - write_bytes( buf, l ); - _status = buf[0]; - } - else - write_bytes( buf + 1, l - 1 ); - - } -} - -void -smf::write_header ( int fmt ) -{ - write_ascii( "MThd" ); - write_long( 6 ); /* Always 6 bytes of header */ - - _format = fmt; - - write_short( fmt ); /* format, SMF-0 for 1 track SMF-2 for more */ - - _num_tracks_pos = ftell( _fp ); - _tracks = 0; - - write_short( 0xDEAF ); - - write_short( PPQN ); -} - -/* start a new MIDI 'chunk', /id/ is 4 letters of ASCII */ -void -smf::open_chunk ( const char *id ) -{ - if ( _length_pos ) - ASSERTION( "chunks cannot be nested!" ); - - write_ascii( id ); - - /* reset track length counter */ - _length_pos = ftell( _fp ); - - write_long( 0xBEEFCAFE ); /* length, this has to be filled in at track end! */ - - _tally = 0; - _time = 0; -} - -void -smf::close_chunk ( void ) -{ - /* fill in track length */ - long here = ftell( _fp ); - - fseek( _fp, _length_pos, SEEK_SET ); - - write_long( _tally ); - - fseek( _fp, here, SEEK_SET ); - - /* cleanup */ - _length_pos = 0; - _tally = 0; -} - -void -smf::open_track ( const char *name, int num ) -{ - open_chunk( "MTrk" ); - - if ( _format == 2 && num >= 0 ) - write_meta_event ( smf::SEQUENCE, num ); - - if ( name ) - write_meta_event ( smf::NAME, name ); - - ++_tracks; - - _status = 0; - - // FIXME: write time signature here -} - -void -smf::close_track ( tick_t length ) -{ - /* end */ - write_meta_event( smf::END, length ? length - _time : 0 ); - - _cue = 0; - - close_chunk(); -} - -void -smf::write_meta_event ( byte_t type, int n ) -{ - write_var( type == smf::END ? n : 0 ); /* delta time */ - write_short( 0xFF00 + type ); - - /* write length bytes */ - switch ( type ) - { - case smf::TEMPO: - write_byte( 3 ); -// FIXME: - break; - case smf::SEQUENCE: - write_byte( 2 ); - write_short( n ); - break; - case smf::CHANNEL: - case smf::PORT: - write_byte( 1 ); - write_byte( n ); - break; - case smf::END: - write_byte( 0x00 ); - break; - case smf::PROPRIETARY: - // length - write_var( n ); - break; -// FIXME: handle time sig, key sig, proprietary - } - - _status = 0; -} - -void -smf::write_meta_event ( byte_t type, const char *s ) -{ - write_var( 0 ); - write_short( 0xFF00 + type ); - - switch ( type ) - { - case smf::TEXT: - case smf::NAME: - case smf::INSTRUMENT: - case smf::COPYRIGHT: - case smf::LYRIC: - case smf::MARKER: - case smf::CUEPOINT: - { - int l = strlen( s ); - - write_var( l ); - - write_bytes( s, l ); - - break; - } - default: - ASSERTION( "event type does not take text!" ); - break; - } -} - -/** write song gloabl info (only used on playlist track) */ -void -smf::write_song_info ( int mode, int phrases, int patterns, const char *name, const char *notes ) -{ - write_meta_event( smf::PROPRIETARY, 5 + (4 * 2) /* length */ ); - - write_ascii( "Non!" ); - - write_byte( mode ); - write_long( phrases ); - write_long( patterns ); - - if ( name ) - write_meta_event( smf::NAME, name ); - - write_meta_event( smf::TEXT, ":: Created by the Non-Seqeuncer" ); - - if ( notes ) - write_meta_event( smf::TEXT, notes ); -} - -void -smf::write_phrase_info ( const phrase *p ) -{ - if ( p->notes() ) - write_meta_event( smf::TEXT, p->notes() ); - - char *s = p->viewport.dump(); - - char pat[156]; - snprintf( pat, sizeof( pat ), "Non: xywh=%s", - s ); - - free( s ); - - write_meta_event( smf::PROPRIETARY, strlen( pat ) ); - write_bytes( pat, strlen( pat ) ); -} - -/** write proprietary pattern info meta event */ -void -smf::write_pattern_info ( const pattern *p ) -{ - write_meta_event( smf::PORT, p->port() ); - - char pat[256]; - - snprintf( pat, sizeof( pat ), "%s: %s", p->mapping.type(), p->mapping.name() ); - - write_meta_event( smf::INSTRUMENT, pat ); - - if ( p->notes() ) - write_meta_event( smf::TEXT, p->notes() ); - - char *s = p->viewport.dump(); - - snprintf( pat, sizeof( pat ), "Non: xywh=%s, ppqn=%d, key=%d, note=%d, mode=%d", - s, p->ppqn(), p->mapping.key(), p->note(), p->mode() ); - - free( s ); - - write_meta_event( smf::PROPRIETARY, strlen( pat ) ); - write_bytes( pat, strlen( pat ) ); -} - -/* turn on note->cue translation for this track */ -void -smf::cue ( bool b ) -{ - _cue = b; -} - - -/**********/ -/* Reader */ -/**********/ - -char * -smf::read_text ( void ) -{ - int l = read_var(); - - char *s = (char*) malloc( l + 1 ); - - read_bytes( s, l ); - - s[l] = '\0'; - - return s; -} - - -int -smf::read_header ( void ) -{ - char id[4]; - read_bytes( id, 4 ); - - if ( strncmp( id, "MThd", 4 ) ) - return 0; - - if ( read_long() != 6 ) - return 0; - - _format = read_short(); - _tracks = read_short(); - _ppqn = read_short(); - - _pos = 0; - - return 1; -} - -void -smf::home ( void ) -{ - fseek( _fp, 14, SEEK_SET ); - - _track = 0; - _pos = 0; - _length = 0; -} - -void -smf::skip ( size_t l ) -{ - fseek( _fp, l, SEEK_CUR ); - _pos += l; -} - -void -smf::backup ( size_t l ) -{ - skip( 0 - l ); -} - -char * -smf::read_track_name ( void ) -{ - int status; - long where = 0; - int num = 0; - - for ( num = 0; ; ++num ) - { - where = _pos; - - read_var(); /* delta */ - status = read_byte(); - - /* stop at first non meta-event */ - if ( status != midievent::META ) - break; - - int opcode = read_byte(); - - switch ( opcode ) - { - case smf::NAME: - return read_text(); - case smf::TEXT: - return read_text(); - default: - skip( read_var() ); - } - } - - backup( _pos - where ); - - return NULL; -} - -/** read next Cue Point event on track */ -char * -smf::read_cue_point ( void ) -{ - read_var(); /* delta */ - - int status = read_byte(); - - if ( status != midievent::META ) - return NULL; - - int opcode = read_byte(); - - if ( opcode != smf::CUEPOINT ) - return NULL; - - return read_text(); -} - -bool -smf::read_song_info ( int * mode, int * phrases, int *patterns, char **name, char **notes ) -{ - int status; - long where = 0; - int num = 0; - bool r = false; - *notes = NULL; - - for ( num = 0; ; ++num ) - { - where = _pos; - - read_var(); /* delta */ - status = read_byte(); - - /* stop at first non meta-event */ - if ( status != midievent::META ) - break; - - int opcode = read_byte(); - - switch ( opcode ) - { - case smf::PROPRIETARY: - { - int len = read_var(); - - if ( len < 5 + (2 * 4) ) - return false; - - char id[4]; - read_bytes( id, 4 ); - - if ( strncmp( id, "Non!", 4 ) ) - return false; - - *mode = read_byte(); - *phrases = read_long(); - *patterns = read_long(); - - r = true; - - break; - } - case smf::TEXT: - { - char *text = read_text(); - - if ( ! strncmp( text, "::", 2 ) ) - free( text ); - else - *notes = text; - - break; - } - case smf::NAME: - *name = read_text(); - break; - case smf::END: - goto done; - default: - goto semidone; - } - } - -semidone: - - backup( _pos - where ); - -done: - - return r; -} - -bool -smf::read_phrase_info ( phrase *p ) -{ - int status; - long where = 0; - int num = 0; - - for ( num = 0; ; ++num ) - { - where = _pos; - - read_var(); /* delta */ - status = read_byte(); - - /* stop at first non meta-event */ - if ( status != midievent::META ) - break; - - int opcode = read_byte(); - - switch ( opcode ) - { - case smf::SEQUENCE: - /* currently, this is ignored */ - read_var(); - read_short(); - break; - case smf::NAME: - p->name( read_text() ); - DMESSAGE( "Track name: %s", p->name() ); - break; - case smf::INSTRUMENT: - skip( read_var() ); - break; - case smf::TEXT: - p->notes( read_text() ); - break; - case smf::PROPRIETARY: - { - int l = read_var(); - - char *data = (char *) alloca( l ) + 1; - - read_bytes( data, l ); - - data[l] = '\0'; - - char *s; - - if ( 1 != sscanf( data, "Non: xywh=%m[0-9:]", - &s ) ) - WARNING( "Invalid phrase info event" ); - else - { - p->viewport.read( s ); - free( s ); - } - break; - } - case smf::END: - /* Track ends before any non meta-events... */ - read_byte(); - goto done; - default: - int l = read_var(); - skip( l ); - WARNING( "skipping unrecognized meta event %02X", opcode ); - break; - } - } - - backup( _pos - where ); - -done: - - return num ? p : NULL; -} - -/** inform pattern /p/ from meta-events at the beginning of the - current track */ -bool -smf::read_pattern_info ( pattern *p ) -{ - int status; - long where = 0; - int num = 0; - - bool name_set = false; - - for ( num = 0; ; ++num ) - { - where = _pos; - - read_var(); /* delta */ - status = read_byte(); - - /* stop at first non meta-event */ - if ( status != midievent::META ) - break; - - int opcode = read_byte(); - - switch ( opcode ) - { - case smf::SEQUENCE: - /* currently, this is ignored */ - read_var(); - read_short(); - break; - case smf::NAME: - p->name( read_text() ); - DMESSAGE( "Track name: %s", p->name() ); - name_set = true; - break; - case smf::INSTRUMENT: - { - char *s = read_text(); - - char pat[256]; - - if ( 1 == sscanf( s, "Instrument: %[^\n]", pat ) ) - { - if ( ! p->mapping.open( Mapping::INSTRUMENT, pat ) ) - { - p->mapping.open( Mapping::SCALE, "Chromatic" ); - WARNING( "could not find instrument \"%s\"", pat ); - } - } - else - if ( 1 == sscanf( s, "Scale: %[^\n]", pat ) ) - { - if ( ! p->mapping.open( Mapping::SCALE, pat ) ) - { - p->mapping.open( Mapping::SCALE, "Chromatic" ); - WARNING( "could not find scale \"%s\"", pat ); - } - } - break; - } - case smf::PORT: - read_byte(); - p->port( read_byte() ); - break; - case smf::TEXT: - if ( ! name_set ) - { - /* also accept TEXT event as name if no name was - provided--this is found in a number of older MIDI - files. */ - p->name( read_text() ); - name_set = true; - } - else - p->notes( read_text() ); - break; - case smf::PROPRIETARY: - { - int l = read_var(); - - char *data = (char *) alloca( l ) + 1; - - read_bytes( data, l ); - - data[l] = '\0'; - - int ppqn, key, note, mode; - char *s; - - if ( 5 != sscanf( data, "Non: xywh=%m[0-9:], ppqn=%d, key=%d, note=%d, mode=%d", - &s, &ppqn, &key, ¬e, &mode ) ) - WARNING( "Invalid pattern info event" ); - else - { - p->viewport.read( s ); - free( s ); - - p->ppqn( ppqn ); - - if ( key > 0 ) - p->mapping.key( key ); - - p->note( note ); - p->mode( mode ); - } - break; - } - case smf::END: - /* Track ends before any non meta-events... */ - read_byte(); - goto done; - default: - int l = read_var(); - skip( l ); - WARNING( "skipping unrecognized meta event %02X", opcode ); - break; - } - } - - backup( _pos - where ); - -done: - - return num ? p : NULL; -} - -int -smf::next_track ( void ) -{ - /* first, skip to the end of the track we're on, if any */ - if ( _length ) - skip( _length - _pos ); - - while ( ! feof( _fp ) && _track < _tracks ) - { - char id[4]; - read_bytes( id, 4 ); - _length = read_long(); - - if ( strncmp( id, "MTrk", 4 ) ) - { - WARNING( "skipping unrecognized chunk \"%s\"", id ); - /* not a track chunk */ - skip( _length ); - continue; - } - - _pos = 0; - ++_track; - return 1; - } - - return _length = _pos = 0; -} - - -/** locate track number /n/ */ -bool -smf::seek_track ( int n ) -{ - home(); - - if ( n >= _tracks ) - return false; - - for ( int i = 0; next_track(); ++i ) - if ( i == n ) - break; - - return true; -} - -char ** -smf::track_listing ( void ) -{ - if ( _pos != 0 ) - ASSERTION( "attempt to get track listing while in the middle of reading a track." ); - - char **sa = (char**)malloc( sizeof( char* ) * (_tracks + 1) ); - int i; - - long where = ftell( _fp ); - - for ( i = 0; next_track(); ++i ) - { - sa[i] = read_track_name(); - sa[i] = sa[i] ? sa[i] : strdup( "" ); - } - - sa[i] = NULL; - - /* go back to where we started */ - fseek( _fp, where, SEEK_SET ); - _pos = 0; - - return sa; -} - -/* print track list for file /name/ */ -void -smf::print_track_listing ( const char *name ) -{ - smf f; - - f.open( name, smf::READ ); - - f.read_header(); - - char **sa = f.track_listing(); - - char *s; - for ( int i = 0; (s = sa[i]); ++i ) - printf( "Track %3d: \"%s\"\n", i, s ); -} - -/** read all remaining events in current track and return them in a list */ -list * -smf::read_track_events ( tick_t *length ) -{ - list *events = new list ; - event e; - - *length = 0; - - byte_t oldstatus = -1; - tick_t time = 0; - tick_t tick = 0; - tick_t delta; - - while ( _pos < _length ) - { - byte_t data[3]; - - delta = read_var(); - - int status = read_byte(); - - if ( ! (status & 0x80) ) - { - backup( 1 ); - status = oldstatus; - } - else - oldstatus = status; - - time += delta; - tick = (time * PPQN) / _ppqn; - - e.timestamp( tick ); - - int opcode = status & 0xF0; - -// e.status( opcode ); - e.status( status ); - - switch ( opcode ) - { - case event::NOTE_OFF: - case event::NOTE_ON: - case event::AFTERTOUCH: - case event::CONTROL_CHANGE: - case event::PITCH_WHEEL: - - read_bytes( data, 2 ); - - /* handle note off, vel 0 */ - if ( opcode == event::NOTE_ON && 0 == data[1] ) - { - e.opcode( event::NOTE_OFF ); - data[1] = 127; - } - - e.data( data[0], data[1] ); - - events->push_back( e ); - - /* TODO: set MIDI channel here */ - break; - case event::PROGRAM_CHANGE: - case event::CHANNEL_PRESSURE: - - data[0] = read_byte(); - - e.lsb( data[0] ); - - events->push_back( e ); - break; - case 0xF0: - /* TODO: hanlde proprietary events? */ - if ( midievent::META != status ) - { - if ( 0xF0 == status ) - { - /* looks like a sysex */ - int l = read_var(); - - if ( l < 4 ) - ASSERTION( "unrecognized message" ); - - byte_t *data = (byte_t *) alloca( 4 ); - - read_bytes( data, 4 ); - - l -= 4; - - if ( data[0] == 0x7F && - data[2] == 0x05 ) - { - /* looks like a cue message! */ - - switch ( data[3] ) - { - case 0x05: - /* start */ - e.status( event::NOTE_ON ); - e.note( read_short() ); - events->push_back( e ); - l -= 2; - break; - case 0x06: - /* stop */ - e.status( event::NOTE_OFF ); - e.note( read_short() ); - events->push_back( e ); - l -= 2; - break; - default: - ASSERTION( "unrecognized cue message" ); - break; - } - } - - DMESSAGE( "converting MIDI cue to note-on/off n: %d", e.note() ); - - /* just in case */ - skip( l ); - } - else - { - WARNING( "unrecognized opcode %02X", status ); - // FIXME: what now? - } - break; - } - - opcode = read_byte(); - - switch ( opcode ) - { - case smf::END: /* track end */ - /* track extends until this event */ - *length = tick; - - if ( read_byte() ) - WARNING( "corrupt MIDI file in track end" ); - goto done; - break; - default: - WARNING( "unhandled meta-event %02X", opcode ); - skip( read_var() ); - break; - } - } - } - -done: - - return events; -} - - -/**************************/ -/* accessors (for reader) */ -/**************************/ - -int -smf::format ( void ) const -{ - return _format; -} - -int -smf::tracks ( void ) const -{ - return _tracks; -} diff --git a/sequencer/src/smf.H b/sequencer/src/smf.H deleted file mode 100644 index ad96db9..0000000 --- a/sequencer/src/smf.H +++ /dev/null @@ -1,143 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include "grid.H" - -class pattern; -class phrase; - -#include - -class smf -{ - - char * _name; - - int _format; /* 0, 1, 2 */ - - FILE *_fp; - - /* reader */ - long _length; /* length of the current chunk */ - long _pos; /* number of bytes read from chunk */ - int _ppqn; /* PPQN of imported files */ - - /* writer */ - unsigned int _tally; /* number of bytes written thus far */ - long _num_tracks_pos; /* where to write the number of tracks when known */ - long _length_pos; /* where to write the chunk length when known */ - int _cue; /* transform note ons to cue events for this track */ - - int _tracks; /* number of tracks */ - int _track; /* current track */ - tick_t _time; /* current timestamp in writer */ - - int _mode; - - byte_t _status; - -public: - - enum { WRITE, READ }; - - unsigned long read_long ( void ); - unsigned short read_short ( void ); - unsigned long read_var ( void ); - void read_bytes ( void *p, int l ); - byte_t read_byte ( void ); - - void write_var ( long var ); - void write_long ( unsigned long x ); - void write_ascii ( const char *buf ); - void write_short ( unsigned short x ); - void write_byte ( byte_t b ); - void write_bytes ( const void *p, size_t l ); - -/* Meta Event codes */ - enum { - SEQUENCE = 0x00, - TEXT = 0x01, - COPYRIGHT = 0x02, - NAME = 0x03, - INSTRUMENT = 0x04, - LYRIC = 0x05, - MARKER = 0x06, - CUEPOINT = 0x07, - PROGRAM = 0x08, - DEVICE = 0x09, - CHANNEL = 0x20, - PORT = 0x21, - END = 0x2F, - TEMPO = 0x51, - SMPTE = 0x54, - TIMESIG = 0x58, - KEYSIG = 0x59, - PROPRIETARY = 0x7F - }; - - smf( void ); - ~smf( void ); - - int open ( const char *name, int mode ); - - static void print_track_listing ( const char *name ); - - void write_meta_event ( byte_t type, int n ); - void write_meta_event ( byte_t type, const char *s ); - - void write_event ( const MIDI::midievent *e ); - void write_header ( int tracks ); - - void open_chunk ( const char *id ); - void close_chunk ( void ); - void open_track ( const char *name, int num ); - void close_track ( tick_t length ); - - void write_pattern_info ( const pattern *p ); - - void cue ( bool b ); - - list * read_track_events ( tick_t *length ); - - void write_phrase_info ( const phrase *p ); - - bool read_song_info( int *mode, int *phrases, int *patterns, char **name, char **notes ); - void write_song_info( int mode, int phrases, int patterns, const char *name, const char *notes ); - - void home ( void ); - void skip ( size_t l ); - void backup ( size_t l ); - - int next_track ( void ); - bool seek_track ( int n ); - char ** track_listing ( void ); - - char * read_cue_point ( void ); - int read_header ( void ); - char * read_text ( void ); - char * read_track_name ( void ); - bool read_phrase_info ( phrase *p ); - bool read_pattern_info ( pattern *p ); - - int format ( void ) const; - int tracks ( void ) const; - -}; diff --git a/sequencer/src/transport.C b/sequencer/src/transport.C deleted file mode 100644 index e00ab67..0000000 --- a/sequencer/src/transport.C +++ /dev/null @@ -1,220 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include - -#include -#include -#include - -#include "transport.H" -#include "common.h" -#include "const.h" - -extern jack_client_t *client; - -/* FIXME: use JackSyncCallback instead? (sync-callback) */ - -Transport transport; - -static volatile bool _done; - -/** callback for when we're Timebase Master, mostly taken from - * transport.c in Jack's example clients. */ -/* FIXME: there is a subtle interaction here between the tempo and - * JACK's buffer size. Inflating ticks_per_beat (as jack_transport - * does) diminishes the effect of this correlation, but does not - * eliminate it... This is caused by the accumulation of a precision - * error, and all timebase master routines I've examined appear to - * suffer from this same tempo distortion (and all use the magic - * number of 1920 ticks_per_beat in an attempt to reduce the magnitude - * of the error. Currently, we keep this behaviour. */ -void -Transport::timebase ( jack_transport_state_t, jack_nframes_t nframes, jack_position_t *pos, int new_pos, void * ) -{ - - if ( new_pos || ! _done ) - { - pos->valid = JackPositionBBT; - pos->beats_per_bar = transport._master_beats_per_bar; - pos->ticks_per_beat = 1920.0; /* magic number means what? */ - pos->beat_type = transport._master_beat_type; - pos->beats_per_minute = transport._master_beats_per_minute; - - double wallclock = (double)pos->frame / (pos->frame_rate * 60); - - unsigned long abs_tick = wallclock * pos->beats_per_minute * pos->ticks_per_beat; - unsigned long abs_beat = abs_tick / pos->ticks_per_beat; - - pos->bar = abs_beat / pos->beats_per_bar; - pos->beat = abs_beat - (pos->bar * pos->beats_per_bar) + 1; - pos->tick = abs_tick - (abs_beat * pos->ticks_per_beat); - pos->bar_start_tick = pos->bar * pos->beats_per_bar * pos->ticks_per_beat; - pos->bar++; - - _done = true; - } - else - { - pos->tick += nframes * pos->ticks_per_beat * pos->beats_per_minute / (pos->frame_rate * 60); - - while ( pos->tick >= pos->ticks_per_beat ) - { - pos->tick -= pos->ticks_per_beat; - - if ( ++pos->beat > pos->beats_per_bar ) - { - pos->beat = 1; - - ++pos->bar; - - pos->bar_start_tick += pos->beats_per_bar * pos->ticks_per_beat; - } - } - } -} - - -Transport::Transport ( void ) -{ - _master_beats_per_bar = 4; - _master_beat_type = 4; - _master_beats_per_minute = 120; - _done = false; -} - -void -Transport::poll ( void ) -{ - jack_transport_state_t ts; - jack_position_t pos; - - ts = jack_transport_query( client, &pos ); - - rolling = ts == JackTransportRolling; - - valid = pos.valid & JackPositionBBT; - - bar = pos.bar; - beat = pos.beat; - tick = pos.tick; - - /* bars and beats start at 1.. */ - pos.bar--; - pos.beat--; - - /* FIXME: these probably shouldn't be called from the RT - thread... Anyway, it happens infrequently. */ - if ( pos.beats_per_minute != beats_per_minute ) - signal_tempo_change( pos.beats_per_minute ); - - if ( pos.beats_per_bar != beats_per_bar ) - signal_bpb_change( pos.beats_per_bar ); - - if ( pos.beat_type != beat_type ) - signal_beat_change( pos.beat_type ); - - ticks_per_beat = pos.ticks_per_beat; - beats_per_bar = pos.beats_per_bar; - beat_type = pos.beat_type; - beats_per_minute = pos.beats_per_minute; - - frame = pos.frame; - frame_rate = pos.frame_rate; - - /* FIXME: this only needs to be calculated if bpm or framerate changes */ - { - const double frames_per_beat = frame_rate * 60 / beats_per_minute; - - frames_per_tick = frames_per_beat / (double)PPQN; - ticks_per_period = nframes / frames_per_tick; - } - - tick_t abs_tick = (pos.bar * pos.beats_per_bar + pos.beat) * pos.ticks_per_beat + pos.tick; -// tick_t abs_tick = pos.bar_start_tick + (pos.beat * pos.ticks_per_beat) + pos.tick; - - /* scale Jack's ticks to our ticks */ - - const double pulses_per_tick = PPQN / pos.ticks_per_beat; - - ticks = abs_tick * pulses_per_tick; - tick = tick * pulses_per_tick; - - ticks_per_beat = PPQN; -} - -void -Transport::start ( void ) -{ - MESSAGE( "Starting transport" ); - jack_transport_start( client ); -} - -void -Transport::stop ( void ) -{ - MESSAGE( "Stopping transport" ); - jack_transport_stop( client ); -} - -void -Transport::toggle ( void ) -{ - if ( rolling ) - stop(); - else - start(); -} - -void -Transport::locate ( tick_t ticks ) -{ - jack_nframes_t frame = trunc( ticks * transport.frames_per_tick ); - - MESSAGE( "Relocating transport to %f, %lu", ticks, frame ); - - jack_transport_locate( client, frame ); -} - -void -Transport::set_beats_per_minute ( double n ) -{ - _master_beats_per_minute = n; - _done = false; -} - -void -Transport::set_beats_per_bar ( int n ) -{ - if ( n < 2 ) - return; - - _master_beats_per_bar = n; - _done = false; -} - -void -Transport::set_beat_type ( int n ) -{ - if ( n < 4 ) - return; - - _master_beat_type = n; - _done = false; -} diff --git a/sequencer/src/transport.H b/sequencer/src/transport.H deleted file mode 100644 index 68d7584..0000000 --- a/sequencer/src/transport.H +++ /dev/null @@ -1,84 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include - -using namespace sigc; - -#include // just for tick_t - -#include - -typedef double playhead_t; - -class Transport : public trackable { - - double _master_beats_per_minute; - unsigned _master_beats_per_bar; - unsigned _master_beat_type; - -public: - - signal signal_tempo_change; - signal signal_bpb_change; - signal signal_beat_change; - - bool master; /* are we driving the transport? */ - bool rolling; - bool valid; - volatile bool recording; - - unsigned long bar; - unsigned beat; - unsigned tick; - - playhead_t ticks; - - unsigned beats_per_bar; - unsigned beat_type; - double ticks_per_beat; - double beats_per_minute; - - double ticks_per_period; - double frames_per_tick; - - double frame_rate; - - double frame; - double nframes; - - Transport ( void ); - - void poll ( void ); - void start ( void ); - void stop ( void ); - void toggle ( void ); - void locate ( tick_t ticks ); - - void set_beats_per_minute ( double n ); - void set_beats_per_bar ( int n ); - void set_beat_type ( int n ); - - static void timebase ( jack_transport_state_t state, jack_nframes_t nframes, jack_position_t *pos, int new_pos, void *arg ); - -}; - -extern Transport transport; diff --git a/sequencer/wscript b/sequencer/wscript deleted file mode 100644 index 0b7a28d..0000000 --- a/sequencer/wscript +++ /dev/null @@ -1,85 +0,0 @@ -#!/usr/bin/env python -import subprocess -import waflib.Options as Options -import string -import os - -# Version of this package (even if built as a child) -PACKAGE_VERSION = '1.9.5' - -# Variables for 'waf dist' -APPNAME = 'non-sequencer' -VERSION = PACKAGE_VERSION - -# Mandatory variables -top = '.' -out = 'build' - -def options(opt): - opt.load('compiler_c') - opt.load('compiler_cxx') - opt.load('gnu_dirs') - -def configure(conf): - conf.load('compiler_c') - conf.load('compiler_cxx') - conf.load('gnu_dirs') - - conf.check_cfg(package='sigc++-2.0', uselib_store='SIGCPP', - atleast_version='2.0.0', args="--cflags --libs", mandatory=True) - - conf.define('VERSION', PACKAGE_VERSION) - conf.define('SYSTEM_PATH', '/'.join( [ conf.env.DATADIR, APPNAME ] ) ) - conf.define('DOCUMENT_PATH', '/'.join( [ conf.env.DATADIR, 'doc' ] ) ) - conf.define('PIXMAP_PATH', '/'.join( [ conf.env.DATADIR, 'pixmaps' ] ) ) - - conf.write_config_header('config.h', remove=False) - - print('') - -def build(bld): - - libs = '' - - bld.program( source = ''' -src/NSM.C -src/NSM/Client.C -src/canvas.C -src/debug.C -src/grid.C -src/gui/event_edit.fl -src/gui/ui.fl -src/instrument.C -src/jack.C -src/main.C -src/mapping.C -src/pattern.C -src/phrase.C -src/scale.C -src/sequence.C -src/smf.C -src/transport.C -''', - target = 'non-sequencer', - includes = ['.', 'src', 'src/gui', '../FL', '../nonlib'], - use = ['nonlib', 'fl_widgets'], - uselib = [ 'JACK', 'SIGCPP', 'LIBLO', 'XLIB', 'NTK', 'NTK_IMAGES', 'PTHREAD'], - install_path = '${BINDIR}') - - bld( features = 'subst', - source = 'non-sequencer.desktop.in', - target = 'non-sequencer.desktop', - encoding = 'utf8', - install_path = "${DATADIR}" + '/applications', - BIN_PATH = bld.env.BINDIR ) - - bld.install_files('/'.join( [ '${DATADIR}', APPNAME, 'instruments'] ), bld.path.ant_glob('instruments/*')) - - start_dir = bld.path.find_dir( 'icons/hicolor' ) - - bld.install_files('${DATADIR}/icons/hicolor', start_dir.ant_glob('**/*.png'), - cwd=start_dir, relative_trick=True) - - bld.install_as('${DATADIR}/pixmaps/' + APPNAME + '/icon-256x256.png', 'icons/hicolor/256x256/apps/' + APPNAME + '.png') - - bld.install_files( '/'.join( [ '${DATADIR}/doc', APPNAME ] ), bld.path.ant_glob( 'doc/*.html doc/*.png' ) ) diff --git a/timeline/bin/import-ardour-session b/timeline/bin/import-ardour-session deleted file mode 100755 index 7640386..0000000 --- a/timeline/bin/import-ardour-session +++ /dev/null @@ -1,219 +0,0 @@ -#!/usr/bin/env python2 - -# Copyright (C) 2013 Jonathan Moore Liles # -# # -# This program is free software; you can redistribute it and/or modify it # -# under the terms of the GNU General Public License as published by the # -# Free Software Foundation; either version 2 of the License, or (at your # -# option) any later version. # -# # -# This program is distributed in the hope that it will be useful, but WITHOUT # -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # -# more details. # -# # -# You should have received a copy of the GNU General Public License along # -# with This program; see the file COPYING. If not,write to the Free Software # -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # - -import xml.etree.ElementTree as et -import random -import sys -import os -from datetime import date -import shutil - -if len(sys.argv) == 1: - print( "Usage: import-ardour-session [PATH_TO_ARDOUR_FILE] [NAME_OF_NON_TIMELINE_PROJECT]" ) - sys.exit( 1 ) - -Overwrite=False - -i = 1; - -if ( sys.argv[i] == "--overwrite" ): - Overwrite = True - i = i + 1 - -ArdourFilePath = sys.argv[i] -i = i + 1 -NonTimelineProjectPath = sys.argv[i] -i = i + 1 - -try: - os.makedirs( NonTimelineProjectPath ); - os.makedirs( NonTimelineProjectPath + "/sources"); -except: - if not Overwrite: - print( "Output path already exists!" ) - sys.exit( 1 ) - -try: - tree = et.parse( ArdourFilePath ); -except: - print( "Invalid XML input" ) - sys.exit( 1 ) - -root = tree.getroot(); - -Sources = {} -DiskStreams = {} - -print( "Gathering session info" ) -if root.tag != "Session": - print( "Not an Ardour session?" ) - sys.exit(1) - -print( "Ardour session file version is " + root.attrib["version"] ) -print( "This program is known to work with versions <= 3.0.1" ) - -ProjectName = root.attrib["name"] - -print( "Converting Ardour session \"" + ProjectName + "\" to Non Timeline format. Please be patient." ) - - -print( "Gathering sources." ) -for node in root.findall( "./Sources/Source" ): - Sources[node.attrib["id"]] = node; -# print( "\tFound source " + node.attrib["name"] ) - -print( "Gathering version 3 diskstreams." ) -for node in root.findall( "./Routes/Route/Diskstream" ): - DiskStreams[node.attrib["id"]] = node; - print( "\tFound diskstream " + node.attrib["name"] ) - -print( "Gathering version 2 diskstreams." ) -for node in root.findall( "./DiskStreams/AudioDiskstream" ): - DiskStreams[node.attrib["id"]] = node; -# print( "\tFound diskstream " + node.attrib["name"]; ) - - -print( "Gathering version 1 diskstreams." ) -for node in root.findall( "./DiskStreams/DiskStream" ): - DiskStreams[node.attrib["id"]] = node; -# print( "\tFound diskstream " + node.attrib["name"]; ) - -LoggableID = 1; - -def NewID(): - global LoggableID - ID="0x%x" % LoggableID - LoggableID = LoggableID + 1 - return ID - - -History = "{\n" - -print( "Processing tempo." ) - -for node in root.findall("./TempoMap/Tempo"): - TempoID = NewID() - History += ( "\tTempo_Point " + TempoID + " create :start 0 :tempo " + node.attrib["beats-per-minute"] + "\n") - -for node in root.findall("./TempoMap/Meter"): - TimeID = NewID() - try: - BPB = node.attrib["beats-per-bar"] - except: - BPB = node.attrib["divisions-per-bar"] - - History += ( "\tTime_Point " + TimeID + " create :start 0 :beats_per_bar " + BPB + " :beat_type " + node.attrib["note-type"] + "\n") - - -print( "Processing playlists." ) -for node in root.findall( "./Playlists/Playlist" ): - - try: - Track = DiskStreams[node.attrib["orig_diskstream_id"]] - except: - try: - Track = DiskStreams[node.attrib["orig-track-id"]] - except: - print( "\tSkipping playlist " + node.attrib["name"] + " for unknown diskstream" ) - continue - - - if node.attrib["name"] == Track.attrib["playlist"]: - print( "\tFound playlist " + node.attrib["name"] ) - - # for chan in range(0, int( Track.attrib["channels"] )): - TrackID = NewID() - SequenceID = NewID() - # if int(Track.attrib["channels"]) > 1: - # TrackName = Track.attrib["name"] + "-" + ( "%i" % chan ) - # else: - TrackName = Track.attrib["name"] - Channels = int(Track.attrib["channels"]) - - History += ( "\tTrack " + TrackID + " create :name \"" + TrackName + "\"" + ( " :sequence " + SequenceID ) + " :color " + ( "%i" % random.randint(256,123123123)) + ( " :inputs %i :outputs %i\n" % ( Channels, Channels ) ) ) - History += ( "\tAudio_Sequence " + SequenceID + " create :track " + TrackID + " :name \"" + node.attrib["name"] + "\"\n" ) - for n2 in node.findall("./Region"): - RegionID = NewID(); - - if ( int( Track.attrib["channels"] ) > 1 ): - - SourceList = [] - APath1 = os.path.dirname(ArdourFilePath) + "/sounds/" - APath2 = os.path.dirname(ArdourFilePath) + "/interchange/" + ProjectName + "/audiofiles/" - - for chan in range(0, int( Track.attrib["channels"] )): - SourceName = Sources[n2.attrib["source-" + ( "%i" % chan )]].attrib["name"] - - if os.path.exists( APath1 + SourceName): - SourceName = APath1 + SourceName - elif os.path.exists( APath2 + SourceName ): - SourceName = APath2 + SourceName - else: - print( "source not found!" ) - - SourceList.append( "'" + SourceName + "'" ); - - s1,s2,s3 = Sources[n2.attrib["source-0"]].attrib["name"].partition( '%' ) - - SourceName = s1 + ".wav" - OutputName = NonTimelineProjectPath + "/sources/" + SourceName - - if not os.path.exists( OutputName ): - print( "Combining multifile source into multichannel source" ) - os.system( "sox -S -M " + " ".join(SourceList) + " " + "'" + OutputName + "'" ) - - else: - SourceName = Sources[n2.attrib["source-0"]].attrib["name"]; - if not os.path.exists( NonTimelineProjectPath + "/sources/" + SourceName ): - print( "\t\tCopying source: " + SourceName ) - - try: - shutil.copy( os.path.dirname(ArdourFilePath) + "/interchange/" + ProjectName + "/audiofiles/" + SourceName, - NonTimelineProjectPath + "/sources/" ) - except: - shutil.copy( os.path.dirname(ArdourFilePath) + "/sounds/" + SourceName, - NonTimelineProjectPath + "/sources/" ) - - - History += ("\tAudio_Region " + RegionID + - " create :source \"" + SourceName + - "\" :start " + n2.attrib["position"] + - " :length " + n2.attrib["length"] + - " :offset " + n2.attrib["start"] + - " :sequence " + SequenceID + "\n") - else: - print( "\tSkipping inactive playlist" ) - -History += ("}\n") - -print( "Comitting to disk." ) - -with open( NonTimelineProjectPath + "/info", 'w' ) as InfoFile: - try: - SampleRate = root.attrib["sample-rate"] - except: - print( "Couldn't find sample rate... Using default." ) - SampleRate = "48000" - - InfoFile.write( "created by\n\tNon-Timeline 1.2.0\ncreated on\n\t" + date.today().ctime() + "\nversion\n\t2\nsample rate\n\t" + SampleRate + "\n" ) - -with open( NonTimelineProjectPath + "/history", 'w' ) as HistoryFile: - HistoryFile.write( History ) - -print( "Done. You've been freed. Go make music!" ) - diff --git a/timeline/bin/import-ardour-session_gui.fl b/timeline/bin/import-ardour-session_gui.fl deleted file mode 100644 index ad24c98..0000000 --- a/timeline/bin/import-ardour-session_gui.fl +++ /dev/null @@ -1,103 +0,0 @@ -# data file for the Fltk User Interface Designer (fluid) -version 1.0300 -header_name {.h} -code_name {.cxx} -decl {\#include } {private local -} - -decl {\#include } {private local -} - -decl {\#include } {private local -} - -decl {\#include } {private local -} - -decl {\#include } {private local -} - -decl {\#include } {private local -} - -Function {} {open -} { - code {UserInterface *ui = new UserInterface(); - -Fl_Double_Window *w = ui->make_window(); - -w->show(); - -Fl::run(); - -return 0;} {} -} - -class UserInterface {open -} { - Function {make_window()} {open - } { - Fl_Window main_window { - label {Import Ardour Session} open - xywh {610 468 395 310} type Double xclass {Non-Timeline} visible - } { - Fl_Box {} { - label {Non Timeline : Ardour Session Importer} - xywh {5 6 385 54} box ROUND_UP_BOX color 90 labelfont 1 labelsize 16 - } - Fl_Box {} { - label {This program will non-descrutively examine an existing Ardour 1, 2 or 3 format session file and replace the current Non Timeline project with the Tracks and Regions it finds. This program will only operate on a new (empty) Non Timeline project.} - xywh {5 66 385 128} box ROUND_UP_BOX align 128 - } - Fl_Return_Button {} { - label Import - callback {pid_t pid; -if ( ! (pid = fork()) ) -{ - - char *s; -// asprintf( &s, "xterm -into 0x%lx -e import-ardour-session --overwrite '%s' '%s'", fl_xid( main_window ), file_input->value(), getenv("PWD" )); - asprintf( &s, "import-ardour-session --overwrite '%s' '%s'", file_input->value(), getenv("PWD" )); - - exit( system( s ) ); -} - - -int status; - -while ( 0 == waitpid( pid, &status, WNOHANG ) ) -{ - Fl::wait(0.01); - - if ( progress->value() >= 100 ) - progress->value( 0 ); - else - progress->value( progress->value() + 5 ); - - progress->redraw(); -} - -if ( 0 == status ) - fl_message( "Import succesful. You've been freed. Go make music!" ); -else - fl_alert( "There was an error importing this session!" ); - -exit(0);} selected - xywh {270 270 115 30} - } - Fl_File_Input file_input { - label {Path to .ardour File:} - xywh {10 226 285 34} align 1 - } - Fl_Button {} { - label Browse - callback {file_input->value( fl_file_chooser( ".ardour file", "*.ardour", NULL, 0 ) );} - xywh {300 231 85 30} - } - Fl_Slider progress { - label {slider:} - xywh {15 272 245 27} type Horizontal color 48 selection_color 63 labeltype NO_LABEL align 18 maximum 100 deactivate - } - } - } -} diff --git a/timeline/bin/import-external-sources b/timeline/bin/import-external-sources deleted file mode 100755 index 34b39eb..0000000 --- a/timeline/bin/import-external-sources +++ /dev/null @@ -1,94 +0,0 @@ -#!/bin/sh - -# Copyright (C) 2008 Jonathan Moore Liles # -# # -# This program is free software; you can redistribute it and/or modify it # -# under the terms of the GNU General Public License as published by the # -# Free Software Foundation; either version 2 of the License, or (at your # -# option) any later version. # -# # -# This program is distributed in the hope that it will be useful, but WITHOUT # -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # -# more details. # -# # -# You should have received a copy of the GNU General Public License along # -# with This program; see the file COPYING. If not,write to the Free Software # -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # - -## import-external-sources -# -# June 2008, Jonathan Moore Liles -# -# Simple script to scan a compacted Non-DAW project and copy external -# sources into the project directory. -# -# USAGE: -# -# $ import-external-sources ~/audio/'The Best Song Ever' - -DRY_RUN=no -ONLY_COMPACTED=no - -fatal () -{ - echo Error: "$1" - echo 'Aborting!' - cleanup - exit 1 -} - -cleanup () -{ - rm -f "${TEMP}/external-sources" -} - -import_sources () -{ - local FILE - while read FILE - do - if [ $DRY_RUN = yes ] - then - echo "Would import: ${FILE}" - else - echo "Importing source \"${FILE}\"..." - cp "${FILE}" sources - [ -f "${FILE}.peak" ] && cp "${FILE}.peak" sources - - ( echo "%s':source \"${FILE}\"':source \"${FILE##*/}\"'"; echo -e "\nwq" ) | - ed -s "history" - fi - done -} - -[ $# -gt 0 ] || fatal "Usage: $0 [--dry-run] path/to/project" - -if [ "$1" = --dry-run ] -then - DRY_RUN=yes - shift 1 -fi - -PROJECT="$1" - -cd "$PROJECT" || fatal "No such project" - -[ -f history ] && [ -f info ] || fatal "Not a Non-DAW project?" - -[ -f .lock ] && fatal "Project appears to be in use" - -if [ $ONLY_COMPACTED = yes ] -then - grep -v '\(^\{\|\}$\)\|create' history && fatal "Not a compacted project" -fi - -echo "Scanning \"${PROJECT}\"..." - -sed -n 's/^\s*Audio_Region .* create :source "\([^"]\+\)".*$/\1/; /^\//p' history | sort | uniq > "${TEMP}/external-sources" - -import_sources < "${TEMP}/external-sources" - -cleanup - -echo "Done." diff --git a/timeline/bin/remove-unused-sources b/timeline/bin/remove-unused-sources deleted file mode 100755 index 798a1c0..0000000 --- a/timeline/bin/remove-unused-sources +++ /dev/null @@ -1,146 +0,0 @@ -#!/bin/sh - -# Copyright (C) 2008 Jonathan Moore Liles # -# # -# This program is free software; you can redistribute it and/or modify it # -# under the terms of the GNU General Public License as published by the # -# Free Software Foundation; either version 2 of the License, or (at your # -# option) any later version. # -# # -# This program is distributed in the hope that it will be useful, but WITHOUT # -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or # -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for # -# more details. # -# # -# You should have received a copy of the GNU General Public License along # -# with This program; see the file COPYING. If not,write to the Free Software # -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # - -## remove-unused-sources -# -# April 2008, Jonathan Moore Liles -# -# Simple script to scan a compacted Non-DAW project and remove all -# unused sources from disk. -# -# USAGE: -# -# $ remove-unused-sources ~/audio/'The Best Song Ever' -# -# NOTES: -# -# This script will not ask for comfirmation! It will ruthlessly -# delete all unused sources! You have been warned. -# - -DRY_RUN= -ONLY_COMPACTED= -MOVE=1 - -fatal () -{ - echo Error: "$1" - echo 'Aborting!' - cleanup - exit 1 -} - -cleanup () -{ - rm -f "${TEMP}/all-sources" "${TEMP}/used-sources" -} - -set_diff () -{ - diff --new-line-format '' --old-line-format '%L' --unchanged-line-format '' "$1" "$2" -} - -remove_sources () -{ - local TOTAL=0 - local FILE - local SIZE - local PSIZE - while read FILE - do - - PSIZE=`stat -c '%s' "${FILE}.peak" 2>/dev/null` - SIZE=`stat -c '%s' "${FILE}" 2>/dev/null` - - PSIZE=${PSIZE:-0} - - if ! [ -f "${FILE}" ] - then - echo "Would remove \"${FILE}\", if it existed." - else - if [ "$DRY_RUN" = 1 ] - then - echo "Would remove: ${FILE}" - else - if [ "$MOVE" = 1 ] - then - echo "Moving unused source \"${FILE}\"..." - mv -f ./"${FILE}" ./"${FILE}".peak ../unused-sources - else - echo "Removing unused source \"${FILE}\"..." - rm -f ./"${FILE}" ./"${FILE}".peak - fi - fi - - TOTAL=$(( $TOTAL + $SIZE + $PSIZE )) - fi - - done - - echo "...Freeing a total of $(($TOTAL / ( 1024 * 1024 ) ))MB" -} - -usage () -{ - fatal "Usage: $0 [-n] [-c] [-m|-d] path/to/project" -} - - -while getopts "dmnc" o -do - case "$o" in - d) MOVE= ;; - m) MOVE=1 ;; - n) DRY_RUN=1 ;; - c) ONLY_COMPACTED=1 ;; - \?) usage ;; - *) echo "$o" && usage ;; - esac -done - -shift $(( $OPTIND - 1 )) -PROJECT="$1" - -[ $# -eq 1 ] || usage - -cd "$PROJECT" || fatal "No such project" - -[ -f history ] && [ -f info ] || fatal "Not a Non-DAW project?" - -[ -f .lock ] && fatal "Project appears to be in use" - -if [ "$ONLY_COMPACTED" = 1 ] -then - grep -v '\(^\{\|\}$\)\|create' history && fatal "Not a compacted project" -fi - -echo "Scanning \"${PROJECT}\"..." - -sed -n 's/^\s*Audio_Region.* :source "\([^"]\+\)".*$/\1/p' history | sort | uniq > "${TEMP}/used-sources" - -cd sources || fatal "Can't change to source directory" - -[ "$MOVE" = 1 ] && mkdir ../unused-sources 2>/dev/null - -ls -1 | grep -v '\.peak$' | sort > "${TEMP}/all-sources" - -set_diff "${TEMP}/all-sources" "${TEMP}/used-sources" | remove_sources - -cleanup - -echo "Done." diff --git a/timeline/doc/MANUAL.html b/timeline/doc/MANUAL.html deleted file mode 100644 index 9d2219d..0000000 --- a/timeline/doc/MANUAL.html +++ /dev/null @@ -1,410 +0,0 @@ - - - - - -Non Timeline User Manual - - - -

-
- -

1. User Manual

-

1.1. The Timeline

-
- - - -
-Fig. 1.1. Timeline Editor -
fig. 1.1
-

-The Timeline is where you will add tracks, make captures, and arrange regions. -

-

-Before you can add anything to the timeline, you must create a new project (menu item Project/New) -

-
- - - -
-Fig. 1.2. New Project Dialog -
fig. 1.2
-

1.1.1. Display Options

-

-The display options, found in the Options/Display submenu may be adjusted to suit your needs. Set the color scheme, widget style, and other graphic options to your liking. These options are global and affect all projects. -

-

1.1.2. Navigation

-

1.1.2.1. Sequences

-

-A sequence is focused when you click on it. Focus can be moved back and forth between sequences with Tab and Shift-Tab. -

-

1.1.2.2. Playhead

-

-Shift+Left and Shift+Right move the playhead backward and forward one beat, while Ctrl+Shift+Left and Ctrl+Shift+Right move it by bars. -

-
1.1.2.2.1. Within A Sequence
-

-The focused sequence accepts additional movement commands with specific relevance. Ctrl+Left moves the playhead to the beginning of the current or previous object in the sequence. Ctrl+Right moves it to the beginning of the next object in the sequence. -

-

1.1.3. Cursors

-
- - - -
-Fig. 1.3. Cursor Strips -
fig. 1.3
-

-Active cursors are displayed the the cursor strip along the top of the timeline. The default cursors define regions of time. All cursors can be manipulated in their tracks by dragging with the mouse or other operations that apply to regions on the timeline. -

-

-Ctrl+RightClick will remove a cursor. -

-

1.1.3.1. Edit Cursor

-
- - - -
-Fig. 1.4. Edit Cursor -
fig. 1.4
-

-The edit cursor defines a region to apply an operation to. The edit cursor is also used to define the region other cursors, such as Punch and Playback, are created from. -

-

-Ctrl+[ moves the beginning of the edit cursor to the position of the playhead. Ctrl+] moves the end of the edit cursor to the position of the playhead. -

-

-The edit cursor ends can be set individually with the mouse by positioning the pointer over the desired location and pressing [ or ]. Alternatively, both may be set at once by holding the r key and left-click+dragging the selection rectangle. -

-

1.1.3.2. Playback Cursor

-

-

-Hitting Ctrl+Shift+L sets the playback cursor to the same dimensions and position as the Edit Cursor. -

-

1.1.3.3. Punch Cursors

-

-Punch Cursors define regions where recording will occur when recording in Punch Mode. -

-

-Hitting Ctrl+Shift+P defines a new Punch Cursor with the same dimensions and position as the Edit Cursor. -

-

-Any number of punch cursors may be defined. -

-

1.1.4. Projects

-
- - - -
-Fig. 1.5. Project Info Dialog -
fig. 1.5
-

-A Non Timeline project is a directory where Non Timeline keeps the journal, project specific settings, notes, some meta-data, and, last but not least, your audio sources. A project is completely self-contained. You can rename a project as simply as: -

-
-
-$ mv Project-A Project-B
-
-

-Non Timeline projects can refer to audio sources outside of the project directory--clips dropped onto the timeline from a file-manager, for instance. These are not copied into the project by default. This allows the efficient use of audio loop libraries, but introduces external dependencies. Beware that if you ever move, remove, or change one of these external sources, it will affect the Non Timeline projects referencing them. -

-
- - -
Note:To import all the external sources for a project, making it suitable for -distribution or archiving, use the `import-external-sources` script included -with the program. -
-
-

1.1.4.1. Settings

-

-Project specific settings are found in the Project/Settings submenu. -

-

1.1.5. Transport

-
- - - -
-Fig. 1.6. Transport Controls -
fig. 1.6
-

-The transport controls allow you to control the JACK transport from the Timeline Editor. Home moves the playhead to 0 and End moves it to the end of the project. Space toggles playback. -

-

1.1.6. Clocks

-
- - - -
-Fig. 1.7. Clocks -
fig. 1.7
-

-The clocks tell you precisely where the playhead is. There are several clock types which can be cycled through by left-clicking. The following clock types are available: -

-
  1. Hours Minutes Seconds -
  2. Timecode -
  3. Sample -
  4. Bar Beat Tick -

1.1.7. Tempo Map

-
- - - -
-Fig. 1.8. The Tempo Map -
fig. 1.8
-

-The tempo map serves a dual purpose. Firstly, it provides enough information about the musical structure of your project for Non Timeline to perform intelligent snapping and draw helpful measure lines. Secondly, the tempo map is communicated to other JACK clients at playback time via the JACK Timebase API, so that MIDI accompaniment can follow along to the tempo changes in your song. -

-

-Clicking on an empty part of the time or tempo sequences will prompt you for the parameters of a new time or tempo point to be inserted at that position. Hit Escape to cancel the insertion. Right-click on a time or tempo point to edit its value. Existing points can be dragged freely. -

-

1.1.8. Tracks

-
- - - -
-Fig. 1.9. A Track Header -
fig. 1.9
-

-Add a track to the timeline by pressing the A key. Right-clicking on the track header will bring up a context menu by which you can configure the number of channels used by this track. Click on the track name to change it. The Takes menu lists all the takes associated with a track. The circular record-enable button is used to arm a track for recording. Only armed tracks will be recorded onto when the master record-enable button on the transport is activated and the transport is started. The 'm' toggle button is mute, the 's' button is solo. Multiple tracks can be soloed at once. Shift+Mousewheel will adjust the track height. Remove a track by selecting 'Remove' from its context menu. -

-

1.1.8.1. Recording

-
- - - -
-Fig. 1.10. Recording onto a Track -
fig. 1.10
-

-To initiate recording, first arm some tracks by toggling their record buttons, then toggle the global record-enable button on the transport. Recording will begin when you press play. During recording, the timeline darkens and refuses normal input. Regions being captured are colored bright red. The viewport will automatically follow the playhead as the recording progresses. Recording stops when you stop the transport or toggle the global record-button. -

-

1.1.9. Sequences

-

-Sequence is the generic term used to describe all distinct sequences of objects on the timeline. -

-

1.1.10. Regions

-

-Regions are the most common object on the timeline. Each region represents some portion of an audio source placed at some position in time. Since Non Timeline is non-destructive, regions only represent the source--altering a region does not affect the audio source in any way. Deleting a region does not delete the source--as other regions may still refer to it. -

-
- - -
Note:If you decide, for whatever reason, that you no longer wish to retain unused -sources, run the `remove-unused-sources` script included with the program. -
-
-

-Try this one-liner to clean up many projects in parallel and reclaim disk space: -

-
-
-for i in ~/projects/*; do remove-unused-sources "$i" & done
-
-

1.1.10.1. Editing

-
1.1.10.1.1. Split
-

-Position the mouse pointer where you would like the region split and perform Shift+Middle-click. This will divide the region at the mouse pointer. -

-
1.1.10.1.2. Duplicate
-

-Drag a region (or selection) with the mousse while holding the Ctrl key to duplicate it. -

-
1.1.10.1.3. Delete
-

-Ctrl+Right-click removes a region or selection from the timeline. -

-
1.1.10.1.4. Trim
-

-Hold down Shift and click on part of a region with the left mouse button. This trims the region start to the position of the mouse pointer. Continue holding Shift and drag to continuously trim the region start point. Do the same with the right mouse button to trim the region end. -

-
1.1.10.1.5. Pan
-

-Hold Ctrl+Shift and drag the region. Instead of moving on the timeline, the region will remain stationary as the audio source behind it is panned forward or back. This operation is particularly useful in conjunction wiht looped regions. -

-
1.1.10.1.6. Normalize
-

-Hit N while a region is focused to normalize it (or Ctrl+Middle-click). Normalizing a region means automatically setting its gain as high as possible without exceeding the standard floating point audio dynamic range of +1 to -1 (corresponding to 0dBFS). Any peaks exceeding this range at this stage will appear in bright red. -

-
1.1.10.1.7. Fade
-
- - - -
-Fig. 1.11. A Region with Fades -
fig. 1.11
-

-Each region has fade in and out curves. Position the mouse pointer over the desired fade-in end location and hit F3 to set the fade-in duration. Position the mouse pointer over the desired fade-out start location and hit F4 to set the fade-out duration. Right click on a region to bring up its context menu, then choose the type of curve for each fade. The following curves are available: -

-
  1. Linear -
  2. Sigmoid -
  3. Logarithmic -
  4. Parabolic -
1.1.10.1.8. Loop
-
- - - -
-Fig. 1.12. Looped region -
fig. 1.12
-

-Instead of requiring you to duplicate a small region 100 times to achieve a looping effect, Non Timeline supports looping directly. First, adjust the region duration to cover the amount of time you would like it to loop for. Then, position the mouse pointer over the first place the loop should repeat (i.e. the first bar line after the start of the region) and hit L. This will set the loop point for this region, which will be indicated by two white arrows. At playback, the portion of the region before the loop point will loop for the duration of the region. -

-

1.1.11. Annotation

-
- - - -
-Fig. 1.13. Annotations -
fig. 1.13
-

-Add an annotation sequence to a track by right-clicking on the track header to bring up the context menu, and choosing Add annotation. Any number of annotation sequences may be attached to each track. Click on an empty space in the sequence to add a new annotation point. Right click on the annotation point to rename it. Hold down shift and drag with the right mouse button to create a new annotation region of a given duration. Again, right click to edit the text. Only the first line of annotation region text will be displayed on the timeline. Annotation regions are useful for containing lyrics or other cues which have a definite duration. Annotation points are more appropriately used to denote points of interest or change. -

-

1.1.12. Automation

-
- - - -
-Fig. 1.14. Control Sequence -
fig. 1.14
-

-Each track may have any number of control sequences attached to it. A control sequence comprises a series of points in time (X axis) and intensity (Y axis). Add a control sequence to a track by picking Add control from its context menu. A control sequence may be named by right clicking on it to bring up the context menu, then picking Rename. The output of a control sequence can be set to one of two modes Control Voltage (JACK) or Control Signal (OSC). -

-
- -
NOTE: -Since release 1.1.0, Control Signal is now the default output mode for Control Sequences. -If you have existing projects and wish to continue using Control Voltage output, -you must set the mode to Control Voltage manually. -
-
-

-Click anywhere on the control sequence to add a new control point. Control points can be dragged around and selected just like other objects on the timeline. They can even be part of the same selection as regions, permitting you to move regions and control points together in lock-step. -

-

1.1.12.1. Output Mode

-
1.1.12.1.1. Control Voltage
-

-Control Voltage is similar to control voltages generated by analog equipment. Setting the Control Sequence mode to Control Voltage will create a JACK output port whose contents simulate an analogue Control Voltage signal. This mode can be used to control anything that accepts CV style input. Useful targets include the Non-Mixer, and SpiralSynthModular. -

-
1.1.12.1.2. Control Signal
-

-The Control Signal mode uses a signal routing layer on top of the OSC protocol to intelligently and automatically discover and control any module parameter in Non-Mixer. The output of one Control Sequence may be connected to any number of Control Signal inputs available in Non-Mixer. -

-

-Control Signals are more efficient than Control Voltages when a large number of parameters are being automated. -

-
- - - -
-Fig. 1.15. Control Signal Connection -
fig. 1.15
-

1.1.12.2. Interpolation Mode

-
- - - -
-Fig. 1.16. Effect of Interpolation Mode -
fig. 1.16
-

-The interpolation mode controls how the relatively small number of Control Points is transformed into a continuously varying signal. The options are None and Linear. -

-

-When its Interpolation mode is set to None, a Control Sequence will output discrete jumps in value upon the playhead passing each Control Point. This can be useful when instantaneous changes in value are required, such as sudden muting, or changing the modes of plugins. -

-
- - diff --git a/timeline/doc/MANUAL.mu b/timeline/doc/MANUAL.mu deleted file mode 100644 index 36e5050..0000000 --- a/timeline/doc/MANUAL.mu +++ /dev/null @@ -1,363 +0,0 @@ - -! title Non Timeline User Manual -! author Jonathan Moore Liles #(email,male@tuxfamily.org) - --- Table Of Contents - -: User Manual - -:: The Timeline - -/ Timeline Editor -< tle.png - - The Timeline is where you will add tracks, make captures, and arrange regions. - - Before you can add anything to the timeline, you must create a new project - (menu item `Project\/New`) - -/ New Project Dialog -< new-project.png - -::: Display Options - - The display options, found in the `Options\/Display` submenu may be adjusted - to suit your needs. Set the color scheme, widget style, and other graphic - options to your liking. These options are global and affect all projects. - -::: Navigation - -:::: Sequences - - A sequence is focused when you click on it. Focus can be moved back and forth - between sequences with `Tab` and `Shift-Tab`. - -:::: Playhead - - `Shift+Left` and `Shift+Right` move the playhead backward and forward one - beat, while `Ctrl+Shift+Left` and `Ctrl+Shift+Right` move it by bars. - -::::: Within A Sequence - - The focused sequence accepts additional movement commands with specific - relevance. `Ctrl+Left` moves the playhead to the beginning of the current or - previous object in the sequence. `Ctrl+Right` moves it to the beginning of - the next object in the sequence. - -::: Cursors - -/ Cursor Strips -< cursors.png - - Active cursors are displayed the the cursor strip along the top of - the timeline. The default cursors define regions of time. All - cursors can be manipulated in their tracks by dragging with the - mouse or other operations that apply to regions on the timeline. - - `Ctrl+RightClick` will remove a cursor. - -:::: Edit Cursor - -/ Edit Cursor -< range.png - - The edit cursor defines a region to apply an operation to. The edit - cursor is also used to define the region other cursors, such as - Punch and Playback, are created from. - - `Ctrl+[` moves the beginning of the edit cursor to the position of - the playhead. `Ctrl+]` moves the end of the edit cursor to the - position of the playhead. - - The edit cursor ends can be set individually with the mouse by - positioning the pointer over the desired location and pressing `[` - or `]`. Alternatively, both may be set at once by holding the `r` - key and left-click+dragging the selection rectangle. - -:::: Playback Cursor - - The Playback Cursor defines the start and stop of playback, - affecting the action of the Home and End transport buttons. Setting - the menu option 'Options/Behavior/Transport/Loop Playback' will - result in playback looping over the region defined by the Playback - Cursor. - - Hitting `Ctrl+Shift+L` sets the playback cursor to the same - dimensions and position as the Edit Cursor. - -:::: Punch Cursors - - Punch Cursors define regions where recording will occur when - recording in Punch Mode. - - Hitting `Ctrl+Shift+P` defines a new Punch Cursor with the same - dimensions and position as the Edit Cursor. - - Any number of punch cursors may be defined. - -::: Projects - -/ Project Info Dialog -< project-info.png - - A Non Timeline project is a directory where Non Timeline keeps the journal, project - specific settings, notes, some meta-data, and, last but not least, your audio - sources. A project is completely self-contained. You can rename a project as - simply as: - -> $ mv Project-A Project-B - - Non Timeline projects can refer to audio sources outside of the project - directory--clips dropped onto the timeline from a file-manager, for instance. - These are not copied into the project by default. This allows the efficient - use of audio loop libraries, but introduces external dependencies. Beware - that if you ever move, remove, or change one of these external sources, it - will affect the Non Timeline projects referencing them. - -/ Note: -{ To import all the external sources for a project, making it suitable for -{ distribution or archiving, use the `import-external-sources` script included -{ with the program. - -:::: Settings - - Project specific settings are found in the `Project\/Settings` submenu. - -::: Transport - -/ Transport Controls -< transport.png - - The transport controls allow you to control the JACK transport from the - Timeline Editor. `Home` moves the playhead to 0 and `End` moves it to the - end of the project. `Space` toggles playback. - -::: Clocks - -/ Clocks -< clocks.png - - The clocks tell you precisely where the playhead is. There are several clock - types which can be cycled through by left-clicking. The following clock types - are available: - -+ Hours Minutes Seconds -+ Timecode -+ Sample -+ Bar Beat Tick - -::: Tempo Map - -/ The Tempo Map -< tempomap.png - - The tempo map serves a dual purpose. Firstly, it provides enough information - about the musical structure of your project for Non Timeline to perform - intelligent snapping and draw helpful measure lines. Secondly, the tempo map - is communicated to other JACK clients at playback time via the JACK Timebase - API, so that MIDI accompaniment can follow along to the tempo changes in your - song. - - Clicking on an empty part of the time or tempo sequences will prompt you for - the parameters of a new time or tempo point to be inserted at that position. - Hit `Escape` to cancel the insertion. Right-click on a time or tempo point to - edit its value. Existing points can be dragged freely. - -::: Tracks - -/ A Track Header -< track-header.png - - Add a track to the timeline by pressing the `A` key. Right-clicking on the - track header will bring up a context menu by which you can configure the - number of channels used by this track. Click on the track name to change it. - The `T`akes menu lists all the takes associated with a track. The circular - record-enable button is used to arm a track for recording. Only armed tracks - will be recorded onto when the master record-enable button on the transport - is activated and the transport is started. The 'm' toggle button is mute, the - 's' button is solo. Multiple tracks can be soloed at once. `Shift+Mousewheel` - will adjust the track height. Remove a track by selecting 'Remove' from its - context menu. - -:::: Recording - -/ Recording onto a Track -< recording.png - - To initiate recording, first arm some tracks by toggling their record - buttons, then toggle the global record-enable button on the transport. - Recording will begin when you press play. During recording, the timeline - darkens and refuses normal input. Regions being captured are colored bright - red. The viewport will automatically follow the playhead as the recording - progresses. Recording stops when you stop the transport or toggle the global - record-button. - -::: Sequences - - Sequence is the generic term used to describe all distinct sequences of - objects on the timeline. - -::: Regions - - Regions are the most common object on the timeline. Each region represents - some portion of an audio source placed at some position in time. Since - Non Timeline is non-destructive, regions only *represent* the source--altering a - region does not affect the audio source in any way. Deleting a region does - not delete the source--as other regions may still refer to it. - -/ Note: -{ If you decide, for whatever reason, that you no longer wish to retain unused -{ sources, run the `remove-unused-sources` script included with the program. - - Try this one-liner to clean up many projects in parallel and reclaim disk space: - -> for i in ~/projects/*; do remove-unused-sources "$i" & done - -:::: Editing - -::::: Split - - Position the mouse pointer where you would like the region split and perform - `Shift+Middle-click`. This will divide the region at the mouse pointer. - -::::: Duplicate - - Drag a region (or selection) with the mousse while holding the `Ctrl` key to - duplicate it. - -::::: Delete - - `Ctrl+Right-click` removes a region or selection from the timeline. - -::::: Trim - - Hold down `Shift` and click on part of a region with the left mouse button. - This trims the region start to the position of the mouse pointer. Continue - holding `Shift` and drag to continuously trim the region start point. Do the - same with the right mouse button to trim the region end. - -::::: Pan - - Hold `Ctrl+Shift` and drag the region. Instead of moving on the timeline, the - region will remain stationary as the audio source /behind/ it is panned - forward or back. This operation is particularly useful in conjunction wiht - looped regions. - -::::: Normalize - - Hit `N` while a region is focused to normalize it (or `Ctrl+Middle-click`). - Normalizing a region means automatically setting its gain as high as possible - without exceeding the standard floating point audio dynamic range of +1 to -1 - (corresponding to 0dBFS). Any peaks exceeding this range at this stage will - appear in bright red. - -::::: Fade - -/ A Region with Fades -< fade-in-out.png - - Each region has fade in and out curves. Position the mouse pointer over the - desired fade-in end location and hit `F3` to set the fade-in duration. - Position the mouse pointer over the desired fade-out start location and hit - `F4` to set the fade-out duration. Right click on a region to bring up its - context menu, then choose the type of curve for each fade. The following - curves are available: - -+ Linear -+ Sigmoid -+ Logarithmic -+ Parabolic - -::::: Loop - -/ Looped region -< looping.png - - Instead of requiring you to duplicate a small region 100 times to achieve a - looping effect, Non Timeline supports looping directly. First, adjust the region - duration to cover the amount of time you would like it to loop for. Then, - position the mouse pointer over the first place the loop should repeat (i.e. - the first bar line after the start of the region) and hit `L`. This will set - the loop point for this region, which will be indicated by two white arrows. - At playback, the portion of the region before the loop point will loop for - the duration of the region. - -::: Annotation - -/ Annotations -< annotations.png - - Add an annotation sequence to a track by right-clicking on the track header - to bring up the context menu, and choosing /Add annotation/. Any number of - annotation sequences may be attached to each track. Click on an empty space - in the sequence to add a new annotation point. Right click on the annotation - point to rename it. Hold down shift and drag with the right mouse button to - create a new annotation region of a given duration. Again, right click to - edit the text. Only the first line of annotation region text will be - displayed on the timeline. Annotation regions are useful for containing - lyrics or other cues which have a definite duration. Annotation points are - more appropriately used to denote points of interest or change. - -::: Automation - -/ Control Sequence -< automation.png - - Each track may have any number of control sequences attached to - it. A control sequence comprises a series of points in time (X axis) - and intensity (Y axis). Add a control sequence to a track by picking - /Add control/ from its context menu. A control sequence may be named - by right clicking on it to bring up the context menu, then picking - /Rename/. The output of a control sequence can be set to one of two - modes /Control Voltage \(JACK\)/ or /Control Signal \(OSC\)/. - -{ NOTE: -{ Since release 1.1.0, Control Signal is now the default output mode for Control Sequences. -{ If you have existing projects and wish to continue using Control Voltage output, -{ you must set the mode to Control Voltage manually. - - Click anywhere on the control sequence to add a new control point. Control - points can be dragged around and selected just like other objects on the - timeline. They can even be part of the same selection as regions, permitting - you to move regions and control points together in lock-step. - -:::: Output Mode - -::::: Control Voltage - - /Control Voltage/ is similar to control voltages generated by analog - equipment. Setting the Control Sequence mode to Control Voltage will - create a JACK output port whose contents simulate an analogue - Control Voltage signal. This mode can be used to control anything - that accepts CV style input. Useful targets include the Non-Mixer, - and SpiralSynthModular. - -::::: Control Signal - - The /Control Signal/ mode uses a signal routing layer on top of the - OSC protocol to intelligently and automatically discover and control - any module parameter in Non-Mixer. The output of one Control - Sequence may be connected to any number of Control Signal inputs - available in Non-Mixer. - - Control Signals are more efficient than Control Voltages when a - large number of parameters are being automated. - -/ Control Signal Connection -< control-signals.png - -:::: Interpolation Mode - -/ Effect of Interpolation Mode -< control-points.png - - The interpolation mode controls how the relatively small number of - Control Points is transformed into a continuously varying - signal. The options are /None/ and /Linear/. - - When its Interpolation mode is set to /None/, a Control Sequence - will output discrete jumps in value upon the playhead passing each - Control Point. This can be useful when instantaneous changes in - value are required, such as sudden muting, or changing the modes of - plugins. - diff --git a/timeline/doc/Makefile b/timeline/doc/Makefile deleted file mode 100644 index c20d132..0000000 --- a/timeline/doc/Makefile +++ /dev/null @@ -1,23 +0,0 @@ - -SRCS=$(wildcard *.mu) - -OBJS=$(SRCS:.mu=.html) - -%.html: %.mu - @ echo Mupping $<... - @ mup.wrapper html $< - -.PHONY: all clean - -all: $(OBJS) - -upload: all - @ rsync -L mup.css MANUAL.html *.png ssh.tuxfamily.org:/home/non/non-daw.tuxfamily.org-web/htdocs - -install: - @ install -d "$(DESTDIR)$(DOCUMENT_PATH)"/non-daw - @ cp $(OBJS) *.png mup.css ../../COPYING "$(DESTDIR)$(DOCUMENT_PATH)"/non-daw -# @ ln -sf $(PIXMAP_PATH)/logo.png $(DOCUMENT_PATH) - -clean: - rm -f $(OBJS) diff --git a/timeline/doc/annotations.png b/timeline/doc/annotations.png deleted file mode 100644 index 57f65e61a04f6841019f0b28d7826e0ccad28ddd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17588 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 CyEX6t diff --git a/timeline/doc/automation.png b/timeline/doc/automation.png deleted file mode 100644 index b6a0c7f3007fde5e55ccc4e6f27cb9180044b334..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 37717 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 diff --git a/timeline/doc/control-points.png b/timeline/doc/control-points.png deleted file mode 100644 index 8ea09c3f6c7eb12af9731be7c526cdf8d70838ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8067 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 Hr-UW|mA_&R diff --git a/timeline/doc/cursors.png b/timeline/doc/cursors.png deleted file mode 100644 index 782c5d515e8a2ac29e0621c0d6f361080189f2c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 90242 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

#vH5eG2@R4e1YG>B#joPa8j{IK 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 diff --git a/timeline/doc/fade-in-out.png b/timeline/doc/fade-in-out.png deleted file mode 100644 index 27b28cb2b35a158052c25e4d4449de05fa7318a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28404 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 QFLO>xTu!V?#K8Z50b!iZ5C8xG diff --git a/timeline/doc/icon.png b/timeline/doc/icon.png deleted file mode 120000 index 9450c05..0000000 --- a/timeline/doc/icon.png +++ /dev/null @@ -1 +0,0 @@ -../icons/hicolor/256x256/apps/non-timeline.png \ No newline at end of file diff --git a/timeline/doc/looping.png b/timeline/doc/looping.png deleted file mode 100644 index f9dcd441650db3a92b08aab5414b0802272031cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5865 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 */ -.example * -{ - background: transparent; -} -.example table -{ - margin: 0; - padding: 0; - table-layout: fixed; - width: 100%; - caption-side: top; - overflow: auto; -} -.example caption -{ - caption-side: top; - -} -.example { -} -.example p { - display: inline; - margin: 0; - padding: 0; - text-align: center; -} -.example pre { - margin-top: 0; - font-family: Monospace; - padding: 1em; - border: solid 1px black; - background: #222; - color: white; - display: block; - overflow: auto; - /* Every browser should support border radii */ -/* -moz-border-radius: 0.5em; - border-radius: 0.5em; */ -} -/* " */ -/* - .quote:before { - float: left; - font-size: 500%; - content: "\201C"; - } - */ -/* - blockquote:after { - content: "\201D"; - }*/ -.quote blockquote { - padding: 0.5em; - margin-left: 0.5em; - font-family: Serif; - border-left: solid 0.4em gray; - /* background: #333; */ - color: white; -} -/* ^ */ -small { -/* - color: silver; - font-size: 50%; - */ -} -.footnote p { - color: silver; - margin: 0; -} - -/* Popup footnotes */ -.footnote p { - display: none; -} -.footnote p:target { - display: block; - overflow: auto; - position: fixed; - left: auto; - bottom: 0; - right: 0; - max-width: 50%; - border: solid 0.3em white; - -moz-border-radius: 0.5em; - background: black; - padding: 0.2em; -} - -/* { */ -.admonition * { - background: transparent; - color: white; -} -.admonition dl -{ - display: table; - margin: 0; - padding: 0; - background: #333; - border: dotted black 0.3em; - width: 90% - margin-top: 0.5em; - margin-bottom: 0.5em; -} -.admonition dt -{ - display: table-cell; - vertical-align: center; - border-right: solid silver 0.4em; - font-weight: bold; - font-size: 115%; - font-family: Serif; - background: gray; - width: 0; - text-shadow: black 0.15em 0.15em 0.15em; -} -.admonition dd -{ - padding-left: 0.4em; - display: table-cell; - width: 100%; - text-align: justify; -} - -.admonition table -{ - margin: 0; - padding: 0; - background: #333; - border: dotted black 0.3em; - width: 90% - margin-top: 0.5em; - margin-bottom: 0.5em; -} -.admonition td { - width: 100%; - text-align: justify; -} -.admonition td:first-child:contains("Warning:") { - background: #900; -} -.admonition td:first-child:contains("Caution:") { - background: #960; -} -.admonition td:first-child:contains("Note:") { - background: #690; -} -.admonition td:first-child { - border-right: solid silver 0.4em; - font-weight: bold; - font-size: 115%; - font-family: Serif; - background: gray; - width: 0; - text-shadow: black 0.15em 0.15em 0.15em; -} - - -/* #(b) */ -/* b { color: olive; } */ -/* #(c) */ -tt { - color: #7f0; -} -/* ! keywords ... */ -p em { - color: gray; - font-style: normal; - font-weight: bold; -} - -/* *, + */ -/* Bullet, numbe */ -li { - color: #f0f; -} -/* Text */ -li span, li p { - color: white; -} -li p { - color: red; - display: block; -} -ul { - list-style-type: square; -} -dl { - margin-left: 2%; - margin-top: 1em; -} -/* = */ -dt { - background: #181818; - padding: 0.2em; - font-variant: small-caps; - font-weight: bold; - color: #f0f; -} -dd { - color: white; - text-align: justify; - margin-right: 5%; -} -dt a:link, dt a:visited { - color: #f0f; -} -dt a:link:hover { - color: silver; - text-decoration: underline; -} diff --git a/timeline/doc/new-project.png b/timeline/doc/new-project.png deleted file mode 100644 index 4f0aa6c33164860f2777c56784a82123378a93ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13050 zcmc(G1yGb<|1TZV0)m3H(j~bF(xr5_gdi!fG)O2Qol*kQ(%s$V($bwvBi(fmzxTcW zn7K3e-kCddpHVm5-RJCizUTA(#MvMv1!&6HbJVta-krqQJ9wgra52#FJROAs5+`+qi{16bXz*9b(2nbFb z2ngGT2nYfR2nZy0$@R*D;6Koe-$_e=TX0;8H+X{^OgkBE2LuG%ork}O_5)vH5fEM} z%SwoR>P$Rcj5SA80k<9YCk0ic!Uuv4(`I-kjTi$m@B%Y@x>DP0{t*f zaSF*#TDxan_0IA#XCLRPO$JT>Rdvw1d!N1G-rs9tG@@-r;yP$#G@`uzq*<^fS2F?W`dPBfhEG2?YfN+yu)q)90Tc8OSHSR7rMelPAMMsH)suhhZjht;NY(Lx|B*} zcJEj>=%9FbDW6uuD$#R1*xug$M-Yn$f7A4uD0OG-J!B%zlZ<+iK%HU@%)dWoU(`W9IHS^*o9!t zHnY`Fo;>MR!S(z0A$TLvzl+NBlr(iC#e;3EfL0Opohl2hYVvHQ#b~kq>)Rq#Tew`` z=~|E(r_?m>@B2C(YgU~W9_`zXc3d0XjJ))EI@i0)jp49Q#m~F58o15ig{0%eNnuB2 zOOjp2W3P;S8kBH{j}fb{7}1%MbT3{ha)*?ydWe<`hDk%%D?c}DM)JJX^HJB_ILip| z?667oyyn}ql$#Ac7&6& z-?F}dv-P=H-;*KTYVUMuzCJkZeJW=oqzx~2L1AyLU6=ln`hA{T9!*9q@W?rUVVzr7>bIJ42IF+XiT z9;~*3u9BaA!%bpf$kMH$&=dX~ zrzCkAm0eRF?}HJitD6;6qzI~GoBG($YUEi|WyY9v^&@yLn{Y-6S2>Q~MJ>Y42}1(| z<-5WoZY(+_sDc%R*v4|7i#O>PEUBOdYlW? z!zG)-u`2lSPsp(foUwHY37OwnM(6x(j%&=-3e`zNR)-_d&S^0pE$}e=`FAbBe_DvH z*z?G>yk_pKaCj|o*43piS)dfI#}6rd`6YpG%A>CnVf^vB{`acF=Q{zWc106&X(79G z8f|Frovk&KcSB*Zzvh)H99;)KQZ#+FiD~frK*QMi`{<@jVvZkm=KsvAJ6D)Ey_iP0Z|oGy940yR@Sn!oE53@X(&12oK3=FLmUkpHB#OUi+ajB{vr#jB Jo*L22<;y7Xv_E_w4Iti<(ApVh*kD@fL3+cs7n zT0C58MGKh@VQLdCkA1ens$iJ=#@Z#TkNb8L2r>%Z74%$T!4EQwIW2z(XN549Cwm^Z zYinT}Ec_&9dUF%WLu`7-sw=qvVb*MDt~A~VPxza>?$s5k(O50j@$YIGxF3wU9;p@Sak1gMsnhq}Q?9ND@$mhnsn;3bsqK8#ab35i zW7tu^Ln-RCZ#M8yNT!DepQJPgZ_=C5pGZ7huH6(u>X=NOIvY##*$GzGnHtN{`gLjx z?UsBN1WcvAxFL4eqpx!i=FckO@yYXi?2p?wr;1;eF~~R)#3orH3sncTa2+*_O~0@f zHTuE#)=DMVk4m@dO0tV*I-*HEX>YVcVqn27Dt#fYO33~RkM2u<4EWeiZK+(ylObAV z-&VEwwuw%O@&0G3?hvPcT1)u{zo>@}$5WBE(Zv}ch+C)79T*A=d}U6|8^3sEI!thprjS=>A3!m2Ui`;fdxHadya|=UFnR>0Wb>aiwRH##Hr_gRpJt4M864H=1tXKG8fqt$&zb-j7 z1OPw%TKFx4bdlFkBg0O3kw5QPqDB}_C|)_?JzubL%ex$BPuku0WPfw&`*YRsqVgJR zN*f9#LZx1;l)usc3MGmYrL;_~tR9^a;Ov?0Ien33K8#$inXndY1DhyP?EtWFOVp$O z1||%ftT(yVkO?X@u*4CT@7tl#C`rZ?QdVz#;nFbfkC!gZ_r^_YW>cP83eS}A4ylsd$f3QKF!fEQ=^>y_ikdI+jx27)uv`MpxE|FXT9@hpKh0)KdmgzXJF`Jm@G4X!IPbo)Af33tG#I9;-wJ$PY>Arax<8P{M zvH53&nnh9n2{v9LcQ2kOMS8PmLv{V<%pv`%kLuw!PsklJZ~%kll8m?5j$I*@g0!}` zXFR9&i!{R|O3Puv&Lr0fz!%#j8)cLhR2l{(s2RZz{|~uH>*TRlqH+vv*JznZ5AJh; zgHtL${A1+h=c3Kc<(zR3To|7Tyz}2&_<q#eyuUv#b$k;+jbA#bWL}r zjm{v#{6pihT;*QZVM4caY|A#~*0z?rD=Rm*x?ExCTHr34jxyKB!DLGBo5QocS^jPI zmYed@Ql(GFb9D|=fyuXP-xYBw1aq^=f7oIgigy3aE+EGq^Me|A?D6RH;SFbHlfNmG z%1!pxYINnK@%Z$K4TZz?z;FuH`GfUS3*Sqzm;PXS<>^)B{;@aE24hwcaRK6AurM z$#)Q%S&?np?3z#Wk23ocIFTRyc8NBZBXCaX=le(|@-i ze6QW&)nwfzE3*AE+nyIpKYez@^Vij&&_4X>+*)XQjiw9A=_tvAgG1#M$4tFt5?vGP z8>lr6HQaRQouZyz^12MpmOqiKq@=$dX}ZI7xheE)@&2wx&a{;7Yl(Hc4F0UWi;JeJ zLIi~nehmBj=1@P`U1oZEX;lcUNu{<74Ib#-NeENE-fzs$&o9s{F*XL%nm8Lk+hv@@ zXZsDhrX%wyGP_m1d`QM!f-uHc{QEl^^mgUIEl?+qVFaV^y>EF`>bp$ColW05d1GyD4b9)9cOIJmpLMny$Ugem`x{R#zOqhfh^(1F+0fs{{m zlKRH;8KFr}c-Psxw{KM{%S`*?QoXKZ<#MvK4eA{+J;?+d8H{nvqJDt#P^?UO?eb~0 zI}9rM!B0y?P8S z>ob5lv@|pa*@+xR?JqN68Ik@tl)}o&`kc!Q z`>Yn6OSk6JEw}{J)6>RZY8Ji7a*(3Qz~Zj8UyU?0(%}}BR0>b%Zno3g6wW?AJ_g`* zEgeB2nwvq4PCg>`Uu|ov=@(x%+(YQiyi)!2t`2p3xFCw zdng&As;7sIBLhc4MfC(NVmQ=QMkifUCsm6O78DdjuvmF<*h3ledbf1ubZ2s89DuGd zR{mml?Wg(r+dWPW?&!DL7V1q|ZyH(Aemq7cwm&sw`>F*i3iC#Ta4$qbbJZ1ppz|qKG=96;4AlsTUJI!z1^a*BcG{fA{p=y}k5gKR-V`u~6~F zX3waGn7Fw17l}3VOLXJ@fHak5rKY9=6pIxPe9F`_GQtUt2>jK^=;)QLt*7|-2qlhH0nURr*y;F>Px!wkME^(L;(u}_1!Q9z8yi#8U#A-{))e0anyPUg;^}X0 z%Zl&Ka7%y0zhGv}N*_K=;)G4sO;dVRXy6)LhXe559%JO@t^_a)rsnYQ5Y)E_@byp= z?IzUXm9qo9I=j2Occ_+SGcq%GX1@mp1`50$25VH{+@M5XT2gXrMiU@&ag$)z2oEbT z3f;LiiP)fo-wmN-Y}Wn>qcUto?oC=lt``IP5GBq*1zA~H1qB5&GqV<*@`?)O)wMOh zikE25^ZPax-QC?=KCVuCM90OMt>`BmZ3c?6aT#lY&w(eH(5a}Zl5H%jLgFF?2cvX^ ziqS&n>|qk$a-E)z4*LjkwiS~NxxMU^A*t3OWE!{=80za2XOe=OYbxmJkxQZcOhMsk zazBkeSFd6-dG@T7{^gX@DrCrybgO+rO+icysT`3jyg;TRm;5KJ&5(|dZ}L!&=mU`kXPF&{ncHI zd1YhcjJAkD>&@93Ta^mLblzgOGpOmEO7MG#X}QC(-XCMJ~F3ZdRU>U^a>4 zZ_0i`BIhA#Z3at!WI7cYAdIt<<8yr zLTYVkVPQf48K3@d)n)O-m(B7|+1c4OH8q)fvS3ezy>9kqYe2VQG2^t~82qW4qwpIQ zln;flSMrY^(>|~*y?2I&hAJv5wqh8ZD1r1~LP$p})fMFALQ`PV&7Rk*Ep_gvOe-Hs z44QJu_W-e8;{MGA`1ui_1m_D)9;BrqiT11A^GzO;zkmOxf<=8QAPEl-2eZ1oy!`n) zz8E&fD{FmNP}l`(0;)m zoTslO#z6Nve&9}g6B@;Ob;ezfl84{Lv$4K!)@#;DNC0hqNcbLG_$S06yRcC1)Oqe3 z4%tDzA!`|i>@S(;S083f^yrfK`bM-*7))PTtRKPq0DF;nHBqFCt_UzQjiLyTLU4052QRxPjO={!y*JPZ8rEwCCCxge zhKNsmtj&f}o|BRWhFYF%jwFceM89|^A<^Y5At5=a^sy#AIYr1L_#>)(K6!6ief_f> zDhqf4>}q^p0l#Q%#5rj~%Ing+(vA_x-KQ*b*s~?)&$Pn1nBv z4AS`Xu^G)9*& z`$)uV!%%(Fl7RfB$6Zv}Q7+Nkm~bj4flb61Uwk6{cVIFW-FJ#WQBoHNYh0k^h3fJ1 z@@kliPc&YxC#8Nq3QF(-oT-yr%pMATCDsP6csgOHQSBq61JLRdy6wDSF^r&zX}#j) zRJM{Rs+i5o%LCnEVqya4AoAq$c;k@GpUh=?T-`-^BB>$=pQS}l(ofX&H#5?+G$cMI2LWrU(`J?c{aD?CBPpH zcq@*!w)W3cgf{ejZOG2rn&avA_^)^I!PB(T;e~p2Dj;y6LV!I>C+8G0AEqKj?VGE$ z@0gx`N;VDjD5$_Pf;z#%>JPskqcj2TX7o(@3yv|vVqFTT-TPhMDrg!!Q#xX$Fzoqj zjWLmGegbb07bQa+w$*S?JT?ZOulZgvNV^%`#&VhUlQuG~gs$$=;&ov~BrKROyyuUx{V+Y)%ib;A%-}|5qJ>Mi52>-1`LY6upXd~WSVOX|J*gbh!XTY$oAm@1RiT6$Q(-yI#K{~(t2;kGZx3lY zf-xIE@e**_CMs6p+=0VSm)ejeO7Vnm@GEYw&!wB8yHlK5D2dm%>q)i~#riv2TS0;K zcFXNoUQxU;z9_94vm_Q|`VcU;&6@8XWWw)(fi4g1{raq|EP+_sHxZ&I$%1ZBfYC!K zLYxdz3pqQKGQ>~18M`@D0sk)g2hW!~0!(GZY!BOMF}w1l@qyMYHWyd^Gu6mm*%l$rgI8#}&QyBVVY+zv%%HHCgtiVR*de zBB20UnaC-C7oU?Xwo(xlHMBly>N@gKzcY$BztR*cUIg_#T#To|2N1T3$e$)pi3T z$CO#(D<2Y@rkpta`1p9jKyPm=3-*^bV<;2~7LbAh?l(P*l-wSzM-xBZcnVx4CnN;g z1zR-_e#-gv%g9&e=$Qxv5fQO8n~j!3@(V)rY?i^=v# z?P4d;B|taVVGFWEO2B1bWK2h=>kn0nmv-!8z@KO{4dvSc16J29 z?mSq!arZ9{D>DLsirNkSJsvXNNz-^CV6dvrn>s)H3HJ@%v}8El$09nv9KHn55a z+@g~u-!ypLy2}}26kcx4f#=c-Ky|5};2>LKk4Je2+8FnizAja}-a20>M!HR%+XO^&xP9elPQNW4GIq~PuqDCxu z^A}A6H`Cc_8&Wr;P+qSa*Q)VDGm1+-QaGcF_?}kGdkxRQ6!Ugx?xZn=%n4*_GjU*E z#l)_fHB(InKr8R`lpHj16&}U-GE?o@;)`e&>oI^k6N7 z{Co74|BT+ul(3x{dMx0QKF6o7kotyouucbWTxs*$Oc}#J1vpaayr(np(q91v#_9{C zVtWmqVdv_nW(+u0r3z#w)|Xl2=Hio)5jFH{n=g7_>Z+uS`}w>JoTa-l@U^k~WU;#oc%2uu65KWHMlR;*5@zmtwyRD4Jh8mI{6tvb@b)Rc zaxYou_vaaTgFx4jVLxhWy4o)2T{as`b_0kK9Qa_3>4EiS%4UA2^lyC$#$a8e78h8i0izp@fdXm#aMMJ0${W1$%Y zZhj{>+cOjbKYEE@z-z+%B0i~;qwrJAFS-H)rdw?tRk1Ts^xFGQke4Q9^e5NH@Haxr zQ|pD=6{VusYwUWpNo=K?(2V%~>#D5D$-M2n7pBGE0j-XaLR1Rl8wRjBaA>zH zu=G7UjC&#|Nj7d;?r+&Mcu_K)oT^lFs>l*Qs{gYx5FIf;F0FKh3^N&^)_IOA4E}tr z`S4{#MIjjc$mqBy-0$r!fPn}ozFN359H`c_68KI@OL1Z0?jnYHYYM5|WN%p{H}}QJ z*0z-A<=Lz)PWkgc8ZA^P8qU2H9bvzeSCPhr4Yy&L^Tiun7^W;;*?|o zH2LSxDCD4$Q!b2eSKWRehl175pQ%p<@ z-_FL`nmZGRsi>%kz~RJgrk3DtC@ke3Cm6ZY$WjPdExhPLA6-mlwKE?x1K(zVYDsYQ zsrg?R@GJf-{jW`rXGB(3J80gu{tYl#(AS2H7@%n5JL|DK? zE-P&NEs10B4TL9yRVZj^!0kAF>4z`w;|hGZAc7(dIQVk8jOgME!NI|)fR=+Id|=8z zbOC1-hYUMCjK^w1(BHPRK1>G!xDx0q?fkzEnSrM_($+>TD41;fSS%1x^jpz82zV+V zc6fZ;pwtJf+RiB#&|u=(^vi2%Cdp}%q#*gt7D%u!8Hy=_b@r=L@^B(z;@h3~_w~Rn z0NQ^6C^WD%>Q??Ur~>qU52y>mmvTOMr3C!<0IS(qS=F1!c!8lGit!f=cD?^cdHJj9 zwY4=hZEZII><`QzBoylE>P}4PB{ct`_%rj8L7Ncg=nWn_qA+4X=?034s+h*i3rGGUa0s-ptZljOWLeLyb*L!zrl_1`^Ola)5CB zba&bTP-~9wpVjTmsFOfjr`bv7wV44e=gq~EFOX{{PrUa5#~~$Uh|>e%)u0*(uM{=` zGcJ2_7o0s_p!ptLBp{#pb7bt7DDsk{Xr(jAT&e%l0dPI(o}Yi74sH92TAwl?YS;*n z8&m~BA@C5CDuCo7KoA!blR%IdCc&bG5fc$nr3E2e?|a{q{D2o#^q7y#2FJLZ-KNZ&1)-LIZU#LLZm%joV{PbYC z<5kfmuw3kUIrnyVKVP5O$VjqX&RCUDmpqmS_3)>r*ENz=7T)?5bdmFe10@a6?>#}7 zhoPB1#2=yPQssHQSF_)EjJxOrHfQR@f`vsx@k+v6Dp%AwV~4TxLF^Y77i0JUx4#@s z+zv%#fOwf6Me75Zu?7%@w7k5$U~LdBIu!{6VIY~SR`k2Szti60HW)(7lml2muNnXv zwb;>2X}l~C4#Y%>;P~&~X=7EDm8okScBdX9o8Q`-?jZd8x5Rg3o3tJiheNgkh)p}&u;>OL5G_316@8M zFFU&;w0JG;B5M^{%jNeyBM-~>>RSXdht z&~E;~$N^>Ui1n(``~J-zk-TJJ(dd8L0RD{F70pMmI3Cg}xj;>sb*X%ehk)UCA`te9 zsq_7o9Az$ee}}%wHqo<4K?do%MqP{2+CK#WKTLszVvj zna$aP5KnAdZh?N|Md1d`5p+tFDZr^hG(uYl=C zJH4mDz=5C6Zx$%Qfc~gU0;o&#F1H?Q&sbkoH{gJQrDpLL#LSl=&SZ)AB|IL)H2GG0^9>}v1l&LQ?Z4XUh$U7+9fjUd#n84mUxBp)aEd-o^OkKJ zd{Eod1bkT3DX=Lqe6UE^#%`{*BO~!qiov)-rVX0hgKlK|jc=L&#t85sWjS?P+uL(y zsT2n4X(7O=_)5pmBxkzSai>a+!~yY9!hMwl@=1lC0>r0wuNB}Rz1k@tKU~HU`*;53 zezprSYWHJQ%?`{4z(}PP5+GD6_zh150>Gt*cl=G?NI&!-Ki3TM+IhFud2a^rvPeMy zRM%jAsXTrpABpacF=`ly*drqN;A+W-JYj8T%BAG7BvM&-*cg;0Gh&^3z^_PccXxrs zO233(4;&FcJoyeS^8ifKYP&xchAH4%fs=y(vW*G>CegG4)uC4CkAE`nvM34mR%}MF?#u)twEH+6kc@&a zE6ud3MhUi9fIUH^ZDX)DH|f^cRCwzipa5W30L>qyS^{~+baD>+mCn%|MOxTBh*`Dl z0W!WC`C=0JV(D}ih;<;tVjhC9w!X+4z9e3ouh33z1#;&v20;(@@f|Q>N<*N8K7w9X zTl94UAUJ*B{28L{8ybqON4S}whebyymiPu7^)bE@C@|$)++jfRLI(jFX<`f5&eeWN z&`?vOOZ0<|HFG)6R9ax9(;ygs0klpzH7O~iH4q_$ir4+b9Q$)R`G_AwK-!}LDs1Dd z;!*;{XgV!)@ATw{p1Q*+f6uVgcrsC&`y4(y&OICOF$(3u=9^t#K(Dd?=nt%?FO`p zQ8uW#ajP!iYa}BU36n^`$MA`XUwHSR))71=;$&_7$|6zysDyzJF`ayx+wJHB3!sBx zF_$1620KdHhmlJjnNbS5a@Z~i)@cCO)B9}zK35vB*I+Pvt4F{n1wOtlNLo*Im}zN| zVIx-#q9E1aXH>#1_Ni=fJ09Qzc3s#SiS|Y?F>@yi-Qk0*BT)W?L=Q}CkT`DhM%5b| z_eN6F@I5{?H8oApFE#w4hxNny8Fkjy>c&RS!5%WHPdy(2V4d3y!AiJd%(0pJkXocQ zTQp4#4KWDR`M=7rEfAxFPAB~N;y@sYD&ir}rk8wHX+Dwxh79D`(^LF$aIN{Qr+l_< zZf*cb+>K;PgB2TNWkh^u%|&hI)6&wi9-o!R)YI`9V0;!d=E2(ee#xhV`MIgXyRttY(Cocj4n-S{# z@QwK$8GB%`M=(Yf7Vg#e-s}tvz+ZB9a#Ft?dCs(P|Nl%&bn?vwmZ)(5e^nCy{Qlzq qGCqCy`Nn_WYWA-!Ygti8!e4%=knZHIi$DDGL{?HkqFBuE>;C|m9Y*Z{ diff --git a/timeline/doc/project-info.png b/timeline/doc/project-info.png deleted file mode 100644 index aca00fe5962a30ca9ad473c8fc8f30fa7df8259d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 84543 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

y+vozBFzC@Q*o!4GZ`lJg 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 diff --git a/timeline/doc/recording.png b/timeline/doc/recording.png deleted file mode 100644 index 5a504482fd14d8ab571e8053d6c0c7bda4c75939..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30506 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 J`CHSV{{_3+WEcPd diff --git a/timeline/doc/tempomap.png b/timeline/doc/tempomap.png deleted file mode 100644 index 40aab88862fa391a487b8aca9ba38822b1f6eb81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3482 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%0D*2_@qo@+R z(j{U2h{X6ZlcQ#eeT_7)W5X*B?tA7;Cb-(_cs?c&K;+66XO7O&Cq7ZX>69!SJZe7g zZJry`%5F$dF+U^k0anQDcE5+7j&DfqIPiU3d>0*=C@kc_ZaIyRWD@I8klypTpNwiJ zBA_a;Avo zQBH^4Nji`diKYBDJn}~g@T@G=tHSOuamnV;Tc;aRp7zoT(;zaSRO)}6Vh*`n;<`vX zY1f395a8hRAK6<;NKYH{Squ&&mqyjdrOQag?di@$#%G%Zz8$k?5 zN~xRW6=hOZk`X6CSeMWWf|x1}x7XBVhc_jR$;|d&l4_b--`=we{x?2CI`^n(<0gvZ*cXx%f+!m63X-Nbl3260i{=EYq7WYEW5$h`u z6CUz-Toq|2z{e#$YvAc6i!2e}u* zq3%J~^FJEiia+3aDxdW$8(r(pUtbxgVRq?;+|dO7{GY7nSVUBw?QQaTBSdnS7O{6X z75=H8u1=pH&SVe)pAC_>firS|RZ%b*qP}iy*3SdJh%R4)t~t=Z$4D{?{vUR6J>aEh zmPrf)rCT-;Lh$A_sI(Lf^EbNSACUMyaKhKUmkWsp(uI?E=zvy5**&t!`Tt-07Wnbg z?Yc;QDSycQ@XTn55^eF7$W*t`-`~L!>VY>wM&n{N1eULMZCNv`|F;|RXN`et1M#pR zTkcC=;~}dCFL7A4-6CwY#e+6UZb(o8qsNIi`0EG%k5Bntw8t@Q-p{fBdS+goe=GN2 z3Uk_EN!NSt{TxijlFze7^sB9|2UA&D@5L}WkKMGu$tG#RH_1yUH>z|Y59!h-(ZD;C z9Q@Z6lxo2-ZO=rx--Ek;w_68w89PnpN)4wlV@t6=5k=;zt8t=iIXBtZ+E%lWgu?Go zS#ZP~X0c<#>B0XS)+F>q#}hNhPOIhC&^vqz#M~c00RNk^;$phGiOfRlLf+bnqunni z1YO3eYB(w8PyQnQ5|kW*v>j^sk)ynkGrSk0|6NJZAJtuz+lQ=&c^9%Nmy3V`>pyyb!@}oZyomm9D9;#UtJS=n8l^X~Y)vHk z--(E_OWgm*a8J$Eg^d75YLX4*TT)W+CE9-@?oz3b4Q0CD>|m;(t*xyvz~!D@X&RAy z%AsLvWXHqu-E|MU{ZY-XD;@P|>OWi%zIa3J7M NPD)v_Lfkm${{d=~>UaPE diff --git a/timeline/doc/track-header.png b/timeline/doc/track-header.png deleted file mode 100644 index 16f89c2a7884044891fc4fddb1eeb9788f4b1fa2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4248 zcmV;J5NGd+P)Px#AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUy24YJ`L;wH)0002_L%V+f000SaNLh0L01oQ_01oQ`am|61000l~ zNkl@Ox*BFwUwbfhidA`r%ec!y# zmzVp=IrqFVK9Xk5nnfkTsX?dHw`|#>)9HSPnWXFI+ncD!Hdu`#Lq$DG=%z)D~rX7O=^Or?x9_T@S^<1 z9rF2F`t()6m2Uv`5w7uRElGLXh?|8YWtTtXs?XP7p%Ps2t&EawDA!*Iu74P%6%$;a zPOi`o6I=~7bolbN9p?zHzqt+_x$@r0VWY`sRD18=zn`(_ErKgvx#ll@=ia^hVep<==t`$vGuQ?Mur@D&ucwrV9ogW#Obp) zRAq8##{(1GC zW7m*tUPLc|1afGCp8MkazxJJlYp*EX*zLQ2Zajf)4$JON+?$oY57%5}DIdh3{tmpoLYp$JxU!OXA^W4QzoN-;e`aQ@?-`Ih=&Hn}-@QB6W`tI>- z7+fKzp{ncld=9-B_&^2z`R9p(W$)mZYu2()FI^o&gfp)E$ljYjj<0O`;L9sFp&3T! zxs!Fca_u8^cq?Wd4oTPvyy4-B3}Z9)!w}b8&;92oymAF;cb@;@=AEf2xT)*Yk^dXZ zt$Z8po6tj1+qO^ieN*+Z83uh5b4KRy80tj+ToE==&K*xmx{li`_K1q^0{#7hq9NBjNba0;7W+#N{HY} zh~P?aCAbn?2@zZgJ@H&;r!)~<|A1VdO}4~U+D`XhOBEJUxG6S??)$=HuyxGbT7O(~ zrTe|YqKe$euE8#}QWv+)B+_eEE0siodt}ab8bd^OaiuVsED=)>OcO}xR?3~{X3iEh zccY8QWLE}_>CI*a3uqDn-FordP5Uz?uQ37}4b;F0sIyA`>lpquR;U_wjv-hBdvKVm zw4KSB&vv04B$59&`7e8H)n=1irR@~nd{+upEN99Vu)~sU7Q6|}a+S7Ix%1toQRQOh z0vS6g%pSq}V5&ddP^KtbB$hmDDHIAtf_0H(b--e=Sj_dB?k>tk(AvvY+U`LSsL7OZ zyNH_QDs6YA3q1r(X(G!Gq87MH+udkFFHdHolw}`L46cwXB45e!<;#nTit=m>wOXC& zSZFkws;a8Mz(B5-ACw9QxN_#JT`0de0M#T{$W(x8H&JY^kf{LG5uzAe>3(YRtCb@#Gs~gpkOvT^|=1_he%v3C{{;wn_CqwEyF0Q$` zxwB`_)^iQ0N4UnSI&I_1qIeIH$iFz7D>O>t2uG9E99K7*C_?OnWHrxq?PKQ}A0I!- zwGQDLm)2?V{Mww9-{~Ri)+@9Fx?j_c5}ABs?%ek`ZhUk5b`V^^5GJv>@|378biejB zN+!6Xwx~JT)$T^g1Xm+}SvMn~+KF5_9FB+i5DJADT$zFOupd3wbS=YgwY6N~7l0#; zNvI#MT>0*S1H;3^wPMAtmh0EAPkocZy$&T(95w`tvV8Thsbn-D@j;9KCty=)Q|rF1*@R zyP~1w?B}PiUB5gdg@?@*%ma8dY_8Y8zVh+O_tsVBudc}0+PJc_t=cxOfi;PViAHs} zy1M$#ojdlGVt@*0jV1vnKn1iW>o6qoWWLtf!nHul3hxEc%y8YmYZqkaRIV_&f9FoK zT=^>0)*RRI@jHnc88YnH(FUG1o2rmu?y>|J<}FJ!=K8BGYL3k{cTN!atk5j9vJM;h zgWQAa5U#!kQBzX`Tz%~gBxMa}($dm^E0lz(i-GIHg$upBykIA=pY#&o+Qkf5W2p}7 zx#~bPL5{PzKCm^%6_OGiu5SGkcqV8iF~OI1H{v{veNFJ=eUv zJb#0zt*r&F{tg6i6$k{#bw)-8a196uFu5`-D+?Mo;0il|{U|lsxtU$=7P+Pu1J^!~ zIj(l}O`G&wQ&C%|a(!Tnnp@THrkbi%oPvIT6i%R^h#9Gh$2+~C7QyRTon488aFH%1O094ttXnq0X+ z#&((F4`PKhK|c&!r3TU1*a%#u4#&)yGocL*4GqOu16+~Qv!|pE_M-%@>K@Oawb)!+ zGD^C5kpm!xcb-$Y4w1-gnh5bkY)x{tRpJPy8`B51Ma^xh!x)MXGvVQ3*q;u@3G>@2R3 zsaY-*PpXg?+3Q5Ekf{LGjp1!%>nyI2sQ{HiH|-DNgto%-Z^eogaDNLNi(=aY-cRtO zqobptF$R`4aqae+xdX%$<=5KVC>6hYa;yt0zvGf>MW|FN_|cJ(kpaPSPG}SCM^)Gp zpWVw2v4v|KiL}lZ!8ujpO4oP4G#{uE=59TmHI3&_wO%ZdI~-{yzq2SdXN#J%=+pdp zRGZ|@c84PkbiY)F1%D7vzKtJL93+V_*{p^*J0zweFj&qHE`^;~%{93>v#eY2%uWzT zTJP>tV3RziS8zfby`uUM2b21ZZ0$C;$sZ9vqLV9Y=13dNDzuRs+GJU>7Ot$-vclSU zVH=GEdq6g$D(Xqd)^VhD)^OcL2rruC+6QlF3tZJ@-NNWygz%!&qMms1t}W`a z9%1w#A-pKHs5hwqxHe#Mjh*D`J!_BoC{$#pj&yl9eZA1|~K^ZUao zty$$gqL|%;@S-%}s_Em&EOYG@#q1%37o`>Jtl+BDbM=YcLkKTQE77HB`uJg1aotM@ zFPh}q&ktK~iEBl#_}RUL@S=3!TG;OuZh`BDNv`_{;YH~seUn_9Fuy;nY|F0D`Oe-? z2ro)6?Nb&G2*R5Qu1_D=IN-WSH$CnRLU>U|X}_{)Krn;g`iJJ)+IjidsUN0rRkh_T z>hqg(fDm4kQP!_2+Afs0AY6@u;QEK*>JyR|IlGu9$f9xMQLY<-tN+|L3E@SVWdo|> z?cNcsC|8AY&7K3tfh!f|8mruxySOhv@g^a>D6@PZwRpQI@*!7#VBsfczkG!2tYqNY zAD}o$2rv4T>jso75dGrfFvC0h0ap%(6En#*F#aGRyhsgPOY~e>EEdZ3?IRycqnCuw zDl+0aL9yt1dYi!EK+&}dPB@7Y5i_{f*u0BzZa9#3Z`>uV* z{`S@hlV&0P72BT* zEgHywt{=ZDUaA9LvV}w9nHvqcB6`?2d55o&EqF7ja4@ZO$CD#v@h;fXlcU7EJx_{q z_W;!3gdqTD*bhI#mB-_8gb|_{FZ({T$r*Z8JhP3EX+^b)qgtFLQTS?(P!9M^e~!rK z^Wil%5x-+_oD={K@R|Pq)u}|_Jbn#oYgtLl037msHNh4B5U7?f zYu;8+r_HME!ksc|w5c^+PnGiOw7^ST*~?m335C-%S2zI8scg-w)$*705yFd#>N}%X u_Odcw!Qwi=}maF}AUev8QZ9Wr@((VkRQHY>}O@PL@Ow*@ZzPs*ws~t!!i8 z*N|*2q(uJD|Mxzh`_AXy`|dsWp5=Sac_~-TjoDZPSU?~U+a(i2D}eR_&6W80l^KRBYM-s$_xYwhl4;d2_VoRFck9z1PWFH zfxfzcKw6JMAU^+sHu^~W#=Z`^4G(edBP3!_eAok7EMibByMcdCv2H6MCmH|ij8 z{&)vc;Dy9e=)vHmf5(40_*En_;|-)HFJkBzSz~I3M@CkbmrFG@_S&4VQ&Uq6U~o@& zH~aG95c9z~TMrKpLqqydFqn@Q%r{=F2WA(%dvbhG6cM^L|L$H-x{%YSwR+jwA3uJy z?ko*nIPv!NohJvBWoKvG=1<(X=R++uy5;a^<5|)BzdJ3rS_{o$mzKNIQYqZi-mhrt z>+7TQ+Q1?aLpIj9?mZjk&C%*>*>JOb6}OMW6<4AGM$5}MOA%w^9w{GOsZ7N2{=^7< zTM!SvB8^7F7il${{n~d9_efV)w{Q!Mya>-zL?olp80U!Z3@x3J-CO*j(!e)NG>fcef3I>yt}tC61YBqdIMz_*3nQ`KLGft`^|fMdpo{xW!_AzM0t%z z{M~*HTS^j%nrynAtvdgBIN>cR;Tk6`^`L{}!rQ3h!_`lZ)V(K3?t{V`wvz#LOhnr{ z%0r_ZEA`6q@`yjHk0$D!4Ejq9lDacQ6t|A%@9p|5ygzO$aJ zpI_^7$o|){#6-sE=;*J`_V%fl+Vfy_Boe2-d#dtFjCgk6lYfy|v!^!0<_6SZ172y12H+xLbSUoxP_)a4_oZM^+b>(j&&NVmC?V z{QUghEZnqf?@sP~=I7LN8W2OXocsj#{HSc^b%h2VXngt9& zgUvdhw|-O(?>f5%NNPT;zapQv?dd zQ_%#NSS!XVyYDfe?N}K&yqgM>m6gr>V_u{yG*gk31SUSOtLuXID}1os!=hZ}a+H^R zW?q#jd5t52Iy|gONhBpztl;gDrH&+JW#hnDnbEPaOPdW7Fs^nW8dS${b8DF<_|4R%q`pnUtAST&1eWDO-;?bsoB|CR&0v*e~JwH;mgX( zT8`0w#8gj?_};~LKO`|s$?9^#HJvcw7PTc(7E@ZQL{b@YOkw8O? zi?p}T_(@B7L1KKgy}hmY_8ToN_g2itq+1npgV2p)6?SLNtLEnHJ7?*YW_vUwtj?%h zmMHI?5)1kqfnl!cDd0jW=NA=;472myZ{vCYXYGkU4QbozObCl>4~+MZZB&$QNQCR5 z)e~(G5KRg)LVOpE&@@Meg@sAqG&TrHV|87k;L+M0Ia`5kYpA zQIQ@l!K;fF!vj3tfj(e(4Car)lgjrE6>IfC7gNE30hJfc&+zf} zL#M4i49@T?-G_GBvw$1v$;X)^4Km zys|P;=VUH)LC^J@#QwsYU^$!;oax=N>-x@4J^4SA?5N|ELWQQ${8isM8=5}AAn}7d z`|q1I*`=M<0^%}SWoaT2(A}QC^MTsjW}Yg&kEs&z#dGFPlrgcfp$@MojNYqeq}67Z znZ$Jy_*cd@hTK@3Ce*mcZ|2QKV#O4%T)r&up}pkH4$G(cd13BPy}cK?&lklTaLn@M zHa0dsf3EmIj1HV6OqQ#Sr2}heXbdGu3)&|31dG0ttJRBV)N`QI(AevU#0L0(IeGSB z79!|~5p=qS>0RDtAPq4R9;PGh`O6AOJR-|Vw};DJMjq>g-APtX&;@C^_-kuxlQPW; zs9G>+LdAv{J7c_<{yE&uo66+u>@(gJpHBX|L`ywP;Wy5t&Q8Nw!M5YKA(Nc6bXB%f8^3&i zFTRVvnWS-!k2h3{kC%_vean*~pcPal=~#RVb46p$`^Hb$G5WrJUgp)O**|yVXy1MW zf(e(%?&kLKiFhrZHaQpY;u&s*Hc}}{%`N`D`QXQoKoI^)k7bMBeDL7c@uqYC>T0N` z=RXJM3_cd}?DeZ8E#-j64?0_7NUp-$##L2SINMSA>7=lppv zF(w>cK$BHY+k9hyDF+$$g+ePfSb<3$XY04{Dng5)yK9 zbo?T3g|?ySKg)#8fdHJPbG0uIxrFxAivFhqO-)P7x(Q?mT|GT# zw?%Q*l89@AtMFuAC~7kNl0z+;adHLA8FHos!o#0e6MnEG4}HBupl3?c6_vCR`$vr6 zehKg1Dlb1Q6%WIXL80;~DJAq*7ButOxXNCT;^O16nT@wyuHOsV zP4}<(E7+fyd@6R12q_6EDdY1X-khzoc%pp(_~KfPC^v(eOd*}Jd~fX^;o03g<7Q0x`&z} zp+-En8vGu~baKxbv%9n7>*XbPas$RAES#RH@b>j*{_{FIN(gvaH=`4bUonmzS3bVp z{G>g3Dy*fs;w-Di;dcLE4}`&WvzJJs`?WoDT{ZIE+UdTY_|;nqU#@^$W03wpk@EwZ z1<}%|-604qp`LJ+G&r|LF%8b`&@ecb4wnXwb`fi$u6t1ZxJBbLUob@zyZBqQ0Bf+@ z$$CtsQqcgcx2TrYSj@}sL80_8RrdkGgwQ4T&VmLavId&F`ko{ThchyYo#SneL5AE$ z+lXXRin(~{SW^jv&JT9KErs2;z7iZU1>e6j%PA-f+;MJD@tfCyeO_J`5287ptI-Wh z(wjeBk($c=CI)FwbE?v~I3U?KwqteWj0_t1FH8Ygc{TjbogW@)Vlpzfe{D_q`uc{1 zgcMLcVL5pGHuBs#I=_)UAzVX41G8-Ag9mZ#$45uAb8~qRjWVc`ECkY0+1eUyXxQmE zk{KNnc=zsa#2F?Cq+=0qMYnrM_a=5U1GZuJ(V57;nqBoL*a*^4{JLgYu#zm3S7z6H z=YfBgOm$0y@%AcF1UtJ^8@{U@-$i|yFqT%9*72-?TKRH+XLD3$#we{^3P9a!m8Qxo zPNf2BOnkXEOq=8KPon=d|Mm1)r7V-kByZtjhu6Mp8T$4sD=TG_NuK1>!Nd6u_~RdhB#-7Jky(bv=SO~49cDMMWQ_mv(?vJcabb9*o;E>kcZ=ybUH#avd7F)}KqDtl$ z^D5N#$kYNQ`NYJ8-z15K3JKMujc<1mrMg%I1O*uu#25}qiHf$hx0lq{`)&+Zm|~c? zBX?-Ku$IaUnef z{*DAAv!E1sXlUsFdA7B+0YxJN#Nd&gogI1Zl4|WBpofLKD{QjQF%5BAS4F(5t<#f} zFV5*5s`3_Hwk26VIg4(7-LW~P*XQGsWL(QGyyEU(&cgi zmBmS=rz4YupOH$-%KYZv{wV^JgEp+(+$2*NpFsAjtEzhY`pWNwhaXB6MNks(s9Ur~ zE(T(7_}Xl9AOV79^}DWEyFK&zoT=3m5Ql-PKl!1l`=?xahnJpElfXN7#%t~31?Vlk kS2=l6C5ic?QoAQ~(^b diff --git a/timeline/icons/hicolor/128x128/apps/non-timeline.png b/timeline/icons/hicolor/128x128/apps/non-timeline.png deleted file mode 100644 index 31a0cf0642229776d12105c86e3760aa7b709b4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11384 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 diff --git a/timeline/icons/hicolor/16x16/apps/non-timeline.png b/timeline/icons/hicolor/16x16/apps/non-timeline.png deleted file mode 100644 index c7ae57357674c761d4cdd68402760bc486064e58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1404 zcmZ{kdpOez7{`B@>p09D%6+V8nQiWd*g_MzAC}5-+gL7}&E;|1+?s1BLP|JPx;$D> zEw>Y*i!)K?jD(VuiCoUq0PqDY zWs3nI84Ca(!TU_&m#^N=e@&^8Ztb3iCENJm*9Nk82EkJtm?Ib9D| zLZICczmnq>5Ula!SytAm3C-d*egK1_Ah@NS=yLU`FuCus8diNkb>OUr1*94nsd(T@ zC2FeMm{8@k=9Ft)`ti~NMrl%li=w|^m4HwV+#Ocmj*F(IaY;nkuzEKHs zb2KGy+&B8UcHU{X$Ft;>;hSW0D$3lPDrmKOzxx~)GGNQif4Df$d$?%axX(#?`$cAl z0iC)ttUsUga8PE7Co{FCK!0FN%9$tSAPWiVaRZ(&xCQGFeRn0~K_w)?2>Bpoxi5vS zacslyaL#3V!26U!Xmd#z@wcA*C`CNGE99H(xpz(rOC#e#J32YHG z>wSuRDb*>qnwM5}T=R8NYRV2sJn3z{;^b$s@==gl&w6(w)@WN~T|a!{RLG(dgb8l5di{7Nrv!w zhHaX14wO7=BSc zD%8*gco*KOT6Q@m%h(*UvzCdTo5G)mh93(NBr;WR>MZ!q%R96i5p^f-Ib7u}`jy8^ zjJNqKC3g}Ipe=%g`&Dath9KS5ov`V*g&|)r&QMBHe;21mHk6l(Ja=igP2bC+r%rYV zPr_>V$sVo}rK4t&p^r-L+{nV!@gi2sUzZhD?2C;73a(n8$QYz+=^f=<%L{FKUj^N| zzP4+R2|#0mOwe@mQCt5?O8idL~#9?engWf7Pi&ULab{p z6(OqcXTDg~$l%8A!H_k^9eh3`;9t}v6-=hi4x>`|t5I0N<`d+sNA+0t>qyk8P*YBP ztqL;P>oP+}pf#hx^^Km4VLRIoUf)E`b#9-v^9fV6YuflTUOr;dM^fB%&uadg21mM5 zRTYLZj diff --git a/timeline/icons/hicolor/192x192/apps/non-timeline.png b/timeline/icons/hicolor/192x192/apps/non-timeline.png deleted file mode 100644 index a080632c8085bfe273a0d13ef9d53d195d802d06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19113 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 AN&o-= diff --git a/timeline/icons/hicolor/36x36/apps/non-timeline.png b/timeline/icons/hicolor/36x36/apps/non-timeline.png deleted file mode 100644 index dc95873b85e9d41612f23f44b1d649cc9c24232a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3272 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 AjQ{`u diff --git a/timeline/icons/hicolor/48x48/apps/non-timeline.png b/timeline/icons/hicolor/48x48/apps/non-timeline.png deleted file mode 100644 index ca70cdabd28b5caedbe641bf8c79acf39d0958ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4539 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 MwTv_?pboG83#?YCqyPW_ diff --git a/timeline/icons/hicolor/512x512/apps/non-timeline.png b/timeline/icons/hicolor/512x512/apps/non-timeline.png deleted file mode 100644 index 1b33b182511c36b7d053577315d8e124a52270ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18930 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 diff --git a/timeline/icons/hicolor/96x96/apps/non-timeline.png b/timeline/icons/hicolor/96x96/apps/non-timeline.png deleted file mode 100644 index 2bc5bb481313fed4d9fde6980266eb8f8ada9022..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9184 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 MR#m24$~^dg018Lbf&c&j diff --git a/timeline/icons/hicolor/scalable/apps/non-timeline.svg b/timeline/icons/hicolor/scalable/apps/non-timeline.svg deleted file mode 100644 index 24ab03c..0000000 --- a/timeline/icons/hicolor/scalable/apps/non-timeline.svg +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/timeline/icons/icon-16x16.xpm b/timeline/icons/icon-16x16.xpm deleted file mode 100644 index a813e41..0000000 --- a/timeline/icons/icon-16x16.xpm +++ /dev/null @@ -1,774 +0,0 @@ -/* XPM */ -static char *icon_16x16[] = { -/* columns rows colors chars-per-pixel */ -"512 512 256 2 ", -" c #0001019A0001", -". c #09E2064602B5", -"X c #06870889067A", -"o c #0A1808C20522", -"O c #0B3C0CA50A0A", -"+ c #12F50C2A0541", -"@ c #18940EBE051A", -"# c #10100E0E0909", -"$ c #0E8810460DE5", -"% c #19B0106B0642", -"& c #124811620CC9", -"* c #188E11350975", -"= c #12E714E912E7", -"- c #187816F71131", -"; c #170219041702", -": c #1A0B198314D9", -"> c #1B301D1D1AF0", -", c #25F318CC0AFE", -"< c #30301D1D0808", -"1 c #22821D9E1434", -"2 c #1EC520C71EC5", -"3 c #2F2F20200F0F", -"4 c #36E122A20D22", -"5 c #3C6F25250C73", -"6 c #276A23BF1B96", -"7 c #369325821336", -"8 c #386729861847", -"9 c #22A6243E21AB", -"0 c #28E029042525", -"q c #2B8A2D8C2B8A", -"w c #32322DAE2424", -"e c #2E3230342E32", -"r c #38A633DE2A67", -"t c #32B734933258", -"y c #373239343732", -"u c #3AF63BD53A18", -"i c #430A27D20BB6", -"p c #430728DD0DA4", -"a c #54DC32050E3B", -"s c #44442CC513DD", -"d c #44592EEF182D", -"f c #4B8B305013FC", -"g c #444430B11BB5", -"h c #4A7D34DB1DAA", -"j c #526633B413D0", -"k c #5B2036991139", -"l c #5BC6390E14AA", -"z c #523536B719B6", -"x c #528B38B91D73", -"c c #5B433C4C1BD4", -"v c #64553CF51356", -"b c #63463ECD18C3", -"n c #439037842842", -"m c #527D3AD72185", -"M c #59A33E5121EE", -"N c #42223D5D3595", -"B c #3F3F40403F3F", -"V c #6767406B16C1", -"C c #6D6D4067115A", -"Z c #642441161C3C", -"A c #6B8544831BB3", -"S c #756B4540121A", -"D c #792D4875157F", -"F c #7A474C101B82", -"G c #507B41C23086", -"H c #5454474736B7", -"J c #63CE445923CE", -"K c #687446462274", -"L c #6D4549892414", -"P c #6666490429E5", -"I c #6BCB4C222AEF", -"U c #74344C7322BC", -"Y c #79394EE422CD", -"T c #7A3F512925D7", -"R c #7ABF53E72B7A", -"E c #68B1532E39CC", -"W c #7AEA57773272", -"Q c #443A453B443A", -"! c #4AA0499F4545", -"~ c #4C354D314C25", -"^ c #55554D86425F", -"/ c #53D451514C4C", -"( c #543155325431", -") c #585858835681", -"_ c #5B655C665B65", -"` c #65A5583846A6", -"' c #66665E5E5414", -"] c #5F5F60605F5F", -"[ c #767661E24909", -"{ c #666662625A5A", -"} c #76CC68125580", -"| c #61AA62AB61AA", -" . c #676768686767", -".. c #6B786C796B78", -"X. c #75DC6E076363", -"o. c #7777717167A7", -"O. c #732D742E732D", -"+. c #777778787777", -"@. c #7B207C217B20", -"#. c #82D84EF918C3", -"$. c #88AD50E31684", -"%. c #8CBC561B1D63", -"&. c #945458D91ADB", -"*. c #9BB95CF31BB2", -"=. c #A1A15F5F1919", -"-. c #ADE6672E1C1C", -";. c #881857F324C0", -":. c #89265BD22BD3", -">. c #9B705F3420A1", -",. c #87FE5E5E31F7", -"<. c #8F8F61612F2F", -"1. c #9BB861F024DE", -"2. c #9494620C2BD6", -"3. c #9C0965712BCA", -"4. c #88B3617E37A9", -"5. c #99886879348A", -"6. c #B0BE71052E2E", -"7. c #A1F46C7D3413", -"8. c #C2C2729D1F1F", -"9. c #C1DD746223B6", -"0. c #C8487A8E28FD", -"q. c #C3C37DE734F9", -"w. c #97926E694141", -"e. c #924972A94F06", -"r. c #886B733A593C", -"t. c #A3A87674473B", -"y. c #AB007B254848", -"u. c #ABAB7E174D4D", -"i. c #87877A7A6893", -"p. c #7F7F80807F7F", -"a. c #FBFB81A902B4", -"s. c #FBFB85FA0B80", -"d. c #FBFB8A0A1394", -"f. c #FBFB8E191B1B", -"g. c #FBFB90901F1F", -"h. c #DD2E84F52870", -"j. c #C8A981FC37FA", -"k. c #CBDE855F3BB7", -"l. c #D1D184843434", -"z. c #DE188B3C3333", -"x. c #DE478E4239FE", -"c. c #ED638D1627C5", -"v. c #EFCA90FE2DC0", -"b. c #F67691912626", -"n. c #FBFB92552333", -"m. c #FBF696042B82", -"M. c #E6A68D8D2FF0", -"N. c #EF93946F33A1", -"B. c #E8BD9393398F", -"V. c #FBF89A8E343D", -"C. c #F42F983D37CE", -"Z. c #FC4C9E623B55", -"A. c #FCFCA0A03F3F", -"S. c #B8B880804646", -"D. c #BC7585774B92", -"F. c #B792883F5530", -"G. c #98988239661D", -"H. c #878782027777", -"J. c #98988A0A76CC", -"K. c #AEB891A57017", -"L. c #C771892047B0", -"P. c #CCCC89DF4360", -"I. c #C32E89894C90", -"U. c #D4D48E8E44C5", -"Y. c #DD6496874B5A", -"T. c #C2978BEF520B", -"R. c #CC4492195481", -"E. c #DA4E995353B0", -"W. c #EA1C9C354A17", -"Q. c #F1F19D6444EF", -"!. c #FCF9A28B43A7", -"~. c #F168A1F74DD6", -"^. c #FCF7A6694B66", -"/. c #FCFCA8A84F4F", -"(. c #ED42A24C52FD", -"). c #F107A4BB53DF", -"_. c #FCFAAAA453CB", -"`. c #F2CFA891597C", -"'. c #FCF8AE585B43", -"]. c #FCFCB0B05F5F", -"[. c #C3189CF272C8", -"{. c #D252A54573F4", -"}. c #E905AC016A14", -"|. c #F2F2AD3D6333", -" X c #F7A1B1B167BD", -".X c #FCF9B29D63C8", -"XX c #FCF9B6B06BA9", -"oX c #FCFCB8B86F19", -"OX c #FCFCBB3B73F4", -"+X c #FD8BBEA17B5E", -"@X c #FDFDC0C07F7F", -"#X c #83B084B183B0", -"$X c #878788888787", -"%X c #8B198C1A8B19", -"&X c #8F8F90908F8F", -"*X c #989892128706", -"=X c #94A495A594A4", -"-X c #9B5D9C5E9B5D", -";X c #AA8D9B9B87C0", -":X c #9F9FA0A09F9F", -">X c #A9A9A2A29757", -",X c #BABAA8BF91C0", -" t BXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX-X B BXLXLXLXLXLX) +.LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXBXq X 0 BXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX2XX e BXLXLXLXLXLX.. | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X X X X X X X X X ", -" X X $ mXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXBXnX1X( t X X X > -XLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX4X 2XLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX2X2 X = %XLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXnX X X X X ", -" ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXO. X X %XLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXBX2 B LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX$X X X X X @.LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXt 9 LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX-XX X X X X .LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX! X X X ", -" X X X &XLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX:X X X X 4XLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX_ p.LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX4X :XLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXO. X .LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX5XO X X X %XLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX$X X X X X X X ", -" X X X X X nXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX2 X q LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX:X 4XLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXt 2 BXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX2X :XLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXQ $ NXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXnX X X X X ", -" X X X X X > LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX1X X 4XLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXmX X BXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX5X X X X -XLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXBXX NXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXmX X X $XLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX= X ", -" X X X X t LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX . X X ..LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXO 9 LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXp. X X ) LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX2 $ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX&X X X ! LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXt X ", -" ! LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X X Q LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX2 X y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXt X 2 LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX.. X X X X 2 LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXQ X X X X X ", -" X X X X X X _ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXt X X X y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe Q LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXQ X X X X 9 LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXQ e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX_ X $ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX_ X X X X X X X ", -" X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X X X X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy X X ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X X X ", -" X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X X X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X X X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX . X X X X X X ", -" X X X X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ X X y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X ", -" X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X ", -" | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB > LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ B LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X ", -" X X X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X X X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X X ", -"X X X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy X ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X X X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X ", -" X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX0 X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ X y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X X X X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X ", -" X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X X X q LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X > LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ X y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X X X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X ", -" X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X q LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X ", -" X X X X X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy X ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ B LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X X X ", -" X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X X q LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX/ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X X X X X ", -" X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXq X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy X X ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X X X X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX . X X X X ", -" X X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXq X X q LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X ", -" X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB > LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ X y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X X X ", -" X X X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXq X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ X B LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X ", -" X X X X X .LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXq X X X X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXu ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ X y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X ", -"X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXq X X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy X X ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ B LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X X X ", -" X X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X X X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X ", -" X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X X X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X ", -" X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X X > LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X X X X ", -" X X X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X X X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X X ", -" X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ X y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X ", -" X X X X X .LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy X ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX/ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X X X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X ", -" X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXq X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy / LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ X y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X X X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X ", -" X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXq X X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X ", -" X X X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy X ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB > LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ X y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X ", -" X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X X X X ", -" X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ B LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X X X ", -" X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy X ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X X X X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X ", -" X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X X ", -" X X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ X X y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X ", -"X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy X ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X ", -" X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXq X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ X y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X X X X ", -" X X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X > LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X ", -" X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXq X X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X > LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX/ X y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X ", -" X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXq X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy / LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX . X X X X X X X X X ", -" X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXq X X X X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X ", -" | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXq X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X ", -" X X X X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXq X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X X X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ X u LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| ", -" X X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXu ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X > LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ X y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X X X X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X ", -" X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ B LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X X ", -" X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXq X X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy X ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX/ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X ", -" X X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X X X ", -" X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXq X X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy X ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X > LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X ", -" X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXq X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ B LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X ", -" X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ X y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X X X ", -" X X X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ( LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X X X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X ", -" X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXq e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy X / LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X > LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX/ X y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X X ", -" X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X X X X X X ", -" X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXq X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy X ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X X X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X ", -" X X X X .LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X X X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ X y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X ", -" X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXq X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy X X ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X X X X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ B LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X X X X X X ", -" X X X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X X X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ X y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| ", -"X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X X q LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X > LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ X y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X X X ", -" X X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X X X X X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X ", -" X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy X / LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X ", -" X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X X X X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X X X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X ", -" X X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X ", -" X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X X X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ X y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X X X X ", -" X X X X X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy X ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X > LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ X y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X ", -" X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X X X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ X y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X ", -" X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy X ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X X X X X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X X ", -" X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ B LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X ", -" X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXq e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy / LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X X > LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ X y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X ", -"X X X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ X B LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X X X ", -" X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXq X X X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X ", -" X X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXq X X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy X ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X X X X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X ", -" X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X > LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX . X X X X X X ", -" X X X X X X X X .LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy X ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ B LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X ", -" X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X X ", -" X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X X X X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ X y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X X X X X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X ", -" X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXq X X X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy X / LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X X X X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX . X X ", -" X X X X X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXq X X t LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ X y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X ", -" X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe q LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy X ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X X X > LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| ", -" X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ X y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X X X X X ", -" X X X X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X X X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X X X X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ B LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X ", -" X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ X X y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X ", -" X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X ", -" X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy X ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X ", -" X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy X / LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ y LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX( LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX] X X X ", -"X X X X X X | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXq X X X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXQ X X ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ B LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X X X ", -" X _ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX0 X X 0 LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe ~ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXQ X X X 2 LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX! X t LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ X X X X X X X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX_ X X X X ", -" X X X X X ! LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX; ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX9 B LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X X X X X X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB 9 LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB X mXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ X X X X ", -" X X X B LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX X LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX= X B LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXO. X X X ) LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXt $ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXe X X 5XLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXy X X X X X X ", -" X X X X 0 LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXmX X NXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXBX ; LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX4X X X =XLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX; BXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX= 4XLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX9 X X X X ", -" X X X X X mXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX:X X X X X X 4XLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXmXX X #XLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXBXO X X X X X X X X ", -" X X X +.LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX~ X ! LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X BXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXnXX X X X X X 5XLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXmXX X e LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXmX4X:Xp.q ; O.-X:X .$ e $X:X4XmXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXq X nXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXBX; X X -XLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXBX2 X X X ", -" X X X X X X X X _ LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXBXe X X X X q LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXB %XLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXBX| e NXLXLXLXLXmXe | LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXp. t LXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX) X X X X = NXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX| X X X ", -" X X 0 mXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXBX ..LXLXLXLXLXLXLXLX=X 4XLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXnX9 ; nXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXNXq X X X X 1XLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXBXt X X ", -" X X X e mXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX4X= X X X X X = 4XLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX5X> X X ; 4XLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXNX O.LXLXLXLXLXLXLXLX&X 4XLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLX:X= X X > 5XLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXnX9 X X -XLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXmXe X X X X X ", -" X X X X X ; 4XLXLXLXLX:X= Q mXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXBX:X] O 9 O.4XLXLXLXLXLXLXLXLXLXLX4Xp.e X X X X = | 2XBXLXLXLXLXLXLXLXLXLX5X$Xy X X X X X X X ", -" X X ; y ( ] ....] ! 9 X X X X X X X X = e ~ | ....| / q X X e ! ) ..........................................................B X y | | q $ Q ..........................................................) Q t X X $ t / ] ....] ~ e X X X O q ! _ ....| ( e $ X X X ", -" X X X X X X X X X X X X X X X ", -" X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ", -" X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ", -" X X X X X X X X X X X X X X X X X X X X X X X X ", -" X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ", -" X X X X X X X X X X X X X X X X X X X X X X X X X X X X ", -"X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ", -" X X X X X X X X X X X X X X X X X X X X X X X X X X X X ", -" X X X X X X X X X X X X X X X X X X X X X X X X X X X ", -" X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ", -" X X X X X X X X X X X X X X X X X X X X ", -" X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ", -" X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ", -" X X X X X X X X X X X X X X X X X X X X ", -"X X X X X X X X X X X X X X X X X X X X X X X X X X X X ", -"~ X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X / ", -"UXMX( X X X X X X X X X X X X X X X X X X / MXUX", -"UXUXUXnX~ X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ^ nXUXUXUX", -"UXUXUXUXUX0XB X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X B 5XUXUXUXUXUX", -"UXUXUXUXUXUXUX3Xt X X X X X X X X X X X X X X X X X X X X X X X X X X y 3XUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUX3Xe X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X r 3XUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUX>X0 X X X X X X X X X X X X X X X 0 X9 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 9 >XIXUXIXUXIXUXUXIXUXUXIXUXIX", -"UXIXIXUXUXIXUXIXIXUXIXUXIXUXIX*X2 X X X X X X X X X X X X X X X X X 2 *XIXIXUXIXUXIXUXIXIXUXIXIXIXUXIX", -"IXIXUXIXIXUXUXIXUXIXUXIXUXIXUXIXPX*X: X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X ; *XPXUXIXUXIXUXIXUXIXUXUXIXUXIXUXIXUX", -"UXIXUXIXUXIXIXUXIXUXUXIXIXIXIXUXUXUXGXH.= X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X $ H.PXIXIXIXUXIXUXIXUXIXUXIXUXUXIXIXUXUXIX", -"IXIXIXIXIXIXIXIXIXIXIXIXUXIXIXIXIXIXIXUXGXH.$ X X X X X X X X X X X X X X X X X X X X X X X X X X $ H.GXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIX", -"IXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXFXo.O X X X X X X X X X X X X X X X X X X X X X X X X X o.FXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIXIX", -"IXIXIXIXIXIXIXKXIXIXIXIXKXIXIXIXIXIXKXIXKXIXIXIXFXo.X X X X X X X X X X X X X X X X X X X X X X X X X X o.FXIXIXIXIXKXIXIXIXIXIXIXIXIXIXKXIXKXIXIXIXKXIXIXIX", -"IXIXIXIXIXIXIXIXKXIXKXIXIXIXKXIXIXIXIXIXIXIXIXIXIXIXVX{ X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X { VXIXIXKXIXIXIXIXIXKXIXKXIXIXKXIXIXIXIXIXIXIXIXIXIXKXIX", -"KXKXIXKXKXIXKXIXIXIXKXIXKXIXIXIXIXKXKXIXIXKXIXKXKXIXKXKXMX) X X X X X X X X X X X X X X X X X { VXKXIXKXIXIXIXIXKXIXKXIXIXKXIXIXKXIXKXKXIXIXKXKXIXKXIXKXIX", -"KXIXKXIXKXKXIXKXKXKXIXKXKXKXIXKXKXKXIXKXKXIXKXIXIXKXIXKXKXKXdX/ X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X / dXKXIXKXKXIXKXKXKXIXKXIXKXIXKXKXKXKXIXKXIXKXIXIXKXIXKXKXIXKXIX", -"KXKXKXIXIXKXKXKXIXKXKXKXKXIXKXKXKXKXKXKXIXKXKXKXKXKXKXIXKXKXKXKX0X! X X X X X X X X X X X X X X X X X X X X ! 0XKXIXIXKXKXKXKXKXKXKXKXKXKXKXKXKXKXIXKXKXKXIXKXKXKXKXKXKXKXKXKXKX", -"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXIXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX0XN X X X X X X X X X X X X X X X X X X X X X N 0XKXKXKXKXKXKXIXKXKXKXIXKXKXKXKXKXIXKXIXKXKXKXKXKXKXKXKXKXKXIXKXKXKXKX", -"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJX3Xy X X X X X X X X X X X X X X X X X X X X X X X X X X X t 3XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX", -"KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXKXKXKXKXKXKXKXKXKXJXKXKXJXKXKXKXKXKXKXKX3Xq X X X X X X X X X X X X X X X X X X X X X X X X X X X w 3XKXKXKXKXKXJXKXKXJXKXJXKXKXJXKXKXJXKXJXKXKXJXJXKXKXJXKXJXKXKXJXKXKXKXJXKXKXJX", -"JXKXJXJXJXJXJXJXJXKXJXJXJXKXJXJXJXKXKXJXJXJXJXJXJXJXKXJXJXKXKXJXKXJXJXJXJXJXKXJX>X6 X X X X X X X X X X X X X X X X X X X X 0 >XJXJXKXJXJXJXKXJXJXKXJXKXKXKXJXKXJXKXJXKXKXKXJXKXKXJXJXKXKXJXJXKXKXJXJXKXKXJXJXKX", -"JXJXJXKXKXJXJXKXJXKXKXJXJXKXJXJXKXJXJXJXJXKXJXJXKXKXJXKXJXKXJXKXKXJXJXJXKXKXJXJXKXJX>X6 X X X X X X X X X X X X 6 >XJXKXKXKXJXKXKXKXJXKXJXKXKXJXJXKXKXJXJXKXKXJXJXKXKXJXJXKXJXKXJXKXJXJXJXKXJXJXJXKXKXJX", -"JXKXJXKXJXJXKXJXJXJXJXKXJXJXJXJXJXJXKXJXJXJXJXJXJXJXJXJXKXJXJXJXJXKXJXJXJXJXKXJXJXJXJXGX*X> X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X : *XHXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXJXJXJXJXJXKXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXJXJXGX*X- X X X X X X X X X X X X X X X X X X X X ; J.GXJXJXJXJXJXJXKXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXJXKXJXJXJXJXJXJXJXJXJXJXJXKXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXAXH.= X X X X X X X X X X X X X X X X X X X X X X X X X X X = i.GXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXAXH.& X X X X X X X X X X X X X X X X X X X X X X X X X X X $ H.AXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXHXJXJXHXJXJXJXJXJXJXHXJXJXJXJXJXJXJXJXJXHXJXJXJXJXJXJXJXJXHXJXJXJXJXHXJXJXJXJXHXJXHXJXJXJXJXJXVXo.O X X X X X X X X X X X X X X X X X X X X X X X X O o.VXJXJXJXJXJXJXJXJXJXJXJXHXJXJXJXHXJXJXHXHXJXJXJXJXJXJXJXHXJXJXJXJXHXJXJXJXJXJXJXJXJXHXJXHXJXJXJXJXJXJXJX", -"HXJXJXJXJXJXJXJXHXJXJXJXHXJXJXJXHXJXJXJXHXJXJXJXJXJXJXHXJXJXJXHXHXJXJXHXJXJXJXJXJXJXJXJXJXJXJXJXJXHXJXHXJXVXX.o X X X X X X X X X X X X X X X X X.VXHXJXJXHXJXHXJXJXJXJXHXJXJXHXJXJXHXHXJXJXJXJXJXJXHXJXJXHXJXJXJXJXJXJXJXJXHXJXJXJXHXHXJXJXJXJXJXJXJXHXJXJXHX", -"JXHXHXJXHXHXHXHXJXJXHXJXJXHXHXJXJXJXHXHXJXJXHXHXJXHXJXHXJXHXHXJXJXJXHXJXJXHXHXJXHXHXHXJXHXHXJXJXHXJXJXJXHXJXHXzX{ . X X X X X X X X X X X X X X X X X X X X X X X X X X X . { zXJXHXJXHXJXJXHXJXHXJXHXJXHXHXJXJXHXHXJXJXJXHXJXJXHXJXHXHXJXHXJXHXJXHXHXHXHXJXHXHXJXHXJXJXJXHXHXHXHXJXHXHXJXHXJX", -"HXHXJXHXHXJXJXHXHXHXHXHXHXHXJXHXHXHXHXJXHXHXHXJXHXHXJXJXHXJXHXJXJXHXHXJXHXHXJXJXHXJXHXHXHXJXHXHXJXJXHXHXJXHXHXJXJXdX{ X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X { dXHXJXHXHXJXJXHXHXJXHXJXHXHXHXJXJXHXHXJXJXHXHXHXHXHXHXHXHXJXJXHXHXJXJXHXHXJXJXHXHXJXHXJXJXHXHXJXHXJXJXHXJXHXHXJXHXJX", -"JXHXHXJXJXHXHXJXJXHXJXJXJXHXHXJXHXJXHXJXHXJXJXHXHXJXHXHXHXHXJXHXHXHXJXHXHXJXHXHXJXHXJXHXJXHXJXHXHXHXJXHXHXHXJXHXHXHXJXsX/ X X X X X X X X X X X X X X X X X X X X X / dXJXJXJXHXHXJXHXHXHXJXHXJXHXHXJXJXHXHXJXJXHXHXJXJXHXJXJXHXJXJXHXHXHXJXHXHXJXHXJXHXJXJXHXHXHXHXJXHXHXHXJXHXJXHXJXHXHXJXHX", -"JXHXHXHXHXHXHXJXHXHXJXHXJXHXHXJXHXHXHXHXHXHXHXJXHXHXHXHXHXHXHXHXHXHXHXHXJXHXHXHXHXHXHXJXJXHXHXJXHXHXJXHXHXHXHXHXJXHXHXJXHX0X! X X X X X X X X X X X X X X X X X X X X X X X X X / sXHXJXHXHXHXHXJXHXHXJXHXJXHXHXHXJXHXHXHXHXHXHXHXHXJXHXHXJXHXJXHXHXJXHXJXHXHXHXHXHXHXHXJXHXHXJXHXHXJXHXHXJXHXJXHXHXHXHXHXHXHX", -"HXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXJXHXHXHXHXHXHXHXHXJXHXHXJXJXHXHXHXHXJXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXJXHXHXHXHXHXHXHXHXDX0XN X X X X X X X X X X X X X X X X X X N 0XHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXJXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXJXHXHXJX", -"HXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXDXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXJX,Xr X X X X X X X X X X X X X X X X X X r 3XHXDXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHX", -"HXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXJXDX3Xr X X X X X X X X X X X X X X X X X X X r 3XDXDXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXDXHXHXHXHXHX", -"HXHXHXHXHXHXHXHXHXDXHXHXHXHXDXHXHXDXHXHXHXHXHXHXHXHXHXDXDXHXHXHXHXHXHXDXHXDXHXHXHXHXHXHXHXHXHXDXHXDXHXHXHXHXHXHXHXHXHXDXHXHXHXHXHXHXHXDXHX;X0 X X X X X X X X X X X X X X X X X X 0 ;XDXHXHXHXDXHXHXDXHXHXHXDXHXDXHXHXHXHXHXHXHXHXHXHXDXHXHXDXHXDXHXHXHXHXHXHXHXHXHXHXHXHXHXDXHXDXHXHXHXHXHXHXHXHXHXHXDXHXHXHXHXHXHXHXHXHXHXHXHX", -"HXDXHXDXDXHXDXHXHXHXHXDXDXHXDXHXHXHXHXDXHXDXDXHXDXHXDXHXHXHXDXHXDXHXDXHXHXHXHXDXHXDXDXHXDXHXDXHXHXHXHXDXHXDXDXHXDXHXDXHXDXHXDXHXDXHXDXHXDXHXDX;X9 X X X X X X X X X X X X X X X X X X X 6 ;XHXHXHXDXHXHXHXHXDXHXHXHXDXHXHXHXHXDXHXDXHXDXHXDXDXHXHXHXDXHXHXHXHXDXHXDXHXDXHXDXHXHXDXDXHXDXHXHXHXHXDXHXDXDXHXDXHXDXHXDXHXDXHXHXDXDXHXDXDXHXDX", -"HXDXDXHXHXDXHXDXDXDXDXHXDXHXDXHXHXDXDXHXDXDXHXHXDXHXHXDXHXDXDXHXDXHXHXDXHXDXDXHXDXDXHXHXDXHXHXDXHXDXDXHXDXDXHXDXDXHXHXDXHXDXDXHXDXHXHXDXHXDXDXHXSXJ.> X X X X X X X X X X X X X X X X : J.HXDXDXDXDXDXHXDXDXDXDXDXHXDXDXDXHXDXHXHXDXDXHXHXDXHXDXDXHXDXDXDXHXDXHXHXDXDXHXHXDXHXDXDXHXHXDXDXHXHXDXDXHXDXDXHXHXDXHXHXDXHXDXDXHXDXDXHXHXHXDXDXHX", -"DXHXDXDXDXHXDXHXDXHXHXDXDXDXHXDXDXDXHXDXDXHXDXDXHXDXDXHXDXHXDXDXHXDXDXHXDXDXHXDXDXHXDXDXHXDXHXDXDXDXHXDXDXHXDXHXHXDXDXHXDXHXDXDXHXDXHXDXDXHXDXDXHXDXAXJ.: X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X : J.AXDXHXHXDXHXHXHXDXDXHXDXHXDXHXDXHXDXHXDXDXDXDXHXDXDXDXDXHXHXDXDXHXDXHXDXDXDXHXDXDXDXDXDXHXHXDXDXDXHXDXDXHXDXDXDXHXDXDXHXDXHXDXDXHXDXDXDXHXDXDXDXHXDXDX", -"DXDXDXDXDXHXDXDXHXDXDXDXDXHXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXHXDXHXDXDXDXDXDXHXDXHXHXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXHXDXDXAXH.& X X X X X X X X X X X X X X X X X X X X X X $ H.CXHXHXDXDXDXDXDXDXHXDXDXDXDXDXHXDXDXDXDXDXDXHXDXDXDXDXDXDXDXDXHXDXDXDXDXDXDXHXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXHXHXDXDXDXDXDXDXDXDXHXDXHXDXDXDXDXDXDXDXDX", -"DXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXSXDXxXH.& X X X X X X X X X X X X X X X X X X X X X $ H.bXSXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDX", -"DXDXDXDXDXDXDXDXDXSXDXDXSXDXDXDXDXDXDXDXDXDXDXDXDXDXSXDXDXDXDXSXDXDXSXDXDXDXDXSXDXDXDXDXDXDXDXDXDXSXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXzXo.O X X X X X X X X X X X X X X X X X X X O X.xXDXZXDXDXSXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXSXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXSXDXDXDXDXDXSXDXDXDXDXDXDXDXDX", -"DXDXDXDXSXDXDXSXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXSXDXDXDXDXDXDXDXSXDXDXDXSXDXSXDXDXDXDXDXDXDXDXDXDXSXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXSXDXSXDXDXSXDXSXSXzXX.O X X X X X X X X X X X X X X X X X X O o.zXSXSXDXDXDXDXDXDXDXDXDXDXDXDXDXSXDXDXDXSXDXDXDXDXDXDXSXDXDXDXDXDXDXDXDXDXSXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXDXSXDXDXSXDXDXDXDXDXDXDXSXDXDXDXDXDXDXDXDXDXDX", -"SXDXDXDXDXSXSXSXSXDXSXDXDXDXSXDXSXDXSXDXSXDXSXDXDXSXSXDXDXDXDXSXSXDXDXDXSXDXSXSXSXDXDXSXDXDXSXDXDXDXSXDXDXSXDXDXDXSXSXDXDXSXSXSXDXDXDXSXSXDXDXSXDXSXDXSXDXDXDXSXSXSXSXDXzX' X X X X X X X X X X X X X X X { fXDXSXSXSXSXDXDXSXDXSXDXDXSXDXSXDXSXSXSXSXSXDXSXDXSXDXSXDXSXSXSXDXSXDXSXDXSXDXDXDXSXSXDXDXDXSXSXDXSXDXDXSXDXDXDXSXSXSXDXDXSXSXDXDXSXSXSXDXSXDXDXDXDXSXSXSXDXDXDXSXDXDXSXDX", -"SXSXSXSXSXDXSXSXSXSXDXSXSXSXSXSXSXSXDXSXDXSXSXSXSXDXSXSXSXSXSXSXSXSXSXSXSXSXDXSXSXSXSXDXSXSXSXSXSXSXSXSXDXSXSXSXSXDXSXSXSXDXSXSXSXSXSXDXSXSXSXSXSXSXSXDXSXSXSXSXSXSXSXSXSXSXsX' X X X X X X X X X X X X X X X X X X X X X ' fXSXSXSXSXSXSXSXSXDXSXSXSXSXSXSXDXSXSXSXSXSXDXSXSXDXSXSXDXSXSXSXSXDXSXDXSXSXSXSXSXSXSXSXDXSXSXSXSXDXSXDXSXSXSXSXSXSXSXSXSXSXSXSXDXSXSXSXSXSXSXSXSXSXSXSXDXSXSXSXSXDXSXSXSXSXSX", -"SXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXsX^ X X X X X X X X X X X X X X X X X X X X X X X ^ sXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSX", -"SXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXsX^ X X X X X X X X X X X X X X X X X X X X X X X X X X X ^ sXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSX", -"SXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSX7XB X X X X X X X X X X X X X X X X X X X X X X X X X X N ,XSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXZXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSX", -"SXSXSXSXZXSXSXZXSXZXSXSXSXSXSXZXZXSXSXZXSXZXSXSXSXSXSXZXSXZXSXZXSXSXSXZXZXSXSXSXSXZXSXSXSXZXZXSXSXSXSXbXZXSXSXZXSXSXZXSXSXZXSXZXSXSXSXZXSXZXSXZXZXSXZXSXSXZXSXSXZXSXSXSXSXZXSXSXZXSXSXZXZXSX,Xr X X X X X X X X X X X X X X X X X N ,XSXSXbXSXSXSXSXbXSXSXZXSXSXSXSXZXZXSXSXSXSXZXZXSXSXZXZXSXSXSXSXSXZXSXSXZXSXSXSXSXSXSXZXSXSXZXSXSXZXSXSXZXSXSXSXZXZXSXSXSXZXSXSXSXSXZXZXSXSXZXSXSXZXSXSXSXSXSXSXSXSXZXSXSXZXSXSXZXSXSXSXZXZXSX", -"SXZXZXSXZXSXZXSXZXSXSXZXSXSXSXZXSXSXZXSXZXSXSXZXSXSXSXZXSXSXZXSXSXSXZXSXZXSXSXSXZXSXSXZXSXZXSXZXbXSXSXSXSXSXSXSXZXSXSXSXSXSXSXZXSXSXSXZXSXSXZXSXSXSXSXSXZXSXZXSXZXSXSXSXZXSXSXZXSXSXSXZXSXSXZXSX,Xw X X X X X X X X X X X X X X X X X X r ,XSXZXSXZXSXSXbXSXSXSXSXbXSXSXZXSXZXSXSXSXZXSXZXSXSXSXZXSXSXSXSXSXZXSXSXSXZXSXZXSXSXZXSXSXSXZXSXSXZXSXSXSXSXSXZXSXSXSXZXSXZXSXSXZXZXSXZXSXSXZXSXSXZXSXSXSXZXZXSXZXSXSXSXZXSXZXSXSXSXZXSXZXSXZXSXZX", -"ZXSXZXZXSXZXSXZXSXZXSXZXZXZXZXSXZXZXSXZXSXZXSXZXZXZXSXZXZXSXZXSXZXZXSXZXSXZXZXZXSXZXZXSXZXSXZXSXSXSXbXZXSXbXZXSXZXSXZXZXZXSXZXSXZXZXSXZXZXSXZXSXZXZXZXSXZXSXZXZXSXZXZXZXSXZXSXZXZXZXSXZXZXZXSXSXSXZX;X6 X X X X X X X X X X X X X 6 ;XZXSXZXSXZXSXSXbXSXSXbXbXSXSXZXZXSXSXSXZXZXZXZXSXZXSXZXSXZXSXZXZXZXZXZXZXZXZXSXSXZXZXSXZXZXZXSXZXZXSXZXZXZXZXZXZXSXZXZXSXZXSXZXZXSXZXZXSXSXZXZXSXZXSXSXZXZXZXZXSXZXSXZXZXSXZXSXZXZXZXSXZXZXSXZXSXZXSX", -"SXZXZXSXZXZXSXZXSXZXSXSXZXZXSXZXSXZXSXZXSXSXZXSXZXSXZXZXSXZXSXZXZXZXZXSXZXZXZXSXSXZXSXSXZXSXSXZXSXZXZXZXZXZXZXDXZXSXZXZXSXZXSXZXZXSXZXSXZXSXZXSXSXZXZXSXZXZXSXZXSXZXZXSXZXZXSXZXSXZXSXSXZXSXSXZXSXZXSXZX;X2 X X X X X X X X X X X X X X X X X X X X X X X 2 ;XbXZXSXZXSXbXSXZXSXbXSXZXZXSXZXZXSXZXZXZXSXZXZXSXZXSXZXZXZXDXZXDXDXZXDXZXSXSXZXSXSXZXSXSXZXSXZXZXDXZXDXSXSXZXSXSXZXZXSXZXSXSXZXZXZXZXSXSXZXSXSXZXSXZXZXSXSXZXZXSXZXSXSXZXZXZXSXZXZXSXZXZXSXZXZXSXZXZXSXZX", -"SXZXZXSXZXSXSXZXZXSXZXZXZXSXZXSXZXZXZXZXZXZXZXZXZXSXSXZXZXSXZXSXZXSXSXZXZXSXSXZXZXZXZXZXZXZXZXZXSXZXZXSXZXDXZXZXZXSXSXZXSXZXZXSXZXZXZXSXSXbXSXZXZXSXSXZXZXSXZXSXZXZXSXZXZXSXSXZXZXZXZXZXZXZXZXZXZXSXZXSXZXbXJ.: X X X X X X X X X X X X X X X X X X : J.ZXZXZXSXSXZXZXSXZXSXZXSXZXSXSXZXZXSXZXSXSXZXZXSXZXZXZXZXSXSXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXSXZXZXZXSXZXSXZXZXZXSXSXZXZXZXZXZXZXSXZXSXZXZXZXSXZXZXZXZXZXSXSXZXZXSXSXZXZXSXZXZXSXZXZXSXSXZX", -"ZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXSXZXZXSXZXSXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXSXZXZXZXZXZXSXZXZXZXZXZXZXSXZXZXZXZXZXZXZXZXZXZXSXZXZXSXbXbXZXZXZXZXZXZXZXZXZXZXSXZXZXZXZXZXZXSXZXZXZXZXZXSXZXZXZXZXZXZXSXZXbXJ.- X X X X X X X X X ; J.bXSXZXZXZXZXZXZXSXbXSXbXZXZXSXZXZXZXZXZXZXZXZXZXZXZXSXZXZXZXZXZXZXZXZXZXZXZXZXZXZXSXZXZXZXSXZXZXZXZXZXSXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXSXZXZXZXZXSXZXZXZXZXZXZXZXZXSXZXZXZXZXZXZXZXZXZXZXZXSXZXZXSXZXZXZXZXZXZX", -"ZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXbXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXSXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXbXSXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXbXxXH.& X X X X X X X X X X X # H.xXZXZXZXZXZXZXZXZXZXbXSXbXSXZXZXbXZXZXZXZXZXZXZXZXZXZXZXbXSXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZX", -"ZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXSXbXbXSXbXbXSXbXZXZXZXZXZXZXbXSXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXxXi.$ X X X X X X X X X X X # H.jXbXZXZXSXbXbXSXZXZXZXZXSXbXbXbXbXSXbXSXZXZXZXZXZXZXZXZXZXSXbXSXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXSXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZX", -"bXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXbXZXZXZXbXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXbXZXZXZXZXZXbXZXbXZXZXZXZXZXbXZXbXbXSXbXSXbXbXSXZXZXZXZXZXZXZXbXZXZXZXZXZXZXZXZXbXZXZXZXZXbXZXZXZXZXZXZXZXbXZXZXZXZXZXZXZXjXX.O X X X X X X X X X X X X X X X X X X X X X X X X X O X.xXZXZXZXZXZXbXSXbXZXZXZXZXZXbXSXSXbXZXbXZXZXZXZXbXZXZXZXZXZXbXZXbXbXZXZXZXZXZXZXZXZXZXZXbXZXbXZXZXZXbXZXZXZXZXZXbXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXbXZXZXZXZXZXbXbXZXZXZXbXZXZXZXZXZXZXZXZXbX", -"ZXbXbXZXZXZXbXbXZXbXZXbXbXZXZXbXbXZXZXZXZXZXbXZXZXZXZXZXZXZXbXZXbXZXZXbXZXbXbXZXZXbXbXZXbXZXZXbXZXbXbXZXZXZXZXbXZXZXbXZXbXZXZXZXbXZXSXbXbXbXbXbXZXZXZXZXbXZXSXbXbXZXZXbXbXZXZXZXZXZXbXZXZXbXZXZXbXZXZXbXbXZXbXZXZXbXZXbXbXZXZXfXX.o X X X X X X X X X X X X X X X X X X X X X X } fXZXbXZXbXZXZXZXbXbXbXZXZXZXbXZXbXbXbXbXbXSXZXbXZXZXZXZXZXZXZXbXbXbXbXSXZXbXbXZXbXZXZXZXZXZXZXZXZXZXZXZXZXZXZXZXbXZXZXZXbXZXbXZXZXbXZXbXbXZXZXbXZXZXZXZXbXZXbXbXZXZXZXbXZXZXZXZXbXZXZXbXZXbXZXbXbXZXbXZXbXZXbXZXbXZXZXZXZXZXZXbX", -"bXZXZXbXbXbXbXZXZXbXbXZXbXbXbXZXZXbXvXZXvXZXbXbXbXZXbXbXbXbXZXbXbXbXZXbXbXZXbXbXbXZXbXZXbXbXbXZXZXbXZXbXbXbXbXZXbXZXbXbXZXbXbXbXbXbXbXbXbXSXbXbXbXbXbXZXbXbXbXbXbXbXbXZXbXZXbXbXbXbXZXbXZXbXbXZXbXbXbXZXbXZXbXbXZXbXbXZXbXbXbXZXbXfX' X X X X X X X X X X X X ' fXbXbXbXZXbXbXbXbXbXbXbXZXbXbXbXbXbXbXbXSXbXbXbXbXZXbXbXbXZXbXbXbXZXSXbXbXbXbXZXbXZXbXbXZXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXZXbXbXZXbXZXbXbXZXbXbXZXbXZXbXvXZXbXZXbXZXbXvXZXbXbXbXbXbXZXbXZXbXbXZXbXZXZXbXbXZXZXbXZXbXbXbXbXbXbXbXZXbX", -"bXbXZXbXZXbXZXZXbXbXbXZXbXZXbXbXbXbXbXZXZXbXZXZXbXbXZXbXbXbXZXZXZXZXbXbXbXbXZXZXbXbXZXbXZXbXbXbXbXbXZXbXbXbXZXZXbXbXbXZXbXbXbXZXZXbXbXZXbXbXbXbXbXbXbXbXbXbXbXbXZXZXbXbXbXZXbXbXbXbXZXbXZXbXbXbXZXZXbXZXbXbXbXbXZXZXbXZXbXbXbXbXbXbXbXsX` X X X X X X X X X X X X X X X X X X X X X X X X X X X ' qXZXbXZXbXbXbXbXSXbXbXbXSXbXSXbXbXbXbXSXbXbXbXbXbXZXZXbXbXbXbXbXbXSXbXbXbXbXbXbXbXbXSXbXbXbXZXZXbXbXZXbXbXZXbXbXZXbXbXbXZXbXbXZXbXbXZXbXbXbXZXbXbXZXZXbXbXbXbXZXbXZXZXbXZXbXvXZXZXZXvXZXbXZXbXbXZXbXbXbXZXbXbXZXbXbXbXZXZXbXZXbXZXZXbXbX", -"ZXbXZXbXbXbXbXbXbXZXZXbXbXZXbXZXbXZXbXbXbXZXbXbXbXZXZXbXZXbXbXbXbXbXbXZXZXbXbXbXZXbXZXbXbXZXZXbXZXbXZXbXbXbXbXbXbXZXZXbXbXbXZXbXbXZXbXbXbXbXbXbXbXSXbXbXbXbXbXbXbXbXbXZXZXbXbXZXZXbXbXZXbXbXZXbXbXbXbXbXbXbXZXbXbXbXbXbXbXbXZXbXbXbXbXbXbXqX^ X X X X X X X X X X X X X X X X X X X X ^ qXZXbXZXbXZXSXZXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXZXbXbXbXbXbXbXSXbXbXbXbXbXbXbXSXbXbXbXbXbXbXbXbXbXbXZXbXZXbXbXZXZXbXbXbXbXbXZXbXZXbXZXZXbXZXbXbXZXbXbXbXZXZXZXbXbXZXbXbXbXbXZXZXbXvXZXZXbXbXZXbXZXZXbXZXbXbXbXZXbXZXZXbXbXbXZXbXZXbXbXbXZX", -"bXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXZXbXbXZXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXqX^ X X X X X X X X X X X X X ^ qXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXZXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXvXZXvXZXbXZXvXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbX", -"bXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXvXbXbXvXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXvXbXbXbX7XN X X X u 7XbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXvXvXZXvXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXvXbXbXbXbXbXbXbX", -"bXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXvXZXZXvXZXvXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXvXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXvXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbX6Xy X X X X X X X X X X . r ,XbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXZXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbX", -"bXbXbXvXbXvXbXbXbXvXbXbXbXvXvXbXvXvXvXbXbXvXvXbXbXvXvXbXvXbXbXbXbXbXvXbXvXbXvXbXvXbXvXbXvXbXbXvXbXbXbXbXbXvXvXbXbXbXbXbXbXvXvXbXbXbXbXbXbXbXbXvXbXbXvXbXvXbXbXbXbXbXvXbXvXbXbXvXbXbXbXvXbXvXbXbXbXbXbXbXbXbXbXvXbXbXvXbXvXbXbXvXbXbXbXvXbXvXbXbXbXbXvXbXbX,Xw X X X X X X X w ,XbXbXbXbXbXbXvXvXbXvXbXvXbXbXbXbXvXbXbXvXbXvXbXvXbXbXbXvXbXbXbXvXbXbXvXbXbXbXbXbXbXvXbXbXvXvXbXvXbXbXbXbXbXvXbXbXvXbXbXvXbXbXbXbXbXbXbXvXbXvXbXbXbXbXbXbXbXbXbXvXbXvXbXbXvXbXvXvXbXbXbXvXbXbXvXbXbXvXvXvXbXbXvXbXvXvXbXvXbXbXbXbXvXbXbXvXbXvXbXvXbXbXvXvXbX", -"vXvXbXbXvXbXvXbXvXbXvXvXvXbXvXbXvXZXvXvXvXbXvXbXvXbXvXbXbXvXbXvXbXbXbXvXbXvXbXvXbXvXbXvXbXbXvXbXbXvXbXvXvXbXvXbXbXbXvXvXvXbXvXbXbXbXvXbXvXvXbXbXbXbXbXbXvXvXbXvXvXbXvXbXbXvXbXbXvXvXbXbXvXbXvXvXbXbXvXbXvXvXbXbXbXbXvXbXbXvXbXbXbXvXbXbXvXbXvXvXbXbXvXbXvXbXvXK.6 X X X X X X X X X X X X X X X X X X X X X w ;XbXvXbXbXbXbXvXbXbXvXbXbXvXvXbXbXbXvXvXbXvXvXbXvXbXvXbXvXbXbXvXbXvXbXvXvXvXbXvXvXbXvXbXvXbXbXbXbXvXbXvXvXbXbXvXvXbXvXbXvXvXbXvXbXvXbXvXbXvXbXvXvXbXbXvXvXbXbXvXbXvXvXbXvXbXbXbXvXbXbXvXbXvXbXvXvXvXbXvXvXbXvXbXbXbXvXbXbXvXvXbXbXbXvXvXbXvXvXbXvXbXvXbXvXbXbXvX", -"vXvXvXvXvXvXvXvXvXvXvXbXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXbXvXvXvXvXvXvXvXvXvXbXvXvXvXvXbXbXvXvXvXvXvXvXbXbXvXvXvXbXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXbXbXvXvXvXvXvXvXvXbXvXvXvXvXvXvXvXbXvXvXvXvXvXvXbXbXvXvXvXvXvXvXvXbXK.9 X X X X X X X X X X X X X X X X X X X X X X X 2 K.vXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXbXvXvXvXvXvXvXvXvXbXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXbXvXvXvXvXvXvXvXvXbXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXbXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXbXvXvXvXvXvX", -"vXvXvXvXvXvXvXvXbXcXbXbXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXcXvXvXvXvXvXvXvXvXvXbXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXbXcXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXcXvXvXvXvXvXxXJ.: X X X X X X X X X X X X X X X X X X X X X X X X : J.xXcXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXcXvXvXvXvXvXvXvXcXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXcXvXvXvXvXvXvXvXvXvXvXvXvXvXvXcXbXcXcXbXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXcXvXvXvXvXvXvXvXcXvXvXvXvXvX", -"vXvXvXvXvXbXvXvXbXbXcXcXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXbXvXvXvXvXvXvXvXcXvXvXvXvXvXvXcXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXbXbXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXcXvXvXvXvXvXvXvXvXvXvXvXvXvXcXJ.- X X X X X X X X X X : J.cXvXvXbXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXcXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXcXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXbXbXbXbXvXvXvXvXvXvXvXvXvXvXvXvXvXcXvXvXvXvXvXvXvXvXvXcXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvX", -"vXvXbXvXvXvXcXvXvXvXvXcXcXvXvXvXcXvXvXvXvXvXvXvXcXvXvXvXvXcXvXvXcXvXvXvXvXvXvXvXvXcXbXvXvXvXvXvXvXcXvXvXcXbXvXvXvXvXvXvXvXcXvXvXvXvXvXvXvXcXcXvXvXcXcXvXcXvXvXvXvXcXvXvXcXvXbXvXvXcXvXvXvXcXvXcXvXvXvXcXcXvXvXvXvXvXvXcXcXvXvXvXcXvXvXvXvXvXvXvXcXvXvXvXvXvXvXvXcXvXvXvXvXvXjXi.= X X X X X X X X X & i.jXvXvXvXvXvXvXcXvXcXcXvXvXvXcXvXvXvXvXcXvXvXvXvXcXvXvXvXvXcXvXvXvXvXvXvXvXcXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXvXcXvXvXvXcXvXvXvXvXvXvXvXvXvXvXcXvXvXvXvXcXvXcXvXcXcXvXvXvXvXcXcXcXcXcXbXcXbXvXvXcXvXvXvXcXvXvXvXvXvXvXvXcXvXvXvXvXvXvXvXvXvXvXvXvXvXcXvXvXvXcXvXcXvXvXvXvXcX", -"vXcXcXcXvXcXbXcXcXcXvXvXcXvXcXvXcXvXvXcXvXcXvXxXcXvXcXvXvXvXcXvXcXvXcXvXvXcXvXcXvXvXcXvXcXcXcXvXvXcXvXcXvXcXcXvXvXcXvXcXvXvXcXvXvXcXvXcXvXvXvXvXvXvXvXvXcXvXcXvXvXvXcXvXcXvXcXvXvXcXvXcXvXvXvXvXvXcXvXvXcXvXvXvXvXcXvXvXcXvXcXvXcXvXcXvXvXcXvXvXcXvXcXvXvXcXvXcXcXvXvXcXvXcXvXvXjXi.& X X X X X X X X X X X & i.jXcXvXcXvXvXcXvXcXvXvXvXvXcXcXvXvXvXcXvXcXvXcXvXcXvXvXvXcXcXvXvXvXvXcXvXcXcXvXcXvXvXvXcXbXcXvXcXvXvXcXvXcXcXvXcXvXcXvXvXvXcXvXcXvXvXcXvXcXcXvXcXvXvXvXvXcXvXcXvXvXvXvXvXvXcXvXcXvXvXvXbXvXbXcXvXcXcXvXvXvXcXvXvXvXvXcXcXvXcXvXcXvXvXcXvXcXcXvXcXvXvXcXvXcXvXvXcXvXvXvXvXvXcXvXcXvX", -"cXcXvXcXcXvXcXcXcXcXvXcXcXvXcXvXvXcXvXcXvXcXvXvXvXcXcXvXvXcXcXvXvXcXvXcXcXvXxXvXcXvXcXcXcXvXcXvXcXcXvXcXcXvXcXvXcXvXcXvXvXcXvXcXcXvXcXvXvXcXvXcXcXcXvXcXvXcXvXvXcXcXcXcXcXvXcXcXcXvXcXvXvXcXvXcXcXcXvXvXcXvXcXcXcXvXcXvXcXvXcXvXvXcXvXcXvXcXvXcXvXcXvXcXcXcXxXvXvXcXvXcXvXcXvXcXcXvXfX} o X X X X X X X X X X X X X O } fXcXvXcXvXcXcXcXbXcXvXcXvXcXvXvXcXvXcXcXvXcXvXxXvXcXvXcXcXcXcXvXcXcXvXvXcXvXcXcXvXvXcXvXcXvXxXcXvXcXvXcXcXcXvXcXcXvXcXvXcXvXcXvXvXcXvXcXvXcXvXvXcXvXcXcXvXcXvXcXvXcXvXcXvXcXvXcXvXcXvXcXvXcXcXvXvXvXcXvXcXcXcXcXvXcXvXcXvXvXvXcXvXcXvXcXvXcXvXvXcXvXcXcXvXvXcXvXcXvXcXvXcXvXcXvXcXcXvX", -"vXvXcXvXvXcXxXbXbXvXcXvXvXcXvXcXcXvXcXvXcXvXcXcXcXvXvXcXcXvXvXcXcXvXcXvXvXcXvXvXcXcXcXvXvXcXcXcXcXvXcXvXcXcXvXcXvXcXvXcXcXvXcXvXvXcXvXcXcXvXcXvXcXvXvXvXcXvXxXvXcXvXcXvXvXvXvXcXvXcXvXcXcXcXcXvXcXvXvXcXvXcXvXcXvXcXvXcXvXcXvXcXcXvXcXvXcXvXcXvXcXvXcXvXvXcXvXvXcXvXcXvXcXvXcXvXvXcXvXcXfX} O X X X X X X X X X X X X X X X X X X X O } fXcXcXvXvXcXcXbXcXcXcXvXcXvXcXvXcXcXvXcXvXvXcXvXcXvXcXvXcXcXvXvXcXxXvXvXcXcXvXcXvXvXcXcXvXcXvXcXvXvXcXcXcXcXvXvXcXvXcXcXvXcXvXcXvXcXcXvXcXvXvXvXcXcXvXcXvXvXcXvXcXvXxXvXcXvXxXvXcXvXcXcXcXcXvXvXcXvXvXcXvXcXvXvXcXvXcXvXcXcXcXcXvXvXcXvXcXvXvXvXcXcXvXcXcXvXcXcXvXcXvXcXvXcXcXxXvXvXvXvXcX", -"cXvXvXcXcXvXcXcXcXvXcXvXcXvXcXvXcXvXcXvXvXcXcXvXcXvXcXvXvXcXcXvXcXvXvXcXcXvXvXcXcXvXvXcXcXvXcXvXcXcXvXcXcXvXcXvXvXcXcXcXvXcXvXcXvXcXcXcXvXcXvXcXcXcXcXcXvXcXcXvXcXvXvXcXvXxXvXcXvXcXcXcXcXvXcXvXcXcXcXcXvXcXvXcXvXcXcXcXcXcXcXcXcXcXcXvXvXcXcXvXcXvXvXcXcXvXvXvXcXvXcXvXvXcXvXcXvXcXcXcXcXvXqX` X X X X X X X X ` qXcXvXcXvXcXcXvXvXcXvXvXcXvXvXcXcXcXvXcXvXvXcXcXvXcXvXvXcXcXvXvXcXvXvXvXvXcXvXvXcXvXcXcXvXcXvXvXcXcXvXcXvXvXcXvXvXcXvXcXvXcXvXcXvXvXcXvXcXcXvXcXcXcXvXcXvXvXcXcXvXcXvXcXvXcXvXcXvXcXvXvXvXvXcXvXcXvXcXcXcXvXcXvXcXvXvXcXvXcXvXvXcXvXxXcXvXcXvXcXcXcXvXcXvXvXvXcXvXcXvXcXcXcXcXcXbXvXcXcXvXcXvX", -"cXcXcXcXcXvXcXcXcXcXcXcXcXvXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXvXcXcXcXcXcXvXcXcXcXvXcXcXvXcXcXcXxXcXvXcXcXcXcXvXcXcXcXvXcXcXcXcXvXvXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXvXcXvXcXcXcXvXvXcXcXcXvXxXcXcXvXcXcXcXcXvXcXcXcXcXcXcXcXcXxXcXcXcXcXvXcXlXlXcXcXcXcXcXcXcXcXcXvXcXcXcXvXvXcXqX` X X X X X X X X X X X X X X X ` qXvXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXvXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXvXcXcXcXcXcXcXcXcXcXcXxXcXcXcXcXcXvXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXvXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXvXcXcXcXcXxXcXcXcXcXcXcXcXvXcXcXcXcXcXcXcXcXcXcX", -"cXvXcXcXvXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXvXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXvXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXvXcXcXcXcXcXvXcXcXcXcXcXcXcXcXcXvXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXlXvXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXvXcX7X^ X X X X X X X X X X X X ^ 7XvXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXvXcXcXcXvXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcX", -"cXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXvXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXvXcXcXcXvXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXvXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXvXcXcXvXcXcXcXcXcXcXcXcXcXcXcXcXcXcXvXcXcXcXcXcXcX7X^ X X X X X X X X X X X X X X H 7XcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXvXcXcXcXcXcXcXcXcXcXcXcXcXvXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXvXcXcXcXcXcXcXcXvXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcX", -"cXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXlXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXlXcXcXcXcXcXlXlXcXcXcXcXcXcXcXcXcXcXcXcXcXcXlXlXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXlXcXlXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcX7Xr X X X X X X X X X X X X X X X X X X X N 6XcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXlXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXlXlXcXcXcXcXcXlXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcX", -"lXcXcXlXlXcXcXlXcXcXlXcXcXcXlXcXcXcXcXlXlXcXcXcXlXcXlXcXcXcXcXlXcXcXcXcXcXcXcXcXcXlXcXcXlXcXlXcXcXcXcXlXcXcXcXcXcXlXcXcXcXlXcXcXcXcXcXcXlXcXcXcXcXlXcXcXcXcXcXlXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXlXlXcXlXcXlXcXcXlXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXlXcXcXlXcXlXvXcXcXcXcXlXcXcXcXcXlXcXcXlXcXlXcXcXcXcXlXlXcXcXcX6Xr X X X X r 6XcXcXcXcXlXcXcXcXcXcXkXcXcXcXcXcXcXcXcXcXkXcXcXcXcXcXcXcXlXcXlXcXcXcXcXcXcXcXlXcXlXcXcXcXlXcXcXcXcXcXcXlXcXcXcXcXlXcXcXcXlXcXcXlXcXcXlXcXcXlXcXcXcXcXcXcXcXlXcXcXcXcXcXcXlXcXlXcXcXcXlXcXcXcXlXcXcXcXcXcXlXcXcXcXcXcXcXkXcXcXcXkXkXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXcXlXcXcXcXcXcXcXcXcXcXcXcXcX", -"cXlXcXlXcXlXcXlXlXcXlXcXcXlXlXcXcXlXlXcXcXlXlXcXlXcXlXcXlXlXcXlXcXlXcXlXlXcXlXcXcXlXcXlXcXlXcXlXlXcXlXcXlXcXlXcXcXlXcXlXcXlXcXlXcXlXcXlXcXlXcXlXcXlXcXlXcXlXcXlXcXlXlXcXlXlXlXcXkXcXlXcXlXcXcXlXcXlXcXlXcXcXlXcXkXcXcXcXkXcXlXcXcXlXcXlXcXcXlXcXcXlXcXlXcXlXcXlXkXcXcXlXlXcXlXcXcXlXcXlXlXcXlXcXcXlXcXlXlXcXlXcXlXcX6Xw X X X X X X X X X X w 6XlXcXcXlXlXcXcXcXkXcXkXcXcXcXcXkXcXkXkXcXkXcXcXkXcXlXlXcXcXlXcXlXlXcXlXcXcXlXcXlXcXlXcXlXcXlXcXlXcXlXlXcXlXcXlXlXcXlXcXcXkXlXlXcXlXcXlXlXcXlXcXlXcXkXcXlXlXcXlXcXcXlXlXcXcXlXcXlXlXcXlXcXlXcXlXcXlXcXcXlXcXlXcXlXcXlXcXcXkXcXcXcXcXcXcXkXcXcXcXcXkXkXcXkXcXlXlXcXlXcXlXcXlXcXlXcXlXlXcXcXlXcXcXlXcXlXcXlXcXlXlXlXcXlX", -"lXcXlXcXlXcXlXcXcXlXcXlXlXcXlXlXlXlXcXlXlXcXcXlXcXlXcXlXcXcXlXlXlXcXlXcXcXlXcXlXlXcXlXcXlXcXlXcXcXlXcXlXcXlXcXlXlXcXlXcXlXcXlXcXlXcXlXcXlXcXlXcXlXcXlXcXlXcXlXcXlXlXcXlXlXcXcXlXcXcXcXlXcXcXkXcXlXcXlXcXlXlXcXlXcXcXkXcXcXlXcXlXlXcXlXcXcXlXcXlXlXcXlXcXlXcXlXcXcXcXkXcXcXlXcXlXlXcXlXcXcXlXcXlXlXcXlXcXcXlXcXlXcXlXjXlXK.6 X X X X X X w K.lXcXlXlXlXcXlXlXkXcXlXcXcXcXkXcXcXcXcXcXcXcXkXcXcXcXcXcXcXlXlXcXlXcXcXlXcXlXlXcXlXcXlXcXlXcXlXcXlXcXlXcXcXlXcXlXlXcXlXcXkXcXcXcXcXlXcXlXlXcXlXcXlXcXlXcXlXcXcXlXcXlXlXcXcXlXlXcXlXcXcXlXcXlXcXlXcXlXcXlXlXcXlXcXlXcXlXcXkXcXcXcXkXcXkXcXcXcXcXkXcXkXcXcXcXcXcXkXcXlXcXlXcXkXcXcXlXlXcXlXlXlXcXlXlXcXlXcXlXcXlXcXcXlXlXcX", -"cXlXlXlXlXlXlXcXlXcXcXlXcXlXlXcXcXlXcXlXlXcXlXlXlXcXlXcXlXcXcXcXlXlXcXlXlXcXlXlXcXlXlXcXcXlXlXlXlXlXlXcXlXcXlXlXcXlXlXlXlXlXcXlXcXlXcXlXlXlXlXlXcXlXlXlXlXlXcXlXcXlXcXlXlXcXlXlXcXkXcXcXkXcXcXlXlXcXcXlXlXcXlXlXcXlXcXkXcXkXlXcXlXcXcXlXlXcXlXlXcXlXlXlXlXlXlXlXcXkXcXlXlXcXlXlXcXlXlXcXlXlXlXcXlXcXcXlXlXcXlXlXlXcXlXcXcXcXK.2 X X X X X X X X X X X X X X X X 9 K.cXlXcXlXlXcXlXcXcXcXlXcXcXkXkXcXkXcXkXcXkXcXkXcXcXcXcXkXcXcXlXlXcXlXlXcXlXcXlXcXlXlXcXlXlXcXcXlXlXcXcXlXlXcXlXlXlXcXcXlXcXlXcXlXlXcXlXlXlXcXcXlXcXlXcXlXlXcXlXcXlXcXlXlXcXlXlXlXlXcXlXcXlXcXlXcXlXlXlXcXcXlXcXlXcXlXlXlXlXlXcXcXcXkXcXkXcXkXcXkXcXkXcXcXcXkXkXcXlXcXlXlXcXcXcXcXcXkXcXcXlXcXlXcXlXlXcXlXlXlXlXlXlXlXcXlXlXcX", -"lXlXcXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXkXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXjXcXlXlXlXlXlXlXlXlXlXlXlXlXcXlXlXlXlXlXlXlXlXlXlXcXlXlXlXlXcXlXlXlXlXlXlXlXlXlXlXlXlXcXkXkXkXcXkXkXcXlXlXlXlXlXlXlXlXkXcXkXcXkXcXlXlXlXlXlXlXlXlXlXlXlXlXlXcXlXlXlXlXkXcXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXkXG.1 X X X X X X X X X X X X X 1 G.jXlXlXlXlXlXlXlXlXkXkXcXkXlXkXcXcXkXcXkXcXkXcXkXcXcXkXkXkXcXkXkXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXcXlXlXkXcXkXcXkXcXkXcXkXcXkXcXkXcXkXcXlXlXkXcXlXlXkXlXkXkXkXcXkXlXlXlXlXlXlXlXlXlXlXcXlXlXlXlXlXlXlXlX", -"lXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXkXcXkXcXcXkXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXkXlXlXlXlXlXlXlXlXlXkXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXkXcXkXcXlXlXlXkXlXlXlXlXlXkXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXkXcXkXcXlXlXlXlXlXkXlXlXlXlXlXlXkXcXkXcXkXcXcXkXcXkXkXcXlXlXlXlXlXjXG.- X X X X X X X X 1 i.jXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXkXlXlXlXlXlXlXlXkXkXcXcXkXkXkXcXlXlXkXkXlXlXlXlXlXlXkXkXlXlXlXlXlXlXlXlXlXlXkXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXcXlXlXlXlXlXlXlXlXlXlXkXlXlXlXlXlXlXlXkXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXkXlXlXlXlXlXlXlXlXkXcXkXcXkXcXcXkXlXlXlXlXkXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlXlX", -"lXkXkXlXkXlXlXkXkXlXkXlXkXlXlXkXlXlXlXkXkXkXkXkXkXlXlXkXlXkXkXlXlXlXlXkXkXlXlXkXlXkXlXkXkXlXlXkXlXkXkXlXkXlXkXlXlXkXlXkXlXlXlXkXjXlXlXkXkXlXkXlXlXkXlXkXkXlXkXlXkXlXkXkXlXkXcXkXkXlXlXkXcXkXkXlXkXlXlXkXlXkXkXlXlXkXlXlXkXkXkXlXkXkXlXkXkXlXkXlXlXkXkXlXkXlXkXlXlXkXkXkXlXkXkXlXkXlXkXlXlXkXlXkXcXkXkXkXkXlXkXkXlXkXkXkXlXkXkXlXlXlXlXgXr.O X X X X X X X X X $ r.gXkXkXlXlXlXkXlXkXlXlXkXlXkXkXlXlXkXlXlXkXlXkXlXlXkXlXkXkXlXkXkXkXcXkXcXlXkXlXkXkXlXkXlXlXkXlXkXkXlXkXlXjXkXlXkXlXlXlXkXkXlXkXlXkXlXkXkXlXkXkXlXlXkXkXlXlXkXkXlXkXkXkXkXkXlXkXlXkXlXkXkXlXkXlXkXkXlXkXkXkXlXkXlXlXkXlXkXlXkXkXlXlXkXlXlXkXlXkXlXkXlXlXkXkXcXkXkXkXkXkXkXlXkXlXkXlXlXkXlXlXkXlXkXkXlXkXlXlXlXlXlXkXlXlXkXlXkXlXkXkXlXlXkX", -"lXlXlXkXlXkXlXkXlXlXlXlXkXlXkXlXlXkXkXkXkXkXlXcXlXkXkXlXlXlXkXkXkXlXkXlXlXkXkXkXlXlXlXlXlXkXkXlXkXkXkXkXlXlXlXlXkXlXlXkXkXkXkXkXlXkXkXlXlXlXkXkXkXlXkXlXlXlXlXlXlXkXkXkXkXkXcXkXlXkXkXkXkXkXkXkXlXkXkXlXlXlXlXlXkXlXkXkXlXlXlXlXkXlXkXkXlXkXlXkXkXlXkXlXlXkXlXkXlXlXkXlXlXlXkXlXlXlXlXlXkXlXlXkXkXkXlXlXlXkXkXcXkXkXkXcXlXlXkXlXkXlXlXlXlXgXr.# X X X X X X X X X X X X X $ r.gXkXlXlXlXkXlXkXlXkXkXlXkXlXlXlXlXlXkXlXkXkXlXlXlXlXkXlXlXkXkXcXkXlXkXcXkXkXkXlXlXlXlXkXlXkXkXlXlXlXlXkXkXlXlXlXlXkXlXkXkXkXlXlXlXlXkXkXkXkXkXlXkXkXkXlXkXkXlXkXlXkXkXlXkXkXkXlXkXlXlXkXkXkXkXlXlXlXlXkXkXkXlXkXlXlXkXlXlXkXlXlXkXlXkXkXlXlXlXlXlXlXkXlXkXlXkXkXkXkXkXkXkXcXkXlXlXlXkXlXkXlXkXlXlXlXlXkXkXlXkXlXlXkXlXkXkXkXlXlXlXlXkXlXkXlX", -"kXkXlXkXlXkXkXkXkXkXkXkXkXlXkXkXkXkXkXkXkXlXkXkXkXlXkXkXkXkXkXkXkXkXlXkXlXkXkXkXkXkXkXkXkXlXkXkXkXkXkXkXkXkXkXkXkXkXlXkXkXkXkXkXkXlXkXkXkXkXkXkXkXlXkXlXkXkXkXkXkXkXkXkXlXkXkXkXkXlXkXlXkXkXkXkXkXlXkXkXkXkXkXkXkXlXkXlXkXkXkXkXlXkXlXkXkXlXkXlXlXkXlXkXkXlXkXkXkXlXlXkXkXlXkXlXkXkXkXkXlXkXlXkXkXkXkXkXkXkXkXkXkXkXkXlXkXlXkXlXlXkXlXlXlXlXlXyX} O X X X X X X . } yXcXlXkXlXkXkXkXkXlXkXlXlXkXlXkXkXkXkXkXkXlXkXlXkXkXkXkXkXkXlXkXkXkXkXkXkXkXkXkXkXkXkXkXlXkXlXkXkXkXkXkXlXkXlXkXkXkXlXkXkXkXkXkXkXkXkXkXlXlXkXlXlXkXkXkXlXkXlXkXkXlXkXlXlXkXkXkXlXkXlXkXkXlXkXkXkXkXkXkXlXkXkXkXkXlXkXkXlXkXlXkXkXkXlXkXkXlXkXkXkXkXkXkXkXlXkXkXkXcXkXkXkXcXkXkXkXkXkXlXkXkXlXkXkXkXkXkXlXkXlXkXkXkXlXkXlXkXkXkXkXkXkXkXkXlXkXkX", -"kXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXlXlXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXlXkXkXkXkXkXkXlXkXkXkXkXkXkXkXkXlXlXkXkXkXkXkXkXlXkXkXkXkXkXkXkXkXkXkXkXkXkXyX} X X X X X X X X X X X } yXkXcXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXlXkXkXkXlXkXkXkXkXkXkXkXkXkXkXlXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXhXlXlXlXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXlXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkX", -"kXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXhXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXhXkXkXkXkXkXkXkXkXkXkXkXkXkXkXhXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXhXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXhXkXkXhXkXkXkXhXkXkXkXkXkXkXkXkXhXkXkXkXkXkXkXkXyX` X X X X X X X X X X X X X X . ` 8XkXkXkXkXkXkXkXkXkXkXkXkXhXkXkXkXkXkXkXkXkXkXhXkXkXkXhXkXkXkXkXkXkXkXkXkXhXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXlXlXhXhXkXkXlXkXkXhXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXhXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXhXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXhXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkX", -"kXkXkXkXkXkXkXkXkXhXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXhXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXhXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXhXkXkXkXkXkXkXkXkXkXkXkXkXkXkXhXkXkXhXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXhXqX` X X X X X X X X ` qXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXhXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXhXlXkXkXlXlXkXkXkXhXkXkXhXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXhXkXkXhXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXhXkXhXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkXkX", -"hXkXkXhXkXhXkXkXkXkXkXkXhXkXkXhXkXhXkXkXkXhXhXkXkXkXkXkXkXkXhXkXkXkXkXhXkXhXkXkXhXkXhXkXkXhXkXkXkXhXkXkXhXkXhXkXkXkXkXkXkXkXkXhXkXkXkXkXkXkXhXkXkXkXkXkXhXkXkXkXkXkXhXkXkXhXkXkXkXkXkXkXkXkXkXkXkXkXhXkXhXkXkXhXkXhXkXkXhXkXkXhXkXhXkXkXkXhXhXkXkXhXkXkXkXkXhXkXhXkXkXkXhXkXkXhXkXhXkXkXkXhXkXkXkXkXhXkXkXhXkXkXkXkXkXkXhXkXkXhXhXkXkXkXkXkXhXkXkXhXhXkXhXkXkX7XH X X X X X X X X X H 7XhXkXkXkXkXhXkXkXhXkXkXkXhXkXhXkXkXkXkXhXkXkXhXkXkXhXkXkXhXkXkXkXhXkXhXkXkXhXkXkXkXhXkXkXkXkXkXkXkXkXkXhXkXkXhXkXkXkXkXhXkXkXkXkXkXkXhXkXhXkXkXhXlXhXlXhXhXlXhXkXkXkXkXkXkXkXkXkXkXkXkXhXkXkXhXkXkXkXkXhXkXkXkXkXkXkXkXhXkXkXkXkXkXkXkXkXkXkXkXkXhXkXkXhXkXhXkXkXhXkXhXkXkXkXhXkXkXkXkXkXkXkXkXhXkXkXhXhXkXkXkXhXkXkXhXkXkXhXkXkXkXkXkXhXkXhXkXkXhXkXkXhXkXkXkX", -"kXkXkXkXhXkXkXhXhXkXkXhXkXhXkXkXhXkXkXkXkXhXkXkXkXkXhXkXkXhXkXkXkXkXkXkXhXkXkXhXkXkXkXkXhXkXkXhXhXkXkXkXkXhXkXkXhXkXkXkXkXkXkXkXkXkXkXkXhXkXkXhXhXkXkXhXkXhXkXkXkXkXhXkXkXhXkXhXhXkXhXkXkXkXkXkXkXkXhXkXkXhXkXhXhXkXkXhXkXkXkXkXhXkXkXkXkXhXkXkXkXkXhXkXkXkXkXkXkXkXkXkXhXkXkXhXhXkXkXhXkXkXhXkXkXhXkXhXkXkXhXkXkXhXkXkXhXkXhXkXhXkXkXhXkXkXhXkXkXhXkXkXhXkXhXkXkX7XH X X X X X X X X X X H 7XkXhXhXkXkXhXkXhXkXkXkXkXkXkXhXkXkXhXkXhXkXhXkXkXhXkXhXkXkXkXkXhXkXhXkXkXhXkXhXkXkXhXkXhXkXkXhXkXhXhXkXhXkXkXkXkXhXkXkXhXkXhXkXkXhXhXkXkXkXkXkXkXkXkXhXlXhXkXlXhXlXkXkXhXkXhXkXkXhXhXkXkXhXkXkXhXkXkXhXkXkXhXkXhXkXkXkXhXkXhXkXkXhXhXkXhXkXhXkXkXkXkXhXkXkXkXkXhXkXhXkXkXhXkXhXkXhXkXkXhXkXhXkXkXkXkXkXhXkXkXkXkXhXkXhXkXhXkXkXhXkXkXhXkXkXhXkXhXkXhXkXkXhXkXkXkXkX", -"hXhXhXhXkXkXhXkXkXhXkXhXhXkXkXhXkXhXhXhXhXkXhXkXhXhXkXhXhXkXhXhXhXhXhXhXkXkXhXkXhXhXhXkXkXhXkXhXkXhXhXhXhXkXhXkXhXkXhXhXhXhXhXhXhXhXhXhXhXkXhXkXkXhXkXhXhXkXhXhXhXkXkXhXhXkXhXkXkXhXkXkXhXhXhXhXhXhXkXhXhXkXhXkXkXhXkXhXhXhXhXhXkXhXhXhXhXkXhXkXhXkXhXkXhXhXhXhXhXhXhXhXkXkXhXkXkXhXhXkXhXkXkXhXkXhXhXkXkXhXkXhXhXkXhXhXkXhXkXkXkXkXhXkXhXhXkXhXhXkXhXkXkXhXkXhXhXhXhX[.n X X X X n 6XhXhXhXhXkXhXkXkXhXkXhXhXkXhXhXhXkXkXhXhXkXkXhXkXhXhXkXhXkXhXhXhXhXkXhXkXhXhXkXhXkXhXkXkXhXkXhXkXhXhXkXhXhXkXhXhXhXhXkXhXkXkXhXkXhXhXkXhXkXhXhXhXhXhXhXhXkXhXkXhXhXhXhXhXkXkXhXkXhXkXhXkXkXhXkXhXhXkXhXhXkXhXkXkXhXkXhXhXkXkXhXkXhXhXkXhXkXkXhXkXhXhXhXhXkXhXhXhXkXkXhXkXhXhXkXkXhXhXkXhXkXkXhXkXhXhXhXhXkXkXhXhXhXhXkXkXhXhXkXhXhXkXhXhXkXhXhXkXkXhXkXkXhXkXhXhXhXhXhX", -"kXhXhXkXhXkXkXhXhXhXkXkXhXkXhXhXhXkXkXhXkXkXhXhXhXkXkXkXkXhXkXhXkXhXhXkXhXkXkXhXkXkXhXhXkXhXhXkXhXkXkXhXkXkXhXhXkXhXkXhXhXkXhXkXkXhXhXkXkXhXkXhXhXhXkXkXhXkXkXhXkXhXkXkXhXkXhXhXhXkXkXhXkXhXhXkXhXkXhXkXkXhXkXhXhXhXkXkXhXkXkXhXhXkXkXhXkXkXhXhXhXhXhXhXkXhXhXkXkXhXhXkXhXkXkXhXhXhXkXkXhXkXhXhXkXhXhXkXhXhXkXkXkXhXhXkXhXkXkXhXhXhXkXhXhXkXhXkXkXkXhXhXkXhXhXkXkXkXkXhXkX6Xr X X X X X X X X X X X r 6XhXhXhXkXkXkXkXhXhXkXhXhXkXhXhXkXhXhXkXhXhXkXhXhXkXhXkXkXhXhXkXkXhXkXkXkXkXkXhXkXhXkXhXhXkXkXhXhXkXhXkXkXhXkXkXkXkXhXkXkXhXkXhXhXkXhXhXkXkXkXhXkXhXhXkXhXkXhXhXhXhXhXlXhXlXkXhXhXkXhXhXkXkXhXhXkXhXhXkXhXkXkXkXhXhXkXhXhXkXkXhXhXkXhXhXkXkXhXkXhXkXhXkXkXhXhXkXkXhXkXhXhXkXkXhXhXkXkXhXhXkXkXhXhXkXhXkXkXhXkXkXhXkXhXkXkXhXhXkXkXhXkXkXhXkXkXhXhXkXhXkXkXhXhXhXkXkXhXkXkXhX", -"kXhXkXhXhXhXhXkXhXkXhXhXkXhXhXkXkXhXhXkXhXhXhXkXhXhXhXhXkXhXhXkXkXhXkXhXhXhXhXkXhXhXkXhXhXkXhXhXkXhXhXkXhXhXkXhXhXkXhXkXhXhXkXhXkXhXkXhXhXkXhXkXhXkXhXhXhXhXhXkXhXhXhXhXkXhXhXkXhXhXhXhXkXhXkXhXhXhXkXhXhXkXhXkXhXkXhXhXhXhXkXhXkXhXhXkXhXhXhXkXhXkXkXhXkXhXhXkXkXhXkXhXhXhXhXkXhXkXhXhXkXhXhXkXhXkXhXhXhXkXhXhXkXhXhXkXhXhXhXkXhXkXhXkXhXhXkXhXhXhXhXkXhXkXhXhXhXhXhXkXkXkXaX[.w X X X X X w [.kXkXhXhXkXhXhXhXhXhXkXhXkXhXhXkXhXhXkXkXhXhXkXhXkXhXhXkXhXhXkXkXhXhXkXhXhXhXhXhXhXkXhXhXkXhXhXhXkXhXhXkXhXhXkXhXhXhXhXhXhXkXhXhXhXkXhXkXhXhXhXhXkXhXkXhXhXkXhXlXhXlXhXhXhXhXhXhXhXkXhXhXkXhXhXhXkXhXkXhXhXkXhXhXhXhXkXhXkXhXhXhXhXkXhXkXhXhXhXkXhXhXhXkXhXhXkXhXhXkXhXhXhXkXhXhXkXhXhXhXkXhXhXhXkXhXhXkXhXhXkXhXhXkXhXhXhXkXhXkXhXhXkXhXhXkXhXkXhXkXhXhXhXhXkXhXkXhXhXhXhXkXhX", -"hXhXhXhXkXhXhXhXhXkXhXhXhXhXhXhXkXhXhXhXkXhXhXhXhXkXhXhXhXkXhXhXhXhXhXhXkXhXhXhXkXhXhXhXhXhXhXhXkXhXhXhXkXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXkXhXhXhXhXkXhXhXkXhXhXhXhXkXhXhXhXhXhXkXhXkXhXhXhXhXkXhXhXkXhXhXkXhXhXhXhXhXhXkXhXkXhXhXkXhXhXhXkXhXhXhXhXhXhXkXkXhXhXhXhXhXhXhXkXhXhXhXhXkXhXhXhXhXhXhXhXhXhXkXhXhXkXhXhXhXhXhXhXhXhXhXhXhXkXhXhXhXhXkXhXhXhXkXhXhXkXhXhXkXhXhXkXhXhXhXhXK.w X X X X X X X X X w K.hXkXkXhXhXhXhXhXkXhXhXkXhXhXhXhXkXkXhXhXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXhXhXkXhXhXkXhXhXhXhXhXhXhXhXkXhXhXhXhXkXhXhXhXhXkXhXhXhXhXkXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXkXhXhXkXhXhXhXhXkXhXhXkXhXhXhXhXkXhXhXhXkXhXhXhXhXhXhXkXhXhXhXhXkXhXhXkXhXhXhXhXhXhXkXhXkXhXhXkXhXhXhXhXhXhXkXhXkXhXhXkXhXhXhXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXkXhXhXhXhXhXhXkXhXhXhXhXkXhXhXhXkXhXhX", -"hXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXhXhXhXhXkXhXhXhXkXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXK.3 . X X X X X X X 6 K.hXhXkXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhX", -"hXhXhXhXhXhXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXkXhXhXhXhXgXi.- . X X X X X 1 G.gXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXkXhXhXhXhXhXhXkXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhX", -"hXkXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXkXhXhXhXhXkXhXhXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXaXi.1 X X X X X X X X X : G.aXhXhXhXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXkXhXhXhXhXkXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXkXhXhXhXhXhXhXhXhXhXhXkXhXhX", -"hXhXhXaXhXaXhXhXhXhXhXhXhXaXhXhXaXhXaXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXaXhXaXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXaXhXhXaXhXhXaXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXaXhXhXaXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXaXhXhXaXhXhXhXaXhXhXaXhXhXuXr.& X X X X = r.uXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXaXhXhXaXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhX", -"hXhXhXhXhXhXaXhXaXhXaXhXhXhXhXhXhXhXhXhXaXhXaXhXhXaXhXaXaXhXhXaXaXhXhXaXaXhXhXhXaXhXhXaXhXhXhXhXhXhXhXhXhXaXaXhXhXhXaXhXhXaXhXaXaXhXhXhXhXhXhXhXaXhXhXaXhXaXaXhXhXaXaXhXhXhXhXhXhXhXhXhXaXhXhXaXhXhXaXhXhXaXhXaXaXhXhXaXaXhXhXaXaXhXaXhXhXaXaXhXhXhXaXhXhXaXhXhXhXhXaXhXhXaXaXhXhXaXaXhXhXaXhXaXaXhXhXaXaXhXhXaXaXhXaXhXhXaXaXhXhXaXaXhXhXaXhXaXaXhXhXaXaXhXhXaXaXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXyXr.& X X X X X X X X # r.uXhXhXhXhXaXhXhXaXhXaXaXhXhXaXaXhXhXaXaXhXaXhXhXaXaXhXhXhXaXhXhXaXhXaXhXhXaXhXhXhXaXhXaXhXaXhXaXhXaXhXaXhXaXhXaXhXaXhXhXaXhXaXhXaXhXaXhXhXhXaXaXhXhXaXaXhXaXhXhXaXaXhXaXhXhXaXaXhXhXhXhXhXhXhXhXaXaXhXaXhXhXaXaXhXhXaXaXhXaXhXhXaXaXhXhXhXaXhXhXaXhXaXaXhXhXaXaXhXhXaXhXaXhXhXhXaXhXhXaXhXaXhXaXhXaXhXhXaXhXhXhXaXhXhXaXhXaXhXaXhXaXhXhXhXhXaXaXhXhXaXhXhXaXhXhXaXhXaXaXhXhXaXaXhXhXaXaXhXaXhXhXaXaXhX", -"aXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXhXaXhXhXhXhXhXhXhXhXhXhXaXhXaXhXhXhXhXhXhXaXhXhXhXhXaXhXaXaXhXaXhXhXhXaXhXhXhXhXaXhXhXaXhXhXhXhXhXhXhXhXhXaXhXhXhXhXhXhXhXaXhXhXhXhXhXhXaXaXhXaXhXhXaXhXhXaXhXhXaXhXhXaXhXhXhXhXaXhXaXhXhXhXhXhXhXaXhXhXhXhXhXhXaXaXhXaXhXhXaXhXaXhXhXaXhXhXhXhXhXhXhXhXhXhXhXaXhXhXaXhXhXhXaXhXhXaXhXhXhXhXhXhXhXhXhXhXhXhXhXaXhXhXaXaXhXaXhXhXhXaXhXhXhXaXhXhXaXaXhXaXhXhXaXhXhXaXhXyX[ O X X X X X o [ yXaXhXhXaXhXaXhXhXhXhXhXhXhXaXhXaXhXhXhXaXhXhXaXhXhXhXhXhXhXaXhXhXaXhXhXhXaXhXhXaXaXhXhXaXhXhXaXhXhXhXaXhXhXhXhXhXhXhXaXhXaXhXhXhXhXaXhXhXaXhXhXhXhXhXhXaXhXhXaXhXhXhXhXhXaXhXhXaXhXhXaXhXhXhXaXhXhXhXhXhXaXhXhXaXhXhXhXaXhXhXaXhXhXhXhXhXhXaXhXhXaXhXhXhXhXaXhXaXhXhXhXhXaXhXhXaXaXhXhXaXhXhXhXhXhXhXhXhXaXhXhXaXaXhXhXaXhXhXhXhXhXhXhXhXhXhXhXhXhXaXhXaXhXaXhXhXaXhXhXhXhXaXhXaXhXhXhXhXhXhXaXhXhXhXhXhX", -"aXhXaXaXaXhXaXaXaXhXaXaXaXaXaXaXaXaXhXaXaXhXaXaXaXaXaXhXaXhXaXhXaXhXaXaXaXhXhXpXpXhXpXhXhXaXhXhXhXpXhXpXhXhXhXpXhXaXaXhXhXaXaXhXaXhXaXaXaXaXhXaXaXhXaXaXaXhXhXaXaXhXaXaXhXaXhXhXhXaXaXhXaXaXhXaXhXaXaXhXhXaXaXhXaXhXaXhXaXhXaXaXaXhXhXaXaXaXhXaXhXaXhXhXhXaXaXhXaXhXaXhXhXhXaXaXhXaXaXhXaXaXaXhXhXhXaXhXaXhXaXhXaXhXhXaXaXaXhXaXaXhXaXaXaXaXaXhXhXhXaXhXhXaXhXhXaXhXhXaXaXaXhXaXhXaXhXhXhXaXaXhXaXhXhXaXhXaXyX[ o X X X X X X } yXaXaXhXhXaXhXhXaXaXhXaXaXaXhXhXhXaXhXaXhXaXhXaXhXhXaXaXaXhXaXhXaXaXhXhXaXaXhXhXaXhXaXhXaXhXaXhXaXhXaXhXaXhXhXaXaXaXaXhXaXhXhXaXhXaXhXaXhXaXhXhXhXaXaXaXhXaXhXaXhXhXaXaXaXhXaXhXaXhXhXaXhXhXaXaXaXhXaXhXaXaXhXhXhXaXhXaXhXaXhXaXhXhXaXaXaXhXaXhXaXaXhXhXaXaXhXaXhXaXhXaXhXaXaXhXaXhXaXhXaXhXaXaXaXaXhXaXaXaXhXhXaXhXaXhXaXhXaXaXaXaXhXaXaXaXhXaXaXaXhXaXhXaXhXhXaXaXhXhXaXaXhXaXhXaXhXaXhXaXaXaXhXhXaXaXaXhXaX", -"hXaXhXaXaXaXhXaXhXaXhXaXaXaXaXaXaXhXaXaXhXaXaXhXaXhXaXaXhXaXhXaXhXaXaXhXaXhXaXhXhXhXaXaXhXaXhXaXaXaXhXaXpXhXpXhXaXaXhXaXaXhXaXaXhXaXaXaXaXhXaXaXaXaXaXhXaXaXaXaXaXaXhXaXaXhXaXaXhXaXaXaXaXaXaXhXaXaXhXaXaXhXaXaXhXaXaXhXaXaXaXhXaXaXaXaXaXhXaXaXaXaXhXaXaXhXaXaXaXhXaXaXaXaXhXaXaXhXaXaXhXaXhXaXaXaXaXhXaXaXhXaXaXaXhXaXaXhXaXaXhXaXaXhXaXaXaXaXaXaXaXhXaXaXhXaXhXaXaXaXaXhXaXaXaXaXhXaXaXhXaXaXaXhXaXaXaXaXhXaX8XE X X X X X X X X X X X X X E 8XaXhXaXaXaXaXhXaXaXhXaXaXaXhXaXaXaXaXaXhXaXaXhXaXaXaXhXaXaXhXaXaXaXaXhXaXaXhXaXaXaXaXhXaXaXhXaXhXaXaXhXaXaXaXhXaXhXaXhXaXaXaXhXaXaXhXaXaXaXaXaXhXaXaXaXhXaXaXhXaXaXaXhXaXaXhXaXaXaXaXaXhXaXaXaXaXaXhXaXaXaXhXaXaXaXaXaXhXaXaXhXaXaXaXhXaXaXhXaXaXaXaXhXaXaXhXaXaXhXaXaXhXaXaXaXhXaXhXaXaXaXaXaXhXaXaXaXhXaXaXhXaXaXhXaXaXaXaXaXhXhXaXaXhXaXaXaXaXaXhXaXaXhXaXhXaXaXaXhXaXaXaXaXaXhXaXaXhXaXaXaXhXaXaXhXaXaXhXaXaX", -"aXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXpXaXaXaXpXpXhXaXhXpXaXaXaXhXpXaXpXhXhXpXaXaXaXaXaXaXaXhXaXaXaXaXaXaXhXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXhXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXhXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXhXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaX8X` X X X X X X X ` 8XaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXhXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXhXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaX", -"aXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXhXpXaXaXhXpXaXaXpXaXaXaXaXaXaXaXaXaXpXhXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaX7XG X X X X H {.aXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXpXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXpXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaX", -"aXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXpXhXpXhXaXaXaXaXaXaXaXaXaXaXaXaXaXpXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXpXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXpX{.H X X H 7XaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaXaX", -"aXaXaXaXaXpXaXaXpXaXaXpXaXaXpXaXaXpXaXpXaXpXaXaXaXaXaXpXaXpXaXpXpXaXpXaXpXaXpXaXpXhXpXpXaXpXaXpXpXaXpXaXaXpXaXpXaXpXaXpXpXaXpXaXaXpXaXaXaXpXaXpXaXaXpXaXaXpXaXaXaXpXaXpXaXpXaXpXaXaXpXaXpXaXaXpXaXpXaXpXaXaXaXpXaXpXaXpXpXaXaXpXaXaXpXaXaXaXpXaXaXaXaXpXaXaXpXaXaXpXaXaXaXpXaXaXpXaXaXpXaXaXaXaXaXaXpXaXaXaXaXaXaXaXaXpXaXaXpXaXaXpXaXaXpXaXaXpXpXaXaXpXaXaXaXaXaXpXaXpXaXpXaXpXaXpXaXpXpXaXpXaXaXaXaXpXaXpXaXaXpXaXaXpXaXpXaXaX[.n X X X X X n [.aXaXaXaXaXaXaXaXaXaXaXaXpXaXaXpXaXpXaXpXaXpXaXaXaXaXaXaXaXpXaXpXaXaXpXaXaXaXpXaXaXaXaXaXaXaXpXaXaXpXaXaXpXaXaXpXaXpXaXpXaXaXaXpXpXaXaXpXaXaXpXaXpXaXpXaXpXaXpXaXaXpXaXaXaXaXaXaXaXpXaXpXaXpXaXpXaXaXpXaXaXpXaXaXpXaXaXaXpXaXaXaXaXaXpXaXaXaXpXaXaXaXaXpXaXaXpXaXpXaXpXaXpXaXaXaXpXaXpXaXpXaXpXaXaXpXaXaXaXaXaXpXaXpXaXpXaXpXaXpXaXaXaXaXaXaXaXpXaXpXaXaXpXaXpXaXaXaXaXpXaXaXpXaXaXaXaXpXaXpXaXaXaXpXaXpXaXaXaXaXaXaXaXpXaXpXaXpX", -"pXpXpXpXaXpXpXaXaXpXaXpXpXaXaXpXpXaXpXaXpXaXpXpXaXaXpXaXpXaXpXaXaXpXaXpXpXaXaXaXpXpXaXhXpXaXpXpXaXpXaXpXaXpXpXaXpXaXpXaXaXpXaXpXaXaXpXpXaXpXpXaXpXaXaXpXaXpXpXaXpXaXpXaXaXaXpXaXpXaXaXaXaXpXpXaXaXpXpXaXaXpXpXaXpXaXpXaXaXaXpXaXpXaXaXpXpXaXaXpXpXpXpXaXpXpXpXaXpXaXpXpXaXpXpXaXaXpXaXpXpXaXpXpXpXpXaXaXpXpXpXaXpXpXaXpXpXaXaXpXaXpXpXaXaXpXaXaXaXaXpXaXpXpXpXpXpXaXpXaXpXaXpXaXpXaXaXaXaXpXaXpXpXpXpXaXpXpXpXaXaXpXaXpXpXpXpXaXhXaX[.r X X X X X X X X X r [.aXpXpXpXpXaXpXpXpXpXaXaXpXaXaXpXaXpXpXaXpXaXaXaXpXaXpXpXpXaXaXaXpXpXpXaXaXpXpXaXaXpXpXpXpXpXpXpXpXaXaXpXpXaXaXpXpXaXpXaXpXaXaXpXaXpXpXpXaXpXpXaXaXpXaXaXaXpXaXpXaXaXpXaXpXaXpXpXpXpXpXaXaXpXpXaXpXaXpXaXaXpXpXaXpXaXpXaXpXpXpXaXpXpXpXpXaXaXpXpXaXaXaXaXaXpXpXaXaXpXaXaXaXpXaXpXpXaXaXpXaXaXaXpXaXaXaXpXpXaXpXpXpXaXpXaXpXaXpXaXaXpXaXpXpXaXpXpXpXaXaXpXpXaXaXpXaXaXaXaXaXpXpXaXaXpXpXpXpXaXaXpXpXpXpXaXpXaXpXpXpXaXaXaXpXaXpXaXpXaX", -"pXpXpXpXaXpXpXpXpXpXpXpXpXpXpXpXpXpXaXpXpXpXaXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXaXpXpXpXpXpXpXpXpXpXaXpXaXaXpXpXpXpXpXaXpXpXaXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXaXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXaXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXaXpXpXaXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXaXpXpXpXaXpXpXaXpXpXpXpXpXpXpXpXpXpXpXaXaXpXpXpXpXaXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXaXpXpXpX[.w X w [.pXpXpXpXpXpXpXpXpXpXpXaXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXaXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXaXpXpXpXpXpXpXpXpXpXpXpXpXaXpXpXpXpXpXaXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXaXpXpXpXaXpXaXpXpXpXpXpXpXpXpXaXpXpXaXaXpXpXaXpXpXpXpXpXpXpXpXpXpXpXpXpXaXaXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXaXpXpXpXpXpXaXpXpXpXpXpXpXaXpXpXpXpXpXpXpXpXaXpXpXaXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXaXpXpXpXpXaXpXpXpXpXpXpXpXpXpXaXpXpXpX", -"pXpXpXaXpXpXpXpXpXaXpXpXaXpXpXaXpXpXpXpXpXpXpXpXpXpXpXpXpXpXaXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXaXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXaXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXaXpXpXpXpXpXpXpXpXpXpXpXpXpXpXaXpXpXpXpXpXpXpXpXpXaXpXpXpXpXaXpXpXaXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXaXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXaXpXpXpXpXpXpXaXpXpXpXpXpXpXpXpXpXpXpXpXK.6 X X X X w K.pXpXpXpXpXpXpXaXpXpXpXaXpXpXpXpXaXpXpXaXpXpXpXpXpXpXpXpXpXpXaXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXaXpXpXpXpXpXpXpXpXpXpXaXpXpXpXaXpXpXpXpXpXaXpXpXaXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXaXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXaXpXpXpXpXaXpXpXpXpXpXpXpXpXpXpXaXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXaXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXaXpXpXpXpXpXpXpXpXpXpXaXpXpXaXpXpXaXpXpXaXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXaXpXpXpXpX", -"pXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXaXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXK.6 X X X X X 1 K.iXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpX", -"pXpXpXpXpXpXpXpXpXpXpXpXpXiXiXpXpXpXpXpXpXpXiXpXpXpXpXpXpXpXpXpXiXpXpXpXpXiXpXpXpXpXpXpXiXpXpXpXpXpXpXiXpXpXiXpXpXpXpXpXpXpXpXiXiXpXpXpXpXiXpXpXpXpXpXpXpXiXpXpXpXpXpXpXpXpXpXpXpXiXpXpXpXpXpXpXpXpXpXpXiXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXiXpXiXpXpXpXpXpXpXpXpXiXpXpXiXpXpXpXpXpXpXpXiXpXpXiXpXpXpXiXpXpXpXiXpXiXpXpXpXpXpXpXiXpXpXiXpXpXpXiXpXpXpXpXpXiXpXpXpXpXpXpXpXpXiXpXiXpXpXpXpXpXpXpXpXpXpXpXpXiXpXpXpXpXpXpXpXpXiXpXpXpXpXiXpXpXpXpXpXiXiXG.1 X X X X X 1 G.iXpXpXpXpXiXpXpXpXpXpXiXpXpXiXpXpXpXpXpXpXpXpXpXiXpXpXpXpXpXiXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXiXiXpXpXpXpXpXpXpXpXpXpXpXpXiXpXpXpXpXpXpXpXiXpXiXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXiXpXpXpXpXpXpXiXpXpXpXpXpXpXpXpXpXpXpXpXpXpXpXiXpXpXpXpXpXpXiXpXpXpXpXpXpXiXpXpXpXpXpXiXpXpXpXpXpXpXiXpXpXiXpXpXpXiXpXpXpXpXpXpXpXpXiXpXpXiXpXpXpXpXpXpXpXpXpXiXpXpXpXpXpXiXpXpXpXpXpXpXpXiXpXpXpXiXpXpXpXpXpXiXpXiXpXpXpXpXpXiXpXpXpXpXpXpXpXpXiXpXpXpXpXpXpXpXpXpXpX", -"pXpXiXiXiXpXpXpXiXiXpXpXpXpXpXpXpXiXpXpXpXpXiXpXiXpXpXiXpXiXpXpXpXpXiXpXpXpXpXpXpXiXpXiXpXpXpXiXpXpXiXpXpXpXpXpXpXiXpXiXiXpXiXpXpXpXpXpXpXpXiXiXiXpXpXpXpXpXiXiXpXiXpXpXpXiXpXiXpXiXiXpXpXpXpXpXpXiXpXiXpXpXiXpXpXpXpXiXpXiXpXiXpXiXpXpXpXpXpXpXpXpXiXiXiXpXpXpXpXpXiXpXiXpXiXiXiXpXiXpXpXpXpXpXpXiXpXpXiXpXiXpXpXpXpXiXpXpXpXiXiXpXpXpXiXpXpXpXiXpXiXpXpXpXiXpXpXiXpXpXpXpXiXpXpXpXiXiXiXpXpXpXpXiXpXiXpXpXpXpXpXpXpXpXpXpXpXpXpXiXpXpXpXiXpXiXiXpXiXuXG.- X X : G.iXpXpXpXiXpXiXpXiXpXiXiXpXpXpXiXpXpXiXpXiXpXpXiXpXiXpXpXpXiXpXiXpXpXiXpXpXpXpXiXpXiXpXiXpXiXpXpXpXpXpXpXpXpXiXiXiXiXpXpXiXpXpXpXpXiXpXpXiXpXpXpXpXiXiXpXiXpXpXiXpXiXpXpXpXiXpXpXpXiXiXpXpXpXpXiXpXpXiXpXiXpXpXiXpXiXpXiXpXiXpXiXpXpXpXiXpXpXpXiXpXiXpXpXpXiXpXpXpXiXpXiXpXpXiXpXpXpXpXiXiXpXpXpXpXiXpXpXiXpXpXpXiXpXpXpXiXpXpXpXiXpXpXpXpXiXpXiXpXpXiXpXiXpXpXpXiXpXpXpXiXpXiXpXiXpXpXpXiXiXpXpXpXpXpXpXiXiXpXpXpXpXpXpXpXpXpXiXpXpXpXiXiXpXpXiXpXpXpXiX", -"iXpXpXpXpXiXpXiXpXpXpXiXpXiXiXpXpXpXpXiXiXpXpXpXiXpXpXiXpXpXpXiXiXpXpXpXpXiXiXpXpXpXpXpXiXpXpXpXpXpXpXpXiXpXiXpXpXpXpXpXpXpXpXpXpXiXiXpXiXpXpXpXpXiXpXiXiXpXpXpXpXpXpXiXpXiXpXpXpXpXpXpXiXpXiXpXpXiXpXpXpXiXpXpXiXiXpXpXpXiXpXpXpXpXpXiXiXpXiXpXpXpXpXpXpXiXiXpXpXpXpXpXpXpXpXpXpXpXpXpXiXpXiXpXpXpXpXiXpXpXpXpXpXiXpXpXiXiXpXpXpXpXiXpXiXpXiXpXpXpXiXpXiXpXpXpXpXpXpXiXiXpXpXpXpXpXpXpXpXiXiXpXpXpXpXpXpXiXiXpXpXiXpXiXpXiXiXpXpXpXpXiXpXiXpXpXpXiXpXiXiXeXr.& X X X - e.uXpXpXiXpXiXpXpXpXpXpXpXpXpXiXiXpXpXiXpXpXpXiXpXpXiXpXpXpXiXpXiXpXpXpXiXpXpXiXiXpXpXpXiXpXpXpXpXpXiXpXiXiXpXpXpXpXpXpXpXpXiXiXpXpXiXpXpXpXiXpXpXiXiXpXpXpXpXpXiXpXiXpXpXpXiXpXpXiXiXpXpXpXpXpXiXpXpXiXpXpXpXiXpXpXiXpXpXpXpXpXiXpXpXpXiXpXpXiXiXpXpXpXpXiXiXpXpXpXiXpXiXpXpXpXiXpXpXiXiXpXpXpXpXiXiXpXpXiXpXpXpXpXiXpXpXiXiXiXpXiXpXpXpXpXiXpXiXpXpXpXiXpXpXiXpXiXpXpXpXpXiXpXpXpXpXiXpXiXpXpXpXpXiXpXiXiXpXpXpXpXiXpXiXiXpXiXiXpXpXpXiXpXpXpXiXpXiXpXiXpXpX", -"iXpXiXpXpXpXpXiXpXiXiXpXiXpXpXpXiXiXpXiXpXiXpXiXpXiXiXpXiXpXiXpXpXiXpXpXpXiXpXpXiXiXpXiXiXpXiXpXpXiXiXpXiXpXpXpXiXpXiXpXpXiXpXiXiXpXpXpXpXiXiXpXpXiXpXiXiXpXiXpXiXiXpXpXpXiXpXiXpXiXpXiXpXiXpXiXpXiXpXpXpXiXiXpXiXpXiXpXpXiXpXpXiXpXpXiXiXpXiXpXiXpXiXpXpXiXiXpXiXpXiXpXpXiXpXiXiXpXpXpXpXiXpXiXiXiXpXpXiXpXpXpXiXpXpXiXpXiXpXiXpXiXpXiXpXiXiXpXiXpXiXpXpXiXpXpXiXpXiXpXpXiXiXpXpXpXpXiXpXiXiXpXpXiXiXpXiXpXpXpXiXpXpXpXpXiXpXiXiXiXpXiXiXpXiXpXiXpXpXiXpXpXpXuXr.+ X X # r.9XpXiXiXiXpXiXpXiXpXiXpXpXiXpXiXpXpXpXiXpXiXpXpXpXiXpXpXiXpXiXpXpXiXpXiXpXiXiXpXiXpXiXpXpXiXpXpXiXpXiXpXiXpXpXpXpXiXiXpXiXpXpXpXpXpXpXiXpXpXiXiXpXpXpXiXpXpXiXpXpXiXpXiXpXiXiXpXiXpXiXpXpXiXpXpXiXiXiXpXpXpXiXpXiXpXiXpXiXpXiXpXpXiXpXpXiXiXpXpXpXiXpXpXpXiXpXpXiXpXpXiXpXpXpXiXpXiXpXiXpXiXiXpXiXpXpXpXiXiXpXiXpXiXpXpXiXpXpXpXpXpXpXiXpXpXiXiXpXiXiXpXpXpXiXpXpXiXpXiXpXiXiXpXiXpXiXpXiXpXiXpXiXpXiXpXpXpXpXiXiXpXiXpXpXpXpXiXpXpXpXiXpXpXiXiXpXiXiXpXiXpXiXiX", -"iXiXpXiXiXiXiXpXiXpXiXpXpXiXiXiXiXpXiXpXiXpXiXpXpXiXpXiXpXiXiXiXiXpXiXiXpXiXiXpXiXpXiXpXpXiXpXiXiXpXiXpXpXiXiXiXpXiXpXiXiXpXiXpXpXiXiXiXiXpXiXpXiXpXiXpXiXiXpXiXiXpXiXiXiXpXiXpXiXpXiXpXiXpXiXpXiXpXiXiXpXiXpXiXpXiXiXiXpXiXiXiXpXiXiXpXpXiXpXiXiXiXpXpXiXpXiXpXpXiXpXiXiXpXiXpXpXiXiXiXiXpXiXpXiXpXiXiXpXiXiXiXpXiXiXpXiXpXiXpXiXpXiXpXiXpXpXiXpXiXiXiXiXpXiXiXpXiXpXiXiXpXiXpXiXiXiXpXiXpXiXpXiXpXiXpXpXiXiXiXpXiXiXiXiXpXiXpXiXpXiXpXpXiXpXiXiXiXiXpXiXiXiXiXpX9X[ o X X o [ 9XpXpXiXpXpXpXiXpXiXiXiXpXiXiXpXiXpXiXiXpXiXiXpXiXiXpXiXiXiXiXpXiXiXiXpXiXpXiXpXpXiXpXiXiXiXiXpXiXiXiXpXiXpXpXiXiXiXiXpXiXpXpXiXiXiXiXiXpXiXiXiXiXpXiXiXiXpXiXiXpXiXiXpXiXpXiXpXpXiXpXiXiXiXiXpXiXiXiXpXpXiXiXiXpXiXpXiXpXiXpXiXpXiXpXiXiXiXiXpXiXiXiXpXiXiXpXiXiXiXiXiXiXpXiXiXpXiXiXpXiXpXiXpXpXiXpXiXiXpXiXpXiXpXpXiXiXiXpXiXiXpXiXiXpXiXiXpXiXpXiXpXpXiXiXiXpXiXiXpXiXpXiXpXpXiXpXiXiXiXpXiXpXiXiXiXpXiXiXiXiXpXiXiXpXiXiXiXiXpXiXiXpXiXiXpXiXpXiXpXpXiXpXiXiXpX", -"pXiXiXpXiXiXiXiXiXpXiXiXiXiXpXiXpXiXiXiXiXiXiXiXiXpXiXpXiXpXiXpXiXiXiXpXiXpXiXiXiXiXiXiXiXpXiXpXiXpXiXiXiXiXpXiXiXiXpXiXiXiXiXiXiXiXpXiXiXiXiXiXiXiXiXiXpXiXiXpXpXiXiXiXiXiXiXiXiXiXpXiXiXiXiXiXiXiXiXiXiXpXiXpXiXpXiXpXpXiXiXiXiXiXpXiXiXiXiXpXiXpXiXiXiXiXiXiXiXiXpXiXiXiXiXiXiXiXpXiXiXiXiXiXpXiXiXpXpXiXiXiXiXiXpXiXiXiXiXiXiXiXiXiXiXiXiXiXiXpXpXiXiXiXiXiXiXiXiXpXiXiXiXiXiXiXiXiXiXpXiXiXiXpXiXiXiXiXpXiXiXiXpXiXiXiXiXiXpXiXiXiXpXiXiXiXiXiXiXiXiXiXiXiXiXiXiX9X[ . O [ 8XiXiXiXiXiXpXiXiXiXiXpXiXpXiXpXiXiXiXiXiXiXiXiXiXiXiXiXiXpXiXpXiXpXiXpXiXiXiXiXiXiXiXiXiXiXpXiXiXiXiXiXiXpXiXiXiXiXiXiXiXpXiXiXiXiXiXiXiXiXiXiXiXpXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXpXpXiXiXiXiXiXiXiXiXiXiXiXiXiXiXpXiXpXiXiXiXiXiXpXiXpXpXiXiXpXiXiXiXiXiXpXiXpXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXpXiXpXiXiXiXpXiXiXpXiXiXpXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXpXiXpXpXiXpXiXiXpXiXpXiXiXiXiXpXiXiXpXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXpXiXiXiXiX", -"iXiXiXiXpXiXiXiXiXiXiXiXpXiXiXiXiXiXiXpXiXpXiXpXiXiXiXiXiXiXiXiXpXiXiXiXiXiXiXiXpXiXiXpXiXiXiXiXiXiXiXpXiXiXiXiXiXiXiXiXiXpXiXiXpXiXiXiXiXpXiXpXiXpXiXpXiXiXiXiXiXiXiXpXiXpXiXpXiXiXiXiXiXiXpXiXpXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXpXiXpXiXiXiXiXiXpXiXiXiXiXiXiXiXpXiXiXiXiXiXiXiXiXiXiXiXiXiXiXpXiXiXpXiXpXiXiXiXpXiXpXiXiXiXiXpXiXiXiXiXiXiXiXiXpXiXpXpXiXpXiXiXiXiXpXiXiXiXpXiXiXiXiXiXiXiXiXiXpXiXiXiXiXiXpXiXiXiXiXpXiXpXiXiXpXiXiXiXpXiXiXiX8XE X X X E 8XiXiXiXpXiXiXiXiXiXiXiXiXiXiXiXiXiXiXpXpXiXpXiXpXiXpXiXiXiXiXiXiXiXiXiXiXiXiXpXiXiXiXpXiXpXiXpXiXiXpXiXiXiXiXiXiXiXpXiXiXiXiXiXiXpXiXiXiXiXpXiXpXiXiXiXpXiXpXiXpXiXiXpXiXiXiXpXiXiXiXpXiXpXiXiXiXiXpXiXiXiXiXpXiXpXiXpXiXiXiXiXiXiXiXiXiXpXiXiXiXiXiXiXiXiXpXiXiXiXiXiXiXiXpXiXpXiXiXiXpXiXiXpXiXiXiXpXiXpXiXiXiXiXiXiXiXpXiXiXiXiXiXiXiXiXpXiXpXiXiXpXiXpXiXpXiXpXiXpXiXiXiXpXiXiXiXpXiXpXiXiXiXiXiXiXiXiXiXiXiXiXpXiXpXiXiXiXiXiXpXiXpXiXpXiXpXiXiXpXiXpXiXpXiXiXpXiXiXpX", -"iXiXiXiXiXiXiXiXiXiXiXiXiXiXtXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXpXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXpXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXpXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXpXiXiXiXiXiXiXpXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXpXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXpXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXpXiXaX{.E X X E 8XiXiXiXiXiXiXiXiXiXiXpXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXpXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXpXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXpXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXpXiXiXiXiXiXiXiXiXiXiXiX", -"iXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXtXiXiXiXiXiXiXiXiXiXiXiXtXiXiXiXtXiXiXiXiXiXiXiXtXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXtXiXtXiXiXiXiXiXiXiXiXtXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXpX{.H X X X . H {.iXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiX", -"tXiXiXiXiXiXiXiXtXiXiXiXiXiXiXiXtXiXiXiXiXiXtXiXiXtXtXiXiXtXiXiXiXiXiXiXiXiXiXiXiXtXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXtXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXtXiXiXiXiXiXiXiXiXiXtXiXiXiXiXiXiXiXtXiXiXiXtXiXiXiXiXiXiXiXiXiXiXiXtXiXiXiXiXiXiXiXiXiXiXtXiXiXiXiXiXtXiXiXiXiXiXiXiXtXtXiXiXiXiXtXiXiXiXiXiXiXtXiXiXiXiXiXiXtXiXtXiXiXiXiXtXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXtXiXiXiXiXiXiXtXiXiXtXiXiXiXiXiXiXiXiXiXiXiXiXiXiX{.H X G {.iXiXiXiXiXiXiXiXiXiXiXiXtXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXtXtXiXiXiXiXtXiXiXiXiXiXiXiXiXrXiXiXiXiXiXiXiXiXtXiXiXiXiXtXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXtXiXtXiXiXiXtXiXiXiXiXiXiXtXiXiXiXiXiXiXiXiXiXiXtXtXiXiXtXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXtXtXiXiXiXiXtXtXiXiXiXiXtXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXtXtXiXtXtXiXiXiXiXtXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXiXtXiXiXtXtXiXiXiXiXiXiXiXiXiXiXiX", -"iXiXiXiXtXiXtXtXiXiXiXiXtXiXtXtXiXtXtXiXtXiXiXtXtXiXiXiXtXiXiXtXtXiXtXtXiXtXtXiXtXiXiXtXtXiXtXtXtXtXiXtXiXtXtXiXtXtXiXtXtXiXtXtXtXtXiXtXiXtXtXiXtXtXiXtXiXtXtXiXtXtXtXiXtXiXiXtXtXtXtXiXtXtXiXtXtXiXtXtXiXtXiXtXiXiXtXiXtXtXtXiXiXiXtXiXtXiXtXtXiXiXtXiXiXiXtXtXtXiXtXtXtXiXtXtXiXiXtXiXtXiXtXtXiXiXtXiXiXtXtXiXtXiXtXiXtXtXiXiXiXtXiXiXtXiXiXtXiXiXtXiXtXiXiXtXtXiXtXiXiXtXiXiXtXtXiXtXiXiXtXtXtXtXiXtXiXtXtXiXtXtXiXtXtXiXtXtXiXiXiXtXiXtXtXiXtXiXiXtXiXiXiXiXrXiXtXiXrXiXtXiXiXiXiXtXtX[.n X X n [.iXiXiXtXiXtXtXtXiXtXiXtXtXiXiXtXiXtXiXtXiXtXtXiXtXtXiXtXtXtXiXtXtXiXtXtXiXtXtXiXtXtXiXtXtXiXtXiXiXtXiXiXtXiXiXrXiXiXtXtXiXiXiXiXiXiXtXiXrXiXiXiXiXiXtXiXiXiXrXiXiXrXiXrXiXiXrXiXiXrXiXrXiXiXtXiXiXtXiXiXtXiXiXtXiXtXiXiXtXiXtXtXiXtXtXiXtXiXtXiXiXtXiXiXtXiXtXtXiXtXtXiXiXtXiXtXtXiXtXtXiXtXiXiXtXiXiXtXiXiXtXiXiXtXiXiXtXtXtXiXtXtXiXtXtXiXtXtXiXtXtXtXiXiXiXtXiXtXiXtXtXtXiXiXtXtXiXiXiXtXiXtXtXiXtXtXiXtXiXtXtXiXtXtXiXtXtXiXtXiXtXtXiXtXtXiXtXtXtXiXtXtXiXtXiXtXiXtXtXiXtXtXiXtXtXiXtX", -"tXiXiXtXiXtXtXiXiXtXiXiXiXtXiXiXtXiXtXiXtXiXiXiXiXtXiXiXtXtXiXtXtXiXtXiXtXiXiXtXtXiXiXtXiXtXtXtXiXtXtXiXtXtXiXtXtXiXtXtXiXiXiXiXiXtXiXtXiXiXtXiXtXiXiXiXtXiXiXtXiXtXtXiXtXiXtXiXiXiXiXtXiXiXtXiXiXtXiXiXtXiXiXiXiXtXtXiXtXiXtXiXtXiXiXtXiXiXiXtXiXtXiXtXiXtXtXiXtXiXiXtXiXiXtXiXiXtXiXiXiXtXtXiXtXiXiXiXiXiXiXtXiXtXiXtXiXiXtXiXiXtXiXiXiXtXtXiXtXiXtXiXtXiXiXiXtXiXiXiXtXtXiXtXtXtXiXtXiXtXtXiXiXtXtXiXtXtXiXiXiXtXiXiXiXtXtXiXtXiXiXiXiXiXiXtXiXtXtXiXtXiXtXiXtXiXtXtXiXiXiXtXiXiXiXtXiXtXtX[.r n [.tXtXtXiXiXiXtXiXtXiXtXiXtXtXiXtXiXiXtXiXiXiXtXiXtXiXiXtXiXiXiXiXtXtXiXtXiXtXtXiXtXtXiXtXiXtXiXiXtXiXiXiXtXtXiXtXiXiXiXiXiXiXtXiXrXiXrXiXiXrXiXtXiXtXiXtXiXiXtXiXtXtXiXtXiXtXiXiXrXiXrXiXiXiXiXiXtXiXiXiXtXiXiXtXiXtXiXtXiXiXiXtXtXiXtXtXiXtXtXiXiXiXtXtXtXiXiXtXtXiXtXiXtXiXiXiXiXtXiXiXiXtXtXiXiXtXiXtXiXtXtXiXtXiXtXiXtXiXiXiXtXtXiXtXiXtXtXiXtXiXtXtXtXiXiXtXiXiXiXiXiXiXtXiXtXtXiXtXiXtXiXtXtXiXiXiXtXiXtXiXtXuXiXiXiXtXtXiXtXtXiXtXiXtXiXiXtXtXiXtXtXiXtXiXtXtXiXtXiXiXiXtXiXiXtXiXiXiXtX", -"tXtXtXiXtXiXiXtXtXiXtXtXiXtXtXtXtXiXtXtXtXtXtXtXtXiXtXtXtXiXtXiXtXtXiXtXtXtXtXiXiXtXtXiXtXiXtXtXiXtXiXtXtXiXtXiXtXtXtXiXiXiXtXtXtXiXiXtXtXtXtXtXiXtXtXtXtXtXtXiXtXiXtXiXtXiXtXtXtXtXtXiXtXtXtXtXiXtXtXtXtXtXtXiXtXiXtXiXtXtXiXtXtXtXtXiXtXtXiXtXtXtXtXiXiXtXiXtXtXtXtXiXtXtXtXtXtXiXtXtXiXtXiXtXiXtXtXtXtXtXtXiXtXiXtXiXtXtXtXtXtXiXtXtXiXtXiXtXtXtXiXtXiXtXtXtXtXtXtXtXtXiXtXiXtXtXtXiXiXtXiXtXiXtXiXtXtXiXtXtXtXiXtXtXiXtXiXtXtXtXtXtXtXtXtXiXiXtXiXtXiXtXtXtXiXtXtXiXtXtXtXiXtXtXtXiXtXiXtXtXrX[.8 X w [.tXiXtXtXiXtXtXtXiXtXiXtXiXtXiXtXtXtXtXtXiXtXtXiXtXtXtXtXtXtXtXtXtXtXiXtXiXtXiXtXtXiXtXiXtXiXtXtXtXtXiXtXtXiXtXiXtXiXtXtXtXtXtXtXiXiXiXiXiXiXtXtXiXiXtXiXtXtXtXtXiXtXiXtXiXtXtXiXtXiXiXiXiXiXrXiXrXtXiXtXtXiXtXtXtXtXtXiXtXiXtXtXtXtXiXtXiXtXtXtXiXtXtXiXtXtXtXtXtXtXiXtXiXtXtXtXtXtXtXtXtXtXtXtXiXtXtXtXtXiXtXtXiXtXiXiXtXiXtXtXtXtXiXiXtXtXtXiXtXtXiXiXtXtXtXtXtXiXtXtXtXtXtXtXiXiXtXiXtXiXtXtXtXtXtXtXtXiXtXtXtXtXtXtXtXtXtXtXtXiXtXiXtXiXtXtXtXtXiXiXtXtXiXtXiXtXiXtXiXtXtXtXtXtXtXtXiXtXtXiXtX", -"tXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXiXtXtXiXtXiXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXiXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXiXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXiXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXiXK.6 X 6 K.eXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXiXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXrXiXtXtXtXtXtXtXrXrXiXrXrXiXrXiXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXiXrXrXiXrXiXrXrXiXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXiXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtX", -"tXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXrXtXtXtXtXF.6 6 F.uXwXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXrXtXtXtXtXtXtXrXiXrXiXtXtXtXrXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXrXiXrXiXrXiXrXrXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXiXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtX", -"tXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXeXG.1 X 1 G.tXtXtXrXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXiXrXtXtXtXtXtXtXtXtXtXtXiXtXtXtXtXtXtXtXiXrXiXiXiXrXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXtXiXtXtXtXiXtXtXtXtXtXtXtXtXtXtXtXtXtXiXiXtX", -"tXrXtXtXtXrXtXtXtXrXtXrXrXtXtXtXtXtXtXrXtXtXrXtXtXrXtXtXtXtXtXrXrXtXtXrXtXtXrXtXtXtXtXrXtXtXrXtXrXtXrXtXtXtXtXtXtXrXtXrXrXtXtXtXrXtXtXrXtXtXtXtXtXtXrXtXtXrXtXtXtXrXtXtXtXtXrXtXrXtXrXtXtXtXrXtXtXtXrXtXtXrXtXtXtXtXtXrXtXtXrXtXtXtXrXtXtXrXrXtXtXrXtXrXtXtXrXtXtXrXtXtXtXtXtXtXrXtXtXrXrXtXtXrXrXtXtXrXrXtXtXrXrXtXtXrXrXtXtXrXrXtXtXrXrXtXtXtXtXtXtXrXtXtXrXtXtXrXtXtXtXtXtXrXtXtXrXtXtXtXrXtXrXtXrXtXtXtXtXtXrXtXtXrXrXtXtXrXrXtXtXrXrXtXtXrXrXtXtXrXtXtXtXrXtXtXrXtXrXtXrXtXtXrXrXtXtXtXrXtXrXtXrXtXtXtXrXwXtXe.- - e.tXwXrXtXtXrXtXtXrXtXtXrXtXtXtXrXtXtXrXtXtXtXtXrXtXrXtXrXtXtXrXrXtXtXrXtXrXtXtXrXtXtXtXtXrXtXrXrXtXrXtXrXtXtXtXtXtXrXtXtXrXtXrXtXtXtXrXrXtXrXtXtXrXtXrXtXtXrXtXrXtXrXtXtXtXtXrXtXrXrXrXrXrXrXtXtXrXrXrXtXrXrXrXiXrXtXrXtXrXrXtXtXtXtXtXtXrXtXtXrXtXtXtXrXtXrXtXtXrXtXtXtXtXtXrXtXtXtXtXtXtXtXrXtXrXtXrXtXrXtXrXtXrXtXtXtXtXtXrXtXtXrXtXrXtXrXtXtXrXtXtXrXtXrXtXrXtXtXtXrXtXtXtXtXtXrXtXtXrXrXtXtXrXrXtXtXrXtXtXtXrXtXtXtXtXtXtX@XtXtXtXtXtXtXtXtXtXtXtX@XtXtXtXtXtXtXtXtX@X@XtXtXiXtXtXiX@XtXtXtXtXtXtXtXtXtX@XtXtX", -"rXrXtXrXtXrXrXrXtXtXrXtXrXtXtXrXrXtXrXtXtXrXtXrXrXrXtXrXtXrXrXrXtXtXrXtXrXtXtXrXtXtXtXrXtXrXtXrXtXrXrXtXrXtXrXtXrXtXrXtXrXtXtXrXrXtXtXtXrXtXtXtXtXrXtXrXrXrXtXrXtXrXrXrXtXrXtXtXtXrXrXtXrXtXtXrXtXrXtXrXrXrXtXrXtXrXrXrXtXrXtXrXrXrXtXrXtXtXtXrXtXtXrXtXrXtXtXrXrXtXtXrXtXtXtXrXrXtXrXtXrXtXrXtXrXtXrXtXrXtXrXtXrXtXtXtXrXtXrXtXrXtXrXtXrXtXtXrXrXtXrXtXtXrXrXtXrXrXtXrXtXrXrXrXtXrXtXrXrXrXtXrXtXrXrXtXrXtXrXtXrXtXrXtXrXtXtXtXrXtXrXtXrXtXrXtXrXtXtXtXrXtXrXtXtXrXtXtXtXrXrXtXrXtXtXrXtXrXtXtXtXrXrXtXrXtXtXrXrXrX9Xe.- - e.eXrXtXrXrXtXrXtXrXrXrXtXrXtXrXrXrXtXrXtXrXrXrXtXrXtXtXtXrXrXtXrXtXtXrXtXtXrXtXrXtXtXrXtXtXtXrXtXtXtXtXtXrXtXtXrXtXrXtXrXtXrXtXrXtXtXrXrXtXtXtXrXtXrXtXrXtXtXrXtXtXtXrXtXrXtXtXtXrXtXtXrXtXtXtXtXrXtXtXrXtXiXrXtXrXrXrXrXtXrXtXrXtXtXrXrXtXrXtXtXrXtXrXtXrXtXtXrXrXtXtXtXtXrXrXrXtXrXtXrXtXtXrXrXtXtXtXrXtXtXtXrXtXtXtXrXtXrXrXrXtXrXrXtXrXtXtXrXrXtXtXtXtXrXtXtXrXtXtXtXtXrXtXrXtXrXrXrXtXrXtXrXtXrXtXrXtXtXtXrXtXrXtXtXtXtXtXtXtXtXtX@XtXtX@XtXtXtXtXtXtXtXtXtXtXtXtXiXtX@XtXiXtXtX@X@XtXtXtX@XiXtXtX@XiX@XiXtXtX@XiX", -"tXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXtXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXtXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXtXrXrXrXrXtXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXtXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXtXrXrXrXrXrXtXrXrXtXrXrXtXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXwX8Xe.# $ 4.eXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXtXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXtXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXtXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXtX@XtXtX@XtXtXtXtXtXtXtXtX@XtXtX@XtXtXtX@XtXtX@X@XtXiXtXiX@XtXtXtXtXiX@XtXiX@XiX@XtXtXiX@XiX@XtX", -"rXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXtXrXrXrXrXtXrXrXrXrXtXrXtXrXrXrXrXtXrXrXtXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXtXrXrXrXrXrXtXrXrXrXrXtXrXtXrXrXrXrXtXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXtXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXtXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXtXrXrXrX}.E E 8XrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXtXrXrXrXrXtXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXtXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXtXrXrXrXtXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXtXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXtX", -"rXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXiXtXrXwXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXtXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrX", -"rXrXrXrXrXrXrXrXrX@XrXrXrXrXrXrXrXrXrXrXrXrXrXwXwXrXrXwXrXrXrXrXrXrXrXwXwXrXrXwXrXrXrXrXrXrXwXrXrXrXrXrXwXrXrXwXrXwXrXrXrXrXrXrXrXwXrXwXrXrXwXrXrXrXrXwXrXrXrXrXrXrXrXrXrXrXrXrXrXwXrXwXrXrXwXrXwXrXrXwXrXrXrXrXrXrXrXwXwXrXrXwXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXwXrXwXrXrXwXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXwXrXwXrXrXwXrXwXrXrXwXwXrXrXrXrXwXrXrXrXrXrXrXrXwXrXwXrXrXwXrXwXrXrXwXrXrXrXrXrXrXrXrXrXrXrXrXrXwXrXwXrXrXrXwXwXrXrXrXrXrXwXrXrXwXrXrXrXrXrXrXrXwXrXwXrXrXwXrXwXrXrXwXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXwXrXrXrXrXrXrXrXrXrXrXrXwXrXrXrXrXrXrXwXwXrXrXrXrXrXrXrXrXrXrXrXrXrXrXwXrXrXrXrXrXrXwXrXrXrXrXwXrXrXwXrXrXrXwXrXrXrXrXwXrXrXrXrXrXrXrXrXrXrXwXrXrXrXrXwXrXrXrXrXrXrXrXwXrXwXrXrXwXrXwXrXrXwXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXwXrXrXrXrXrXwXwXrXrXrXrXrXrXwXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXwXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXwXrXrXwXrXrXrXrXrXrX@XrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXwXrXrXrXrXrXrXrXwXwXrXrXrXrXrXrXrXrXrXrXrXwXrXrXrXrXrXrXrXrXrXrXwXrXwXrXrXwXrXrXrXrXrX", -"rXtX@XrXrXrXrXrXrXrXrXrX@XrXrXrXwXrXrXrXrXwXrXrXrXrXrXrXrXwXrXrXwXrXrXrXrXrXrXrXwXrXrXwXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXwXrXrXrXrXrXrXrXrXrXrXrXwXrXrXrXwXrXrXrXrXrXwXrXrXrXrXwXrXrXrXrXrXrXrXrXrXrXrXrXwXrXrXrXrXwXrXrXrXrXrXrXwXrXrXrXrXrXrXwXrXrXwXrXrXwXrXrXrXrXwXrXrXrXrXrXrXrXrXrXrXwXrXrXrXwXrXrXwXrXrXwXrXrXwXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXwXrXrXrXrXrXrXwXrXrXrXrXrXrXrXrXrXrXrXrXrXwXrXrXrXrXrXrXrXrXrXwXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXwXrXrXrXrXeXrXrXrXrXrXrXrXrXrXwXrXrXrXrXwXrXwXrXrXwXrXrXwXrXrXrXrXrXrXrXrXrXrXrXwXrXrXrXrXrXrXwXrXrXrXrXrXrXrXrXwXrXwXrXrXwXwXrXrXrXrXrXrXrXwXrXrXrXrXrXrXwXrXrXrXrXrXrXrXrXrXrXrXwXrXrXrXrXrXwXrXrXrXrXwXrXrXrXrXwXrXrXrXrXrXrXwXrXrXrXrXrXrXrXrXrXrXrXrXrXwXrXrXwXrXrXrXwXrXrXwXrXwXrXrXrXrXrXrXrXrXwXrXrXrXrXrXeXwXrXrXwXrXrXrXrXrXwXrXrXrXwXrXrXwXrXrXrXrXwXrXrXwXrXrXrXwXrXrXrXwXrXrXrXrXwXrXrXwXrXrXrXwXrXrXrXwXrXrXwXwXrXrXrXwXrXrXwXwXrXrXrXrXwXrXrX@XrXtX@XrXrXrXrXrXrXrXrXrXrXrX@XrXrXwXrXrXrXrXrXrXwXrXrXrXrXrXrXwXrXrXwXrXrXwXrXrXrXrXrXrXrXwXrXrXrXrXrXrXrXrXrXrXrXrXrXrXwXrXrX", -"rX@XwXtXwXtXrX@XrXrXrXrXrXrXrXrXrXwXrXrXrXrXrXrXrXrXrXrXrXwXrXwXrXrXrXrXrXrXrXrXrXrXwXrXrXrXrXrXwXrXrXrXrXrXrXrXwXrXwXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXwXrXrXrXrXwXrXwXrXrXrXrXrXrXrXrXrXrXrXrXrXrXwXrXwXrXrXrXrXrXrXrXrXrXrXwXrXrXrXrXrXwXrXrXrXrXrXrXrXrXwXwXrXrXrXrXrXrXrXrXrXrXrXrXrXwXrXrXrXrXrXrXwXrXwXwXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXwXrXrXrXrXrXrXwXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXwXrXrXrXrXrXwXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXwXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXwXrXrXwXrXwXrXrXrXrXrXrXrXrXrXrXrXwXrXrXrXrX@XrXrXrXrXrXrXrXrXrXwXrXwXrXrXrXrXrXrXrXrXrXrXrXrXrXwXrXwXrXrXwXrXrXrXrXrXrXrXrXrXwXrXwXrXrXrXrXrXrXrXrXrXrXrXrXrXrXwXrXwXwXrXwXrXrXeXwXrXrXrXrXrXrXwXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXwXrXrXrXrXrXwXrXrXrXrXrXrXwXrXrXrXrXrXrXrXwXrXrXrXrXrXrXrXrXrXrXrXrXrXwXrXrXrXrXrXrXrXwXrXrXrXrXrXrXrXwXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXwXrXwXrXrXrXrXrXrXwXrXrXrXrXrXrXrXwXrXrXwXrXrXrXrXrXrXtXrXrXrXrXwXrXrXrXrXrXrXrXrXrXrXrXrXrXrXwXrXrXrXrXwXrXwXrXrXrXrXwXrXwXrXrXrXrXwXrXrXrXrXrXrXrXrXrXwXrXwXrXrXrXrXrXrXrXrXrXrXwXrX", -"rXrXtXwXwXwXrXrXrX@XrXrXrXrXrX@XeXrXrXwXwXrXwXwXrXwXrXwXrXrXrXrXwXrXwXrXrXwXrXwXrXwXrXrXrXwXwXrXwXrXwXrXrXwXrXrXrXrXrXrXrXwXrXwXrXwXwXrXwXrXwXrXwXrXrXwXrXwXrXrXrXwXrXwXrXrXwXrXrXwXwXrXwXrXwXrXrXwXrXwXrXrXeXrXwXrXwXrXrXwXrXwXrXrXrXwXwXrXwXrXwXrXwXrXrXwXwXrXrXrXrXrXrXwXrXwXrXwXwXrXwXrXrXwXrXrXrXwXrXwXrXrXrXrXrXrXrXwXrXwXwXrXwXrXrXwXrXwXrXrXrXrXwXrXwXrXrXrXwXrXrXwXrXwXwXrXwXrXrXwXrXwXrXwXrXwXwXwXrXrXrXrXwXrXrXwXrXwXwXrXwXwXrXwXrXwXwXrXwXrXwXwXrXrXrXrXwXrXrXwXrXwXwXrXwXrXrXwXrXwXrXrXrXwXrXrXrXrXwXrXwXrXrXwXwXrXwXwXwXrXrXrXrXrXwXrXrXwXrXwXrXwXrXrXrXrXwXrXrXwXrXwXrXrXrXwXwXrXrXrXrXrXrXwXrXrXrXwXwXrXrXwXrXrXrXrXrXrXwXrXrXwXeXrXwXrXwXrXwXrXrXrXrXrXrXrXwXrXrXrXrXrXwXeXwXrXrXrXwXrXrXwXrXwXwXrXwXrXrXwXrXwXrXrXrXrXwXrXwXrXrXrXwXrXrXwXrXrXwXwXrXwXwXrXrXrXrXwXwXrXwXrXwXrXwXrXrXwXrXrXrXwXrXwXrXwXrXrXrXwXrXwXrXwXrXrXrXwXrXwXwXrXwXrXrXwXrXwXrXwXrXrXrXrXrXwXwXrXrXrXrXrXrXwXwXrXrXrXrXrXrXrXwXrXrXwXwXrX@XrXrXwXwXrXeXwX@XrXrX@XrX@XrXrXwXrXwXrXrXrXwXrXrXrXrXrXwXrXrXwXrXrXrXrXwXrXrXrXwXrXwXrXwXrXwXwXwXrXrXrXrXwXrXwXwXrXwXrXwXrXwXrX", -"wXrX@XrXtXeXrXrXrX@X@XrXrXrXrXrXrXwXwXrXrXwXrXrXrXrXwXrXwXwXrXrXrXwXrXwXwXrXwXrXrXrXrXrXwXrXrXwXrXrXwXwXwXrXwXwXwXrXwXrXrXwXwXrXrXrXwXrXrXwXrXwXrXrXwXrXwXwXrXwXwXrXrXrXwXrXrXwXrXrXwXrXrXwXrXwXrXrXwXrXwXwXrXrXrXwXrXwXwXrXwXrXrXwXwXrXwXrXwXrXrXrXrXrXwXrXwXwXwXwXrXrXrXrXwXrXwXrXwXrXrXwXwXrXrXwXrXwXwXrXwXrXwXwXrXrXrXrXwXrXrXwXrXwXwXrXrXwXrXwXwXrXrXwXrXwXwXwXrXrXwXrXwXrXrXwXrXwXwXrXwXrXrXrXrXrXrXwXrXwXwXwXrXrXwXrXrXrXrXwXrXrXrXrXwXrXwXrXrXrXrXwXrXwXwXwXrXrXwXrXwXrXrXwXrXwXwXrXrXwXrXwXrXwXwXrXwXrXrXrXwXrXwXwXrXrXrXwXwXrXrXrXrX@XwXrXrXwXwXrXrXrXwXwXrXrXrXrXwXrXwXwXrXwXwXrXrXwXrXwXrXrXwXrXrXwXwXrXwXrXwXrXwXwXwXrXwXrXrXrXwXrXrXwXwXrXrXwXeXwXwXrXwXrXrXrXrXwXrXwXwXrXrXwXwXrXwXwXrXrXwXrXwXrXrXwXrXwXwXrXwXrXrXwXwXrXwXrXwXrXwXwXrXrXwXrXwXwXrXwXwXrXrXwXwXrXrXrXwXrXrXwXrXwXwXrXwXrXrXwXrXwXwXrXwXrXrXwXwXrXwXrXwXrXrXwXwXrXwXrXrXwXwXrXrXwXwXrXwXrXrXwXwXrXwXrXrXwXrXwXwXrXwXrXrXwXrXwXwXrXwXrXrXwXrXrXrXrXrXrX@XrXtXtXwXtXrXrXrXrX@XrX@XrXwXrXrXrXwXrXrXwXwXwXrXrXrXrXwXrXwXrXwXrXrXrXwXwXrXwXwXrXrXwXrXrXrXrXwXwXrXrXwXrXrXwXrXwXwXrXrXwX", -"wXrXrXwXwXwX@XrX@XrXrXrX@X@XrX@XwXrXwXwXrXwXwXwXwXwXrXwXwXrXwXwXwXrXwXrXwXwXrXwXwXwXwXwXwXwXwXrXwXwXwXrXrXwXwXrXwXwXrXwXwXrXwXwXwXwXrXwXwXrXwXrXwXwXrXwXwXrXwXrXwXwXwXwXrXwXrXwXwXwXrXwXrXwXwXrXwXwXrXwXwXrXwXwXwXrXwXrXwXwXrXwXwXrXwXwXrXwXrXwXwXwXwXwXrXwXwXrXwXrXwXwXwXwXrXwXwXwXrXwXwXrXwXwXrXwXwXrXwXwXrXwXwXrXwXwXwXwXrXwXwXrXwXrXwXwXrXwXwXrXwXwXrXwXrXwXwXrXwXwXrXwXwXrXwXeXwXrXwXwXrXwXwXwXwXwXwXrXwXrXwXrXwXwXwXwXwXwXrXwXwXwXwXwXwXwXeXwXwXwXwXrXwXrXwXrXwXwXrXwXwXrXwXrXwXrXwXwXrXwXwXrXwXrXwXwXrXwXwXwXrXwXwXrXwXwXrXwXrXwX@XrX@XrXrXwXwXrXwXwXwXwXwXrXwXwXwXwXrXwXwXrXwXwXrXwXrXwXwXwXwXwXwXwXrXwXrXwXwXwXrXwXwXrXwXwXrXwXwXwXwXwXwXrXwXwXrXwXrXwXwXwXrXwXwXwXwXrXwXrXwXwXrXwXrXwXwXrXwXwXrXwXrXwXwXeXwXrXwXwXrXwXwXrXwXwXrXwXrXwXwXrXwXwXrXwXwXrXrXwXrXwXwXrXwXwXwXwXrXwXwXrXwXrXwXrXwXwXwXrXwXrXwXwXrXwXwXrXwXrXwXwXrXwXwXrXwXrXwXwXrXwXrXwXwXrXwXwXrXwXwXrXwXwXrXwXrXwXwXrXwXrXrXwXrXwXwXrXwXwXrXwXrXwXwXwXwXwXwXrXrXwX@XwXwXwXrX@XrX@XrXrX@XrXeXwXwXwXwXwXwXrXwXrXwXwXwXwXrXwXwXwXrXwXwXwXwXrXrXwXwXwXrXwXwXwXwXwXwXrXwXwXrXwXwXrXwXrXwXwXrXwX", -"wXrXwXwXwXwXeXwXrX@XwXrX@XwXrX@XwXrXwXrXwXwXrXwXwXwXrXwXrXwXeXwXwXrXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXrXwXwXwXwXwXwXwXwXeXwXwXrXwXwXwXwXwXwXrXwXrXwXwXwXwXwXwXwXwXwXwXrXwXrXwXwXwXwXwXwXrXwXeXwXwXwXwXwXwXwXrXwXwXrXwXwXwXwXwXwXrXrXwXrXwXwXrXwXeXwXwXrXwXrXwXwXwXwXwXwXrXwXwXrXwXwXrXwXwXwXwXwXwXwXrXrXwXwXrXrXeXwXwXwXwXwXwXwXwXwXrXwXrXwXwXwXwXwXwXwXrXwXrXwXwXwXwXwXwXwXrXwXrXwXwXwXwXwXrXwXwXwXwXrXwXwXwXwXwXwXwXwXrXwXwXwXwXwXwXwXwXrXwXwXwXwXwXwXrXwXeXwXwXwXwXwXwXwXrXwXrXwXwXwXwXwXwXwXwXwXrXwXwXrXwXeXwXwXwXwXrXwXwXwXwXwXwXwXwXwXwXwXrXwXrXrXwXrXwXwXwXwXwXwXwXrXwXwXrXwXwXwXwXwXwXwXrXwXwXwXrXwXwXwXwXwXwXrXwXwXrXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXrXwXwXwXwXwXwXwXwXwXwXwXwXwXrXwXrXwXwXwXwXwXwXwXrXwXrXwXwXwXwXwXwXwXrXrXwXwXwXrXwXeXwXwXwXwXwXwXwXwXwXwXwXrXwXrXwXwXwXwXwXwXrXrXwXwXwXwXwXwXwXwXwXwXwXwXwXwXrXwXwXwXwXwXwXwXwXrXwXrXwXwXwXwXrXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXrXwXwXwXwXwXwXrXwXwXwXwXwXrXwXeXwX@XrXwXrX@XrX@XrXwXwXwXwXwXrXwXwXwXwXrXwXrXwXwXeXrXwXwXrXwXrXwXwXrXwXrXwXwXrXwXrXwXrXwXrXwXwXwXwXwXwXwXrXwXrXwXwX", -"wXwXwXrXrXwXwXwXwXrXwXrXrXwX@XrXwXwXwXwXrXwXwXwXrXwXwXwXwXwXwXwXwXwXrXwXwXwXwXrXwXrXrXwXwXwXrXwXrXwXrXwXwXwXwXwXwXwXrXwXrXwXwXrXwXwXwXwXwXwXwXrXwXrXwXwXwXwXwXwXwXrXwXrXwXwXwXwXwXwXrXwXwXwXwXwXwXwXwXwXwXwXwXwXrXwXwXwXwXwXwXwXwXwXrXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXrXwXwXwXwXwXwXwXwXeXwXrXwXwXwXwXwXwXwXwXwXwXwXrXrXwXwXwXwXwXwXwXrXwXwXwXwXwXwXwXwXwXwXwXwXwXrXwXwXwXwXwXwXwXwXwXwXwXwXwXwXrXwXwXrXwXrXwXwXwXwXwXrXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXrXwXwXwXwXwXwXwXwXwXrXwXrXwXwXrXwXwXwXwXwXwXwXwXwXrXwXwXwXrXwXwXrXwXrXwXwXwXwXwXwXwXwXwXwXwXwXwXrXwXwXwXwXrXwXwXwXwXrXwXwXrXwXwXwXwXrXwXrXwXwXwXwXwXwXwXwXwXwXrXwXwXrXwXwXwXwXrXwXwXwXwXwXwXwXeXwXwXrXwXwXwXwXwXwXwXwXwXwXwXwXwXrXwXwXwXwXwXwXwXwXrXwXwXwXwXwXrXwXwXwXrXwXwXwXwXrXwXrXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXrXrXwXwXwXwXwXwXwXwXrXwXwXrXwXwXrXwXrXwXwXwXwXwXwXrXwXwXwXrXwXrXwXwXrXwXwXwXwXrXwXwXwXwXwXrXwXrXwXwXwXwXwXrXwXwXrXwXwXrXwXrXwXwXwXwXwXrX@XwXrXrX@XrXwXrXwXrXwXwXwXwXrXrXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXrXwXwXwXwXwXwX", -"wXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwX@XwXwXwXwXwX@X@XwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwX", -"wXwXwX@XwXwXwXwX@XwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwX@XwXrXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwX@XwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwX", -"wXwX@XwX@XwXwXwXwXwXwX@X@X@XwXwXwXwX@X@X@XwXwXwX@XwXwX@XwX@XwXwXwXwXwXwXwXwXwXwXwXwX+XwXwXwXwXwXwXwXwXwXwXwX+XwXwXwXwX+XwXwXwXwXwXwXwXwXwXwXwXwXwXwX@XwXwXwX+XwXwXwX+XwXwXwXwXwXwXwXwX+XwXwX+XwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwX+XwXwXwXwX@XwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwX+XwXwXwXwX+X@X@XwXwXwXwX+XwXwXwXwXwXwXwXwXwXwXwX+XwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwX+XwXwXwX+XwXwXwXwX+XwXwXwX+XwXwXwXwXwXwXwX+XwXwXwXwXwX+XwXwX+XwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwX+XwXwXwX+XwXwXwX@XwXwX+XwXwXwXwXwX@XwXwXwX@XwXwXwX@XwXwXwX+XwXwXwXwXwX+XwXwX+XwXwXwXwXwX+XwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwX+XwXwX+XwXwXwX+XwXwXwXwXwXwXwX+XwXwXwXwXwXwXwX+XwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwX@XwXwX@XwX+XwXwXwXwXwXwX+XwXwX+XwXwXwX+XwXwX+XwX+XwXwXwXwXwXwXwXwX+XwXwX+XwXwX+XwXwX+XwXwXwXwX+XwXwXwXwXwXwXwXwXwXwXwX+XwXwXwXwXwXwX+XwXwXwXwX+XwXwX+XwXwXwXwX+XwXwX+XwXwXwX+XwXwXwXwX@X@XwXwXwXwXwXwX@X@X@XwXwXwXwX@X+X@XwXwXwX@XwXwX@XwX@XwXwXwXwXwX+XwXwX+XwXwXwXwXwX+XwXwX+XwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwX", -"@XwX@XwXwXwX@XwX@X@XwXwXwXwXwX@X@XwXwXwXwXwX@XwXwX@XwXwXwX@XwX@XwXwX+XwX+XwXwXwXwXwXwXwX+XwX+XwXwXwXwXwXwXwXwXwX+XwXwXwXwXwXwXwXwX+XwX+XwX+XwXwXwXwX+XwX@XwXwXwXwXwXwXwXwXwX+XwXwXwXwXwXwXwXwXwXwXwXwXwXwX+XwX+XwX+XwXwXwXwXwXwXwXwX+XwXwXwXwXwXwXwXwXwXwXwX+XwXwXwXwXwXwXwX+XwXwXwX+XwXwXwXwX+XwXwXwXwX+XwXwXwXwXwXwX@X@XwXwXwXwXwX+XwX+XwXwX+XwXwXwXwXwXwX+XwXwXwXwXwXwX+XwX+XwX+XwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwX+XwX+XwX+XwXwXwXwXwXwXwXwXwXwX+XwXwXwXwXwX@XwXwXwXwXwXwX@XwXwXwX@XwXwXwXwXwXwXwX@XwXwXwXwXwXwXwXwXwXwXwXwXwX+XwXwXwXwXwXwX+XwXwXwX+XwXwXwXwX+XwXwXwX+XwXwXwXwXwXwXwXwXwXwXwXwXwXwX+XwXwXwXwXwXwXwX+XwXwXwXwXwX+XwX+XwXwXwXwXwXwX+XwX+XwX+XwXwXwXwXwXwXwXwX+XwXwXwX+XwXwX@XwXwXwX@XwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwX+XwXwXwXwXwXwXwXwXwXwXwXwX+XwXwXwXwXwXwXwXwXwXwX+XwXwX+X@X+XwXwXwXwXwXwXwXwXwXwXwX+XwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwX@XwXwXwXwX@XwX@X@XwXwXwXwXwX@X@XwXwXwXwXwX@X@XwX@XwXwXwXwXwX@XwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwX+XwX+XwX+XwXwXwXwXwXwX", -"wX@XwX@XwX@XwXwXwX@X@XwX@XwX@XwX@XwX@XwX@XwXwX@XwX@X@X@X@X@X@X@X+XwXwXwXwXwXwX+X+XwXwXwXwXwXwXwX+XwX+XwX+XwXwXwXwXwXwXwXwXwXwX+XwXwX+XwX+XwX+XwXwXwXwXwX@XwX@XwX+XwXwXwX+XwXwXwX+X+XwXwX+XwXwXwXwXwXwX+XwXwX+XwX+XwX+XwXwXwXwXwXwX+XwX+X+XwXwXwXwXwX@X@XwX+XwX+X+XwXwX+XwX+XwX+X+XwXwXwXwXwXwXwX+XwXwXwXwXwX@XwX@XwX@XwX@XwX@XwX+XwXwXwXwXwXwXwX+XwXwXwX+XwXwXwXwXwXwX+XwXwX+XwX+XwX+XwXwXwXwXwXwXwXwXwXwX+XwX+X+XwX+XwXwXwX@XwXwXwXwX+XwXwX+XwXwX+XwXwX+XwXwXwXwXwXwX+XwXwX+XwX+XwX+XwXwXwXwXwX+XwXwXwXwXwXwXwXwXwXwX@X+XwXwXwX@XwXwX@X@XwXwX@X@XwX@X@X@XwX@X@XwX+X+XwXwXwXwXwXwXwXwXwX+XwX+XwXwX+XwX+X+XwXwXwXwXwXwXwXwX+X+XwXwX+XwXwX+XwXwXwXwXwXwXwX+XwXwXwXwXwXwXwX+XwXwXwXwXwXwXwXwXwXwXwXwXwXwX+XwXwX+XwX+XwX+XwXwXwXwXwXwX+XwX+X+XwXwXwXwXwX@X@XwXwX@XwXwXwX+XwX+X+XwXwXwX+XwXwX+XwXwXwXwXwXwXwX+XwX+XwXwXwXwXwXwXwXwXwXwXwXwXwXwXwXwX+XwX+X+XwX+XwXwXwXwXwXwXwX+XwXwX+X+XwXwXwXwXwXwXwX+XwXwXwXwXwXwX+XwX+XwX+X+XwXwXwXwX@X@X@XwX@XwX@XwX@X@XwX@XwX@XwX@XwX@XwX@XwXwXwX@XwX@X@XwX@X@X@XwX+XwXwX+XwXwXwXwXwX+XwX+X+XwXwXwXwXwX+XwXwX+XwX+XwX+XwXwXwXwXwX", -"@XwX@X@X@X@X@X@X@X@XwX@X@X@X@X@X@XwX@X@X@X@X@X@X@X@XwX@X@X@X@X@XwX+X+XwX+XwX+XwXwX+X+XwXwX+X+XwXwXwX+XwXwXwX+X+XwX+X+XwX+XwX+XwXwX+XwXwX+XwXwXwX+X+XwX+XwX@X@X@XwX+X+XwXwX+X+XwXwXwXwX+XwX+X+XwX+X+XwXwXwX+XwXwX+XwXwXwX+X+XwX+XwX+XwXwXwX+X+XwX+X+XwX@XwX+XwXwXwXwX+XwXwX+XwXwXwX+X+XwX+X+XwX+XwXwX+X+XwX+XwX@X@X@X@X@XwX@X@X@XwX+X+XwXwX+X+XwXwX+X+XwXwX+X+XwX+XwX+XwXwX+XwXwX+XwXwXwX+X+XwX+X+XwX+X+XwXwXwX+XwXwX+XwX+XwX+XwX+XwX+XwX+XwXwX+XwXwXwX+XwX+XwX+X+X+XwXwXwX+XwXwX+XwXwXwX+X+XwX+XwXwX+X+XwX+X+XwX+X@X@X@XwXwX+X+X@X@X@X@X@X@X@X@X@X@X@XwX@X@X@XwXwXwXwX+X+XwX+X+XwX+XwX+XwXwX+XwXwX+XwXwXwX+X+XwX+X+XwX+XwX+XwXwXwXwXwX+XwX+X+XwXwX+X+XwXwX+X+XwXwX+X+XwXwX+X+XwXwX+X+XwXwX+X+XwX+X+XwXwXwX+XwXwX+XwXwXwX+X+XwX+XwX+XwXwXwX+X+XwX+X+XwX@X@X@X@XwX+XwXwX+XwXwXwX+XwXwXwX+XwX+X+XwXwX+XwX+XwXwX+XwX+XwX+X+XwX+XwX+XwX+X+XwX+XwX+XwXwX+XwXwX+XwX@X@XwX+X+XwXwXwX+XwXwXwX+X+XwX+X+XwXwX+X+XwX+X+XwXwXwX+XwXwXwX+X+XwX@XwX@X@X@X@X@XwX@X@X@XwX@X@X@X@X@XwX@X@X@X@X@X@X@X@XwX@X@X@X@X@X+XwXwX+XwX+X+XwX+XwXwX+XwXwXwX+X+X+XwXwXwX+XwXwX+XwXwXwX+X+XwX+X", -"@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@XwX+XwX+X+XwX+XwXwX+XwX+X@X@X@X@X+XwX+X+XwX+XwX+XwX+X+XwX+X+XwX+X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X+XwX+XwX+XwX+XwX@X@X@X@X@X@X@X@X+XwXwX+XwX+XwX+XwX+XwX+XwX+X+X+XwX+X+XwX+XwX+XwXwX+XwX@X@X@X+XwX+XwXwX+XwX+X+XwXwX+XwX+XwX+X+X+XwX+X+XwX+XwX+XwX@X@X@X@X@X@X@X@X+XwX+XwX+XwX+XwX@X+XwX+X+XwX+XwX+XwX+XwX+XwX+XwX+XwX+XwX+XwX+XwX@X@X@X@X@X@X@X@X@X@X@X@XwX+XwX@XwX+XwX+X+XwX+XwXwX+XwX+X+XwXwX+X+XwXwX+XwX+XwX+X+X+XwX+XwX+X+XwX+XwX+XwX+XwX+XwX@X@X@X@X@X@X+XwX+XwX+XwX@X@X@X@X@X@X@X@X@X@X@X@X+X+XwX+XwX+XwX+XwX+X+XwX+X+XwX+X@X@X@X@X@X@X+XwX+X@X@X@XwX+XwX+X+XwX+XwX+XwX+XwX+XwXwX+X+XwX+XwX+XwX+X+X+XwX+XwXwX+XwX+X@XwX+XwX+XwX+XwX+XwX+XwX+XwX+XwX+XwX+XwX@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@XwX+XwX+X+XwX+XwX@X@X@X@X@X@X@X@X+X+XwX+XwX+XwX+XwX+XwX+XwX+XwX+X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X+XwX+XwX+X+XwX+XwX+X+XwX+XwX+X+X@X@X@X@X@X@X@X@X@X@X@X@X+XwX+X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X+XwX+XwX+XwX+XwX@X@XwX+X@X@X@X@X+XwX+XwX+XwX+XwX+XwX+XwX+XwX+XwX", -"@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X+XwX+XwXwX+XwX+X+XwX+XwX@X@X@XwXwX+X+XwX+XwX+XwX+XwXwX+XwX+X+XwX@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@XwX+XwX+XwX+XwX+X@X@X@XwX@X@X@X@XwX+X+XwX+XwX+XwX+XwX+XwX+XwXwXwX+XwXwX+XwX+XwX+X+XwX+X@X@X@XwX+XwX+X+XwX+XwXwX+X+XwX+XwX+XwXwXwX+XwXwX+XwX+XwX+X@XeX@X@X@X@X@X@XwX+XwX+XwX+XwX+X@XwX+XwXwX+XwX+XwX+XwX+XwX+XwX+XwX+X+XwXwX+XwX+X@X@X@X@X@X@X@X@X@X@X@X@X+XwX+X@X+XwX+XwXwX+XwX+X+XwX+XwXwX+X+XwXwX+X+XwX+XwX+XwXwXwX+XwX+XwXwX+XwX+XwX+XwX+XwX+X@XwX@X@X@X@XwX+XwX+XwX+X@X@X@XwX@X@X@XeX@X@X@X@X+XwX+XwX+XwX+XwX+XwXwX+X+XwX+XwX@X@X@X@X@X@XwX+XwX+X@X@X+XwX+XwXwX+XwX+XwX+XwX+XwX+X+XwXwX+XwX+XwX+XwXwXwX+XwX+X+XwX+XwX@X+XwX+XwX+XwX+XwX+XwX+XwX+X+XwXwX+XwX+X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X+XwX+XwXwX+XwX+X@X@X@XwX@X@X@X@XwX+X+XwX+XwX+XwX+XwX+XwX+XwX+XwX@X@X@X@X@X@X@X@X@X@X@X@X@XwX@X@XwX+X+X+XwXwX+XwX+XwXwX+XwX+X+XwX@X@X@X@X@X@X@X@X@X@X@X@XwX+X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@XwX+XwX+XwX+XwX+X@X@X+XwX@X@X@XwXwX+XwX+XwX+XwX+XwX+X+XwXwX+XwX+X", -"@X@X@X@XOX@XOX@X@X@X@X@X@X@XOX@X@X@X@XOX@X@X@X@X@X@X@X@X@XOX@X@X+XwXwX+X+X+X+XwX+XwXwX+X+XwX@X+XwX+XwX+X+X+X+XwX+X+XwXwX+X+XwX+X@X@X9X+X@X@X@X@X@X@X@X@X+X@X+X@X+X+XwX+X+X+X+XwX+XwX@X+X@X+X@X+X+X+X+X+X+XwX+XwXwX+XwX+X+X+XwX+XwX+XwXwXwX+X+X+XwX+X+X+X+XwX+XwX+XwX+X+X+XwX+XwXwX+XwX+X+X+XwX+XwX+XwXwXwX+X+X+X@X+X@X+X+X@X+X@X+X+XwX+X+X+X+XwX+XwXwX+X+X+X+XwX+XwX+X+X+XwX+XwX+XwX+XwXwX+X+X+X@X@X@X@X@X+X@X+X@X+X@X+XwX+XwX+X+XwXwX+X+X+X+XwX+XwXwX+X+XwXwX+X+X+X+X+X+XwX+XwX+X+X+XwXwX+XwXwX+XwX+XwXwX+X+X+X@X+X+X+X+X+XwXwX+X+X+XwX+X+X@X+X+X+X@X+X@X+X@X+X+XwXwX+X+X+X+XwX+X+XwXwX+X+XwX+X+XwX+X@X+X+XwXwX+XwX+XwXwX+XwX+X+X+X+XwX+X+X+XwX+XwXwX+X+X+X+XwX+X+XwX+X+X+X+XwX+XwXwX+X+X+X+XwX+XwX+X+X+XwX+XwX+XwX+XwXwX+X+X+XOX@X@XOX@X@XOX@X@X@X@XOX@X+X+X@X+XwXwX+X+X+X+XwX+X+X@X+X+X@X+X@X+X+XwX+XwX+XwX+X+X+XwX+X+XwX+XwX@XOX@X@X@X@X@X@X+X@X@X@X@X+X+X@XwX+XwX+X+X+X+XwXwX+XwXwXwX+XwX+XOX@X@X@X@X+X@X+X+X@X@X@X+XwXwX+X@X@X@X@XOX@XOX@X@XOX@X@X@X@X@X@X@X@X+X@X@X+X+X@X@X@X@X@X@X@X@XOX+X+XwX+X+X+X+XwX+XwXwX+X+X+X+X+X+XwX+X+X+XwX+XwX+XwX+XwXwX+X+X+X", -"@X@X@X@X@X@X@X@X@X@X@X9X@X@X@X@XOX@X@X@X@XOX@X@X@X@X@X9X@X@X@X@X+X+X+X+XwX+X+XwX+X+X+X+X+X+X+X@X+XwX+X+XwX+X+X+XwX+X+X+XwXwX+X+X@X@X@X@X@X@XOX@X@X@X@XOX@X+X@X@X+XwX+X+XwX+X+XwX+X+X+X@X+X@X@X+X+XwXwX+X+X+X+X+X+X+X+X+XwX+X+X+X+X+X+X+X+X+XwX+X+X@X+X+X@X+X+X+X+X+X+XwX+X+X+X+X+X+X+X+XwX+X+X+X+X+X+X+X+X+XwX+X+X@X+X@X+X@X@X+X+XwX+X+XwX+X+XwX+X+X+X@X+X@X+XwX+X+X+XwX+XwX+X+X+X+X+X+X+X+X+XwXOX@X@X@X@X@X+X@X+X@X+X@X+X+X+X@X+X+X+X+X+XwX+XwX+X+X+X+X+X+X+X+X+XwXwX+X+X+X+X+XwX+X+X+X+X+X+X+X+X+X+X+X+X+XwX+X@X+X@X+X+X@X+X+X+X@X@X+X+XwX+X@X@X@X+X@X+X@X+X@X+X+X+X+XwX+X+X+XwX+X+X+XwXwX+X+X@X+X@X@X+X@X+X+X+X+X+X+X+X+X+XwX+XwX+X+XwX+X+XwX+X+X+X+XwX+X+XwX+XwX+X+XwX+X+XwX+X+X+X@X+X@X+XwX+X+X+XwX+XwX+X+X+X+X+X+X+X+X+XwX@X@X@X@X@X@X@X@XOX@X@X@X+X@X@X@X+X+X+X+X+XwX+XwX+X@X+X@X+X@X@X@XwXwX+X+X+X+X+X+X+XwX+X+X+X+X+X+X@X@X@X@X@X@XOX@X@X+X@X+X+X@X@X@X+XwX+X+XwX+X+X+X+X+X+X+X+XwX+X+X@X@X@X@X@X@X+X@X@X+X@X+X@X+X+X@X@X@X@X@X@X@X@X@X@X@X@XeX@X@XOX@X@X+X@X+X+X@X+X@X@X@X@X@X@XOX@X@X+XwX+X+XwX+X+XwX+X+X+X@X+X@X+XeX+X+X+XwX+XwX+X+X+X+X+X+X+X+X+XwX", -"+X+X+X+X@X+X+X+X+X+X+X+X+X+X+X+X+X+X+X@X+X+X+X+X+X+X+X+X+X+X+X+X+X+XwX+X+X+X+X+X+XwX+X+X+X+X@X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOX@X@X@X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XwX+X+X+X@X+X+X+X+X+X+X+X+X+X+X+X+X+X+X9X+X+X+X+X+X+X+X+X+X+X+X+XeX+X+X+X+X+X+X+X+X+XwX+X+X+X+X+X+X+X+X9X+X+X+X+X+X+X+X+X+X+X+X@X+X+X@X+X+X+X+X+XwX+X+X+X+X+X+XwX+X+X+X+X+X+X+X+XwX+X+X+X+X+X+XwX+X+X+XwX+XOX@XOXOX+X+X+X+X+X+X+X+X+X+X+X+X+X+XwX+X+X+X+X+X+XwX+X+X+X+X+XwXwX+X+X+X+X+X+X+X+X+X+X+X+X+X+X9X+X+X+X+X+X+X+XwX+X+X+X+X+X+X+X+X+X+XwX+X@X+X+X+X+X+X+X+X+X+X+X+X+XwX+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XwX+X+X+X+X+X+X+XwX+X+X+X+X+X+XwX+X+X+X+X+X+X+X+XwX+X+X+X+X+X+X+XwX+X+XwX+X@X@XOX@X@X@X@X@X@X+X@X+X+X+X+X+X+X+XwX+X+X+X+X+X+XwX+X+X+X+X+X+X+X+X+X+X+X+X+XwX+X+X+X+X+X+X+X+X+X+X+X9X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XwX+X+X+X+X+X+X+X+X+X+X@X@X@XOX9X+X+X+X+X+X+X+X+X+X+X+X+X@X+X+X@X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X9X+X+X+X+X+X+X+XwX+X+X+X+X+X+XwX+X+X+X+X+X+X+X+XwX+X+X+X+X+X+XwX+X+X+XwX+X", -"+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X@X+X+X+X@X+X+X+X+X+X+X+X@X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XwXwX+X+XwX+X+X+X+XwX+X+X+X+X+X+X+X+X+X@XOXOX@X+X+X+X+X+X+X+XwX+X+X+X+X+X+X+X+X+X+X+X+XwX+X+XwX+XwX+X+X+X+X+XwX+X+X+X+X+X+X+X+X+X+X+XwX+X+X+X+X+X+X+X+XwX+X+X+X+X+X+X+X+X+X+XwX+X+X+X+X+X+X+X+X+X+X+XwX+X+X+X+X+X@X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X@X@X@X@X9X+X+X+X+X+X+X+X+X+X+X@X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XwX+X+X+X+XwX+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XeX+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X@XOX@X+X+X+X+X+XwX+X+X+X+XwX+X+X+X+X+X+X+X+X+X+X+X@X+X+X+XwX+X+X+X+X+X+X+X+X+XwX+X+X+X+X+X+X+X+XwX+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X@XOX@X@XOX@XOX@X+X@X@XOX+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X@X+X+X+X+X+XwXwX+X+X+XwX+X+XwXwX+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XwX+X+XwX+X+X+X+XwX+XoX@XOX@X@X+X+X+X+X+X+X+X+X+X+X+X+X+X+X@X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XwX+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X", -"@X+X@X@X+X@X+X+X+X+X@X+X+X+X+X+X+X+X@XOX+X+X+X+X+X@X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X@X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOX+X+X+X+X+X+X+X+X+X@XOX@X@X+X+X+X@X+X+X+X+X+X+X+X+X+X+X+X+X@X@X@XOXOX+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XwX+X+X+X+X+X+X+X+X@XOX@XOX@X@X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X@X@X@XOX+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X@X@X+X+X+X+X@X+X+X+X+X+X+X+X+X+X+X+XOX+X+X+X+X+X+X+X+X+X+X+XOXwX+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XwX+X+X+X+X+X+X+X+X@X@X@X@X@X@X@X@XOX@X@X@X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOX@X+X+X+X+X+X+XOX+X+X+XOX+XwXOX+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X@X+X+X+X@X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOX+X@X@X@XoX@X@X+X+X+X+X+X+X+X@X+X+X+X+X@XOX+X@X+X+X+X@X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XwX+X+X+X+X+X+X+X+X", -"+X+XOX@XOX+X+X+X+X+X+X+X+X+X+X+X+X+X@XOX+X+X+X+X+X+X+X+X+X+XOX+X+X+X+X+X+X+X+X+X+X+X+X+XOX+X+X+X+X+X+X+XOX+X+X+X+XOX+X+X+X+X+X+X+X+X+X+X+X+X+X+XOX@X@XOX+X+XOX@X+X+X+X+X+X+X+X+X+X+X+X+XOX+X+X@X+X+X+XOX+X+X+X+X+XOX+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOX+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOX+X+X+X+X+X+XOX+X@XOX@X@XOX@X+X+X+X+X@X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOX+X+X+X+X+X+XOX+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOX@X@X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOX+X+X+X+X+XOX@X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOX+X+X+X+X+X+XOX+XOX@XOXOX@XOXOX@X@XOXOX@X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X@XOX@X+X+X+XOX+X+X+X+X+X+X+XOX+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOX@X+X+X@XOX+X+X+X+XOX+X+X+XOX+X+X+X+X+X+X+XoX@X@X@X@XOX+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOX+X@X+X+X+X+X+X+X+XOX+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOX+X+X+X+X+X+XOX+X", -"OX+XOX+XOXOX@XOX@XOX+X+XOX+X+X+X+X+X+X+XOX@XOX@XOX@XOX@X+X+XOX+X+X+X+XOX+XOX+X+XOX+X+X+X+X+X+X+X+XOXOX+X+X+X+X+X+X+X+X+XOX+XOX+X+X+X+X+X+XOX+X+X+X+X+X+X+X+X+X+X+XOXOX+X+X+X+X+XOX+X+X+X+X+X+X+X+X+X+XOX+X+X+X+X+X+X+XOXOX+X+X+X+X+XOX+X+X+XOX+XOX+XOX+X+X+X+X+X+X+X+XOX+X+X+X+X+X+X+XOXOXOX+X+X+X+XOX+X+X+XOX+XOX+XOX+XOX+X+X+X+XOXOX+X+X+X+X+X+X+XOX+XOX+XOX+X+X+X+X+XOX+XOX+XOX+X+X+X+X+X+XOXOX+X+X+X+X+X+XOX+XOX+XOX+X+X+X+X+X+X+XOX+XOX+X+XOX+X+X+X+X+X+XOX+X+X+X+XOX+X+X+X+X+X+X+XOX+X+X+X+X+X+XOX+X+X+X+X+X+X+XOX+X+X+X+X+X+X+XOX+XOX+X+X+XOX+XOX+X+XOX@X+XOX+XOXOX+X+X+X+X+XOX+XOX+XOX+X+X+X+X+XOX+XOX@X+XOX+XOX+X+X+X+X+X+XOX+X+X+X+X+XOX+X+X+X+X+X+XOX+XOXOX+X+X+X+X+X+X+XOX+XOX+XOX+X+X+X+X+XOX+XOX+XOX+X+X+X+X+X+XOX+XOX+XOX+X+X@X@X+X+X+X+X+X+X+X+X+X+X+XOX+XOX+X+X@XOX@XOX+X+XOX@X+X+X+X+X+X+X+X+X+XOXOX+X+X+X+X+XOX@XOXOX+X+X+X+XOX+XOX+X+XOX+XOXOX+XOX+X+XOX+XOX+X+X+X+XOX+XOX+X@XOX+X+X+X+X+XOX+X+X+X+X+X+X+X+X+X+X+XOXOX+XOX@XOX+X+XOX+X+X+X+X+X+XOX+X+X+XOX+XOX+XOX+X+X+XOX+X+XOXOX+X+X+X+X+X+X+XOX+XOX+X+X+X+X+X+X+XOX+XOX+XOX+X+X+X+X+X+XOX", -"+X+X+X+X@XOXOX@XOX@X@XOX+X+X+XOX+XOX+XOX@XOX@XOX+XOX@XOX+XOX+X+X+XOX+X+X+X+XOX+X+X+X+XOX+XOX+XeX+X+X+X+X+XOX+XOX+XOX+X+X+X+XOX+XOX+XOX+X+X+XOX+X+XOX+XOXOX+XOX+X+X+X+X+X+XOX+XOX+X+X+XOX+XOXOX+XOX+X+X+XOX+XOX+XOX+X+X+X+X+X+XOX+X+X+X+X+XOX+X+X+X+X+X+XOX+XOX+XOX+X+X+XOX+XOX+XOX+X+X+X+X+XOX+X+X+X+X+X+XOX+X+X+X+X+X+X+X+X+XOX+X+X+X+X+XOX+XOX+X+X+X+X+X+X+X+XOX+XOX+X+X+X+X+X+X+XOX+XOX+X+X+X+X+X+XOX+XOX+X+X+X+X+X+X+XOX+X+X+XOX+X+X+X+XOX+X+X+X+XOX+XOX+X+X+XOX+XOX+X+X+XOX+XOX+XOX+X+X+XOX+X+X+X+XOX+XOX+XOX+X+X+XOX+XOX+X+XOX+X+X+X+XOX+X+X+X+X+XOX+XOX@X+X+X+X+X+X+XOX+XOX+X+XOX+X+X+X+XOX+XOX+X+X+X+XOX+X+X+X+XOX+XOX+XOX+XOX+X+XOX+XOXOX+X+XOX+XOX+X+X+X+X+X+X+XOX+XOX+XOX+X+X+X+X+X+XOX+XOX+X+X+X+X+X+X+XOX+XOX+X+X+X+X+X+X+XOX+X}.+XOX+XOX+X+XOX+X+X+XOX+X+X+X+XOX+XOX@XOX@X@XOX@XOX+XOX+X+XOX+XOX+X+X+X+X+X+XOX+XOX+X+X+X+XOX+XOX+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+X+XOX+X+X+X+X+X+X+XOX@X+XOX+XOX+X+X+XOX+XOXOX+XOX+XOX+X+X+X@XOX@XOX@XOXOX@XOX+XOX+X+X+X+X+X+XOX+X+X+X+X+X+XOX+X+X+X+X+X+X+X+XOX+XOX+XOX+X+X+X+X+X+XOX+XOX+X+X+X+X+X+X+XOX+XOX+X+X+X", -"OX+XOX+XOX@X@XOX+X+XOX@X+XOX+X+X+X+XOX+XOX@X@XOXOX+XOX+X+XOX+X+X+X+X+XOX+XOX+XOXOX+XOX+X+X+X+X}.OX+XOX+XOX+X+X+X+XOX+XOXOX+X+X+X+X+X+X+XOX+XOX+XOX+X+X+X+XOX+XOXOX+X+X+X+XOX+XOXOX+XOX+X+X@XOX+X+X+XOX+XOX+XOX+X+X+XOX+XOX+XOX+XOX+XOX+X+X+X+XOXOX+XOX+X+X+X+XOX+XOXOX+X+X+XOX+X+X+X+XOXOX+XOX+XOX+XOX+X+X+X+XOXOX+XOX+X@XOX+XOXOX+X+X+X+XOX+XOX+XOX+XOXOX+XOXeX+XOX+XOX+XOXOX+XOX+XOX+X+X+XOX+XOX+XOX+XOX+X+X+XOX+X+X+XOX+X+XOX+X+X+XOX+XOX+XOX+XOXOX+X+X+X+XOX+X+XOX+XOX+XOX+X+X+X+XOX+XOXOX+X+X+XOX+X+X+XOX+X+X+XOX+XOX+XOX+X+X+X+XOXOX+X+X+X+X+X+X+X+XOX+X@X+XOX+X+X+X+X+XOX+XOX+X+XOX+XOX+X+X+X+XOXOX+X}.@X+XOX+X+X+X+X+XOX+X+XOX+X+X+X+XOX+XOX+X+X+X+X+XOXOX+X+X+X+XOX+XOX+X+X+XOXOX+XOXeX+X+X+XOX+XOXOX+XOX+XOX+X+X+XOX+X+XOXOX+X+XOX+X+X+XOX@XOXOX+X+XOX+X+X+XOX+XOX+XOX+XOXOX@XOXOX@X@XOX+X+XOX+XOX+XOXOX+XOX+X+X+X+XOX@XOX+XOX+XOX+X+X+XOXOX+XOX+X+X+X+XOXOX+XOX+X+X+X+XOX+XOXOX+XOX+X+XOX@XOX+X+X+XOXOX+X+X+X+XOX+XOX+X+XOX+XOX@X@XOXOX@X@XOX+X+X+X+XOX+XOX+X+X+X+XOXOX+XOX+X+X+X+XOXOX+X+X+X+XOX+XOX+X+X+XOXOX+X+X+X+XOX+XOX+XOXOX+XOX+XOX+X+X+XOX+X", -"+XOX+XOX@XOXOXOXOXOXOXOXOX+XOXOXOXOX+XOX+XOXOX@X+X+XOXOX+XOXOX+XOXOXOX+XOX+XOX+X+XOX+X+XOXOXOX+X+XOX+XOX+XOXOX+XOX+XOX+X+X+XOXOXOXOXOX+X+XOX+X+X+XOXOX+XOX+X+XOX+XOXOXOXOX+XOX+X+XOX+XOXOXOX+XOXOXOX+XOX+XOX+X+XOXOX+XOX+XOX+X+X+XOX+XOXOX+XOX+X+XOX+XOXOX+XOX+XOXOX+XOXOXOX+X+XOXOX+XOX+XOX+X+X+X+XOXOXOX+XOX+X+XOX+XOXOX+XOX+X+XOXOXOXOX+XOX+XOX+XOX+XOX+X+X}.OX+X+XOXOX+X+XOXOX+X+XOXOXOX+XOX+XOX+X+X+XOXOXOX+XOXOX+XOXOXOX+XOXOXOX+XOX+XOX+X+XOX+XOXOXOXOX+XOXOX+XOX+XOX+X+XOXOXOX+X+XOX+XOXOXOX+XOXOXOX+X+XOXOX+XOX+XOX+X+XOXOXOX+X+X+XOXOX+XOXOXOXOX+X}.@XOXOXOX+XOXOX+XOXOX+XOX+X+XOX+XOX+X+XOX+X+XOX@X+XOXOXOX+XOXOX+XOXOX+X+XOXOXOX+XOX+XOXOXOXOXOXOX+X+XOXOXOXOX+XOX+XOX+XOX+XOX+X+X}.OXOXOX+XOX+X+XOX+XOX+XOXOXOX+XOXOX+XOX+XOX+X+X+XOX+XOX+XOXOXOX+XOXOXOX+XOX+XOX+XOX@XOXOXOX+XOXOXOXOXOX+XOX+X+XOX+XOX+XOXOXOXOX+XOX+XOX+XOX+XOX+X}.+X+XOX+XOXOX+X+XOX+XOX+XOXOX+XOX+XOX+X+X+XOXOX+XOXOX+XOXOXOX+X+XOXOX+XOX+X+XOXOXOX+XOX@XOXOXOXOXOX+XOXOX+XOXOX+X+XOXOXOX+XOX+X+XOX+XOXOX+XOX+X+XOXOXOXOX+XOX+XOX+XOX+XOX+X}.+XOX+XOX+XOX+X+XOX+XOX+XOXOXOX+XOX", -"OXOX+XOXOX@XOX@XOX+X+XOX+XOX+XOXOX+X+XOX+XOXOXOXOXOXOX+XOX+X+XOXOX+XOX+X+XOX+XOXOXOX+XOX+XOXOXOXOX+XOX+X+XOXOXOXOX+XOX+XOX+XOXOX+XOX+XOXOX+XOX+XOXOX+XOXOX+XOX+X+XOX+XOXOXOXOX+XOXOX+X+X+XOXOXOXOXOX+XOXOX+X+XOXOX+X+XOXOX+XOXOXOXOXOX+XOXOX+XOXOXOX+XOXOX+X+XOXOXOX+XOXOX+X+XOX+XOXOX+XOX+X+XOXOXOXOX+XOXOX+XOXOXOXOX+XOX+X+XOXOX+X+XOXOXOX+XOXOX+XOX+XOX+XOX+X+XOX+XOXOX+XOX+X+XOX+XOXOX+XOX+X+XOX+XOXOXOXOX+XOX+XOXOX+XOXOXOXOX+XOX+X+XOX+XOXOXOX+X+X+XOXOXOXOX+X+XOX+XOXOXOXOX+X+XOX+XOXOX+XOXOX+XOXOX+X+XOXOXOX+XOXOX+X+XOXOX+XOX+XOXOX+XOXOX+XOX+X+XOX+XOXOX+XOX+X+XOX+X+XOX+XOX+XOX+XOXOX+XOXOXOXOX+XOX+X+XOX+XOXOX+XOX+X+XOX+XOXOXOXOX+X+X+XOX+XOX+XOX+XOX+X+XOXOXOX+XOX+XOXOX+XOX+XOX+X+XOX+XOXOX+XOX+X+XOX+XOXOXOXOX+X+XOX+XOXOX+X+XOXOXOXOX+X+XOXOXOXOX+XOX+X+XOX+XOXOX+XOX+X+XOX+XOX+XOX+XOXOX+XOX+X+XOX+XOXOXOXOX+X+XOXOX+XOX+XOX+XeXOX+XOX+XOX+XOXOX+XOX+X+XOXOXOXOX+XOX+XOX+XOXOX+XOXOXOXOX+XOX+XOXOX+XOXOX+XOX+XOXOX+XOXOX@XOX@XOX@XOX@XOXOXOX+XOXOXOX+XOXOX+XOXOXOXOX+XOXOX+XOXOX+X+XOXOXOX+XOX+XOXOX+XOX+XOX+X+XOX+XOXOX+XOX+X+XOX+XOXOXOXOX+X", -"+XOXOXOXOXOXOX+XOXOXOXOXOXOXOXOXOXOXOXOXOXOX+XOXOXOXOX+XOXOXOXOXOXOXOXOXOXOXOXOX+XOXOXOXOXOX+X+XOXOXOXOXOXOX+XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOX+XOXOX+XOXOXOXOXOX+XOXOX+XOXOXOXOXOXOXOXOXOXOXOXOX+XOX+XOXOXOXOX+XOXOX+XOXOXOXOXOXOXOXOX+XOXOXOXOXOXOXOXOX+XOXOXOXOXOXOXOXOXOXOX+XOXOX+XOXOXOXOXOXOXOXOXOXOXOX+XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOX+XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOX+XOXOXOXOX+XOXOXOXOX+XOXOXOXOXOXOXOXOX+XOXOXOXOXOX+X+XOXOXOXOXOXOX+XOXOXOXOXOXOXOXOX+X+XOXOXOXOXOXOXOXOX+XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOX+XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOX+XOXOXOXOX+XOXOXOXOXOXOXOXOXOX+XOXOXOXOXOXOXOX+XOXOXOXOXOXOXOXOXOXOXOXOXOXOX+XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOX+XOXOXOXOXOXOXOX+XOXOXOXOXOXOXOXOXOXOXOX+XOXOXOXOXOX+XOXOXOXOXOXOXOXOXOX+XOXOXOXOXOXOXOXOXOXOXOX+XOXOXOXOXOXOXOX+XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOX+XOXOXOXOXOXOXOX+XOXOXOXOX+XOXOXOXOXOXOXOXOXOXOXOXOX+XOXOXOXOXOXOX+XOXOXOXOXOXOXOX+XOXOXOXOXOX+XOXOX+XOXOXOXOX+XOXOXOXOXOXOX+XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOX+XOXOXOXOXOXOXOX+XOXOX", -"OXOXOX+XOXOXOXOXOX+XOXOX+XOXOX+XOXOX+XOXOX+XOXOX+XOXOXOXOXOX+XOXOX+X+XOXOXOX+XOXOXOX+XOXOXOXOXOXOX+XOXOX+XOXOXOXOX+XOXOX+XOX+XOX+XOXOXOXOX+XOXOXOXOX+XOXOX+XOX+XOXOX+XOXOXOXOX+XOXOX+XOXOXOXOXOXOXOXOX+XOX+XOXOXOXOX+XOXOX+XOXOXOXOXOX+XOXOXOXOXOXOXOX+XOXOX+XOXOXOXOX+XOX+XOXOXOXOXOXOXOXOXOXOX+XOXOX+XOXOXOX+XOXOXOX+XOXOX+XOXOXOX+XOXOXOXOX+XOX+XOX+XOXOX+XOXOXOXOX+XOXOXOX+XOXOXOX+XOX+XOXOXOXOXOXOX+XOXOXOX+XOXOXOX+XOXOXOXOX+X+XOXOXOX+XOXOXOX+XOXOXOXOXOXOXOX+XOXOX+XOXOXOX+XOXOXOX+XOXOXOXOXOX+XOXOX+XOXOXOXOXOXOX+XOXOXOX+XOXOXOXOX+XOXOXOX+XOXOXOXOX+XOX+XOXOXOXOXOXOX+XOXOXOX+XOXOXOX+XOXOXOXOX+X+XOXOXOX+XOXOXOXOX+XOXOXOX+XOXOXOXOXOXOXOXOXOX+XOXOXOXOX+XOXOXOXOX+XOX+XOXOXOXOX+XOXOXOXOX+XOXOXOX+XOXOXOX+XOX+XOXOXOX+XOXOXOXOX+XOXOXOXOX+X+XOXOXOXOX+X+XOXOXOX+XOXOXOXOX+XOXOXOXOXOXOX+XOXOXOXOX+XOXOX+XOXOXOXOXOXOX+XOXOXOXOX+XOXOXOXOX+X+XOXOXOXOX+XOXOX+XOXOXOX+XOXOXOX+XOXOXOX+XOXOXOXOX+XOXOXOXOX+XOXOX+XOXOXOXOXOX+XOXOXOXOXOXOXOX+XOXOXOXOX+XOXOX+XOXOXOX+XOXOXOX+XOXOX+XOXOXOX+XOXOXOXOX+XOX+XOXOXOXOX+XOXOXOXOX+XOXOXOX+XOXOXOX+XOX+XOXOX", -"OXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOX+XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOX+XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOX+XOXOXOXOX+XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOX+XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOX+XOXOXOXOXOXOX+XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOX+XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOX+XOXOXOXOX+XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOX+XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOX+XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOX+XOXOXOXOX+XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOX+XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOX+XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOX+XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOX", -"OXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXoXOXOXoXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXoXOXOXoXOXOXoXOXOXoXOXOXOXoXOXOXoXOXOXOXOXOXOXOXOXOXoXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXoXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXoXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXoXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXoXOXOXOXOXOXOXOXOXOXOXOXOXOXOXoXOXOXoXOXOXOXOXoXOXOXoXOXOXOXOXOXoXOXOXOXOXOXOXOXOXoXOXOXoXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXoXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXoXOXOXOXOXOXOXoXOXOXoXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXoXOXOXoXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXoXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXoXOXOXoXOXOXOXoXOXOXoXOXOXOXoXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXoXOXOXoXOXOXOXoXOXOXOXOXOXOXOXOXOXoXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXoXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXoX@XXX@XXXoXoX@XXXXXoX@X", -"OXOXoXOXOXOXoXOXOXOXoXOXOXOXoXOXoXOXoXOXoXOXoXOXOXoXOXOXOXOXOXOXOXOXOXoXoXOXoXOXOXOXoXOXOXoXOXOXoXOXOXoXOXoXoXOXOXoXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXoXOXOXoXOXOXOXOXOXOXOXoXOXOXoXOXOXoXOXOXOXoXOXoXOXoXOXoXOXOXOXoXOXoXOXOXOXOXoXOXOXOXoXOXOXOXOXoXOXoXOXOXOXoXOXOXOXoXOXOXOXOXOXoXOXoXOXOXoXOXoXOXoXOXoXOXOXOXOXoXOXoXOXOXOXOXoXOXOXoXoXOXOXOXOXOXOXOXOXOXOXOXOXOXoXOXOXOXOXOXOXOXoXOXOXoXOXOXOXOXOXOXOXOXoXOXOXoXOXOXoXOXOXoXOXoXoXOXOXoXOXOXoXOXOXoXOXOXoXOXoXOXoXOXoXOXOXOXOXoXOXoXOXOXOXOXoXOXOXOXoXOXOXoXOXOXOXOXoXOXOXOXoXOXoXOXOXoXoXOXoXOXOXOXOXOXOXoXoXOXOXoXOXOXOXOXOXOXoXOXOXoXOXOXOXoXOXOXoXOXOXoXOXOXoXOXOXoXOXoXoXOXOXoXOXOXOXOXOXOXOXOXoXOXOXOXOXOXoXOXOXoXOXOXOXOXoXOXOXoXoXOXOXOXOXOXOXOXoXOXOXoXOXOXoXOXoXOXOXoXOXoXoXOXoXOXoXOXOXoXoXOXOXOXoXOXOXoXOXoXOXoXoXOXOXoXoXOXOXOXoXOXOXoXoXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXOXoXOXOXoXOXOXoXOXOXoXOXOXoXOXoXoXOXOXoXOXoXoXOXOXoXoXOXOXoXoXOXOXOXOXOXOXOXOXOXOXoXOXoXOXoXOXoXOXOXOXoXOXoXOXOXOXoXOXOXOXoXOXOXOXOXoXOXoXOXOXOXOXOXoXOXOXoXoXOXOXoXoXOXoXOXoXOXOXoXoXOXXX@XoXOXOXOXoXXXoX@XoXXX", -"oXOXOXoXoXOXOXoXoXOXOXoXoXOXOXoXOXOXOXOXOXOXOXOXOXoXOXOXOXOXOXOXOXOXOXOXoXOXOXOXOXoXoXOXoXOXOXoXoXOXOXoXOXOXOXOXOXOXoXOXOXOXoXOXOXOXOXOXoXOXOXOXOXOXOXXXOXOXOXoXoXOXOXOXOXOXoXOXOXoXOXOXoXOXOXoXOXoXOXOXOXoXOXOXOXOXOXOXOXoXOXOXoXOXOXoXoXOXOXoXOXOXOXOXOXoXOXOXoXOXOXoXoXOXOXOXOXOXOXOXOXoXOXoXOXOXoXOXOXOXoXOXOXOXOXOXOXoXOXOXOXOXoXOXOXOXOXOXOXOXOXOXoXOXOXOXOXOXOXOXoXOXoXOXoXOXOXOXOXOXoXOXoXOXOXOXoXOXOXOXOXoXOXoXOXoXOXOXOXOXOXOXoXOXOXOXOXoXoXOXoXOXOXoXOXOXoXOXOXOXoXOXOXOXOXOXOXoXOXOXoXOXOXoXoXOXOXoXOXoXOXOXoXOXOXOXOXOXOXOXOXOXOXoXOXOXoXOXOXOXoXOXOXOXOXOXOXOXOXOXOXOXoXOXOXOXoXOXOXOXoXOXOXoXoXOXoXOXOXoXoXOXOXoXOXOXOXOXOXOXoXOXOXOXoXOXOXoXOXOXOXOXOXOXOXOXoXOXoXOXOXOXOXOXoXOXoXOXoXOXoXOXOXOXOXOXOXoXOXoXOXOXoXOXOXoXOXOXOXOXOXOXoXOXOXOXOXOXOXOXOXoXOXoXOXOXOXOXOXOXOXOXOXOXOXOX}.OXOXOXOXOXOXOXOXOXoXOXOXOXOXOXoXOXOXoXoXOXoXOXOXoXOXoXOXoXOXoXOXOXOXOXOXOXoXOXOXoXOXOXOXOXOXOXoXOXOXOXOXOXOXOXOXOXoXOXOXOXOXoXOXOXOXoXOXOXOXOXOXOXOXoXOXOXoXOXOXoXoXOXOXoXoXOXOXOXOXOXOXOXOXOXoXOXOXOXOXOXOXOXOXOXOXOXoXOXOXOXOXOXOXoX@XoXoXOXOX@X@XoXoX@X", -"OXoXOXoXOXoXOXOXOXoXOXoXOXoXOXoXoXoXoXOXoXoXoXOXXXOXXXOXOXXXoXOXoXoXoXOXOXOXoXoXOXoXOXOXOXoXoXOXoXOXoXOXoXOXoXoXoXOXoXOXoXoXOXoXoXOXoXoXoXOXXXOXOXXXOXOXoXOXoXOXoXOXoXoXoXoXOXoXOXOXXXOXOXoXoXOXoXOXoXOXoXOXOXoXoXoXOXoXOXoXoXoXOXoXOXoXOXoXOXoXOXXXOXoXOXoXoXoXOXoXOXoXOXoXXXOXoXoXOXoXOXoXOXoXOXoXOXoXOXoXOXOXOXXXOXoXOXoXoXoXOXOXOXoXoXoXOXoXoXOXoXoXoXOXoXoXoXoXOXXXOXoXOXOXOXoXoXoXoXoXOXoXOXOXXXOXOXoXoXoXoXOXoXOXOXoXoXOXoXoXoXOXOXOXoXoXOXoXOXOXOXoXoXOXOXoXOXoXOXoXOXOXOXXXOXoXOXoXoXoXOXoXOXoXOXoXOXoXOXoXoXoXOXoXoXOXoXOXoXoXoXOXoXOXoXOXOXoXoXoXOXoXOXoXoXOXoXoXoXOXoXoXOXoXoXOXoXOXoXoXOXoXOXoXOXOXOXoXoXOXOXOXoXOXOXoXoXoXoXOXOXoXoXoXOXoXOXoXoXOXoXoXOXoXoXoXOXOXOXoXoXoXoXoXOXoXOXoXOXOXOXoXoXoXoXoXOXoXOXoXoXOXOXOXoXOXoXOXoXoXoXOXOXoXoXoXOXoXXXOXoXOXoXOXoXOXXXOXoXoXoXOXoXoXOXOXOXOXoXoXOXoXoXOXoXoXoXOXXXOXXXOXOXXXOXoXOXOXOXoXoXOXoXOXoXOXOXoXoXOXoXoXoXOXOXOXoXOXoXOXoXoXoXOXoXOXoXoXOXoXoXOXoXoXoXOXXXOXoXOXOXoXoXOXOXoXoXoXOXoXOXoXoXoXOXoXOXoXOXoXOXoXOXoXoXOXoXoXoXOXOXOXOXoXoXoXOXoXoXOXoXoXoXOXOXoXoXoXOXoXoXoXXXOXoXOXoXoXXXoXoXXX", -"oXoXOXoXOXoXoXoXoXoXOXoXOXoXoXOXOXoXoXOXoXOXoXoXOXoXoXOXOXOXXXOXoXOXoXoXoXoXoXOXoXOXoXoXoXOXoXoXOXoXoXoXOXoXoXOXOXOXOXOXoXOXoXOXOXoXOXOXOXoXOXoXXXOXOXoXoXoXOXoXoXoXOXoXoXOXoXoXXXOXOXOXOXoXOXoXoXOXoXoXOXoXoXOXoXOXoXOXoXOXoXOXoXoXOXoXOXoXoXOXoXOXXXOXoXOXoXOXoXoXOXoXOXOXXXoXoXOXoXOXOXoXoXOXoXoXoXOXoXOXoXoXXXOXOXXXoXOXoXOXoXOXoXoXoXoXOXoXOXoXoXOXoXOXoXoXOXXXOXoXoXOXOXoXoXoXOXoXoXOXoXoXXXOXOXOXOXoXOXoXoXOXoXoXOXoXoXoXoXOXoXoXoXoXoXOXoXoXOXoXoXOXoXoXoXoXoXOXoXOXoXoXXXOXOXXXoXOXoXOXoXoXOXoXOXoXoXOXXXOXoXOXOXOXoXoXoXoXoXOXoXoXOXoXoXoXOXoXoXOXoXoXoXOXoXoXoXOXoXoXoXOXOXOXoXoXOXoXoXOXoXoXoXOXoXoXOXoXoXoXoXoXoXOXoXOXoXOXoXOXoXoXoXOXOXoXOXXXoXoXoXoXOXoXoXoXOXoXoXoXOXoXoXOXoXoXOXXXOXoXOXoXOXoXoXOXoXoXOXoXoXoXoXoXoXOXoXoXoXOXoXOXoXoXoXoXOXoXOXOXXXOXOXoXOXoXOXoXoXoXOXoXoXOXoXOXoXoXoXoXOXoXOXoXOXOXOXoXOXoXOXoXOXoXoXOXoXoXOXoXoXoXoXOXoXoXoXOXoXoXOXoXoXOXoXoXoXoXOXoXoXOXoXOXoXoXoXoXOXoXOXoXOXOXOXoXOXoXoXOXoXoXOXoXoXOXoXOXoXOXoXOXoXOXoXoXOXoXOXoXoXOXXXOXOXXXOXoXOXoXoXOXoXoXoXoXOXoXOXoXoXOXXXOXOXOXoXoXOXoXoXoXOXoXoXOXoXoXoXoXoXoX", -"oXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXXXOXoXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXXXXXXXXXoXoXoXXXoXoXXXoXoXoXoXoXOXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXOXXXXXXXXXoXoXoXoXoXoXoXoXXXoXoXoXoXoXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXOXXXoXoXoXoXoXoXoXoXXXOXoXOXoXoXoXXXoXoXoXoXoXoXoXoXoXoXoXoXOXXXOXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXXXOXoXoXoXXXoXoXoXoXoXoXoXoXoXoXOXXXXXXXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXOXXXOXXXoXoXoXoXoXoXoXoXoXoXoXoXOXXXXXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXXXXXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXXXoXoXXXOXOXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXOXXXXXOXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXXXOXOXXXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXXXoXoXoXoXoXOXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXXXoXoXoXoXoXoXoXoXoXoXXXoXoXoXoXoXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXOXoXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX", -"oXoXoXoXoXoXoXoXoXoXoXoXoXoXOXoXoXoXoXoXoXoXoXoXoXoXoXoXOXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXXXOXoXoXoXoXoXoXoXoXoXoXoXoXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXXXOXoXoXoXoXoXoXoXoXoXoXoXOXXXOXOXXXoXoXoXoXoXoXoXoXoXoXoXoXOXoXXXOXXXoXoXoXoXoXoXoXoXoXOXXXXXOXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXOXoXXXOXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXXXOXoXoXoXoXoXoXoXoXoXoXoXoXoXXXOXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXOXoXXXOXoXoXoXoXoXoXoXoXoXoXoXoXoXoXOXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXXXOXOXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXOXOXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXOXXXXXOXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXOXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXOXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXOXXXOXOXXXoXoXoXoXoXoXoXoXoXoXoXoXXXOXOXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXOXXXXXOXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX", -"oXoXoXoXXXoXoXoXoXoXoXoXoXoXXXoXoXoXoXoXoXoXoXoXoXoXoXoXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXXXoXoXoXoXoXoXoXoXoXoXOXXXoXoXoXoXoXoXoXoXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXOXXXoXoXoXoXoXoXoXoXoXoXoXXXOXXXXXOXXXoXoXoXoXoXoXoXoXoXoXoXXXoXoXXXOXXXoXoXoXoXoXoXoXoXXXXXOXXXoXoXoXoXXXoXoXoXoXoXoXoXoXoXoXoXXXoXoXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXXXOXXXoXoXoXoXoXoXoXoXoXoXoXoXoXOXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXXXoXoXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXXXOXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXXXOXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXXXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXXXOXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXXXoXoXoXoXoXoXoXoXXXOXXXXXOXXXoXoXoXoXoXoXoXoXoXoXoXoXoXXXOXXXoXXXoXoXoXoXoXoXoXoXoXoXoXoXoXXXOXXXXXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoXoX", -"XXoXXXoXXXoXXXoXXXoXXXoXXXoXXXoXXXXXoXXXoXXXoXXXXXoXXXoXXXoXXXoXoXoXXXoXOXXXXXOXXXOXXXXXXXoXXXXXoXXXoXXXoXXXoXXXXXXXXXoXXXoXXXoXoXXXoXXXoXXXoXXXXXoXXXoXXXoXXXoXoXoXoXoXXXXXXXoXXXoXXXoXXXoXXXoXoXXXXXXXXXXXoXXXXXoXXXoXoXXXoXXXoXXXXXXXXXoXXXoXXXoXXXoXoXXXoXXXXXoXXXXXoXXXoXXXoXXXoXXXoXXXoXoXoXXXXXXXoXXXoXXXXXoXXXoXXXoXXXoXoXOXoXoXXXXXXXoXXXoXXXoXoXoXoXXXoXXXoXXXXXXXXXXXoXoXXXXXXXoXXXoXXXoXXXoXXXoXXXoXoXXXoXXXoXXXXXXXoXoXoXoXXXXXoXXXoXXXXXXXoXXXoXXXoXXXoXXXoXXXoXXXXXoXXXoXXXoXXXoXoXXXXXXXXXoXXXoXXXoXXXoXXXoXXXoXoXXXoXXXoXXXXXXXoXoXXXXXXXXXXXoXoXXXoXXXoXXXoXoXXXoXXXoXXXoXXXoXoXXXoXoXXXoXXXXXoXoXXXXXXXXXoXXXoXXXoXXXoXXXoXXXoXXXoXXXoXXXoXXXXXXXoXoXoXXXoXXXoXoXXXXXXXoXXXoXOXoXoXoXXXoXXXoXoXoXoXOXXXoXXXXXXXoXXXoXoXoXXXXXoXoXXXXXXXoXXXoXXXXXXXoXXXoXXXoXXXXXoXoXoXXXoXXXoXXXoXXXXXoXXXXXoXXXoXXXoXXXoXXXoXXXoXXXoXXXXXXXoXoXXXoXXXoXXXoXXXoXXXoXXXoXoXoXXXoXXXoXoXXXoXoXoXXXoXXXoXXXoXXXoXXXoXXXoXXXoXXXoXXXXXXXXXoXXXoXoXXXoXoXXXoXoXoXXXoXoXXXoXXXoXXXXXoXXXoXXXoXXXoXoXoXXXoXXXoXXXoXXXoXXXoXXXXXoXXXXXoXXXoXXXoXXXoXoXoXoXXXoXXXoXXX", -"oXXXoXXXoXXXoXXXoXXXoXXXoXXXoXXXXXoXXXoXXXoXXXoXoXXXoXXXoXXXoXXXoXXXoXXXXXXXXXXXXXXXXXXXoXXX}.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.T.oXXXoXoXXXT.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.XXXXoXXXoXXXoXXXoXoXw.w.w.w.5.w.w.w.w.w.w.w.w.w.w.w.w.w.w.5.w.w.w.w.w.w.w.w.w.w.w.w.OXoXoXXXoXXXoXOXXXOXXXoX5.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.5.w.w.w.w.w.}.oXXXXXoXXXoXXXoXoXy.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.}.XXoXXXXXoXXXoXoXy.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.T.oXoXXXoXXXoXXXoXXXoXXXoXXXoXXXoXXXoXXXXX}.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.E.oXXXoXXXoXXXoXXXXXR.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.}.XXXXoXXXXXXXoXXXoXoXXXoXXXw.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.w.5.w.w.T.oXoXXXoXXXoXXXoXXXR.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.t.R.oXXXXXoXXXoXXXoXoXXXoXXXoXXXoXXXoXXXoXXXoXXXoXXXoXXXoXXXXXXXXXoXoXXXoXXXoXXXoXXXoXoXXXoXXXoXXXoX", -"XXoXoXoXoXoXXXoXoXoXXXoXXXoXXXoXoXoXXXoXXXoXoXXXXXoXXXXXXXoXoXoXoXXXXXoXXXXXXXXXoXXXOXXXXXoXT. h oXoXXXXXoXm XXXXoXoXXXXXoXXXXXoX. X E.XXXXoXXXoXXXXXXXXXXX}. R.XXoXoXXXXXXXoXXXoX* F.oXXXoXXXXXXXXXoXo g XXoXXXoXXXXXoXoXXXoXoXXXoXXXoXXXXXXXoXXXT. 4.XXoXXXXXXXoXoXoXoXW w.oXoXXXXXXXXXoXoXXXoXoXoX|. P oXXXoXXXoXXXXXXXXXI P XXoXoXXXXXoXoXXXXXoXXXXXXXoXoXoXoXXXXXoXXXXXXXXXoXoXXXoXXXXXXXXXXXoXoXoXXXoXXXXXXXoXoXXXXXoXoXXX", -"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXT. h XXoXXXoXXXm XXXXXXoXXXXXXXXXXXXX. D.XXXXXXXXXXXXXXXXXXXXF. R.XXXXXXoXXXXXXXXXXX* D.XXXXXXXXXXXXXXXX. g XXXXXXXXXXXXXXXXXXXXXXXXXXoXXXXXXXXXXXXXT. 4.XXXXXXXXXXXXXXXXoXW g XXoXXXXXXXXXXXoXXXXXXXXX}. P XXXXXXXXXXXXXXXXoXW P XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", -"XXXXXXXXXXoXXXXXXXXXXXoXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXT. h XXXXXXXXXXm XXXXXXXXXXXXXXXXXXXXo w.XXXXXXXXXXXXXXXXXXXXt. R.XXXXXXXXXXXXXXXXXX* T.XXXXXXXXXXXXXXXXo g oXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXT. 4.XXXXXXXXXXXXXXXXXXW . }.XXXXXXXXXXXXXXXXXXXXXX|. P oXXXXXXXXXXXXXXXXXI P XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", -".XXXXXXXXX.XXXXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXX XXX.XXXXXXXXX.XXXXXXXXX.XXXT. n XXXXXX.XXXm XXXXXXXXX.XXXXXXXXX. I XXXXXXXXXXXXXXXXXXXXW R.XXXXXXXXXX.XXXXXXX* F.XX.XXXXXXXXXXXXXo g XXXX.XXXXXXXXX.XXXXXXXXXXXXXXXXX.XXXXXXXT. 4.XXXXXXXXXXXXXXXXXXW w..XXXXXXXXXXXXXXXXXXX.X}. I oXXXXXXX.XXXXXXXXXE P XXXXXXXXXXXXXXXXXX.XXXXXXXXX.XXXXXXXXXXXXX.X.XXXXXXXXXXX.XXXXXXXXXXXXXXXXXXX.XXX.XXXXXXXXXXXXXXX", -"XXXX.XXXXXXX.XXX.XXX.XXX.XXX.XXX.XXXXX.XXXXX.XXXXX.XXXXXXX.XXXXXXXXX.XXXXXXX.XXXXXXXXXXXXXXXD. h XX.XXXXXXXm XXXXXXXXXXXXXX XXXXX. h XXXX.XXXXXXXXX.XXXXXP R.oXXX.XXX.XXXXXXXXX% D.XXXXXXXX.XXXXXXX. d XXXXXXXXXX.XXXXXXXXX.XXXXXXXXXXX.XXXXXXXT. 4.XX.XXXXXXXXXXXXXXXW h XXXXXXXXXX.XXX.X.X.XXX|. P XXXXXXXXXXXX.XXX.XI . P .XXXXX.XXXXXXX.XXXXXXX.XXX.XXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXXXXXXX.XXX.XXXXX X", -"XX.XXXXX.XXX.XXXXXXXXXXX.XXXXXXX.XXXXXXX.X.XXXXXXX.XXX.XXXXX.XXXXXXXXXXX.XXXXXXXXXXXXX.XXX.XT. h XX.XXXXXXXm XX.X.XXX X.XXXXXXXXX. 1 XX.XXXXXXX.XXX.XXXXX8 R.XXXXXXXXXXXXXX.XXX% D.XXXX.XXX.XXXXXXX. d XXXX.XXXXXXXXX.X.XXXXXXXXX.X.XXXXXXXXXXXT. 4.XXXX.XXX.XXX.X XXXW . |.XX.XXXXXXXXXXXXXXXXX|. I XX.XXXXX.XXXXXXXXXI P XXXXXX.XXX.XXXXXXX.XXXXXXXXX.XXXXXXX.XXX.XXX.XXXXXXXXX.XXX.XXX.XXX.XXXXX.XXXXXXXXX.XXXXXXXXX.XXX", -"XXXXXX.XXX.XXX.XXX.X.XXXXXXXXX.XXX.XXXXXXX.X.XXXXXXXXX.XXXXX.XXXXX.XXXXXXX.XXX.X.XXXXX.XXXXXT. h XXXXXXXX.Xm .XXX.XXXXX.XXXXX.XXX. X.XXXXXXX.XXX.XXXXX, R..XXX.XXX.XXX.XXXXX* D.XX.XXXXX.X.XXX.X. g XX.XXX.XXX.XXXXX.XXXXX.XXX.XXX.X.XXX.XXXT. 4.XXXXXX.XXX.X.XXXXXW t.XXXX.X.XXXXXXXXXXX X|. P XX.XXX.XXXXXXXXX.XI . P XX.XXX.XXX.X.XXXXXXXXX.XXXXX.XXX.XXX.XXX.XXXXX.X.XXX.XXXXX.XXX.X.XXX.XXXXXXX.XXX.XXX.XXX.XXX.XXX", -".X.X.XXXXX.X.XXX.XXXXX.X.X.X.XXXXX.X.X.X.XXXXX.X.X.X.XXX.XXXXX.X.XXX.X.X.XXX.XXX.XXX.XXX.X.XT. h XX.X.X.XXXm X.XXX.XXXXX.X.XXX.X. E.XX.X.X.XXX.XXX.X X R.XX.XXX.XXXXXXX.X X* D..XXX.X.XXXXX.XXX. g XX.X.XXX.XXXXX.XXX.XXX.X.XXX.XXXXX.X.X.XI. 4.XX.X.XXX.XXXXX.X.XW m .X.XXX.X.X X.X.X.X.X|. P XXXX.XXX.X.X.X.XXXI P XX.X.XXX.XXXXX.X.X.X.XXX.XXXXX.XXX.XXXXXXXXX.XXXXX.XXXXX.XXX.XXXXX.XXX.X.XXXXX.XXX.XXX.XXX.XXX.X", -".X.X.XXX.XXX.XXX.X.XXXXX.X.X.XXX.XXX.XXX.X.XXXXXXX.X.XXX.X.XXX.X.XXXXX.XXX.XXX.XXX.XXX.X.XXXI. h .X.X.X.X.Xm .XXX.X.X.X.XXX.X.XXXo u..X.X.X.XXXXX.XXXE. R..XXX.X.X.X.XXX.X.X% D..XXXXX.X.XXXXX.X+ g XXXX.X.X.X.X.X.X.X.X.XXX.XXX.X.XXXXXXXXXI. 4..XXX.X.X.X.XXXXX.XW . |..X.XXX.X.XXX.XXXXX|. P XX.X.X.XXX.XXX.X.XI P .XXX.XXX.X.XXXXX.XXX.XXX.X.XXX.X.X.X.X.X.X.X.X.X.X.X.X.X.XXX.X.X.X.X.X.X.X.XXX.X.X.XXXXX.XXX.X.X", -"XXXX.X.X.XXX.X.XXX.X.X.XXXXX.X.X.XXX.X.XXX.X.X.X.X.X.X XXX.X.XXX.X.X.X.XXX.X.X.XXX.X.X.X.X XI. h .XXXXXXX.Xm X.X.XXXXX.X.X.XXX X. 4..XXXXX.X.X.X.XXXD. R..XXX.X.XXX.X.X.XXX* D.XX.X.XXX.X.X.XXX. g .X.XXX.XXX.XXXXX.X.X.XXX.X.XXX.X.X.X.X.XI. 4..X.X.XXXXX.X.X.X.XW y..XXXXX.X.XXX.X.X.X|. I .X.XXX.XXX.X.XXX.XI P .XXX.X.XXX.X.X.X.X.X.X XXX.X.X.X.XXX.XXX.X.XXX.XXX.X.XXX.X.XXX.XXXXX.X.XXX.X.X.X.X.X.X.X.X.X.XXX", -".X.X.X.XXX.X.X.X.X.XXX.X.X.X.XXX.X.XXX.X.X.X]. X.X.XXX.X.X.X.X.X.XXX.X.X.X.X.XXX.X.X.XXX.X.XI. h .X.X.X.X.Xm X.X.X.X.XXX.XXX.X.X. P .X.X.X.X.X.XXX.Xw. R..X.X.X.XXX.X.X.XXX* D..XXX.X.X.X.XXX.X. g .X.X.XXX.X.X.X.X.XXX.X.XXX.X.XXX.X.XXX.XT. 4.XX.X.X.XXX.X.X.X.XW M .X.X.X.X.XXX.X.XXX`. P .X.XXX.X.XXX.X.X.XI P .X.XXX.X.XXX.X.X.X.X.X.X.X.X.XXX.X.XXX.X.XXX.X.X.X.X.XXX.X.XXX.X.X.XXX.X.X.X.XXX.X.XXX.X.XXX.X.X", -".X.X.X.X.X.X.X.X.X.X.X.X.X.X.X]..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X]..X.XI. h .X.X.X.X.Xm ]..X.X.X.X.X.X]..X.X. d .X.X.X.X.X.X.X.XW R..X.X.X.X.X.X.X.X.X* D..X]..X.X.X.X.X.X. g .X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X]..XI. ,..X.X.X.X.X.X.X.X.XW + |..X.X.X.X]..X.X.X|. P ]..X.X.X.X.X.X.XXXI P .X.X.X.X.X.X.X.XXX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXX.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X", -".X.X.X.X.X.X.X.X.X.X]..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XI. h .X.X.X.X.Xm X.X.X.X.X.X.X.X.X.X. * .X.X.X.X.X.X.X.XZ R..X.X.X.X.X.X.X.X.X* D..X.X.X.X.X.X.X.X. g .X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XI. 4..X.X.X.X.X.X.X.X].W u..X.X.X.X.X.X.X.X`. P .X.X.X.X.X.X.X.X.XI . P .X.X.X.X.X.X.X'..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.XXX'..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X", -".X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X XI. h .X.X.X.X.Xm ]..X.X.X.X.X.X.X.X.X. `..X.X.X.X.X.X.X8 R..X.X.X.X.X.X.X.X.X% D..X.X.X.X.X.X.X.X. g .X.X.X.X.X.X.X.X.X.X.X.X.X.X]..X]. X.X.XI. 4..X.X.X.X.X.X.X.X.XW J .X.X.X.X.X.X.X.X|. L .X.X.X.X.X.X.X.X.XI P .X.X.X]..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X'..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X", -".X.X'..X.X.X.X.X.X]..X]..X.X]..X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X]..X.X.X.X.X.X.X.X]..X]..X].I. h .X.X.X.X.Xx ]..X]..X.X].]..X]..X. R.]..X]..X.X]..X, R.]..X.X]..X]..X]..X* D.]..X.X.X.X.X]..X. g ]..X]..X]..X.X.X]..X.X.X.X]..X'..X'..X].I. ,..X.X.X.X.X.X.X.X].W + ]..X]..X.X]..X.X`. P ].]..X]..X]..X]..XI P .X.X.X.X'..X.X.X.X.X]..X.X]..X]..X.X]..X]..X]..X.X.X'..X'..X.X.X.X.X.X.X.X.X.X.X.X.X]..X]..X]..X", -"'..X.X.X'..X.X].]..X.X].]..X.X]..X'.'..X.X'.'..X.X'..X'.].].].]..X].]..X].].].]..X.X]..X]..XI. h .X].]..X].m |.]..X].].]..X.X].].. t..X]..X.X].].|. U.].].]..X.X].]..X].* D.].].]..X.X]..X.X. g .X].]..X.X].]..X.X].].].]..X.X.X.X.X]..XI. ,.]..X].].'..X.X'.].W S.]..X].]..X]. X`. I ]..X]..X.X.X]..X].I P ].'..X.X.X.X.X.X].]..X.X]..X]..X.X'..X.X.X]..X]..X.X.X.X.X.X.X.X'..X'..X'..X'..X]..X.X.X.X]..X].", -".X'.'..X.X'..X'.].].]..X.X.X].]..X.X.X.X.X'..X.X'..X.X.X.X.X]..X].]..X].].].]..X].].|.].].].I. h ]..X].].].m ].].].]..X]..X]..X].. ,.].].].].].].Y. R..X].]..X]..X].].].* D.'.].].].].'..X].. d ].].].].].].].].].]..X'..X.X'..X.X'.].].L. ,.].].].].].]..X'.].W P ].].].].].].].`. P ].].].].].].].].].I P .X.X.X.X'..X'.'.].].].].].].].]..X].].].]. X].]..X'.'..X'..X.X'..X.X.X'..X.X.X'.]..X].].].].].].", -"'..X.X.X'..X'..X]..X].].'..X].].'..X'.'.'..X.X'.'..X'..X'..X].].].].].].].].].].].].].].].].I. h ].].].].].m . |.].].].].].].].]. X. M ].].].]..X].u. R.].].].].].].]. X].% D.]..X].].].].]..X. g .X].].]..X].].].].].'..X.X'..X'..X.X].].I. 4.]..X].].]..X'..X].R * ].].]. X.X]..X`. P ]..X].].].].].].].I . P '..X'.'..X'..X.X.X]..X].].].].].].].].].].].].]..X'..X.X.X'.'..X.X'..X'..X'..X'.].].].]..X].].].", -".X.X.X'..X'..X.X.X'.'..X.X.X'..X.X'.'..X.X'.'..X.X.X'..X].].].].].].].].].].].].].].].].].].E.M M M M M M M M M M M M M M , m M M M M M M M M M M M M M ,.].].].].].m ].].].].].].].].].'.. 8 ].].].].].].5. R.'.].].].].].].].].% * M M M M M M M M M M M M M M M M R.'.].].].].].].].. d ].].].].].].].].].]..X'..X'..X'..X'.].].L. ,.].].].].].].].].].W I.].].].].].].`. P ].].].].].].].]..XI x M M M M M M M M M M M M M M M 5.].].]..X'..X].'.]..X'..X].].].].].].].].].].].].'..X'.'.'..X.X'.'.'..X'.].].].'.].].].].].].].].", -"'.'..X'.'..X'.'.'..X'.'.'.'.'.'.'..X.X'.'..X'..X'.'.'.'.'.].].].].'.].'.].].].].].].].'.].].'.].].].].].].].].'.'.].].].].M `.'.'.].].].'.].].].'.].'.].].].].].].'.x '.].].'.].'.].].].].. + ].].].].].].W L.'.].].].'.].'.].].* 7 ].].].].].].'.].].].].].'.].].].].].].].].].'.].].o d ].].].].].].].].].].'..X'..X.X'.'..X].].I. ,.].].].].'.].].].].R I '.].].].'.].`. L '.].].].].].].].].U E.].].].].].].].'.].].].].'.].]..X'.'..X'.'.'..X.X.X'.'.'.'.].].].'.].].].'.].].]..X'.'..X.X'.'..X'..X'..X'.].].'.'.].].].].].].].", -"'..X'.'.'.'.'.'.'.'.'..X.X'..X'..X'.'.'.'.'.'.'..X'.'..X].'.].].].'.].].'.].].'.].'.'.].'.'.'.].'.].'.'.'.].'.].].'.'.].'.M `.].].].].'.].'.].].].'.].'.].'.].].'.].x '.'.].'.].].'.].'.'.. (.].'.].'.'.M R.'.].'.].].].].'.'.* 7 ].'.'.'.'.].].].'.'.].].].].'.].'.].'.'.'.].].].].. d '.'.].].'.'.'.].'.].'..X'.'.'.'..X'.'.'.L. ,.].].'.].].].'.].].R * '.'.].].'.].`. P ].'.].].'.].].'.].I E.'.].'.].].'.'.].'.'.].'.'.].'.].]..X'.'.'.].'.'.'.].'.].].].].'.].'.].'.'.].'.'.'..X'..X'.'..X'.'.'.'.'.].].'.].].'.].'.'.].].].", -"'.'.'.'..X'.'.'..X'.'.'.'.'.'.'.'.'.'..X'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.].'.'.'.].'.'.'.].].'.'.'.].'.].'.'.'.].'.].'.'.M (.].'.'.'.].'.'.'.'.'.].'.'.'.'.'.'.'.'.x '.].'.'.'.].'.'.].'.. I.'.'.'.'.'.7 L.'.'.'.'.'.'.'.].'.* 7 '.'.'.'.'.'.'.'.'.].'.'.'.'.'.'.'.'.'.].'.'.'.'.'.. g '.].'.'.'.].'.'.'.'.'.'.'.'.'.'.'.'.'.].I. ,.'.'.'.'.'.'.'.'.'.R L.].'.'.].].(. K '.'.'.'.'.'.'.'.'.U E.'.'.'.'.'.].'.'.].'.'.].'.'.'.'.'.'.'..X'.'.'..X'.'.'.'.'.'.'.].'.'.'.].'.'.].'.'.'.'.'.'.'.'.'.'..X'.'.'.'.'.'.].'.'.].'.'.'.'.", -"'.'.'.'.'.'.'..X'.'.'.'.'.'.'.'.'.'.'..X'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.M `.'.'.].'.'.'.'.'.'.'.'.'.'.'.].'.'.'.'.m `.'.'.'.'.'.'.'.'.'.. 5.].].'.'.].% P.'.'.'.'.'.'.'.'.'.% 7 '.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.+ d '.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.L. ,.'.'.'.'.'.'.'.'.'.R R '.'.].'.'.`. P '.'.'.'.'.'.'.'.].I E.'.'.'.].'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.].'.'.'.'.'.].'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.", -"'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.M ).'.'.'.'.'.'.'.'.].'.'.'.'.'.'.'.'.'.'.x '.'.'.'.'.'.'.'.'.'.. :.'.'.'.'.`.. R.'.'.'.'.'.'.'.'.'.% 7 '.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.. d '.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.L. ,.'.'.'.'.'.'.'.'.'.R , '.'.'.'.'.`. P '.'.'.'.'.'.'.'.'.L E.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.", -"'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'._.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.M `.'._.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'._.x '.'.'.'.'.'.'.'.'.'.. M '.'.'.'.U. R._.'.'.'.'.'.'.'.'.% 7 '.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.. d '.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.L. ,.'.'.'._.'.'.'._.'.R U.'.'.'.'.). K '.'.'.'._._.'.'.'.L W.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'._.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'._.'.'.'.", -"'.'.'._.'.'._.'.'._.'.'.'.'.'._.'.'._.'.'.'._.'.'.'._.'._.'.'.'._.'.'._.'.'.'.'.'.'.'.'.'._.'.'.'.'.'.'.'._.'.'.'.'._.'.'.c ).'.'.'.'.'.'._.'.'.'.'._.'.'.'._.'.'.'.x '.'.'._.'.'.'.'.'.'.. 7 _.'.'.'.y. P.'.'.'._.'.'.'.'.'.+ 7 '.'.'.'.'.'.'._.'.'.'.'.'.'._.'.'.'._.'._.'.'.'.'.. d _.'._.'.'.'._.'.'.'.'.'._.'.'.'.'._._.'.L. ,.'.'.'.'.'.'.'.'.'.R W '.'.'.'.). P '.'._.'.'.'.'.'.'.L Y._.'.'.'._.'.'._.'.'.'.'.'._.'.'.'.'._.'.'.'._.'.'.'.'.'.'.'._.'.'.'.'._._.'.'.'.'.'._.'.'.'._.'._.'.'.'._.'.'._.'.'.'.'.'.'.'.'.", -"'.'.'.'._._.'.'.'.'._._.'.'.'.'._.'.'._.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'.'._.'._.'.'.'._.'.'._.'.'._.'.'.'.M )._.'.'.'.'._.'.'._.'.'.'.'._._.'.'.'.'.z `.'._.'.'._.'._.'.'.. * '.'._.'.<. P._.'.'.'._.'.'.'.'.* 7 '.'.'._._._.'.'.'.'._._.'.'.'._.'.'.'.'.'.'.'.'.'.. d '.'.'.'.'.'.'.'._.'.'.'._.'.'.'.'.'.'.'.S. ,.'._.'.'.'.'.'._.'.R 3 ]._.'.'.). K '.'.'.'.'.'.'.'.'.U E.'.'.'.'.'._.'.'.'.'._.'.'.'._.'.'._.'.'._.'.'.'._.'._.'.'.'.'.'._.'.'.'.'.'.'._._.'.'.'.'.'._.'.'.'.'.'.'._.'.'.'._._.'.'.'._.'.", -"_._.'._.'.'.'._._.'.'.'._.'._.'._.'.'.'.'._._.'._.'._.'.'._.'._._.'._.'._._.'._.'._._.'._.'.'._._._.'.'._.'._.'.'.'.'._._.M ).'.'._.'._._.'.'.'._._.'._.'.'.'._.'._.x _.'.'._.'.'._.'.'.'.. (.'.'.'.T P.'.'._.'._.'._.'._.* 7 _._.'.'.'.'.'._.'._.'.'._.'._.'._.'._.'.'._.'._.'.. d _.'.'._.'._.'._.'._._.'._.'._.'._.'.'._.L. :.'.'.'._._.'._.'._.R U.'._.'.). K _.'._._.'._.'.'.'.L Y.'._._.'._.'.'._._._.'.'._.'._.'.'._.'._.'.'._.'._.'.'.'.'._._.'.'.'._.'._.'._.'.'.'._.'.'._.'.'.'._._.'.'.'.'._.'.'.'.'._.'._.'.", -"'._._.'.'._._.'._.'.'._._.'.'._.'.'._._._._.'.'._.'.'._._.'._.'.'._._.'.'._._.'._._.'.'.'.'._.'.'._._.'.'._._.'.'._._.'.'.c ).'._._.'.'.'.'._._.'._._.'.'._._.'._.'.x `._.'.'._._.'._._._.. P.'._.'.z P.'._._.'.'._.'._.'.* 7 '._._.'.'._._.'._.'.'._._.'.'._.'._._.'._.'._.'.'.. d '._.'._._.'._.'.'._._.'.'._.'._._.'.'._.L. ,.'._._.'._.'.'._.'.R :.'._._.). P _._.'.'._._.'.'._.L Y._._.'.'.'.'._.'.'._._.'._.'.'._.'.'.'.'._.'.'._._.'._._._._.'.'._.'.'._._.'.'._.'._._.'._._._.'._._.'.'._.'.'.'._._.'._._.'.'._.", -"'._.'._._.'._._.'._._.'._._._._._._._.'._.'._._._._._._.'._._._._.'._._.'._.'._._.'._._._._.'._.'._.'._._._.'._._._.'._._.M ~.'._.'._._._._.'._.'._.'._._.'._._.'._.z _._._._.'.'._._.'._.. 7._.'._.7 P._.'._._.'._._.'._.% 7 '._.'._._.'._._.'._._.'._._.'._._.'._._.'._._._._.. d _.'._.'._._.'._._.'._._.'._._.'._._._./.L. :._._.'._._._.'._._.R 7 _._.'.(. K '._._._.'._._.'._.L . Y._.'._._._._.'._._.'._.'._._.'._._._._._._._._.'.'._._.'._.'._._._._._.'._._.'._._._.'._._.'._.'._.'._._._._._._._.'._.'._._.'._.", -"_.'._._._._._._.'._.'._._.'._.'.'._._._._._._._.'._._.'._.'._._._.'._.'._._.'._.'._.'._._._._._._.'._.'._._.'.'._.'._._.'.c )._._._._.'._.'._._._.'._._.'._.'._.'._.x _.'._._._._.'._.'.'.. :.'._.'.+ P._.'._.'._._._._.'.% 7 '._._._._.'.'._.'._.'._._._.'.'._._._.'._._._.'._.. d _._._._._.'._.'._._._._.'._.'._._.'._.'.L. ,._.'.'._.'._._.'._.R Y._.'.). K '._._._.'._.'._._.I Y._.'._.'._.'._.'._.'.'._._._.'._.'._._._.'._._._._.'._.'.'._.'._._._.'._._.'._.'._.'._._._._._._.'._.'._._._._._._.'.'._.'._.'._.", -"_._._.'._._.'._._._._._._._._._._._.'.'._.'._._._._._.'._._.'._._._._._._.'._._._._._._.'.'._._._._._._.'._._._._._.'._._.c )._._.'._._._._._._._._._.'._._._._._._.x _.'._.'._._._._._._.. Z _._.~. , . L._.'._._.'._.'._._.% 7 _._._.'._._._._._._._._._._._._.'._._._.'._._.'._.. d '._._.'._.'._._.'._._._._._._._._.'._._.L. :._._._._._._._.'._.R :.'._.~. K _._._._.'._._._.'.U Y._._._._._._._./._._._._.'._._._._._.'._._._.'._._._._._._._._._.'._._._._._._._._._._.'._._.'._._._._.'._.'._._._._._._._._._._.", -"_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._.M ~._._._._._._._._._._._._._._._._._._._.x _._._._._._._._._._.. + 8 _._.U. d P._._._._._._._._._.% 7 _._._._._._._._._._._._._._._._._._._._._._._._.'.. d _._._._._._._._._._._._._._._._._._._._.L. ,._._._._._._._._._.T 7 _._.~. P _._._._._._._._._.L Y._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._.", -"_._._._._._._._._._._._./._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._./._.c ~._._._._._._._._._._._._._._._._._._._.z /./._._._._._._._._.. 7 * _._.y. K L._._._._._._._._._.+ 7 _._._._._._._._._._._._._._._._._._._._./._._._._.. s _._._./._._._._./._._._._._._._._._._._.q. :._._._._._._._._./.R . Y._.~. K _._._./._._._._./.L Y._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._./._./._._._._._._./._._._._._._._._._._._._._._._.", -"_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._./._./._._._._._._.l ~._._._._._._._._._._._._._._._._._._._.x _._._._._._._._._._.. c (./.<. :. P._._._._._._._._._.* 7 /._._._./._._./._._._._._._._._._._._._._._._._._.. s _._._._._._._._._./._._._._._._._._._._.L. :._._._._._._._./._.R <._.~. K /._./._._./._._._.L Y._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._./._._._._._._._._._._._./.", -"_._._./._./._._._._._./._./._._._._./._./._._././._./._._._./._._._.^._.^._._./._._./._./._._./._./._._./._._._._._._./._.M (.^._._._._._././._._././._./._._./._._.z _._._./._._./._._./.. J , P._.L + 5. P.^._._._./._./._._.* 7 _./._._._._._._._./._._._._._._._._._.^./._./._._.. s _././._./._._._._._._.^._._./._./._._./.q. :._._./._./._././._.R d _.~. K _._._._._._._././.L Y._./._._._._._./._._._._._././._._._._.^._._._.^._._._._._./._.^./._._./._./._._._._._./._./._._._._._._._._._._._._./._._._._._.", -"_./._._._._._./._._._._._._._._./._._._._._./._._._._._./._._._._./._._._._._._.^._._._./._._._./._._._._._./._._._._._._.c ~._._._._._._._._._./._./._._./._._._._.z /./._._./._._./._._.. J s 6._.z 3 3. P._._./._._._._._./.* , 7.7.7.7.7.7.7.7.7.7.7.7.7.7.7.W._.^._._._._._./._.+ s _._._._._._./._._._._._.^._._./._._._./.L. :./._._./._._._._._.R W.~. P _./._./._./._._._.L <.7.7.7.7.7.7.7.7.7.7.7.7.7.7.P._._.^._._.^._._._._._._./._._._./._._./._._._._._._./._._._._._././._._._._./._._./._._./._._./._.", -"/._./._./././._._././._./././././._./././._./._././././._._././._._.^._.^._./._._._._.^._._.^./._././././._._./._././._./.c ~._.^./._././._././._./._././._./._./._.z /._./._./././._./._.. J K ,./.3 x 7. P././._._./././._./.% k._._./._._.^._./._.. s /._././././._._./._./._._._./._./._./._.j. ;._./._./._._./._./.T 5.~. A /._./._./._._././.U T /._./._.^._._./._./././._./._./._./._./._._._././._._./._./././._._._./._._./././._./._./././._./.", -"^._._._._._.^._.^._._._._._.^._._._./._._./._._./._./._./._./._././././._./._./././._./._./._._._././._./._./._./._./._._.c ~._._./._./._./._._./._._././._./._._./.z /./._./._./._._././.. Z <. J _.+ T 5. P._._./._./._._._./.* P./././._./././._./.. d _._./././._._././._./._./._._./._./././.L. :._./._._._./._./._.T f ~. K _./._._./._./._./.U T /._./._./._./._./._./._._././._././._._././._./._./._./._._././././._./._._._./._._./._._._./._./.", -"_._.^.^.^.^._._._._.^._.^.^._._././././././././._.^._./.^._._.^././././._././././._././././.^._.^._./._././././././././._.M ~./././././._./.^._./././._./././././._.x /././././././././.^.. P 6. s W. 2.5. P./././././././././.* P./././././././././.o s /./././././././._././././././././././._.j. :././././././._././.R . Y. K /././././././._./.L L /././././././._././././././._./._./././._._./././././././././././././././.^._././././.^._.^._._.^.", -"^._._._._.^._.^.^._._.^._.^._.^._.^././._./././.^.^._._._.^.^._././././././././././././._./././././._.^./././././././././.l ~./././././././././././././././././././.z ^././././././././._.. Z U. * k. q.2. P././././././././.^.* k./././././././././.. s /./././././././././././././././././././.S. :./././././././././.Y 2. K /././././././././.L U /./././././././././././././././././././././././././././././././././././././././././._./._._.^././.", -"^.^.^.^._.^._.^.^.^.^.^._.^.^._.^._.^.^.^./.^./.^._.^.^.^._.^.^././././._./././.^./.^./.^./.^./.^.^.^.^._.^./././.^././._.c ~.^././.^./.^./.^./.^.^.^./././././.^./.z /././././././././._.. Z ~.. . 7. Y.3. k././.^./.^././.^./.% P.^././././.^././._.. s /./.^./././././._././.^././././.^././._.j. :.^././././.^./.^._.Y s A ^././././.^././.^.L T ^././././././.^././.^././.^././.^.^.^.^./.^./././././././._./.^./.^././.^./.^./.^.^.^.^.^.^._.^.^.", -"^.^./.^._.^.^.^.^.^.^.^.^.^.^.^.^./.^././.^./.^./.^./.^.^./.^././.^./.^./.^./.^././.^./.^./.^./._./.^././.^./.^.^.^./.^./.l ~.^.^./.^./.^./.^./././.^././.^./.^./.^.z ~./.^./.^.^.^./.^./.. b ^., Z /.5. k./.^././.^././.^./.@ k./.^./.^./.^.^././.. s /././.^./.^./.^./.^.^././.^.^./.^./.^./.q. ;._././.^./.^./.^./.Y . K ^././.^./.^./.^./.L U ^.^.^.^._.^./.^./.^./.^./.^./.^./././.^./.^./.^.^./.^./.^.^./.^././.^./.^././.^./.^././.^.^./.^./.", -"_.^.^./.^.^._.^.^._.^._.^.^._.^./.^././.^./.^./.^./.^./.^././.^.^./.^./.^./.^././.^./././.^././.^.^./.^.^./.^./././.^././.c Q././.^./.^./.^./././.^./.^.^./.^./.^./.z ^.^./.^.^.^./.^./.^.. Z /.d * , ^.3. k.^./.^././.^.^./.^.@ P.^././.^.^././.^./.. s ^./.^./.^./.^./.^././.^./././.^./.^./.^.L. :.^./.^./.^./.^././.Y K ^./.^./.^./.^./.^.L U /./._.^.^./.^./.^./.^./.^./.^./.^./.^./.^./././.^.^././.^./././.^.^./.^././.^././././.^././.^./.^.", -"^.^.^.^._.^.^.^.^.^.^.^./.^.^.^.^.^.^.^.^.^.^./.^.^./.^.^.^.^.^.^.^.^.^.^./.^.^.^.^.^.^.^.^.^.^.^.^.^.^./.^.^.^.^./.^.^.^.c ~.^.^./.^.^.^.^.^.^.^.^.^.^.^.^.^./.^.^.z ^.^.^.^.^.^./.^.^.^.. Z /.K d ^.5. k./.^.^.^.^.^./.^./.% k./.^.^.^./.^.^.^.^.. s ^./.^.^./.^.^.^.^.^.^.^.^.^.^.^.^./.^.^.q. :.^./.^.^.^.^.^.^./.Y A ^.^.^.^./.^.^.^.^.L U ^.^.^.^.^.^.^.^.^./.^.^.^.^.^.^./.^.^.^.^.^.^.^.^./.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.", -"^./.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^./.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^./.c Q.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.z ~.^.^.^.^.^.^.^.^.^.. Z ^.2. Z ^.3. k.^.^.^.^.^.^.^.^.^.@ k.^.^.^.^.^.^.^.^.^.. p ^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.q. ;.^.^.^.^.^.^.^./.^.Y Z ^.^.^.^.^.^.^.^.^.L U ^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^./.^.^.^.^.^.^.^.^./.^.^.^.^.", -"^.^.^.^.!.^.^.!.^.!.^.^.^.^.^.^.!.^.^.^.^.!.^.^.^.^.^.^.!.^.^.^.^.^.^.^.^.^.^.!.^.^.^.!.^.^.^.^.^.^.^.^.^.^.^.^.^.!.^.^.^.l Q.^.^.^.^.^.^.^.!.^.^.^.^.^.^.^.^.^.^.^.j !.^.^.^.^.!.^.^.^.^.. J ^.6. ;.^.3. k.^.^.^.^.^.^.^.^.^.@ k.^.^.^.^.^.^.^.^.^.. s /.^.^.^.^.^.!.^.^.^.^.^.^.^.^.^.^.^.^.^.q. :.!.^.^.^.!.^.^.^.^.Y K ^.^.^.^.^.^.^.^.^.A U ^.^.^.^.^.^.^.!.^.^.!.^.^.^.^.^.^.^.^.^.^.^.^.^.^.!.^.^.^.^.!.^.^.^.^.^.^.^.^.^.^.^.^.^.!.^.^.^.!.", -"^.^.^.^.^.^.^.^.^.^.^.^.^.!.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.!.^.^.^.^.!.^.^.^.^.^.^.^.^.!.^.^.!.^.^.^.^.^.!.!.^.^.^.^.^.^.c Q.^.^.^.^.^.^.^.^.^.^.^.^.^.!.^.!.^.^.^.j ^.^.^.!.^.^.^.^.^.^.. b ^.U. 6.^.5. . k.^.^.!.^.^.^.!.^.^.+ k.^.^.^.^.^.^.^.!.^.. s ^.^.!.^.^.^.^.^.^.^.^.!.^.^.^.^.!.^.^./.j. ;.^.^.^.^.^.^.^.^.^.Y A ^.^.^.^.^.!.^.^.^.L U ^.^.^.^.!.^.^.^.^.^.^.^.^.^.^.!.^.^.^.^.^.!.^.!.^.^.^.^.^.^.^.^.^.^.!.^.^.^.^.!.^.^.^.^.^.^.^.^.^.", -"^.!.^.^.^.^.^.^.^.^.^.^.^.^.^.!.^.^.^.!.^.!.!.^.^.!.^.^.^.^.^.^.^.!.^.^.!.^.^.^.!.^.^.^.^.^.^.^.^.^.^.!.^.^.^.^.^.^.^.^.^.c Q.^.!.^.!.^.^.^.^.^.^.^.!.^.^.^.^.^.^.^.z ^.^.^.^.^.^.^.^.!.^.. b /.!.. P.^.3. k.^.^.^.!.!.^.^.^.^.% j.^.!.!.^.^.!.^.!.^.. s !.^.^.^.!.^.^.^.!.^.^.!.^.^.!.^.^.^.^.^.q. ;.^.^.^.!.^.^.^.!.^.Y b ^.!.^.!.^.^.^.!.^.U U ^.^.^.^.^.^.^.^.^.!.^.!.^.!.^.^.^.^.^.!.^.^.^.^.^.^.^.!.^.^.^.!.^.^.!.!.^.^.!.^.^.!.^.^.^.^.^.^.^.", -"!.^.^.!.!.!.^.!.!.^.!.^.!.^.!.^.^.!.^.^.!.^.^.^.!.^.^.!.^.!.^.!.^.^.!.!.^.!.!.^.^.!.^.!.^.!.^.!.!.^.!.^.^.!.^.!.!.^.!.^.!.l Q.!.^.^.!.^.!.^.!.!.!.^.^.!.^.!.^.!.!.^.j Q.^.!.!.^.^.!.^.!.^.. b ^.^., Q.^.1. k.^.!.^.^.^.!.^.!.^.% k.^.^.^.!.^.!.^.^.!.o s !.^.^.!.^.^.!.^.^.!.!.^.!.^.!.^.!.^.^.!.q. ;.^.!.^.^.^.!.^.^.!.Y A ^.!.^.^.^.!.!.^.!.A U ^.!.!.^.!.!.^.!.^.^.^.!.^.^.^.!.!.!.^.^.!.!.!.^.!.!.^.^.^.!.^.^.!.!.^.^.^.!.^.!.^.^.!.!.^.!.^.!.!.", -"^.!.^.!.^.!.^.!.!.!.^.!.^.!.^.!.!.!.^.!.^.!.^.!.^.!.^.!.!.!.^.!.!.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.!.!.^.!.^.c Q.^.!.^.!.^.!.^.!.^.^.!.!.^.!.!.^.!.!.^.j !.^.!.!.^.!.^.!.!.!.. b ^.!.f + !.^.3. k.^.!.!.!.^.!.!.^.!.@ j.!.!.^.!.!.^.!.^.^.. s ^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.!.!.^.q. ;.!.^.!.!.!.!.^.!.!.Y A ^.!.^.!.^.!.^.!.^.A U !.^.!.!.^.!.!.!.!.!.^.!.^.!.^.!.^.^.!.!.^.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.!.", -"!.^.!.^.!.^.!.^.^.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.^.!.^.^.l Q.!.^.!.^.!.!.!.^.!.!.^.!.^.!.^.!.^.^.!.z ^.!.!.^.!.^.!.!.^.^.. b ^.^.U 7 ^.!.3. k.!.^.!.^.!.^.^.!.^.@ k.!.^.!.^.!.^.^.!.!.. p !.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.^.!.q. ;.^.!.!.^.!.^.!.^.^.Y . Z ^.^.!.^.!.^.!.^.!.L U !.!.^.^.^.!.^.^.^.^.!.^.!.^.!.^.!.!.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.!.^.", -"!.^.!.!.!.^.!.^.!.!.!.^.^.!.!.!.!.^.!.^.!.!.!.^.!.^.!.!.!.^.!.^.^.!.^.!.!.!.^.!.^.!.!.!.!.^.!.!.!.!.!.^.!.!.!.!.!.!.!.^.!.l Q.!.!.^.!.^.^.!.^.^.^.!.!.!.!.^.^.!.!.^.j !.^.!.!.^.!.^.^.!.!.. b ^.!.2. l !.!.3. k.!.!.!.^.!.^.!.^.!.@ j.!.^.!.^.^.!.^.!.!.. s ^.!.^.!.!.^.!.^.^.!.!.^.!.^.^.!.^.!.^.!.q. ;.!.^.!.^.!.^.!.^.!.Y z A !.!.!.!.^.!.!.!.!.L U !.^.!.^.!.^.!.^.!.!.^.!.^.!.^.!.^.^.!.!.!.!.^.^.!.^.!.!.^.!.^.^.!.!.^.!.^.^.!.!.^.!.^.^.!.!.^.!.^.", -"!.!.^.!.!.!.!.!.^.!.!.!.!.!.^.!.!.!.!.!.^.!.!.!.!.!.^.!.!.!.!.!.!.!.!.!.^.!.!.!.!.!.^.!.!.!.^.^.!.!.!.!.^.^.!.!.^.!.!.!.!.c Q.!.!.!.!.!.!.!.!.!.!.!.^.!.!.!.!.!.!.!.z !.!.!.!.^.!.!.!.!.!.. b !.!.q. Y !.^.1. l.^.!.!.!.!.!.!.!.^.@ j.!.!.!.!.!.!.!.!.^.. s !.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.^.q. . ;.!.^.!.!.!.!.!.!.!.Y 3. A ^.!.!.!.!.^.^.!.!.A U !.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.^.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.", -"!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.^.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.c Q.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.z !.!.!.!.!.!.!.!.!.!.. b !.!.x. 3.!.!.3. j.!.!.!.!.!.!.!.!.!.@ + f f f f f f f f f f f f f f f x.!.!.!.!.!.!.!.!.!.. s !.^.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.q. ;.!.!.!.!.!.!.!.!.!.Y x.+ A !.!.!.!.!.!.!.!.!.A s f f f f f f f f f f f f f f 3.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.", -"!.!.^.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.^.!.!.!.!.!.!.^.!.c Q.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.j !.!.!.!.!.!.!.!.!.!.. b !.!.!.. q.!.!.1. l.!.!.!.!.!.!.!.!.!.@ 4 !.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.^.!.. p !.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.q. ;.!.!.!.!.!.!.!.!.!.Y x.z A !.!.!.!.!.^.!.!.!.U x.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.", -"!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.l Q.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.j !.!.!.!.!.!.!.!.!.!.. b !.!.!.3 x.!.!.3. j.!.!.!.!.!.!.!.!.!.% 7 !.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.. s !.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.q. ;.!.!.!.!.!.!.!.!.!.Y B.3. A !.!.!.!.!.!.!.!.!.A x.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.", -"Z.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.Z.!.!.!.!.!.!.!.!.!.!.!.Z.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.!.Z.!.!.!.!.!.!.Z.Z.!.!.!.!.l B.!.!.!.!.!.!.!.Z.!.!.!.!.!.!.!.!.!.!.!.j !.!.!.!.!.!.!.!.!.!.. b !.!.!.j . !.!.!.2. l.!.!.!.!.!.!.!.!.!.% 4 !.!.!.!.!.!.!.!.Z.!.!.!.!.!.!.!.!.!.!.Z.Z.!.!.!.!.+ p !.Z.!.!.!.!.!.!.!.!.!.!.Z.!.!.!.!.!.!.!.q. ;.!.!.!.!.Z.!.!.!.!.Y x.B. V !.Z.!.!.!.!.!.!.!.A x.!.!.!.!.Z.!.!.!.Z.!.!.!.A.!.!.A.!.!.Z.!.!.!.!.!.!.!.!.!.!.!.!.Z.!.!.!.!.!.!.!.!.!.!.Z.!.!.!.!.!.!.!.!.!.!.!.Z.!.!.!.!.!.!.!.!.!.", -"!.!.!.!.Z.!.Z.!.!.!.!.!.Z.!.!.Z.!.!.A.!.!.A.A.!.!.Z.!.Z.!.!.!.!.Z.!.!.!.!.Z.!.Z.!.!.!.Z.Z.!.!.!.!.!.!.A.Z.!.!.A.!.!.!.!.!.l C.Z.!.!.Z.!.!.A.!.!.Z.!.!.!.!.!.Z.!.!.!.j C.!.!.Z.!.!.Z.!.Z.!.. b !.!.!.A , !.Z.!.1. l.!.!.Z.!.Z.!.!.Z.!.@ 7 !.Z.!.Z.Z.!.!.!.!.!.!.Z.!.!.Z.!.A.!.A.!.!.!.!.!.Z.. s !.!.!.!.!.Z.Z.!.!.!.!.!.A.!.!.!.Z.!.Z.!.q. ;.!.Z.!.!.!.Z.!.!.!.F x.Z.5 A !.!.!.!.Z.!.Z.!.!.A . x.!.Z.!.!.!.!.A.!.!.!.!.Z.!.!.!.!.!.!.!.Z.!.Z.!.!.!.!.Z.!.!.!.!.!.Z.!.!.!.!.!.Z.!.!.!.!.!.Z.!.!.!.Z.!.!.Z.!.!.!.!.!.Z.Z.!.!.Z.!.!.", -"!.Z.Z.!.Z.!.!.!.Z.!.Z.Z.!.Z.!.!.Z.!.Z.!.Z.!.A.!.!.!.!.Z.!.Z.Z.!.!.Z.Z.!.Z.!.!.Z.Z.Z.!.!.!.Z.!.Z.Z.!.Z.!.!.!.Z.!.!.Z.Z.!.!.l Q.!.Z.!.Z.!.A.!.Z.!.!.!.Z.Z.Z.!.Z.!.Z.!.j !.Z.Z.!.!.Z.!.!.Z.Z.. b !.Z.!.1. f !.!.!.1. q.Z.!.Z.!.!.!.Z.!.!.% 5 Z.!.!.Z.!.!.Z.Z.Z.!.Z.!.!.Z.!.Z.Z.!.Z.!.!.Z.Z.!.!.. p !.Z.Z.Z.!.!.!.Z.!.Z.!.!.Z.!.Z.!.Z.!.!.Z.q. ;.Z.!.!.Z.!.Z.!.Z.!.Y x.!.;. b !.!.Z.Z.!.!.Z.!.Z.A x.Z.!.!.Z.Z.!.Z.!.!.Z.Z.!.Z.!.Z.!.!.Z.Z.!.!.Z.!.Z.Z.!.Z.!.Z.!.Z.!.!.!.Z.Z.Z.!.Z.!.Z.!.Z.!.!.!.Z.Z.Z.!.!.Z.!.Z.Z.!.!.!.!.!.Z.!.!.Z.", -"Z.!.!.!.!.Z.!.Z.!.Z.Z.!.Z.!.Z.!.!.A.!.Z.!.Z.!.Z.Z.!.Z.!.!.!.!.Z.!.!.!.Z.!.!.Z.!.!.Z.Z.!.Z.!.Z.!.!.Z.!.!.Z.!.A.A.Z.!.!.!.Z.l C.Z.!.Z.!.Z.!.Z.!.A.Z.!.!.!.!.Z.!.Z.!.Z.j Z.!.!.!.Z.!.Z.!.!.!.. b !.Z.!.0. A Z.!.Z.1. l.Z.!.!.Z.!.Z.!.Z.!.% 4 !.!.Z.!.!.Z.!.!.Z.!.!.!.Z.!.Z.!.!.!.!.Z.Z.!.!.!.!.. p !.!.!.Z.Z.!.Z.!.Z.!.!.Z.!.Z.!.Z.!.Z.Z.!.q. %.!.!.!.Z.!.!.Z.!.Z.F x.!.l. V !.Z.!.!.Z.!.!.Z.!.A z.!.!.Z.!.Z.!.Z.!.Z.!.!.!.!.Z.A.A.Z.!.!.!.!.!.!.Z.!.Z.!.Z.!.Z.!.A.Z.!.!.!.!.Z.!.Z.!.Z.!.A.Z.!.A.!.!.Z.!.!.Z.!.Z.!.Z.!.!.Z.!.!.!.Z.", -"!.Z.Z.Z.Z.!.Z.!.Z.!.!.Z.!.Z.!.Z.Z.!.Z.!.Z.!.Z.!.Z.!.!.Z.Z.Z.Z.!.Z.Z.Z.!.Z.!.!.Z.Z.!.!.Z.!.Z.!.Z.A.A.Z.Z.!.Z.A.A.!.Z.Z.Z.!.l Q.!.Z.!.Z.!.A.A.Z.A.!.Z.Z.!.Z.!.Z.!.Z.!.z !.Z.Z.!.Z.Z.!.Z.!.Z.. b Z.!.!.x. ;.Z.!.!.1. q.!.Z.Z.!.Z.!.Z.!.Z.% 4 Z.!.Z.!.Z.!.Z.Z.!.!.Z.Z.!.Z.!.A.A.Z.A.!.!.Z.Z.Z.Z.. s !.Z.Z.!.!.Z.!.Z.!.Z.Z.!.Z.!.Z.!.Z.!.!.Z.q. ;.Z.Z.Z.!.Z.Z.!.!.Z.Y z.Z.!.% V !.!.Z.Z.!.Z.!.!.Z.A x.Z.Z.!.Z.!.Z.!.Z.!.Z.!.Z.A.A.A.A.!.Z.!.Z.Z.!.Z.!.Z.!.Z.!.A.A.Z.A.!.Z.Z.!.Z.!.Z.!.A.A.Z.A.!.Z.!.Z.Z.!.Z.!.!.Z.!.Z.!.Z.Z.!.Z.Z.Z.!.", -"Z.Z.Z.!.!.Z.!.Z.Z.!.Z.!.Z.!.Z.!.A.Z.A.A.Z.A.Z.A.Z.!.Z.!.Z.Z.Z.Z.!.Z.Z.Z.Z.!.!.Z.!.Z.Z.!.Z.Z.Z.!.Z.A.Z.A.Z.A.Z.!.Z.!.Z.!.!.l C.!.A.A.Z.A.Z.A.Z.A.Z.!.Z.!.!.Z.Z.Z.Z.Z.j Z.Z.!.Z.!.Z.!.Z.!.Z.. b !.Z.!.Z.+ 6.Z.!.!.1. q.!.Z.!.Z.A.Z.Z.Z.Z.+ 4 Z.A.A.Z.Z.Z.Z.!.!.Z.Z.Z.!.Z.!.Z.A.Z.A.Z.Z.Z.Z.!.Z.+ s Z.!.Z.Z.!.Z.Z.Z.!.Z.!.!.Z.Z.Z.!.Z.Z.Z.!.q. ;.Z.!.Z.Z.Z.A.Z.A.A.F z.!.!.A V Z.A.A.Z.!.!.Z.Z.!.D x.Z.!.Z.!.Z.!.Z.Z.A.Z.A.A.Z.A.Z.A.Z.Z.!.Z.!.Z.!.Z.Z.A.Z.A.Z.!.Z.!.Z.!.Z.!.!.Z.Z.Z.!.Z.!.Z.Z.A.Z.!.!.Z.!.Z.Z.!.Z.!.Z.Z.!.Z.Z.Z.!.Z.", -"Z.!.Z.Z.Z.Z.Z.!.Z.Z.Z.!.Z.Z.Z.Z.Z.A.A.Z.A.Z.A.A.Z.Z.Z.Z.!.!.Z.!.Z.!.Z.!.Z.Z.Z.Z.Z.Z.Z.Z.Z.!.Z.Z.A.A.A.Z.Z.A.A.Z.Z.Z.Z.Z.Z.l C.Z.A.A.A.Z.A.Z.A.Z.Z.Z.Z.Z.Z.Z.Z.!.!.Z.j Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.. b Z.Z.Z.V.3 l.Z.Z.Z.1. l.Z.A.Z.A.Z.A.!.!.Z.* 4 A.A.Z.A.Z.!.Z.Z.Z.Z.!.Z.Z.Z.Z.Z.A.Z.Z.A.!.!.Z.Z.Z.. p Z.Z.!.Z.Z.Z.!.Z.Z.Z.Z.Z.!.Z.Z.Z.Z.!.Z.Z.0. %.Z.Z.!.Z.A.Z.A.Z.A.F z.Z.Z.6. A A.Z.Z.Z.Z.Z.Z.Z.Z.A z.Z.Z.Z.!.Z.Z.Z.!.Z.A.A.Z.A.Z.A.Z.!.Z.Z.Z.Z.Z.Z.Z.A.A.A.Z.Z.Z.A.Z.Z.Z.Z.Z.Z.Z.Z.!.Z.Z.Z.Z.A.A.A.Z.Z.Z.Z.Z.Z.Z.Z.Z.!.Z.Z.Z.!.Z.Z.Z.", -"!.Z.Z.Z.Z.Z.Z.Z.Z.!.Z.Z.Z.Z.Z.Z.A.Z.A.Z.Z.A.A.Z.Z.!.!.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.!.Z.Z.Z.!.A.Z.Z.A.A.Z.A.A.!.Z.!.Z.Z.l C.Z.Z.A.A.A.A.Z.A.A.Z.Z.Z.Z.Z.!.Z.Z.Z.!.j Z.Z.Z.Z.!.Z.!.!.Z.Z.. b Z.!.Z.!.j C.!.Z.Z.1. 0.A.Z.Z.A.Z.Z.Z.Z.Z.% 5 Z.A.A.Z.Z.Z.Z.!.!.Z.Z.Z.!.Z.!.Z.A.A.Z.A.Z.Z.Z.Z.Z.. p !.Z.!.Z.!.Z.!.Z.Z.Z.Z.!.Z.Z.Z.!.Z.Z.Z.Z.q. ;.Z.!.Z.Z.A.A.Z.A.A.F x.Z.Z.C.. V Z.Z.A.Z.!.!.Z.!.Z.A x.Z.!.Z.Z.Z.!.Z.Z.A.Z.A.A.Z.A.A.A.Z.Z.Z.Z.!.Z.!.Z.A.Z.A.Z.A.A.Z.A.Z.Z.Z.Z.Z.!.Z.Z.!.Z.!.Z.A.Z.A.Z.Z.Z.Z.!.Z.!.Z.Z.Z.Z.Z.Z.!.Z.!.Z.", -"Z.Z.!.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.!.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.!.Z.Z.Z.Z.!.Z.Z.Z.!.Z.V.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.l B.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.!.Z.Z.Z.Z.Z.Z.Z.Z.j Z.Z.!.Z.Z.Z.Z.Z.Z.Z.. b Z.V.Z.Z.F % Z.Z.Z.Z.1. l.Z.Z.Z.Z.Z.Z.Z.Z.Z.@ 4 Z.Z.Z.Z.Z.Z.!.V.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.!.Z.. s Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.q. ;.Z.Z.Z.Z.Z.Z.Z.Z.Z.F z.Z.!.Z.j A Z.Z.Z.!.V.Z.Z.Z.Z.A z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.!.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.!.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.!.V.Z.Z.Z.", -"Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.k B.Z.Z.Z.Z.Z.Z.A.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.j Z.Z.Z.Z.Z.Z.Z.Z.Z.Z. l Z.Z.Z.Z.1. 5 Z.Z.Z.Z.1. 0.A.Z.Z.Z.Z.Z.Z.Z.Z.@ 4 Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.. p !.Z.V.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.q. %.Z.Z.Z.Z.Z.Z.Z.Z.Z.F z.Z.Z.Z.1. V A.Z.Z.V.Z.Z.Z.Z.Z.A z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.", -"Z.Z.Z.Z.Z.Z.Z.V.Z.Z.Z.Z.Z.Z.Z.V.Z.Z.C.Z.Z.Z.Z.Z.V.Z.Z.Z.Z.Z.V.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.V.Z.Z.C.Z.Z.Z.Z.Z.V.Z.Z.Z.Z.l C.Z.Z.Z.Z.V.Z.V.Z.Z.Z.Z.V.Z.Z.Z.Z.Z.Z.V.j Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.. b Z.Z.Z.Z.q. l Z.Z.V.Z.1. q.Z.Z.Z.Z.Z.Z.Z.Z.Z.@ 4 Z.Z.Z.C.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.V.Z.Z.Z.Z.V.Z.. p V.Z.Z.Z.Z.Z.Z.Z.V.Z.Z.Z.V.Z.Z.Z.Z.Z.Z.Z.q. ;.Z.Z.V.Z.Z.Z.C.Z.Z.F z.Z.Z.Z.M. V Z.Z.Z.Z.Z.V.Z.V.Z.A z.Z.Z.Z.Z.Z.Z.Z.Z.Z.A.V.A.Z.Z.Z.Z.Z.V.Z.Z.V.Z.Z.Z.Z.V.Z.Z.V.Z.Z.C.Z.Z.V.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.V.Z.Z.Z.Z.Z.Z.V.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.", -"Z.Z.Z.Z.Z.Z.Z.V.Z.Z.Z.V.Z.Z.Z.Z.Z.Z.Z.Z.V.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.V.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.V.Z.V.Z.Z.Z.Z.Z.l C.Z.Z.Z.Z.Z.Z.V.Z.C.V.Z.V.Z.Z.Z.Z.Z.Z.Z.j V.V.Z.Z.Z.Z.V.V.Z.Z.. b Z.Z.Z.Z.M. #.Z.Z.Z.Z.1. 0.Z.Z.Z.Z.Z.Z.V.Z.Z.@ 4 Z.Z.Z.Z.V.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.V.Z.Z.Z.Z.Z.Z.Z.V.. p Z.Z.Z.Z.Z.Z.Z.Z.V.Z.V.Z.Z.Z.Z.Z.Z.Z.Z.Z.0. %.Z.Z.Z.Z.Z.Z.Z.Z.Z.D z.V.Z.V.Z.4 V Z.Z.Z.Z.Z.Z.Z.Z.Z.A z.Z.V.Z.V.V.Z.Z.V.A.V.Z.Z.Z.Z.Z.V.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.V.Z.V.Z.Z.Z.Z.Z.V.Z.Z.Z.V.Z.V.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.V.Z.", -"V.Z.Z.V.V.Z.Z.Z.Z.Z.Z.Z.V.Z.Z.V.Z.V.Z.Z.V.Z.V.Z.Z.Z.Z.V.Z.V.Z.Z.V.Z.V.Z.V.Z.Z.Z.Z.V.Z.Z.V.Z.Z.V.Z.V.Z.V.Z.Z.Z.Z.V.Z.Z.Z.Z.l N.Z.V.Z.Z.V.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.V.Z.V.j C.Z.Z.V.Z.Z.Z.Z.Z.Z.. b V.Z.V.Z.Z.+ 1.Z.V.Z.V.1. l.Z.V.V.Z.V.Z.Z.Z.Z.@ 5 V.Z.Z.V.Z.Z.V.Z.Z.V.Z.V.Z.V.Z.V.Z.Z.V.Z.Z.Z.V.Z.Z.. p Z.Z.V.Z.V.Z.Z.Z.Z.Z.Z.Z.V.Z.Z.Z.V.Z.V.Z.9. %.Z.V.Z.Z.Z.V.Z.Z.Z.F z.Z.Z.Z.Z.F V V.Z.Z.Z.Z.V.Z.Z.V.A z.Z.Z.Z.Z.Z.Z.Z.Z.V.A.V.Z.V.C.Z.Z.V.Z.Z.Z.V.Z.Z.V.Z.Z.V.Z.V.Z.Z.Z.Z.Z.Z.Z.Z.Z.Z.V.Z.Z.V.Z.Z.Z.Z.Z.Z.V.Z.Z.Z.Z.V.Z.Z.V.Z.V.Z.V.Z.Z.", -"Z.V.V.Z.V.Z.V.Z.Z.Z.V.V.Z.Z.Z.V.Z.V.V.Z.Z.Z.Z.V.Z.Z.V.Z.V.Z.Z.V.Z.V.V.Z.Z.Z.Z.V.Z.Z.V.Z.Z.Z.Z.Z.V.Z.Z.V.Z.Z.Z.V.Z.V.Z.V.Z.l N.Z.Z.V.Z.Z.Z.V.Z.Z.V.Z.V.Z.Z.Z.Z.V.V.Z.a Z.V.Z.V.Z.Z.Z.Z.V.V.. v Z.Z.Z.V.Z.< 0.Z.Z.V.Z.>. 0.Z.V.Z.V.V.Z.V.Z.Z.@ 4 V.Z.Z.Z.Z.V.Z.V.V.Z.Z.V.Z.V.Z.V.V.Z.Z.V.V.V.Z.Z.Z.. p Z.V.V.Z.V.Z.Z.Z.Z.Z.Z.V.Z.V.V.Z.V.Z.V.Z.q. %.Z.Z.V.Z.Z.Z.V.Z.Z.F z.Z.V.Z.Z.0. b V.Z.V.V.Z.Z.V.Z.Z.A z.V.Z.V.Z.V.Z.Z.Z.Z.V.V.Z.V.Z.V.Z.V.Z.V.Z.Z.V.Z.Z.V.V.Z.Z.Z.V.Z.Z.V.Z.V.Z.V.V.V.Z.V.Z.V.Z.Z.V.Z.V.V.Z.V.Z.Z.V.Z.V.Z.V.V.Z.Z.Z.Z.V.", -"V.Z.Z.V.Z.V.Z.V.V.Z.V.Z.V.Z.V.Z.V.Z.Z.V.V.V.Z.V.V.V.Z.V.V.Z.V.Z.V.Z.Z.V.V.V.Z.V.V.V.Z.V.Z.V.V.Z.V.V.V.Z.V.V.V.Z.V.Z.V.Z.Z.k C.V.V.Z.V.V.V.Z.V.V.Z.V.Z.V.V.V.V.Z.Z.V.j V.Z.V.Z.V.V.V.Z.V.V.. b V.V.V.Z.V.k z.V.V.Z.V.1. . 0.V.Z.Z.Z.Z.V.Z.V.V.@ 5 Z.V.V.Z.V.Z.V.Z.V.Z.V.Z.V.Z.V.Z.Z.V.Z.Z.V.Z.V.Z.V.o p V.Z.Z.V.Z.V.V.V.V.V.V.Z.V.Z.V.Z.V.Z.V.C.0. %.C.V.Z.V.V.Z.V.Z.V.F z.V.V.V.Z.V.% b Z.V.Z.V.V.V.Z.V.V.A h.V.Z.V.V.Z.V.V.V.Z.V.Z.V.Z.V.Z.V.Z.V.Z.V.V.Z.V.Z.V.Z.V.V.V.Z.V.V.Z.V.Z.V.Z.C.Z.V.Z.V.Z.V.V.Z.V.Z.V.Z.V.V.V.Z.V.Z.V.Z.Z.V.V.V.Z.V.", -"V.V.Z.Z.V.Z.V.V.Z.V.Z.V.Z.Z.V.V.Z.Z.V.Z.V.Z.V.Z.V.Z.V.Z.Z.Z.V.V.Z.Z.V.Z.V.Z.V.Z.V.Z.V.Z.V.Z.V.V.Z.Z.V.V.Z.V.V.Z.Z.V.Z.V.V.l N.Z.Z.V.Z.V.Z.V.V.Z.V.Z.V.Z.V.Z.Z.V.V.Z.j Z.C.V.Z.Z.V.Z.V.Z.Z.. v Z.V.Z.Z.V.F . Z.V.Z.Z.Z.>. q.Z.V.V.Z.Z.Z.V.V.Z.@ 4 V.V.Z.V.V.Z.Z.V.Z.V.Z.V.Z.V.Z.V.V.V.Z.V.V.V.V.Z.V.. p Z.V.V.V.V.Z.V.Z.Z.V.Z.V.Z.V.Z.V.Z.V.Z.V.9. %.V.Z.V.V.Z.V.Z.V.Z.F z.V.Z.V.V.Z.b A Z.V.V.Z.Z.V.V.Z.V.C z.V.Z.Z.V.V.Z.Z.V.V.V.Z.Z.V.Z.V.V.V.Z.V.Z.Z.Z.V.V.Z.V.Z.V.Z.V.V.Z.V.Z.V.Z.V.Z.Z.Z.V.V.Z.Z.Z.Z.Z.V.V.Z.Z.V.Z.V.Z.V.Z.Z.V.Z.Z.V.Z.V.", -"V.Z.V.V.V.V.V.Z.V.V.V.V.V.V.V.Z.V.V.V.V.V.V.V.V.Z.V.V.V.V.V.V.Z.V.V.V.V.V.V.V.V.Z.V.V.V.V.V.Z.V.V.V.V.Z.V.Z.V.V.V.V.V.Z.V.l N.V.V.V.Z.V.V.V.Z.V.V.V.V.Z.V.V.V.V.V.V.a V.V.V.V.V.V.V.V.V.V.. v V.Z.V.V.V.1. 3 V.V.V.V.V.>. 0.V.V.V.V.V.V.V.Z.V.@ 5 V.Z.V.V.V.V.V.V.Z.V.V.V.Z.V.V.V.V.Z.V.V.Z.Z.V.V.V.. p V.Z.V.Z.Z.V.V.V.V.Z.V.V.V.V.Z.V.V.V.Z.V.0. %.V.V.V.Z.V.V.V.V.V.F z.V.Z.V.Z.V.6. v V.V.Z.Z.V.V.Z.V.V.A z.V.V.Z.V.Z.V.V.Z.V.Z.V.V.V.V.V.Z.Z.V.V.V.V.V.V.Z.V.V.Z.V.V.V.Z.V.V.V.V.Z.V.V.V.V.V.Z.V.V.V.V.V.Z.V.V.Z.V.V.V.V.Z.V.V.V.V.V.Z.V.V.", -"V.V.Z.V.Z.V.V.Z.V.Z.V.Z.Z.V.V.V.Z.V.Z.V.Z.V.Z.V.Z.V.V.Z.V.V.V.V.Z.V.V.Z.Z.V.Z.V.Z.V.V.Z.C.V.V.V.V.Z.V.Z.V.Z.V.V.V.Z.V.V.V.l N.V.V.V.V.Z.V.V.Z.V.V.Z.V.V.V.Z.V.Z.V.Z.j C.V.Z.C.V.Z.V.Z.V.V.o l Z.V.Z.V.Z.0. f V.V.V.V.V.>. . 0.V.Z.V.V.V.V.V.V.V.+ 5 V.Z.V.V.Z.V.Z.V.V.V.Z.Z.V.Z.V.V.V.V.V.Z.V.V.V.V.Z.. p V.V.V.Z.V.Z.V.V.Z.V.Z.V.V.Z.V.Z.C.Z.V.V.q. #.Z.V.V.Z.V.V.V.Z.V.F z.V.V.V.V.V.N.. V V.V.V.V.V.V.V.V.V.A z.V.Z.V.V.Z.V.V.V.V.Z.V.V.Z.V.Z.V.Z.V.V.Z.C.V.V.V.V.Z.V.Z.V.V.V.V.V.Z.V.V.V.V.V.Z.V.Z.V.V.V.V.V.V.V.Z.V.Z.V.V.V.V.Z.V.V.Z.V.Z.V.V.", -"V.V.V.V.V.V.V.V.V.V.V.V.V.C.V.V.V.V.V.V.V.V.V.V.V.C.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.k N.V.Z.V.V.V.V.V.V.V.V.V.Z.V.V.V.V.V.V.V.a V.V.V.V.V.V.V.V.V.V.. v V.V.V.V.V.v. C V.V.V.V.V.>. . 0.V.V.V.V.V.V.V.V.V.@ * %.%.%.%.&.%.%.%.%.%.%.%.&.%.%.%.%.>.V.V.V.V.Z.V.V.. , %.%.&.%.%.%.%.%.%.%.%.%.%.%.-.V.V.V.V.V.0. %.V.V.V.V.V.V.V.V.V.F z.V.V.V.V.V.V.f b V.V.V.V.V.V.V.V.V.A #.%.%.%.%.%.%.%.%.%.%.%.%.%.&.%.%.%.z.V.V.V.V.V.V.V.V.V.V.V.V.Z.V.V.V.V.V.Z.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.Z.V.V.V.V.V.V.V.V.", -"V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.l N.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.j V.V.V.V.V.V.V.V.V.V.. v V.V.V.V.V.V.+ &.V.V.V.V.V.>. 0.V.V.V.V.V.V.V.V.V.@ @ V.V.V.V.V.V.V.. i V.V.V.V.V.9. %.V.V.V.V.V.V.V.V.V.F h.V.V.V.V.V.V.&. v V.V.V.V.V.V.V.V.V.C 0.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.", -"V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.l v.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.j V.V.V.V.V.V.V.V.V.V.. v V.V.V.V.V.V.4 6.V.V.V.V.V.>. 0.V.V.V.V.V.V.V.V.V.@ @ V.V.V.V.V.V.V.. i V.V.V.V.V.0. %.V.V.V.V.V.V.V.V.V.F z.V.V.V.V.V.V.h. C V.V.V.V.V.V.V.V.V.A 9.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.V.", -"V.V.V.V.V.V.V.V.V.V.V.V.m.V.V.V.V.V.m.V.V.V.V.V.V.m.V.V.V.m.V.V.V.V.m.V.V.V.V.V.V.V.V.V.V.m.V.V.V.V.V.V.V.V.V.m.V.m.V.V.V.k v.V.V.V.V.V.m.V.V.m.V.V.V.V.V.V.V.V.V.V.a V.V.V.V.m.V.V.V.V.V.. v m.V.V.m.V.V.l . 0.V.V.V.V.V.>. 0.V.V.V.V.V.V.V.V.V.@ % V.V.m.V.V.V.V.. i V.V.V.V.V.9. %.V.V.m.V.V.V.m.V.V.D h.V.V.V.V.V.V.V.< C V.V.V.V.V.V.V.V.V.C 9.Z.V.V.V.V.V.V.V.m.V.V.V.m.V.V.V.V.V.V.V.V.V.C.V.V.V.m.V.V.V.V.V.V.V.V.V.V.V.V.V.V.m.V.V.m.V.", -"V.V.m.V.V.V.m.V.V.m.V.V.V.V.V.m.V.V.V.V.m.V.V.m.V.V.V.V.V.V.V.V.V.V.V.V.m.V.V.m.V.V.V.m.V.V.V.V.V.V.V.m.m.V.V.V.V.V.V.V.V.k v.V.V.V.m.V.V.V.V.V.m.V.V.m.V.m.V.V.V.m.f V.V.m.V.V.V.m.V.V.V.. v V.m.V.V.V.V.#. m.m.V.V.V.V.>. 0.V.V.m.V.V.V.V.V.V.@ % V.V.V.V.V.V.V.. i V.V.V.V.V.0. %.V.V.V.V.V.V.V.V.V.D z.V.V.V.V.V.V.V.D v V.V.V.V.V.V.V.V.V.C 9.V.V.V.m.V.V.m.V.V.V.m.V.V.V.V.V.V.V.m.V.m.V.m.V.V.V.V.V.V.V.V.V.m.V.V.m.V.V.V.V.V.V.V.V.V.V.", -"V.m.V.V.V.m.V.m.V.m.m.V.m.V.V.m.m.V.m.V.V.V.m.V.m.V.m.V.m.V.V.V.m.V.m.V.V.V.m.V.V.m.m.V.m.V.m.V.m.V.m.V.m.V.V.V.V.V.m.V.V.k v.V.m.V.m.V.m.V.V.V.V.V.V.V.m.V.m.V.V.V.f N.V.m.V.V.m.V.V.m.V.. v V.V.V.V.V.V.=. * V.m.V.V.V.V.*. . 0.m.V.m.V.V.V.m.V.V.@ % V.m.V.m.V.m.m.. i V.m.m.m.V.9. #.V.m.m.V.m.V.V.V.V.D h.V.m.V.m.m.m.V.9. v V.V.m.m.V.V.m.V.m.A 9.V.V.V.V.m.m.V.V.m.V.V.m.m.V.V.V.m.m.V.V.V.m.m.V.V.m.m.V.V.m.m.V.m.V.m.V.m.V.V.V.m.m.V.m.m.V.", -"V.V.V.m.V.m.V.V.m.V.V.m.V.V.m.V.V.V.m.V.m.V.V.V.V.m.V.m.V.V.m.m.V.V.m.V.m.V.V.V.m.V.m.V.V.m.V.V.V.V.m.V.V.V.m.m.m.m.V.m.V.l v.V.V.m.V.V.m.V.m.V.V.m.m.V.V.m.V.m.m.V.a m.m.V.V.m.V.m.V.m.m.. v m.V.m.m.V.m.0. i V.V.m.m.m.V.*. 0.m.V.V.V.m.m.V.V.m.@ % m.V.V.V.V.m.V.. i V.V.V.V.m.9. %.m.V.V.m.V.V.m.m.m.D h.m.V.m.V.V.V.V.V.@ C m.V.V.V.m.V.V.V.V.C 9.m.m.m.V.V.V.V.m.V.V.m.V.V.V.m.V.V.V.m.m.V.V.V.V.m.V.V.m.m.V.V.m.V.V.m.V.V.V.V.m.V.V.V.V.V.m.", -"m.m.m.V.m.V.m.V.V.m.V.V.m.V.V.m.m.V.V.m.V.m.V.m.V.m.V.m.V.V.m.V.m.V.V.m.V.m.V.m.V.V.m.V.m.V.V.m.m.V.V.m.V.m.V.V.V.m.V.m.V.k v.V.V.V.m.V.V.m.V.m.m.V.m.V.V.V.m.V.m.V.a V.V.m.m.V.V.V.m.V.m.. v V.m.V.V.V.V.v. v V.m.V.V.m.m.*. 0.V.m.V.m.V.V.m.V.V.@ @ m.V.m.m.V.m.V.. p V.V.V.m.V.9. %.V.V.V.m.m.V.m.V.V.D h.V.m.V.m.V.m.V.m.l v V.m.V.V.m.V.m.V.V.C 9.V.V.V.m.V.m.m.V.m.V.V.m.V.V.m.V.m.V.V.V.V.m.m.V.m.V.V.m.V.m.m.V.m.V.V.V.m.m.m.V.V.V.m.m.V.V.", -"m.V.V.m.V.m.V.m.m.V.m.m.m.m.m.V.V.m.V.m.V.m.m.V.V.m.m.V.m.m.V.m.V.m.V.m.V.m.m.V.m.m.V.m.V.m.m.V.V.m.m.V.m.V.m.V.m.V.m.V.m.k v.V.m.m.V.m.m.V.m.V.m.V.m.m.m.m.m.m.V.m.a m.m.V.m.V.m.m.V.m.V.. k V.V.m.m.m.m.m.@ #.m.V.m.m.V.V.*. 0.m.V.m.V.m.V.m.m.m.@ @ V.m.m.V.m.V.m.+ i m.m.m.m.V.9. #.m.m.V.m.V.m.V.m.m.D h.V.m.V.m.V.V.m.V.-. v m.V.m.V.m.m.V.m.m.C 9.V.m.m.V.m.V.V.m.V.m.m.V.m.m.V.m.V.m.m.m.V.m.V.m.V.m.m.V.m.V.V.m.m.m.m.m.m.V.V.m.m.m.m.V.m.m.", -"m.m.V.V.m.V.m.m.m.m.V.V.V.V.m.m.m.V.m.m.m.m.m.m.m.m.m.m.m.m.V.V.m.V.m.m.m.m.m.m.m.V.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.V.k v.m.V.m.m.m.m.m.V.m.V.m.m.V.m.V.V.m.m.V.a N.m.V.m.m.V.m.m.m.m.. v m.V.m.m.m.V.m.5 =.V.V.m.m.m.m.*. 0.m.m.m.m.m.m.V.V.m.@ % m.V.m.m.m.V.m.. i m.V.m.V.m.0. %.m.V.m.m.m.V.m.m.m.D h.m.V.m.m.m.m.V.m.c. v V.m.V.m.m.m.m.m.m.C 9.m.V.m.V.m.m.V.m.m.m.V.m.V.m.m.m.m.V.m.V.m.m.m.V.m.m.m.V.m.m.V.m.V.m.m.V.m.V.m.m.V.m.m.m.V.m.", -"V.m.m.m.m.m.m.V.V.m.m.m.m.m.m.V.m.m.m.V.m.V.V.m.m.V.V.m.V.m.m.m.m.m.m.V.m.V.V.m.V.m.m.V.m.V.V.m.m.V.m.V.V.m.V.m.V.m.V.m.m.k v.m.m.m.m.V.V.m.m.m.V.m.m.V.m.m.m.V.m.m.f m.m.m.V.m.m.m.m.V.m.. v m.m.m.V.V.m.m.l 0.m.m.V.V.m.V.*. 0.m.m.V.m.V.m.m.m.m.@ % m.m.V.V.m.m.m.. i V.m.m.V.m.9. #.m.m.m.V.m.V.m.V.m.F h.V.m.m.m.V.m.m.m.V.p v m.m.m.m.V.V.m.V.m.A 9.m.m.m.m.V.m.m.m.V.m.m.m.m.m.V.m.m.V.m.m.m.V.m.m.V.V.m.m.V.m.m.m.V.m.m.V.m.m.m.V.m.m.V.V.m.m.", -"m.m.m.m.m.m.m.m.V.m.m.m.m.m.m.m.m.m.V.m.m.m.m.m.V.m.m.m.V.m.m.m.m.m.m.m.m.m.m.m.m.V.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.k v.m.m.m.m.m.m.m.m.m.m.V.m.m.m.m.V.m.m.m.f m.m.m.m.m.m.m.m.m.m.. v m.m.m.V.m.m.m.#. c.m.m.m.m.m.m.*. . 0.m.m.m.m.m.m.m.m.m.@ @ m.m.m.m.V.m.m.. p m.m.V.m.m.9. $.m.V.m.m.m.V.m.m.m.D h.V.m.m.m.m.m.V.m.m.%. v m.m.m.m.V.m.m.m.m.C 9.m.m.m.m.m.m.m.m.V.m.m.m.m.m.V.m.m.m.m.V.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.V.m.m.m.V.m.", -"m.V.m.m.m.m.m.m.m.m.m.m.V.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.V.m.m.m.m.m.m.m.m.m.m.m.m.k v.m.m.m.V.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.a m.m.m.m.m.V.m.m.m.m.. v m.m.m.m.m.m.m.-. + m.m.m.m.m.m.m.*. 0.m.m.m.m.m.m.m.m.m.@ @ m.m.m.m.m.m.m.. p m.m.m.m.m.9. $.m.m.m.m.m.m.m.m.m.D h.m.m.m.m.m.m.m.m.m.0. v m.m.m.m.m.m.m.m.V.C 9.m.m.V.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.V.m.m.m.m.V.m.m.m.m.m.m.m.m.m.m.m.m.m.", -"m.m.m.m.m.m.m.m.m.m.n.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.n.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.k v.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.a m.m.m.m.m.m.m.m.m.m.. k m.n.m.m.m.m.m.0. < m.m.m.m.m.m.m.*. 0.m.m.m.m.m.m.m.m.m.@ @ m.m.m.n.m.m.m.. . i m.m.m.m.m.9. $.m.m.m.m.m.m.m.m.m.S 0.m.m.m.m.m.m.m.m.m.m.< v m.m.m.m.m.m.m.m.m.C 9.n.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.", -"m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.k c.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.a v.m.m.m.m.m.m.m.m.m.. v m.m.m.m.m.m.m.b. a m.m.m.m.m.m.m.*. 0.m.m.m.m.m.m.m.m.m.@ @ m.m.m.m.m.m.m.. i m.m.m.m.m.9. $.m.m.m.m.m.m.m.m.m.#. h.m.m.m.m.m.m.m.m.n.m.S . v m.m.m.m.m.m.m.m.m.C 8.m.m.m.m.m.m.m.m.m.m.m.m.m.n.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.", -"m.m.n.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.n.m.m.m.m.m.m.m.m.m.n.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.m.n.m.m.m.m.n.m.m.n.m.m.m.m.n.m.k c.m.m.n.m.m.n.m.m.m.m.m.m.m.m.m.m.m.m.m.a m.m.m.m.m.m.m.m.m.m.. v m.m.n.m.m.m.m.n.@ S m.m.m.m.m.m.m.*. 0.n.n.m.m.m.m.m.m.n.@ @ m.m.m.m.m.m.m.. i n.m.m.m.m.8. $.m.m.m.m.m.m.m.m.m.S h.n.m.n.m.m.m.m.m.m.m.8. v n.m.m.m.m.m.m.m.m.C 9.m.m.n.m.m.n.m.m.m.m.m.m.m.m.m.m.m.m.m.m.n.m.m.m.m.m.m.n.m.m.m.n.m.m.m.n.m.m.m.m.m.m.m.m.m.m.", -"m.m.m.m.m.m.n.m.n.m.m.n.n.m.m.n.m.m.m.m.m.n.n.m.n.m.m.n.m.m.m.n.m.m.m.n.n.m.n.m.m.n.n.m.m.m.m.m.n.m.n.m.m.m.m.m.m.m.m.m.n.k . c.n.n.m.m.m.n.m.n.m.m.m.n.m.m.n.n.m.m.m.a m.m.m.n.m.m.n.n.m.n.. k m.m.m.m.m.m.n.m.i &.n.m.n.m.m.m.n.*. 0.n.m.m.n.n.m.m.m.m.@ @ n.m.n.m.m.n.m.o i n.n.m.n.m.8. $.n.m.n.m.m.n.m.n.m.D h.m.m.m.m.m.m.n.n.m.m.n.+ v m.m.n.n.m.m.n.m.m.C 8.m.m.m.m.m.m.m.n.m.n.n.n.m.m.m.m.n.m.m.m.m.m.n.m.m.n.m.m.m.n.m.m.m.m.m.m.m.m.m.m.n.m.n.m.m.n.", -"m.m.n.m.m.n.n.m.m.n.m.n.n.m.m.n.m.n.n.m.m.m.m.m.n.m.m.n.n.m.m.n.m.n.n.m.n.m.m.n.n.m.m.n.m.n.n.m.m.m.m.m.m.n.n.m.m.n.n.m.m.k c.m.m.m.m.n.m.m.n.n.n.m.m.n.n.m.m.n.m.n.f . v.n.m.m.n.m.n.m.m.m.. v n.n.m.m.n.n.m.m.v 8.m.m.n.m.m.n.n.*. . 8.m.n.m.m.m.m.n.m.n.@ @ m.n.n.m.m.n.m.. i m.m.n.n.m.9. $.m.n.n.m.n.n.m.m.n.S h.n.n.m.m.n.n.m.m.n.m.m.k v g.n.m.n.m.n.m.m.n.C 8.n.m.m.n.n.m.n.m.m.m.m.m.m.n.n.m.m.n.n.m.b.n.n.m.m.n.n.m.m.m.n.m.m.n.n.m.m.n.n.m.m.n.n.m.m.n.", -"n.n.m.n.n.m.m.n.m.m.n.m.m.n.m.m.n.m.m.n.n.m.n.n.m.m.n.m.m.n.m.m.m.m.n.m.m.m.n.m.m.n.m.m.m.n.m.m.n.n.m.n.m.n.m.m.n.m.m.n.m.k X c.n.m.n.n.m.m.n.m.m.m.n.m.n.m.m.n.m.n.m.a . n.m.n.m.n.n.m.m.n.n.. v n.m.n.n.m.m.n.m.$. 0.n.m.m.n.m.m.n.*. 0.m.m.n.m.n.n.m.n.m.@ X @ m.m.m.n.m.m.n.. . i n.m.m.m.m.8. X $.m.m.m.n.m.m.n.m.m.S . h.n.m.n.n.m.m.n.m.m.n.m.=. v m.m.m.m.m.n.m.n.m.C X 8.m.m.n.m.m.m.m.n.n.m.m.n.n.m.m.n.m.n.m.m.n.m.m.n.m.m.n.m.n.m.m.n.n.m.m.n.n.m.m.n.m.n.m.m.n.m.", -"m.n.n.m.n.n.m.n.m.n.m.m.m.n.m.n.m.n.n.m.n.m.n.m.m.n.m.m.m.n.m.n.n.m.m.m.n.m.n.m.n.m.n.m.n.m.m.n.m.n.m.m.n.n.m.n.n.m.n.n.m.*.C C C C C C C C C C v C C C C C C C C C C C C C b.m.n.m.n.m.n.m.n.m.n.n.m.n.n.m.n.n.m.n.*.C C C C C C C C C C C C C v C C C C C C C C C C m.m.n.n.m.n.m.n.m.n.D S S S S S S S S S S S S S S S S S S S S -.m.n.m.n.m.n.m.m.0.S S S S S S S S S S S S S S S b.n.m.n.m.n.n.m.8.S D S S S S S S S S S S S S S S S D S S S h.m.m.n.m.n.m.n.m.m.D C C C C C C C C C C C C v C C C C C C C C C C C C C C C C C C C C C C v C C C C C #.n.m.m.n.m.m.m.S C C C C C C C C C C v C C C C C C C C C C C C C C C C C C C C C C C v C C C &.m.m.n.m.m.0.C C C C C C C C C C C C C C C C C C C C C C C C 8.n.m.n.m.m.m.m.m.n.-.S S S S S S S D S S S S S S S S S S S S c.m.n.m.n.m.n.m.m.m.n.n.c.S S S S S S S S S S S S S S S S S S S S S -.n.m.n.n.m.n.m.n.n.-.C C C C C C C C C v C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C C 0.n.m.n.n.m.n.n.m.m.n.m.m.m.m.n.n.m.n.m.n.m.m.m.m.m.n.m.n.m.m.n.m.n.m.n.m.m.n.n.m.m.n.m.m.m.n.", -"m.n.m.n.m.n.n.m.n.m.n.n.m.n.n.m.m.n.m.n.m.n.n.n.n.m.n.n.n.m.n.m.n.n.n.n.m.n.n.n.n.m.m.n.n.n.n.m.n.m.n.n.n.m.m.n.m.n.n.m.n.n.n.m.n.m.n.n.n.m.n.n.m.n.n.m.n.n.n.m.m.n.n.n.n.m.n.m.n.n.m.n.n.m.n.m.n.m.n.m.m.n.m.n.n.m.n.n.n.m.n.n.n.m.n.n.n.m.n.n.m.n.n.m.n.n.n.m.m.n.n.n.m.n.m.n.n.n.m.n.m.n.m.n.m.n.m.n.m.n.n.n.m.n.m.n.n.n.m.n.n.n.n.n.n.m.n.m.n.n.n.n.n.n.n.n.n.n.m.n.m.n.n.m.n.n.m.n.n.n.m.n.n.m.n.m.n.n.m.n.m.n.n.n.n.m.n.m.n.n.m.n.n.n.m.n.n.m.n.n.n.n.m.n.n.n.n.n.n.n.n.m.m.n.n.n.n.m.n.m.n.m.n.n.m.n.m.n.m.n.n.n.n.m.n.m.n.n.n.m.m.n.n.m.n.n.m.n.n.n.n.n.n.m.n.n.n.n.n.n.n.n.n.m.m.n.n.m.n.m.n.n.m.n.n.n.m.n.m.n.n.m.n.n.n.m.n.n.n.m.n.n.m.n.n.m.n.n.m.n.n.n.n.n.n.n.n.n.n.m.n.n.n.n.m.n.n.n.n.m.n.m.n.n.m.n.m.n.m.n.m.n.n.n.n.n.m.m.n.m.m.n.m.n.n.n.m.n.n.m.n.m.n.n.n.m.n.n.n.n.n.m.n.n.n.n.n.n.n.m.n.n.m.n.n.n.n.m.n.m.n.m.n.m.m.n.m.n.n.m.n.m.m.n.n.m.n.n.m.n.n.m.m.n.m.n.n.n.n.m.n.m.n.m.n.n.m.n.m.n.m.n.n.n.n.m.n.m.m.n.n.m.n.m.n.n.n.m.n.m.n.m.n.n.m.n.n.n.n.m.n.m.m.n.n.m.n.n.n.n.n.m.n.m.n.m.n.n.n.n.m.n.n.n.n.n.n.n.m.n.m.n.n.m.n.n.n.n.n.n.m.n.", -"n.n.n.n.n.n.n.n.m.n.n.n.n.n.m.n.n.n.m.n.n.n.n.n.m.n.n.n.n.m.n.n.n.m.n.m.m.n.n.m.m.n.n.n.n.m.n.n.n.m.n.m.n.m.n.n.m.n.n.m.n.m.n.n.n.n.n.m.n.m.n.m.n.n.m.n.m.n.n.m.m.n.n.n.n.m.n.n.n.m.m.n.m.n.n.n.n.n.n.n.m.n.n.n.n.m.m.n.m.n.n.n.n.n.n.m.n.m.n.m.n.n.m.n.m.n.n.m.m.n.n.n.n.n.n.n.m.n.m.n.n.n.m.n.n.m.n.n.n.m.n.m.n.m.n.n.n.m.n.m.n.m.n.m.m.n.n.n.m.n.n.m.m.n.n.m.n.m.n.m.n.m.n.n.m.n.m.n.m.n.n.m.n.m.n.n.n.m.n.n.m.n.n.n.n.m.n.n.m.n.n.m.n.m.n.n.m.n.n.n.m.n.n.m.n.n.n.m.n.n.n.n.m.n.n.n.n.m.n.n.n.n.n.m.n.m.n.n.m.n.n.m.n.n.m.n.m.n.m.n.n.n.n.n.m.n.n.m.n.n.n.n.m.n.n.n.n.m.n.m.m.n.m.n.n.n.n.n.m.n.m.n.m.n.n.n.n.m.n.n.m.n.n.n.n.m.n.m.n.m.m.n.n.n.m.n.n.m.n.n.n.m.n.m.n.m.n.m.n.n.n.m.n.m.m.n.n.n.n.n.m.n.n.n.m.n.n.n.m.n.n.n.n.n.m.n.n.n.n.n.n.n.n.n.n.m.n.n.m.n.n.m.m.n.m.n.m.n.m.n.m.n.n.m.n.n.n.m.m.n.n.m.m.n.n.n.n.m.n.n.n.m.n.n.n.m.n.n.m.n.n.n.n.m.n.n.m.n.n.m.n.m.n.n.m.n.n.n.n.m.n.n.n.n.n.m.n.m.n.n.m.n.n.m.n.n.m.n.n.n.n.n.n.n.n.m.n.m.n.n.m.n.n.m.m.n.n.m.n.m.n.n.n.n.m.n.n.n.m.n.n.n.n.n.n.n.m.n.n.m.n.n.n.m.m.n.m.n.m.n.n.n.n.n.n.m.n.m.n.m.n.n.", -"n.n.n.m.n.m.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.m.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.m.n.n.n.n.n.n.n.n.n.n.n.n.n.m.n.n.n.n.n.m.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.m.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.m.n.n.n.m.n.n.n.n.n.n.n.n.n.n.n.m.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.m.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.m.n.n.n.n.n.n.n.n.n.n.n.n.m.n.n.n.n.n.n.n.n.n.n.n.m.n.n.n.n.n.n.n.n.g.n.n.n.n.n.n.n.n.n.n.n.m.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.m.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.m.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.m.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.m.n.n.n.n.n.n.n.n.", -"n.n.n.n.n.n.m.n.n.n.n.n.n.n.n.n.n.n.n.n.n.m.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.m.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.m.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.m.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.m.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.m.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.m.n.n.n.n.n.m.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.", -"n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.m.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.m.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.g.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.g.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.g.n.n.n.n.n.n.g.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.", -"n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.g.n.g.n.n.n.n.g.n.n.n.n.n.n.n.n.n.n.n.g.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.g.n.n.n.n.n.g.n.n.n.n.n.n.n.g.g.n.n.g.n.n.n.n.n.n.n.g.g.n.n.g.n.n.n.n.n.n.n.n.n.n.n.n.n.n.b.n.n.n.g.n.n.g.n.n.n.n.g.n.n.g.n.n.n.n.n.n.n.n.g.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.g.g.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.g.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.g.n.g.n.n.n.n.n.n.n.n.n.n.g.n.n.n.n.n.n.n.n.g.n.g.n.n.n.n.g.n.g.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.g.n.n.n.n.n.n.n.n.n.n.n.n.n.n.g.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.g.n.n.g.n.n.g.n.n.n.n.b.n.n.n.n.n.n.n.n.n.g.n.n.n.n.n.n.n.n.g.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.g.g.n.n.n.n.n.n.g.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.g.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.g.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.g.n.n.n.n.n.n.n.n.g.n.g.n.n.n.n.g.n.n.n.n.n.g.g.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.g.g.n.n.g.n.g.n.n.n.n.n.g.n.n.g.g.n.n.n.g.n.n.g.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.n.", -"g.n.n.f.n.n.f.n.n.n.f.n.g.n.n.f.n.n.n.f.n.n.f.n.g.n.g.g.n.g.n.g.g.n.g.n.g.g.n.n.g.n.g.g.n.g.g.n.g.n.g.n.g.n.n.n.n.g.n.n.g.n.n.g.g.n.g.g.g.n.g.g.n.n.n.g.g.n.g.g.g.n.g.g.n.g.g.n.g.g.n.g.g.n.g.g.n.n.n.g.n.g.g.n.n.n.n.g.n.g.g.n.n.n.g.n.n.g.g.n.g.n.n.g.n.n.g.n.n.n.f.n.n.f.n.n.f.n.n.n.g.n.g.g.g.n.n.g.g.n.g.n.n.g.n.g.n.n.g.n.g.g.n.n.g.g.n.n.g.n.g.n.g.g.n.n.n.g.g.n.g.n.n.g.n.n.g.n.g.n.g.g.n.g.n.g.g.n.n.n.n.g.g.n.g.n.n.g.n.g.n.g.g.n.n.n.g.n.g.g.n.g.g.n.g.n.n.g.n.n.g.n.n.g.g.g.n.n.n.g.n.g.n.g.g.n.n.n.n.g.n.n.g.n.n.g.g.n.n.n.g.n.g.g.n.g.n.g.g.n.g.n.g.n.g.g.n.n.n.g.g.n.n.n.n.g.g.g.n.n.g.g.n.n.n.g.n.n.g.n.n.g.g.g.g.n.g.g.g.n.g.g.n.g.n.g.g.n.g.n.g.n.g.n.n.g.n.n.g.n.g.n.g.n.g.g.n.n.n.n.n.g.g.g.n.g.g.n.g.n.g.g.g.n.g.n.g.n.g.g.n.g.g.n.g.n.n.n.n.g.n.n.g.n.g.n.g.n.g.n.g.n.g.g.g.n.g.n.g.g.n.n.g.n.g.g.n.n.n.g.n.g.g.n.g.n.n.n.n.g.g.n.g.n.n.g.n.g.g.n.g.n.n.n.n.g.g.g.n.n.n.g.n.g.n.g.g.n.n.n.n.g.n.n.g.n.n.g.g.n.n.n.n.g.n.n.g.n.g.n.g.g.n.n.n.g.g.n.g.g.n.g.n.n.g.n.n.g.g.n.n.n.g.n.n.n.n.n.n.n.n.n.n.n.n.f.g.g.n.n.g.n.g.g.n.g.g.n.g.g.n.g.", -"n.n.g.n.g.n.g.g.n.g.n.n.n.n.g.n.n.n.g.n.n.g.n.n.g.n.n.g.n.g.n.n.n.n.g.n.n.g.n.n.g.n.g.n.g.n.n.g.b.g.g.g.g.b.g.b.g.b.g.n.g.b.g.b.g.n.g.n.g.g.n.g.g.n.g.n.g.n.g.g.g.n.g.n.g.g.n.g.n.n.n.n.g.n.n.n.g.n.n.g.g.n.g.n.n.n.g.n.n.n.g.n.g.n.n.g.n.g.n.n.g.n.n.n.g.n.n.g.g.b.g.b.g.g.g.b.g.b.g.g.g.g.b.g.b.g.b.g.g.g.b.g.g.g.g.g.g.b.f.b.n.g.n.g.n.n.g.n.g.g.g.n.n.g.n.g.n.g.n.g.n.n.g.n.n.n.g.n.n.g.n.n.g.g.n.g.n.g.n.n.g.n.n.n.g.n.n.g.g.n.g.g.n.g.n.g.n.n.g.n.n.n.g.n.n.n.g.n.g.n.g.g.n.g.n.n.n.n.g.n.b.g.g.g.g.b.g.b.g.b.g.n.g.b.g.b.n.g.n.g.n.n.g.n.g.g.g.n.g.n.g.n.g.n.n.n.g.n.n.g.n.n.n.n.g.n.n.n.n.n.g.n.n.g.g.n.n.g.g.n.n.g.g.n.g.g.n.g.n.g.n.n.g.n.g.n.g.g.n.g.g.b.g.b.g.g.g.b.g.b.g.g.g.g.b.g.b.g.b.g.g.g.b.g.g.g.g.g.g.b.f.b.n.g.n.g.n.n.g.n.n.n.g.n.g.n.g.g.n.g.g.n.g.n.n.g.n.n.n.n.g.n.n.n.n.g.n.n.g.g.g.n.n.g.n.g.n.n.g.n.n.g.n.n.g.n.g.n.g.g.n.g.n.n.n.n.g.g.n.g.n.n.n.n.g.n.n.n.g.n.n.g.b.g.g.g.g.b.g.b.g.b.g.n.g.b.g.b.n.g.n.g.n.n.g.n.g.g.n.n.g.n.n.n.g.g.n.g.n.n.g.n.n.n.g.n.n.g.n.n.g.n.n.g.g.n.n.g.n.n.n.n.n.n.n.n.n.g.n.g.g.n.g.n.n.g.n.g.n.n.g.n.", -"f.n.n.f.n.g.g.n.n.g.f.n.f.n.n.f.g.g.g.g.g.g.f.n.n.f.n.g.g.n.f.n.f.n.n.f.g.g.f.n.n.f.n.g.f.n.n.f.g.g.g.b.g.g.g.g.g.g.g.g.g.g.g.g.g.g.n.g.g.n.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.n.n.g.f.n.f.n.g.g.g.n.g.g.g.g.n.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.b.g.g.g.g.g.g.g.g.g.g.g.g.b.g.b.g.f.b.b.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.n.n.f.f.n.g.n.g.g.g.n.g.g.n.f.g.g.f.n.n.f.g.g.g.n.n.g.g.n.f.n.g.g.g.g.f.n.g.g.g.g.n.g.g.n.g.g.f.n.f.n.n.f.g.g.g.b.g.g.g.g.g.g.g.g.g.g.g.g.n.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.n.f.n.n.f.n.f.g.g.g.g.g.n.g.g.g.n.g.g.g.n.g.g.g.n.n.g.g.g.g.g.g.g.n.g.g.n.n.g.g.g.g.g.g.g.g.g.g.g.g.g.b.g.g.g.g.g.g.g.g.g.g.g.g.b.g.b.g.f.b.b.g.n.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.n.f.n.g.g.n.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.n.g.g.n.n.f.f.n.f.n.g.n.n.g.f.n.f.n.n.f.g.n.f.n.g.g.g.g.g.b.g.g.g.g.g.g.g.g.g.g.g.g.n.g.g.n.g.g.g.g.g.g.g.g.g.g.g.g.g.n.g.g.g.g.g.g.f.n.n.f.n.g.f.n.f.n.f.n.g.n.f.n.f.n.f.n.f.n.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"g.g.f.n.n.g.g.n.f.f.n.n.g.n.g.g.g.g.g.g.g.g.g.g.g.n.f.g.g.g.g.g.g.n.f.n.n.g.g.g.g.n.g.g.f.n.g.g.g.g.g.b.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.n.g.g.n.g.n.g.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.n.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.n.n.n.g.n.f.g.g.n.g.g.g.g.g.g.g.n.g.n.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.n.f.g.g.g.f.n.g.g.g.b.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.n.g.n.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.n.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.f.f.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.n.g.g.g.g.n.g.n.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.n.f.n.g.g.g.g.g.g.f.n.f.g.g.g.g.g.g.g.g.f.g.g.g.g.g.g.g.b.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.n.f.g.g.n.n.g.n.g.g.g.n.g.f.n.n.f.n.f.n.n.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.g.", -"f.n.f.f.f.g.f.f.f.n.f.f.f.f.g.f.f.g.g.g.g.g.f.g.f.g.f.g.g.f.g.f.f.f.g.f.g.f.g.f.f.f.f.n.f.f.n.f.g.f.g.f.f.g.g.g.g.g.g.f.g.g.g.f.g.g.g.f.g.g.g.g.g.f.g.g.g.g.g.g.g.g.g.g.g.f.g.g.f.g.f.f.f.f.f.n.f.g.g.g.f.g.g.f.g.g.g.f.g.g.g.f.g.g.g.g.g.g.f.g.g.g.f.g.f.f.g.f.b.f.g.f.g.g.g.g.g.g.g.g.f.g.g.f.g.f.g.g.g.g.g.g.g.g.f.g.f.g.b.f.g.g.g.g.g.g.f.g.f.g.g.g.g.g.g.g.g.g.g.g.f.g.g.g.n.f.f.f.f.g.f.n.f.f.g.g.g.f.g.f.f.f.f.g.f.n.f.f.g.g.g.f.f.g.f.g.f.n.f.f.n.f.g.f.g.f.g.g.g.f.g.g.f.g.f.n.f.n.f.f.g.f.g.f.f.g.g.g.g.g.g.f.g.g.g.f.g.g.f.g.f.g.g.g.g.g.f.g.g.g.g.g.g.g.g.f.g.g.g.g.n.f.f.n.g.f.f.g.g.f.g.f.g.g.f.g.g.g.f.g.g.g.f.g.g.f.g.g.g.f.g.g.g.g.g.f.f.g.f.f.b.f.g.f.g.g.g.g.g.g.g.g.f.g.g.f.g.f.g.g.g.g.g.g.g.g.f.g.f.g.b.f.g.g.f.g.g.g.g.g.g.g.f.g.g.g.f.g.g.g.g.g.g.g.g.g.f.g.f.g.f.f.f.g.f.g.g.g.f.g.g.g.g.g.g.g.f.g.g.g.g.f.g.g.f.g.g.f.f.f.n.f.g.f.g.g.g.f.n.f.g.f.g.g.f.g.f.n.f.n.f.f.g.f.g.f.f.g.g.g.g.g.g.f.g.g.g.f.g.f.g.f.f.n.f.f.f.g.g.f.g.g.g.f.g.g.f.g.g.g.g.g.n.f.f.f.f.n.f.f.f.f.f.n.f.f.f.f.n.f.f.f.n.f.f.f.g.g.g.g.g.f.g.f.g.g.g.g.f.g.g.g.", -"f.n.g.f.g.g.g.g.f.g.g.f.g.f.n.f.g.g.g.g.f.g.g.g.f.n.g.f.g.f.g.g.g.f.g.f.g.f.g.g.g.f.g.g.n.n.f.f.f.f.b.g.f.b.f.b.f.g.g.g.f.g.g.g.g.g.f.g.g.g.g.g.g.g.f.g.g.g.g.g.g.g.g.g.g.g.f.g.g.f.g.g.f.f.f.n.g.g.f.n.g.g.g.g.f.g.g.g.g.f.g.g.g.f.g.g.g.f.g.g.g.f.f.g.n.g.f.n.f.b.f.g.f.f.f.f.f.g.g.g.f.g.g.g.g.g.g.g.g.g.f.g.g.g.f.g.f.f.f.f.g.f.f.g.f.g.g.f.g.g.g.g.f.g.g.g.f.g.g.g.g.g.f.g.f.n.f.f.n.f.f.f.g.f.g.f.g.g.g.g.g.g.f.g.n.g.f.n.g.g.g.g.g.g.g.f.f.n.g.f.g.f.g.g.f.g.g.f.g.f.g.f.f.g.g.f.f.f.n.f.f.f.b.g.f.b.f.b.f.g.g.g.f.g.g.g.g.g.g.g.g.g.f.g.g.f.g.g.g.g.f.g.g.g.f.g.g.g.g.g.f.n.f.f.n.f.n.f.f.f.g.f.g.f.g.g.g.g.g.g.g.g.f.g.g.g.g.g.g.g.g.g.g.f.g.g.f.f.g.f.f.b.f.g.f.f.f.f.f.g.g.g.f.g.g.g.g.g.g.g.g.g.f.g.g.g.f.g.f.f.f.f.g.g.g.g.f.g.g.g.g.f.g.f.g.g.f.g.g.g.f.g.g.g.g.g.f.g.f.f.g.g.n.f.g.g.g.f.g.g.g.f.f.g.g.g.g.g.g.f.g.g.f.g.g.g.g.g.n.f.f.g.f.n.g.f.f.n.g.f.g.f.g.f.g.g.f.g.g.f.n.f.f.f.b.g.f.b.f.b.f.g.g.g.f.g.g.g.f.g.f.g.f.f.n.f.g.g.g.g.g.g.g.g.g.g.g.g.f.g.g.g.n.f.f.n.n.f.f.f.n.n.f.g.f.n.f.n.f.n.f.n.f.f.n.n.g.f.g.f.g.g.g.g.f.g.g.g.g.g.g.f.", -"g.f.f.g.g.f.f.g.g.f.g.g.f.g.g.f.f.g.f.f.g.g.f.f.f.f.f.g.g.g.f.g.f.g.g.f.g.g.f.g.g.g.f.g.f.f.g.g.f.b.f.f.f.f.f.f.g.f.g.f.g.f.g.f.f.f.g.g.f.f.g.f.g.f.g.f.f.f.f.g.f.f.f.g.f.g.g.f.f.n.g.f.n.n.f.f.g.f.f.f.f.g.f.g.g.f.f.f.f.f.g.f.f.g.f.g.f.g.f.g.f.g.g.g.f.f.f.f.g.f.f.g.f.f.b.f.g.f.g.f.g.f.g.f.f.f.g.f.g.f.g.f.f.g.g.f.b.f.b.f.f.g.g.g.g.f.f.g.f.g.f.f.g.g.f.g.g.g.f.g.f.g.f.g.f.n.f.n.f.n.f.f.g.g.f.g.g.f.f.g.f.f.g.g.f.f.f.f.f.g.f.g.f.g.f.f.f.f.f.g.g.g.f.g.f.g.g.g.g.g.g.f.g.g.f.g.g.g.g.f.f.b.f.f.f.f.f.f.g.f.g.f.g.f.g.f.f.g.f.f.g.f.f.g.g.g.f.g.f.f.g.g.f.f.g.g.f.f.g.f.g.g.f.g.f.f.f.f.g.g.g.g.g.g.f.g.f.f.g.f.f.f.g.f.f.f.f.g.f.f.f.g.g.g.f.g.g.g.g.g.g.f.f.g.f.f.b.f.g.f.g.f.g.f.g.f.f.f.g.f.g.f.g.f.f.g.g.f.b.f.b.f.f.g.f.f.g.f.f.f.f.n.f.n.f.f.g.g.f.f.g.g.f.f.g.f.g.g.g.g.f.f.f.f.g.f.g.g.g.f.g.g.g.g.f.g.f.g.f.g.g.f.g.f.f.f.f.f.g.f.g.g.f.f.f.g.f.f.g.g.f.g.f.g.f.f.g.g.f.g.n.f.f.b.f.f.f.f.f.f.g.f.g.f.g.f.g.f.g.f.g.g.n.f.f.g.f.g.f.g.f.g.f.f.f.g.f.f.g.f.f.f.f.n.g.f.f.f.n.f.f.f.g.f.g.f.g.f.f.f.f.f.n.f.f.f.g.g.f.g.g.f.f.g.g.g.f.g.f.g.f.g.", -"f.f.f.g.f.f.f.f.f.f.g.f.f.f.f.f.g.f.f.f.f.f.f.f.f.f.f.g.f.f.f.f.f.f.f.g.f.f.f.f.f.f.f.f.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.f.f.f.g.f.f.g.f.f.f.f.f.f.g.f.f.f.g.f.f.f.g.f.f.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.f.f.f.f.g.f.f.f.f.f.f.g.f.f.f.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.b.f.f.f.f.f.g.f.f.f.g.f.f.f.f.f.g.f.f.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.f.f.f.f.f.f.f.f.f.f.f.f.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.f.f.f.f.f.f.f.f.g.f.f.f.f.f.g.f.f.f.f.f.g.f.f.g.f.f.g.f.f.f.f.f.f.f.f.f.f.f.f.f.g.f.f.f.g.f.f.f.g.f.g.f.f.f.f.f.g.f.f.f.f.f.f.g.f.f.f.f.f.f.f.f.f.f.f.f.f.g.f.f.f.f.f.f.g.f.f.f.f.f.f.f.f.f.g.f.f.f.g.f.f.f.f.f.f.g.f.f.f.f.f.f.f.f.b.f.f.f.f.f.g.f.f.f.g.f.f.f.f.f.g.f.f.g.f.f.f.f.f.f.f.f.f.f.g.f.f.f.g.f.f.f.g.f.f.f.f.f.f.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.f.f.f.g.f.f.f.g.f.f.f.f.g.f.f.f.f.g.f.g.f.f.f.f.f.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.f.f.f.g.f.f.f.f.f.f.f.f.f.f.f.g.f.f.f.f.f.f.f.g.f.f.f.g.f.f.f.f.f.f.f.f.g.f.f.f.f.f.n.f.f.f.f.f.f.g.f.g.f.f.f.g.f.f.f.f.f.f.f.f.f.g.f.f.", -"f.f.f.f.f.f.g.f.f.f.f.f.f.g.f.f.f.f.f.f.f.f.f.f.f.g.f.f.f.f.f.g.f.g.f.f.f.f.f.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.f.f.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.f.f.g.f.f.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.f.f.g.f.f.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.f.f.g.f.g.f.f.g.f.f.g.f.f.f.f.f.f.f.f.f.f.g.f.f.f.f.f.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.f.f.f.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.f.f.f.f.f.f.f.g.f.f.f.f.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.f.f.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.f.f.f.f.f.f.f.f.", -"f.f.f.f.f.f.f.f.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.", -"f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d.f.f.f.f.f.f.f.f.f.f.f.c.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.g.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.c.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.c.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.", -"f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d.f.f.f.f.f.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d.f.f.f.f.f.f.f.f.f.f.f.f.f.d.f.c.f.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d.f.f.f.f.f.f.f.f.f.f.d.f.f.d.f.f.f.f.f.f.f.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d.f.f.f.d.f.f.f.f.f.f.f.f.f.f.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d.f.f.f.f.f.f.f.f.f.f.f.f.f.d.f.c.f.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d.f.f.f.f.f.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.d.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.f.", -"d.f.d.f.f.d.f.f.f.d.f.d.f.f.d.f.f.d.f.f.f.d.f.d.f.f.f.f.f.d.f.d.f.f.f.f.d.f.d.f.f.d.f.f.d.f.d.f.f.d.f.d.d.f.d.f.f.d.c.d.f.d.d.f.f.f.d.f.f.d.f.f.f.d.f.d.f.d.f.f.d.f.f.f.d.f.d.f.f.d.f.d.f.f.f.f.f.d.f.d.f.f.d.f.d.f.f.f.f.d.f.f.f.f.f.f.f.d.d.f.f.d.f.f.d.f.d.f.d.f.f.d.f.d.f.f.f.f.f.f.d.f.d.f.f.d.f.f.f.d.f.f.d.f.f.f.d.f.d.f.d.f.f.d.d.f.d.f.f.d.f.d.f.f.d.f.f.d.f.f.f.d.f.d.f.f.f.f.f.f.d.f.f.d.f.f.f.d.d.f.f.d.f.d.d.f.f.d.f.f.d.f.d.f.d.f.f.d.f.d.f.f.f.f.d.f.d.f.f.d.f.d.d.f.f.d.f.f.f.d.f.d.f.d.d.f.d.f.f.d.c.d.f.d.d.f.d.f.f.d.f.d.f.f.d.f.d.f.f.f.d.f.d.f.f.f.d.f.d.f.d.f.f.d.f.f.d.f.f.f.f.f.f.d.f.f.d.f.f.d.f.d.f.f.f.f.f.f.d.f.d.f.f.d.f.f.d.f.d.f.d.f.f.d.f.d.f.f.f.f.f.f.d.f.d.f.f.d.f.f.f.d.f.f.d.f.f.f.d.f.d.f.d.f.f.d.f.d.f.f.f.d.f.d.f.d.f.d.d.f.f.f.f.d.f.f.f.d.f.d.f.d.f.d.d.f.d.f.f.d.d.f.f.f.f.d.d.f.d.f.f.d.f.f.d.f.f.d.d.f.f.f.f.d.f.d.f.f.f.f.d.f.d.f.f.d.f.d.d.f.f.d.f.d.f.d.d.f.d.f.f.d.c.d.f.d.d.f.d.f.f.d.d.f.d.f.f.f.f.d.f.f.d.f.d.f.f.f.d.f.d.f.d.f.f.d.f.f.d.f.f.f.d.f.d.f.f.d.f.d.f.f.d.f.d.f.d.f.d.f.f.d.f.d.f.f.f.d.f.d.f.d.", -"f.f.d.f.d.f.f.d.d.f.f.d.d.f.d.f.d.f.f.d.d.f.f.d.d.f.d.f.f.d.f.f.d.f.f.d.f.f.d.f.f.d.f.f.f.f.d.f.f.d.f.f.f.f.d.f.f.d.f.f.f.f.d.f.d.f.f.d.f.f.f.d.d.f.f.f.d.f.f.d.f.d.d.f.f.d.d.f.d.f.d.f.d.f.d.f.d.f.f.d.d.f.f.d.d.f.f.d.d.f.f.d.d.f.d.f.f.d.f.f.f.d.d.f.f.f.d.f.f.d.f.f.d.f.f.d.d.f.f.d.f.d.f.f.f.f.d.f.d.d.f.d.f.d.f.f.f.d.d.f.f.d.d.f.f.d.d.f.d.f.d.f.d.f.d.f.d.f.f.f.d.f.f.f.d.f.d.f.d.f.d.f.f.d.f.f.f.d.f.f.f.d.d.f.f.f.d.f.f.f.d.f.f.d.d.f.f.d.f.f.d.f.d.d.f.f.d.f.d.f.f.f.f.f.f.d.d.d.f.f.f.d.f.f.f.f.d.f.f.d.f.f.f.f.d.f.f.d.f.d.f.d.f.d.f.f.f.d.f.d.d.f.f.f.f.d.f.f.f.d.f.d.f.d.f.d.f.d.d.f.f.d.d.f.f.d.f.d.f.f.d.f.f.d.d.f.f.d.f.f.d.f.f.d.f.f.f.f.d.f.f.d.f.f.d.f.f.d.d.f.f.d.f.d.f.f.f.f.d.f.d.d.f.d.f.d.f.f.f.d.d.f.f.d.f.d.f.d.f.d.d.f.f.f.d.f.f.f.f.f.f.d.f.f.f.d.d.f.f.f.d.f.f.f.f.f.d.f.d.f.d.d.d.f.f.f.f.f.f.d.d.f.f.d.d.f.f.d.f.f.d.f.f.d.f.f.d.f.f.d.f.d.f.f.f.f.d.f.f.d.f.f.f.d.f.f.f.f.d.f.f.d.f.f.f.f.d.f.f.d.d.f.f.d.d.f.f.d.d.f.f.d.d.f.f.d.d.f.f.d.d.f.f.d.d.f.f.d.d.f.f.d.d.f.f.d.f.f.d.f.d.d.f.d.f.f.f.f.d.f.d.f.f.f.d.f.f.d.d.d.f.d.", -"d.f.f.d.f.d.d.f.f.f.d.f.f.d.d.f.f.f.d.f.f.f.d.f.f.d.d.f.f.d.d.f.f.d.d.f.d.f.f.d.f.f.d.f.f.d.d.f.f.f.d.f.d.d.f.f.d.f.f.d.d.f.f.d.f.d.d.f.f.d.d.f.f.d.d.f.f.d.d.f.d.f.f.f.d.f.f.f.d.f.f.f.d.f.f.f.f.d.f.f.f.d.d.f.f.d.d.f.f.f.d.f.f.d.d.f.d.f.f.d.f.f.f.f.d.f.d.f.f.d.d.f.f.d.f.f.f.d.d.f.d.f.f.d.d.d.f.f.f.f.f.f.d.f.f.d.f.f.f.d.d.f.f.d.d.f.f.f.d.f.f.f.d.f.f.f.d.f.d.f.d.f.d.f.d.f.f.f.d.f.f.f.d.f.f.d.f.d.f.d.d.f.f.f.d.f.f.d.d.f.f.d.d.f.f.f.d.f.f.d.f.f.f.f.d.f.f.d.f.f.d.f.d.d.f.f.f.f.f.d.f.f.d.f.d.d.f.f.d.f.f.d.d.f.f.d.f.f.f.d.f.f.f.d.f.d.f.d.f.f.f.d.f.d.d.f.f.d.f.d.f.f.f.d.f.f.f.d.f.d.f.f.f.d.d.f.f.d.d.f.f.d.f.f.f.d.d.f.d.f.f.d.f.f.d.f.f.d.d.f.f.d.d.f.f.d.f.f.f.d.d.f.d.f.f.d.d.d.f.f.f.f.f.f.d.f.f.d.f.f.f.d.f.f.f.d.f.f.f.d.d.f.d.f.d.f.d.f.f.d.d.f.f.d.d.f.d.f.d.f.d.f.d.f.f.d.f.d.f.f.f.f.f.f.d.d.f.d.d.f.f.f.d.f.f.f.d.f.f.d.d.f.f.d.d.f.f.d.d.f.d.f.f.d.d.d.f.f.d.f.f.d.f.f.d.f.d.d.f.f.d.f.f.d.d.f.f.d.f.f.f.f.f.f.f.f.d.f.f.f.d.f.f.f.f.f.f.f.f.f.f.f.d.f.f.d.d.f.f.d.d.f.f.f.d.f.f.d.f.f.f.f.f.f.d.d.d.f.f.d.f.d.d.f.f.d.f.f.f.f.f.f.", -"f.d.d.f.f.f.f.d.d.f.d.f.d.f.f.d.f.d.f.f.d.f.d.f.f.d.f.d.d.f.f.d.d.f.f.d.d.f.d.f.d.d.d.d.f.d.d.f.d.d.f.d.d.f.f.d.d.f.d.d.d.f.c.d.d.d.f.f.d.d.f.f.d.d.f.f.d.d.f.f.f.f.d.d.f.f.d.d.f.f.d.d.f.f.d.d.d.f.f.d.d.f.f.d.f.f.f.d.d.f.d.f.d.f.f.d.d.f.d.f.d.d.d.d.f.d.d.f.d.f.f.d.d.f.f.d.d.f.f.d.d.f.f.d.f.d.f.d.d.f.d.d.d.f.d.f.d.d.c.d.f.f.d.f.f.f.d.d.f.f.d.d.f.f.d.d.d.f.d.d.d.d.f.d.f.f.d.d.f.f.d.d.d.f.d.f.d.f.f.d.f.d.f.d.d.d.d.f.f.d.d.f.f.d.f.d.f.d.d.f.f.d.d.f.f.d.d.f.d.d.f.d.d.f.f.d.d.f.d.d.d.d.f.d.d.f.f.d.d.f.d.d.d.f.c.d.d.d.f.f.d.d.f.f.d.d.d.f.d.d.d.f.d.d.f.f.d.d.d.f.d.f.d.f.d.f.d.f.d.f.f.d.d.f.f.d.d.f.f.d.d.f.f.d.d.f.f.d.d.f.d.f.d.d.d.d.f.d.d.f.d.f.f.d.d.f.f.d.d.f.f.d.d.f.f.d.f.d.f.d.d.f.d.d.d.f.d.f.d.d.c.d.d.d.f.f.d.d.f.f.d.d.f.d.d.d.f.d.d.d.f.f.d.d.f.f.d.d.f.d.d.d.f.d.f.d.d.f.f.d.d.f.d.d.d.f.f.d.f.d.f.d.d.f.d.f.d.f.f.d.d.f.d.f.f.d.d.f.f.d.d.f.f.d.d.f.f.d.d.d.d.d.d.d.f.d.d.f.f.d.d.f.d.d.d.f.c.d.d.f.d.d.d.f.d.d.f.f.d.d.f.f.d.d.d.d.d.d.d.f.d.d.f.f.d.f.f.f.d.f.f.d.f.d.f.f.d.f.f.d.d.f.d.d.d.f.f.d.d.f.d.f.f.d.d.f.f.d.d.f.d.d.", -"d.f.d.d.d.d.d.f.d.d.d.f.d.d.f.d.d.d.d.d.d.d.f.d.d.d.f.d.f.d.d.f.d.d.f.d.d.f.d.d.f.d.f.d.d.f.d.d.f.d.d.d.f.d.d.d.f.d.d.f.d.d.d.d.d.f.d.d.d.f.d.d.f.d.d.d.f.d.d.d.d.d.f.d.d.d.f.d.d.d.d.f.d.d.d.f.d.d.d.f.d.d.f.d.d.d.d.f.d.d.d.f.d.d.f.d.d.f.d.d.f.d.f.d.d.f.d.d.f.d.d.f.d.d.d.f.d.d.f.d.f.d.d.d.f.d.d.d.f.d.d.f.d.f.d.d.f.d.d.d.d.d.f.d.d.d.f.d.d.d.d.f.d.d.d.f.f.d.d.f.f.d.d.f.d.d.d.f.d.d.d.f.f.d.d.d.d.f.d.d.f.d.d.d.f.f.d.d.d.f.d.d.f.d.d.d.d.f.d.d.d.d.f.d.d.f.d.d.f.d.d.f.d.d.d.d.f.d.d.f.f.d.d.d.f.d.d.d.f.d.d.f.d.d.d.d.d.f.d.d.d.f.d.d.d.f.f.d.d.f.f.d.d.f.d.d.d.f.f.d.d.d.f.d.d.d.f.d.d.d.d.f.d.d.d.f.f.d.d.f.d.d.d.f.d.d.f.d.d.f.d.d.d.f.f.d.d.f.d.d.f.d.d.f.d.d.d.f.d.d.f.d.f.d.d.d.f.d.d.d.f.d.d.f.d.f.d.d.f.d.d.d.d.f.d.d.d.f.d.d.f.d.d.f.f.d.d.f.d.f.d.d.d.f.d.d.f.d.d.f.f.d.d.f.d.f.d.d.d.d.f.d.d.f.d.f.d.d.f.d.d.d.f.d.d.d.f.d.d.f.d.d.f.d.d.f.d.d.f.d.f.d.d.d.f.d.d.d.f.f.d.f.f.d.d.d.f.d.d.d.f.d.d.f.d.d.d.d.d.d.f.d.d.d.f.d.d.d.f.d.d.d.f.d.d.f.f.d.d.d.f.d.d.d.f.d.d.d.f.d.f.d.d.d.d.d.d.d.d.d.f.d.d.f.f.d.d.f.d.d.f.d.d.f.d.d.d.f.d.d.d.f.", -"d.d.f.d.d.d.d.f.d.d.d.d.f.d.d.d.d.d.d.d.d.d.f.d.d.f.f.d.d.f.d.d.c.s.d.d.d.d.d.d.d.d.d.d.d.c.s.d.d.d.d.d.d.c.d.d.d.d.d.d.d.c.d.d.d.d.d.d.c.d.d.d.c.d.d.d.c.d.d.d.d.d.d.d.d.c.d.d.d.d.d.s.d.d.d.s.d.f.f.d.d.f.d.d.d.d.d.d.d.d.f.d.d.d.d.f.d.d.d.d.d.d.d.d.d.d.d.d.c.s.d.d.d.d.d.d.d.d.d.d.d.c.s.d.d.d.d.d.d.c.d.d.d.d.d.d.d.c.d.d.d.d.d.d.c.d.d.d.c.d.d.d.c.d.d.d.d.d.d.d.d.c.d.d.d.d.d.s.d.d.d.s.d.d.d.d.d.d.d.d.d.d.f.d.d.f.f.d.d.f.d.d.d.d.d.d.d.d.d.f.d.d.d.d.c.s.d.d.d.d.d.d.d.d.d.d.d.c.s.d.d.d.d.d.d.c.d.d.d.d.d.d.d.c.d.d.d.d.d.d.c.d.d.d.c.d.d.d.c.d.d.d.d.d.d.d.d.c.d.d.d.d.d.s.d.d.d.s.f.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.f.d.d.d.f.d.d.d.d.d.d.d.d.d.c.s.d.d.d.d.d.d.d.d.d.d.d.c.s.d.d.d.d.d.d.c.d.d.d.d.d.d.d.c.d.d.d.d.d.d.c.d.d.d.c.d.d.d.c.d.d.d.d.d.d.d.d.c.d.d.d.d.d.s.d.d.d.s.d.d.d.f.d.d.f.d.d.d.d.f.d.d.f.d.d.d.d.d.d.d.d.d.d.d.f.d.d.f.d.d.c.s.d.d.d.d.d.d.d.d.d.d.d.c.s.d.d.d.d.d.d.c.d.d.d.d.d.d.d.c.d.d.d.d.d.d.c.d.d.d.c.d.d.d.c.d.d.d.d.d.d.d.d.c.d.d.d.d.d.s.d.d.d.s.d.d.d.d.d.d.d.d.d.d.f.d.d.d.d.d.d.f.d.d.d.d.f.d.d.d.d.f.d.d.f.d.", -"d.d.d.d.d.d.d.d.d.d.d.d.d.d.f.d.d.f.f.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.c.d.d.d.c.d.d.d.d.d.d.c.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.s.d.d.d.c.d.d.d.d.d.d.d.d.d.d.c.d.d.d.h.d.d.d.d.d.d.d.d.d.d.d.f.d.d.d.d.d.d.d.d.d.d.f.d.d.d.f.d.d.f.f.d.d.d.d.d.d.c.d.d.d.c.d.d.d.d.d.d.c.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.s.d.d.d.c.d.d.d.d.d.d.d.d.d.d.c.d.d.d.h.d.d.d.f.f.d.d.f.d.d.d.d.d.d.d.d.d.d.d.d.d.d.f.d.d.f.d.d.d.d.d.f.d.d.d.d.d.c.d.d.d.c.d.d.d.d.d.d.c.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.s.d.d.d.c.d.d.d.d.d.d.d.d.d.d.c.d.d.d.h.d.d.f.d.d.f.d.d.d.d.f.d.d.d.f.d.d.d.d.d.d.d.d.d.d.d.d.f.f.d.d.f.d.d.d.d.d.c.d.d.d.c.d.d.d.d.d.d.c.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.s.d.d.d.c.d.d.d.d.d.d.d.d.d.d.c.d.d.d.h.d.f.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.f.d.d.d.f.d.d.d.d.d.d.d.d.d.d.d.d.d.c.d.d.d.c.d.d.d.d.d.d.c.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.s.d.d.d.c.d.d.d.d.d.d.d.d.d.d.c.d.d.d.h.d.d.d.f.f.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.f.d.d.d.d.d.d.", -"d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.f.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.f.d.d.d.d.d.f.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.", -"d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.d.d.d.", -"d.d.s.d.d.d.d.d.s.d.d.d.d.d.s.d.d.d.d.d.s.d.s.d.d.d.s.d.d.d.d.d.d.d.d.d.d.d.s.s.d.d.d.d.d.d.d.s.d.d.d.d.d.d.s.d.d.d.d.d.s.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.s.d.d.d.s.d.d.d.d.d.d.s.d.d.d.d.d.d.d.s.s.d.d.d.d.d.d.d.s.d.d.d.d.d.d.s.d.d.d.d.d.s.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.s.s.d.d.s.d.d.d.d.s.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.d.d.s.s.d.d.d.d.d.d.d.s.d.d.d.d.d.d.s.d.d.d.d.d.s.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.s.d.d.d.d.d.s.d.d.d.d.d.d.s.s.d.d.d.d.d.d.d.s.d.d.d.d.d.d.s.d.d.d.d.d.s.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.s.d.d.d.d.d.s.d.d.d.d.s.d.d.d.d.s.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.s.d.d.d.d.d.d.d.s.d.d.d.d.d.d.s.d.d.d.d.d.s.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.s.d.d.d.d.", -"d.d.d.d.d.d.d.s.d.d.d.d.s.d.d.d.s.d.d.d.d.d.d.d.s.d.d.d.d.d.s.d.d.d.d.s.d.d.d.s.d.d.s.d.d.s.d.d.d.s.d.d.d.d.d.d.s.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.s.s.d.d.d.s.d.d.d.s.d.d.s.d.s.s.d.d.d.d.d.s.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.d.s.d.d.d.s.d.d.s.d.d.s.d.d.d.s.d.d.d.d.d.d.s.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.s.s.d.d.d.s.d.d.d.s.d.d.s.d.s.s.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.s.d.d.d.d.d.d.s.d.d.d.s.d.d.d.s.d.d.s.d.d.s.d.d.d.s.d.d.d.d.d.d.s.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.s.s.d.d.d.s.d.d.d.s.d.d.s.d.s.d.d.s.d.d.d.d.d.d.d.s.d.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.s.d.d.s.d.d.s.d.d.d.s.d.d.d.d.d.d.s.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.s.s.d.d.d.s.d.d.d.s.d.d.s.d.s.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.s.d.d.d.s.d.d.s.d.d.s.d.d.d.s.d.d.d.d.d.d.s.d.d.s.d.d.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.s.s.d.d.d.s.d.d.d.s.d.d.s.d.s.d.d.d.d.d.d.d.d.d.d.d.s.d.s.d.d.d.d.d.d.d.d.d.d.s.d.d.d.d.d.d.s.", -"s.d.d.d.s.d.d.s.d.d.d.d.d.d.d.d.d.d.s.s.d.s.d.d.d.d.d.d.d.d.d.d.s.d.d.s.s.d.s.h.s.d.d.d.d.d.s.d.d.s.d.s.s.d.s.d.d.d.d.d.d.s.d.d.d.s.s.d.d.s.s.d.d.s.s.d.d.s.d.s.d.d.d.d.d.s.s.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.d.s.d.d.s.s.d.d.d.s.s.d.d.s.s.d.d.s.d.d.s.d.s.s.d.s.d.d.s.s.d.s.h.s.d.d.d.d.d.s.d.d.s.d.s.s.d.s.d.d.d.d.d.d.s.d.d.d.s.s.d.d.s.s.d.d.s.s.d.d.s.d.s.d.d.d.d.d.s.s.d.d.d.d.d.d.d.s.d.d.s.d.s.s.d.s.d.d.d.d.d.d.d.d.d.d.d.s.d.s.d.d.d.d.d.d.d.s.d.d.s.s.d.d.s.s.d.s.h.s.d.d.d.d.d.s.d.d.s.d.s.s.d.s.d.d.d.d.d.d.s.d.d.d.s.s.d.d.s.s.d.d.s.s.d.d.s.d.s.d.d.d.d.d.s.s.d.d.d.d.d.d.d.s.d.s.d.s.d.d.d.s.d.d.s.s.d.s.d.d.d.d.s.d.d.s.s.d.d.d.s.d.s.s.d.d.s.s.d.d.s.s.d.s.h.s.d.d.d.d.d.s.d.d.s.d.s.s.d.s.d.d.d.d.d.d.s.d.d.d.s.s.d.d.s.s.d.d.s.s.d.d.s.d.s.d.d.d.d.d.s.s.d.d.d.d.d.d.d.s.d.d.d.d.d.d.d.d.s.d.d.d.d.s.d.d.d.s.s.d.d.s.s.d.d.s.d.d.d.d.d.s.d.s.d.d.s.s.d.s.h.s.d.d.d.d.d.s.d.d.s.d.s.s.d.s.d.d.d.d.d.d.s.d.d.d.s.s.d.d.s.s.d.d.s.s.d.d.s.d.s.d.d.d.d.d.s.s.d.d.d.d.d.d.d.s.d.d.s.d.s.s.d.d.s.d.s.s.d.s.d.s.d.d.d.s.d.d.s.d.d.d.d.d.d.d.d.d.d.", -"s.d.s.d.d.s.d.d.s.d.s.s.d.s.s.d.s.d.d.d.s.d.s.d.d.s.s.d.s.s.d.s.d.s.d.d.d.s.d.d.d.s.s.d.s.d.d.s.s.d.d.s.d.d.s.d.s.d.s.s.d.d.s.d.d.d.s.d.s.d.d.d.s.d.d.s.d.s.d.d.s.s.d.s.d.s.d.d.s.s.d.s.d.s.d.d.d.s.s.d.s.s.d.s.d.s.d.d.d.s.s.d.d.d.s.d.d.d.s.d.s.d.d.s.d.d.s.d.d.s.d.d.d.s.d.d.d.s.s.d.s.d.d.s.s.d.d.s.d.d.s.d.s.d.s.s.d.d.s.d.d.d.s.d.s.d.d.d.s.d.d.s.d.s.d.d.s.s.d.s.d.s.d.d.s.s.d.s.d.s.d.d.d.d.d.s.d.d.s.d.s.d.s.s.d.s.s.d.s.d.d.s.d.s.s.d.d.s.s.d.d.s.d.d.d.s.d.d.d.s.d.d.d.s.s.d.s.d.d.s.s.d.d.s.d.d.s.d.s.d.s.s.d.d.s.d.d.d.s.d.s.d.d.d.s.d.d.s.d.s.d.d.s.s.d.s.d.s.d.d.s.s.d.s.d.s.d.d.d.s.d.d.s.s.d.s.d.s.d.d.s.d.s.d.s.d.d.s.d.d.d.s.s.d.d.s.d.d.s.d.d.s.d.d.d.s.d.d.d.s.s.d.s.d.d.s.s.d.d.s.d.d.s.d.s.d.s.s.d.d.s.d.d.d.s.d.s.d.d.d.s.d.d.s.d.s.d.d.s.s.d.s.d.s.d.d.s.s.d.s.d.s.d.d.d.s.s.d.s.d.s.d.s.d.s.s.d.s.s.d.d.d.s.d.d.d.s.d.s.d.s.d.s.s.d.s.d.s.d.d.d.s.d.d.d.s.s.d.s.d.d.s.s.d.d.s.d.d.s.d.s.d.s.s.d.d.s.d.d.d.s.d.s.d.d.d.s.d.d.s.d.s.d.d.s.s.d.s.d.s.d.d.s.s.d.s.d.s.d.d.s.d.d.s.d.d.s.d.d.s.d.d.s.d.d.d.s.d.d.s.s.d.d.s.d.s.s.d.s.s.d.s.", -"s.s.d.s.d.s.s.d.s.d.s.s.d.s.d.s.d.s.s.d.s.d.d.s.s.d.d.s.d.s.s.d.s.s.d.s.d.s.s.s.d.s.s.d.s.s.s.s.d.d.s.d.s.d.s.s.d.s.d.s.d.s.d.d.s.s.d.s.s.d.s.d.s.d.s.s.d.s.d.s.d.s.s.d.s.s.d.s.s.h.s.s.s.d.d.s.s.s.d.s.d.s.d.s.s.d.s.d.s.s.d.s.s.d.s.d.d.s.d.s.s.d.s.d.s.s.d.s.s.s.d.s.d.s.s.s.d.s.s.d.s.s.s.s.d.d.s.d.s.d.s.s.d.s.d.s.d.s.d.d.s.s.d.s.s.d.s.d.s.d.s.s.d.s.d.s.d.s.s.d.s.s.d.s.s.h.s.s.s.d.d.s.s.s.s.d.s.d.s.d.s.s.d.s.d.s.d.d.d.s.s.d.d.s.s.d.s.s.d.s.s.d.s.s.s.s.d.s.d.s.s.s.d.s.s.d.s.s.s.s.d.d.s.d.s.d.s.s.d.s.d.s.d.s.d.d.s.s.d.s.s.d.s.d.s.d.s.s.d.s.d.s.d.s.s.d.s.s.d.s.s.h.s.s.s.d.d.s.s.d.s.s.s.s.d.s.d.d.s.d.s.s.d.s.s.d.d.s.d.s.s.d.d.s.s.d.s.d.s.s.s.s.d.s.d.s.s.s.d.s.s.d.s.s.s.s.d.d.s.d.s.d.s.s.d.s.d.s.d.s.d.d.s.s.d.s.s.d.s.d.s.d.s.s.d.s.d.s.d.s.s.d.s.s.d.s.s.h.s.s.s.d.d.s.s.s.d.s.d.s.s.d.s.d.s.s.s.s.d.d.d.s.s.d.s.d.d.s.s.d.d.s.d.s.s.d.s.s.d.s.d.s.s.s.d.s.s.d.s.s.s.s.d.d.s.d.s.d.s.s.d.s.d.s.d.s.d.d.s.s.d.s.s.d.s.d.s.d.s.s.d.s.d.s.d.s.s.d.s.s.d.s.s.h.s.s.s.d.d.s.d.d.s.d.s.d.s.s.d.s.s.d.s.d.s.s.d.s.d.s.s.d.s.d.s.s.d.s.s.d.s.d.", -"d.s.s.d.s.s.d.s.d.s.s.d.s.d.s.d.s.s.d.s.d.s.s.d.s.s.s.d.s.d.d.s.d.s.s.d.d.s.d.s.s.d.s.s.s.h.s.s.s.s.d.s.d.s.d.s.s.d.s.d.s.d.s.s.s.d.s.d.d.s.d.s.d.s.d.s.s.d.s.d.d.s.d.s.d.s.s.d.s.s.s.s.s.s.s.d.d.s.s.d.s.d.s.d.d.s.s.s.d.s.s.d.d.s.d.s.s.d.s.s.d.s.d.s.s.d.s.d.d.s.s.d.d.s.d.s.s.d.s.s.s.h.s.s.s.s.d.s.d.s.d.s.s.d.s.d.s.d.s.s.s.d.s.d.d.s.d.s.d.s.d.s.s.d.s.d.d.s.d.s.d.s.s.d.s.s.s.s.s.s.s.d.s.d.d.s.s.d.d.s.s.d.s.d.s.d.s.s.s.s.d.s.s.d.s.s.s.d.s.d.d.s.s.d.d.s.s.d.d.s.d.s.s.d.s.s.s.h.s.s.s.s.d.s.d.s.d.s.s.d.s.d.s.d.s.s.s.d.s.d.d.s.d.s.d.s.d.s.s.d.s.d.d.s.d.s.d.s.s.d.s.s.s.s.s.s.s.d.d.s.s.d.d.s.s.d.s.s.s.s.d.s.s.d.d.s.s.d.s.d.s.s.s.d.d.s.d.s.s.d.d.s.s.d.d.s.d.s.s.d.s.s.s.h.s.s.s.s.d.s.d.s.d.s.s.d.s.d.s.d.s.s.s.d.s.d.d.s.d.s.d.s.d.s.s.d.s.d.d.s.d.s.d.s.s.d.s.s.s.s.s.s.s.d.s.d.d.s.s.d.d.s.d.s.s.d.d.s.s.s.s.s.d.s.d.s.s.d.d.s.s.s.s.d.d.s.d.s.s.d.d.s.d.s.s.d.s.s.s.h.s.s.s.s.d.s.d.s.d.s.s.d.s.d.s.d.s.s.s.d.s.d.d.s.d.s.d.s.d.s.s.d.s.d.d.s.d.s.d.s.s.d.s.s.s.s.s.s.s.d.s.s.d.s.d.s.d.s.s.d.s.s.d.s.s.d.s.d.s.d.d.s.d.s.s.d.s.d.d.s.d.s.", -"s.d.s.d.s.d.s.s.s.d.s.d.s.s.s.s.d.s.s.d.s.s.s.s.d.s.d.s.s.s.s.s.s.d.s.s.s.d.s.d.s.d.s.d.s.s.h.a.s.s.s.s.d.s.d.s.d.s.s.d.d.s.s.s.s.s.s.s.s.s.s.s.d.s.d.s.s.s.s.s.s.d.s.d.s.d.s.d.a.s.s.s.d.s.d.s.s.d.s.d.s.s.s.s.s.d.d.s.s.d.d.s.s.s.d.s.s.d.s.s.s.d.s.d.d.s.s.d.s.d.s.s.s.d.s.d.s.d.s.d.s.s.h.a.s.s.s.s.d.s.d.s.d.s.s.d.d.s.s.s.s.s.s.s.s.s.s.s.d.s.d.s.s.s.s.s.s.d.s.d.s.d.s.d.a.s.s.s.d.s.d.s.s.s.s.s.d.s.s.d.d.s.s.d.s.s.s.s.s.d.d.s.s.d.s.d.s.s.d.s.s.d.s.d.s.d.s.s.s.d.s.d.s.d.s.d.s.s.h.a.s.s.s.s.d.s.d.s.d.s.s.d.d.s.s.s.s.s.s.s.s.s.s.s.d.s.d.s.s.s.s.s.s.d.s.d.s.d.s.d.a.s.s.s.d.s.d.s.s.d.d.s.s.d.s.s.s.d.d.s.d.s.d.s.s.s.d.s.s.d.s.s.s.d.s.d.s.d.s.d.s.d.s.s.s.d.s.d.s.d.s.d.s.s.h.a.s.s.s.s.d.s.d.s.d.s.s.d.d.s.s.s.s.s.s.s.s.s.s.s.d.s.d.s.s.s.s.s.s.d.s.d.s.d.s.d.a.s.s.s.d.s.d.s.d.s.s.s.d.s.s.s.s.d.d.s.s.d.s.s.d.s.s.d.s.s.s.s.s.d.s.d.d.s.s.s.s.d.s.s.s.d.s.d.s.d.s.d.s.s.h.a.s.s.s.s.d.s.d.s.d.s.s.d.d.s.s.s.s.s.s.s.s.s.s.s.d.s.d.s.s.s.s.s.s.d.s.d.s.d.s.d.a.s.s.s.d.s.d.s.s.s.s.s.d.s.d.s.s.d.d.s.d.s.s.s.s.d.s.s.s.s.s.s.s.s.s.s.s.s.s.s.", -"s.s.s.s.d.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.d.s.s.s.s.s.s.s.d.s.d.s.s.d.s.s.s.s.s.s.s.s.s.d.s.s.s.s.s.d.s.s.s.s.s.s.s.s.s.s.s.s.s.s.d.s.d.s.s.d.s.s.s.s.s.s.d.s.d.s.s.s.s.s.s.s.s.s.h.s.s.s.s.s.s.s.s.s.s.s.d.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.d.s.s.s.s.s.s.s.s.s.d.s.s.s.s.s.d.s.s.s.s.s.s.s.s.s.s.s.s.s.s.d.s.d.s.s.d.s.s.s.s.s.s.d.s.d.s.s.s.s.s.s.s.s.s.h.s.s.s.s.s.s.s.s.d.s.s.s.s.s.s.s.s.s.s.d.s.s.s.s.s.s.s.s.s.s.s.d.s.s.s.s.s.s.s.s.d.s.s.s.s.s.s.s.s.s.d.s.s.s.s.s.d.s.s.s.s.s.s.s.s.s.s.s.s.s.s.d.s.d.s.s.d.s.s.s.s.s.s.d.s.d.s.s.s.s.s.s.s.s.s.h.s.s.s.s.s.s.s.s.s.s.s.s.d.s.s.s.s.s.s.s.s.s.s.d.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.d.s.s.s.s.s.s.s.s.s.d.s.s.s.s.s.d.s.s.s.s.s.s.s.s.s.s.s.s.s.s.d.s.d.s.s.d.s.s.s.s.s.s.d.s.d.s.s.s.s.s.s.s.s.s.h.s.s.s.s.s.s.s.s.s.s.d.s.s.s.s.s.s.s.s.s.d.s.s.s.s.s.s.d.s.s.s.s.s.s.s.s.s.d.s.s.d.s.s.s.s.s.s.s.s.s.d.s.s.s.s.s.d.s.s.s.s.s.s.s.s.s.s.s.s.s.s.d.s.d.s.s.d.s.s.s.s.s.s.d.s.d.s.s.s.s.s.s.s.s.s.h.s.s.s.s.s.s.s.s.d.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.d.s.s.s.s.s.d.s.d.s.s.d.s.s.", -"s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.d.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.d.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.", -"s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.a.s.s.a.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.", -"s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.", -"s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.a.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.a.s.s.s.s.s.s.s.s.s.s.", -"s.s.s.a.s.a.a.s.a.s.s.s.a.a.a.a.s.s.s.s.s.a.s.s.s.a.s.s.a.a.s.s.a.h.a.a.a.h.s.a.s.s.s.a.s.s.a.s.a.s.s.s.s.s.s.a.s.s.a.a.a.a.a.a.s.s.a.s.a.s.s.s.a.s.s.a.s.s.s.a.a.h.a.a.a.h.s.a.s.s.s.a.s.s.a.s.a.s.s.s.s.s.s.a.s.s.s.a.a.a.a.a.s.a.s.s.s.s.s.s.a.s.s.a.s.s.s.a.a.h.a.a.a.h.s.a.s.s.s.a.s.s.a.s.a.s.s.s.s.s.s.a.s.s.a.a.a.a.a.a.s.s.a.s.a.s.s.s.a.s.s.a.s.s.s.a.a.h.a.a.a.h.s.a.s.s.s.a.s.s.a.s.s.s.s.s.s.s.a.s.a.s.s.s.a.a.a.a.s.s.s.s.s.s.a.s.s.s.s.s.s.s.a.s.a.h.a.a.a.h.s.a.s.s.s.a.s.s.a.s.a.s.s.s.s.s.s.a.s.s.a.a.a.a.a.a.s.s.a.s.a.s.s.s.a.s.s.a.s.s.s.a.a.h.a.a.a.h.s.a.s.s.s.a.s.s.a.s.a.s.s.s.s.s.s.a.s.s.s.a.a.a.a.a.s.s.a.s.a.s.s.s.s.a.s.s.a.s.s.s.a.h.a.a.a.h.s.a.s.s.s.a.s.s.a.s.a.s.s.s.s.s.s.a.s.s.a.a.a.a.a.a.s.s.a.s.a.s.s.s.a.s.s.a.s.s.s.a.a.h.a.a.a.h.s.a.s.s.s.a.s.s.a.s.s.s.a.s.a.s.s.s.s.a.s.s.a.a.8.a.s.s.s.a.s.a.s.s.s.a.s.s.a.s.s.a.a.h.a.a.a.h.s.a.s.s.s.a.s.s.a.s.a.s.s.s.s.s.s.a.s.s.a.a.a.a.a.a.s.s.a.s.a.s.s.s.a.s.s.a.s.s.s.a.a.h.a.a.a.h.s.a.s.s.s.a.s.s.a.s.s.s.s.s.s.s.a.s.s.s.s.a.a.a.a.a.s.s.s.a.s.a.s.s.s.s.s.s.a.a.s.s.", -"a.a.s.s.s.s.s.s.s.s.a.a.a.a.h.a.s.a.s.a.s.a.s.a.s.s.a.s.s.s.s.a.a.a.a.a.a.a.s.a.s.a.s.s.s.a.s.a.s.s.a.a.a.a.s.s.a.a.a.h.a.a.a.8.a.s.a.s.s.s.a.s.a.s.s.a.s.a.s.s.a.a.a.a.a.a.s.a.s.a.s.s.s.a.s.a.s.s.a.a.a.a.s.s.a.a.s.s.a.a.h.a.s.s.s.a.a.s.a.s.s.a.s.s.a.s.a.s.a.a.a.a.a.a.s.a.s.a.s.s.s.a.s.a.s.s.a.a.a.a.s.s.a.a.a.h.a.a.a.8.a.s.a.s.s.s.a.s.a.s.s.a.s.a.s.s.a.a.a.a.a.a.s.a.s.a.s.s.s.a.s.a.a.s.a.a.a.a.s.s.s.s.a.a.a.a.h.a.s.a.s.a.s.a.s.a.s.a.a.s.a.s.a.s.a.a.a.a.a.a.s.a.s.a.s.s.s.a.s.a.s.s.a.a.a.a.s.s.a.a.a.h.a.a.a.8.a.s.a.s.s.s.a.s.a.s.s.a.s.a.s.s.a.a.a.a.a.a.s.a.s.a.s.s.s.a.s.a.s.s.a.a.a.a.s.s.a.a.s.s.a.a.h.a.a.s.a.s.s.s.a.s.a.s.s.a.s.a.s.a.a.a.a.a.a.a.s.a.s.a.s.s.s.a.s.a.s.s.a.a.a.a.s.s.a.a.a.h.a.a.a.8.a.s.a.s.s.s.a.s.a.s.s.a.s.a.s.s.a.a.a.a.a.a.s.a.s.a.s.s.s.a.s.a.a.a.s.s.s.s.a.s.s.s.a.s.s.a.a.a.s.a.s.s.s.a.s.a.a.s.a.s.s.a.s.s.a.a.a.a.a.a.s.a.s.a.s.s.s.a.s.a.s.s.a.a.a.a.s.s.a.a.a.h.a.a.a.8.a.s.a.s.s.s.a.s.a.s.s.a.s.a.s.s.a.a.a.a.a.a.s.a.s.a.s.s.s.a.s.a.a.s.a.a.a.a.s.s.a.a.s.s.a.a.h.a.a.s.a.s.s.a.s.a.s.a.a.s.s.s.s.a.", -"s.s.a.s.a.s.s.a.s.a.a.a.a.a.a.a.s.s.a.s.s.s.a.s.a.s.s.s.s.s.s.a.a.a.a.a.a.a.s.s.a.s.a.s.s.s.s.a.s.a.s.s.s.a.a.s.s.a.a.a.h.a.a.a.a.s.s.a.s.a.s.s.s.s.a.s.s.s.a.s.a.a.a.a.a.a.s.s.a.s.a.s.s.s.s.a.s.a.s.s.s.s.s.s.s.s.a.a.a.a.a.a.s.a.s.a.s.a.a.s.s.a.s.a.a.s.s.s.a.a.a.a.a.a.s.s.a.s.a.s.s.s.s.a.s.a.s.s.s.a.a.s.s.a.a.a.h.a.a.a.a.s.s.a.s.a.s.s.s.s.a.s.s.s.a.s.a.a.a.a.a.a.s.s.a.s.a.s.s.s.s.a.s.a.a.s.s.s.s.a.s.a.s.s.a.s.a.a.s.s.a.s.a.s.a.s.a.s.s.s.s.a.s.a.a.a.a.a.a.a.s.s.a.s.a.s.s.s.s.a.s.a.s.s.s.a.a.s.s.a.a.a.h.a.a.a.a.s.s.a.s.a.s.s.s.s.a.s.s.s.a.s.a.a.a.a.a.a.s.s.a.s.a.s.s.s.s.a.s.a.s.s.s.s.s.a.s.s.a.a.a.a.a.a.s.a.s.a.s.a.s.s.s.s.a.s.s.s.a.s.a.a.a.a.a.a.s.s.a.s.a.s.s.s.s.a.s.a.s.s.s.a.a.s.s.a.a.a.h.a.a.a.a.s.s.a.s.a.s.s.s.s.a.s.s.s.a.s.a.a.a.a.a.a.s.s.a.s.a.s.s.s.s.a.s.s.s.a.a.s.s.a.a.s.s.a.s.a.a.a.s.s.a.s.s.s.s.s.s.s.a.s.s.s.a.s.a.a.a.a.a.a.s.s.a.s.a.s.s.s.s.a.s.a.s.s.s.a.a.s.s.a.a.a.h.a.a.a.a.s.s.a.s.a.s.s.s.s.a.s.s.s.a.s.a.a.a.a.a.a.s.s.a.s.a.s.s.s.s.a.s.a.s.s.s.s.s.a.s.s.a.a.a.a.a.a.a.s.s.s.s.s.s.a.a.s.a.s.s.a.s.a.", -"a.a.s.a.s.a.a.s.a.s.a.a.a.h.a.a.a.a.s.a.a.s.a.s.s.a.a.a.a.a.a.s.a.a.8.a.a.a.a.s.s.a.s.a.a.s.a.s.s.a.a.s.a.s.s.a.a.s.a.a.a.a.a.a.s.s.a.s.a.s.a.a.a.s.a.s.a.a.s.a.a.a.8.a.a.a.a.s.s.a.s.a.a.s.a.s.s.a.a.s.a.a.a.a.a.a.a.a.a.h.a.a.a.s.a.s.s.a.s.a.a.s.a.s.s.a.s.a.a.a.8.a.a.a.a.s.s.a.s.a.a.s.a.s.s.a.a.s.a.s.s.a.a.s.a.a.a.a.a.a.s.s.a.s.a.s.a.a.a.s.a.s.a.a.s.a.a.a.8.a.a.a.a.s.s.a.s.a.a.s.a.s.a.s.s.a.s.a.s.a.s.a.a.s.a.a.a.a.a.a.s.a.s.a.s.s.s.a.a.a.a.s.a.s.a.a.8.a.a.a.a.s.s.a.s.a.a.s.a.s.s.a.a.s.a.s.s.a.a.s.a.a.a.a.a.a.s.s.a.s.a.s.a.a.a.s.a.s.a.a.s.a.a.a.8.a.a.a.a.s.s.a.s.a.a.s.a.s.a.s.a.s.a.a.s.a.a.a.a.a.a.h.a.a.a.s.a.s.a.s.a.a.a.s.s.a.a.a.s.a.a.a.8.a.a.a.a.s.s.a.s.a.a.s.a.s.s.a.a.s.a.s.s.a.a.s.a.a.a.a.a.a.s.s.a.s.a.s.a.a.a.s.a.s.a.a.s.a.a.a.8.a.a.a.a.s.s.a.s.a.a.s.a.s.s.a.s.a.s.a.a.s.s.a.a.s.a.s.a.a.a.a.s.a.a.s.a.a.a.s.s.a.a.a.s.a.a.a.8.a.a.a.a.s.s.a.s.a.a.s.a.s.s.a.a.s.a.s.s.a.a.s.a.a.a.a.a.a.s.s.a.s.a.s.a.a.a.s.a.s.a.a.s.a.a.a.8.a.a.a.a.s.s.a.s.a.a.s.a.s.a.s.a.s.a.a.s.a.a.a.a.a.a.h.a.a.s.a.s.a.a.s.a.s.s.a.s.a.a.s.a.s.", -"s.s.a.s.a.s.a.s.a.a.s.a.a.a.a.a.a.s.s.a.a.s.s.a.a.s.a.s.s.a.s.a.a.a.a.a.a.a.a.a.a.s.s.a.a.s.s.a.a.a.s.a.s.a.s.s.a.a.s.a.a.a.a.a.a.a.a.s.a.a.a.s.a.s.s.a.a.s.s.a.a.a.a.a.a.a.a.a.a.s.s.a.a.s.s.a.a.a.s.a.s.a.s.s.s.s.a.a.a.a.a.a.s.a.s.a.s.a.a.s.a.s.s.a.a.s.a.s.a.a.a.a.a.a.a.a.a.s.s.a.a.s.s.a.a.a.s.a.s.a.s.s.a.a.s.a.a.a.a.a.a.a.a.s.a.a.a.s.a.s.s.a.a.s.s.a.a.a.a.a.a.a.a.a.a.s.s.a.a.s.s.a.a.a.s.a.a.a.a.s.a.a.s.a.a.a.a.a.a.s.s.a.a.s.s.a.s.a.a.a.s.s.a.a.a.a.a.a.a.a.a.a.a.s.s.a.a.s.s.a.a.a.s.a.s.a.s.s.a.a.s.a.a.a.a.a.a.a.a.s.a.a.a.s.a.s.s.a.a.s.s.a.a.a.a.a.a.a.a.a.a.s.s.a.a.s.s.a.a.a.s.a.s.a.s.s.s.s.a.a.a.a.a.a.s.a.a.s.a.a.a.s.a.s.a.s.a.a.s.a.a.a.a.a.a.a.a.a.a.s.s.a.a.s.s.a.a.a.s.a.s.a.s.s.a.a.s.a.a.a.a.a.a.a.a.s.a.a.a.s.a.s.s.a.a.s.s.a.a.a.a.a.a.a.a.a.a.s.s.a.a.s.s.a.a.s.a.a.a.s.a.a.a.s.a.s.a.a.a.a.a.s.a.s.a.s.s.a.a.s.s.a.a.a.s.a.a.a.a.a.a.a.a.a.a.s.s.a.a.s.s.a.a.a.s.a.s.a.s.s.a.a.s.a.a.a.a.a.a.a.a.s.a.a.a.s.a.s.s.a.a.s.s.a.a.a.a.a.a.a.a.a.a.s.s.a.a.s.s.a.a.a.s.a.a.a.s.s.s.s.a.a.a.a.a.a.a.a.a.s.a.s.s.a.a.a.a.s.s.a.s.a.", -"a.a.a.a.a.s.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.s.a.s.a.a.a.a.a.s.a.a.s.a.s.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.s.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.s.a.s.a.a.a.a.a.s.a.a.s.a.s.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.a.s.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.s.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.s.a.s.a.a.a.a.a.s.a.a.s.a.s.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.s.a.a.a.a.s.a.s.a.a.s.a.s.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.s.a.s.a.a.a.a.a.s.a.a.s.a.s.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.a.s.a.s.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.s.a.s.a.a.a.a.a.s.a.a.s.a.s.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.s.a.a.a.a.a.a.s.a.a.a.a.a.s.a.s.a.a.a.a.s.s.a.a.a.a.s.a.", -"a.a.a.a.a.a.a.a.s.a.a.s.a.a.a.a.a.a.a.s.a.a.a.a.s.a.s.a.a.s.s.a.a.a.8.a.a.a.a.a.a.s.a.s.a.a.a.s.a.s.s.a.s.a.a.s.a.s.a.a.a.a.a.a.a.a.s.a.a.s.a.a.a.a.a.s.s.a.a.s.a.a.8.a.a.a.a.a.a.s.a.s.a.a.a.s.s.a.a.s.s.a.a.s.a.a.a.a.a.a.a.a.s.a.a.a.a.a.s.a.a.s.a.s.s.a.a.s.a.a.8.a.a.a.a.a.a.s.a.s.a.a.a.s.a.s.s.a.s.a.a.s.a.s.a.a.a.a.a.a.a.a.s.a.a.s.a.a.a.a.a.s.s.a.a.s.a.a.8.a.a.a.a.a.a.s.a.s.a.a.a.s.a.s.a.a.a.a.h.a.s.a.a.s.a.a.a.a.a.s.a.s.a.a.a.s.a.a.a.a.a.a.a.a.a.a.8.a.a.a.a.a.a.s.a.s.a.a.a.s.a.s.s.a.s.a.a.s.a.s.a.a.a.a.a.a.a.a.s.a.a.s.a.a.a.a.a.s.s.a.a.s.a.a.8.a.a.a.a.a.a.s.a.s.a.a.a.s.a.s.s.a.s.a.a.s.a.a.a.a.a.a.a.a.a.a.s.a.a.s.a.a.s.a.s.a.a.s.s.a.a.a.8.a.a.a.a.a.a.s.a.s.a.a.a.s.a.s.s.a.s.a.a.s.a.s.a.a.a.a.a.a.a.a.s.a.a.s.a.a.a.a.a.s.s.a.a.s.a.a.8.a.a.a.a.a.a.s.a.s.a.a.a.s.a.a.a.a.a.a.a.a.s.a.a.s.a.a.a.a.a.s.a.a.a.a.a.s.a.s.a.s.s.a.a.s.a.a.8.a.a.a.a.a.a.s.a.s.a.a.a.s.a.s.s.a.s.a.a.s.a.s.a.a.a.a.a.a.a.a.s.a.a.s.a.a.a.a.a.s.s.a.a.s.a.a.8.a.a.a.a.a.a.s.a.s.a.a.a.s.a.s.s.a.s.a.a.s.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.s.a.a.s.a.a.s.a.a.", -"a.s.a.a.a.a.s.a.a.a.a.a.a.a.a.a.a.s.a.a.s.a.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.s.a.s.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.s.a.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.a.a.s.a.a.a.a.a.a.a.a.a.a.", -"a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.", -"a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.", -"a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.", -"a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.", -"a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.", -"a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.", -"a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.", -"a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a.a." -}; diff --git a/timeline/icons/icon-large.svg b/timeline/icons/icon-large.svg deleted file mode 100644 index 24ab03c..0000000 --- a/timeline/icons/icon-large.svg +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/timeline/icons/icon-small.svg b/timeline/icons/icon-small.svg deleted file mode 120000 index 1d9c2c6..0000000 --- a/timeline/icons/icon-small.svg +++ /dev/null @@ -1 +0,0 @@ -icon-large.svg \ No newline at end of file diff --git a/timeline/non-timeline.desktop.in b/timeline/non-timeline.desktop.in deleted file mode 100644 index a8ce62d..0000000 --- a/timeline/non-timeline.desktop.in +++ /dev/null @@ -1,9 +0,0 @@ -[Desktop Entry] -Name=Non Timeline -Comment=Modular Digital Audio Workstation - Timeline Editor -Comment[fr]=Station de travail audio-numérique modulaire - Éditeur à ligne temporelle -Exec=@BIN_PATH@/non-timeline -Terminal=false -Type=Application -Icon=non-timeline -Categories=AudioVideo;Audio; diff --git a/timeline/src/Annotation_Point.H b/timeline/src/Annotation_Point.H deleted file mode 100644 index aaec594..0000000 --- a/timeline/src/Annotation_Point.H +++ /dev/null @@ -1,120 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - - -#pragma once - -#include "Loggable.H" -#include "Sequence_Point.H" - -#include - -class Annotation_Point : public Sequence_Point -{ - -protected: - -// const char *class_label ( void ) { return "Annotation_Point"; } - - virtual void get ( Log_Entry &e ) const - { - Sequence_Point::get( e ); - - e.add( ":label", _label ); - } - - void - set ( Log_Entry &e ) - { - Sequence_Point::set( e ); - - for ( int i = 0; i < e.size(); ++i ) - { - const char *s, *v; - - e.get( i, &s, &v ); - - if ( ! strcmp( s, ":label" ) ) - label( v ); - } - -// timeline->redraw(); - } - - Annotation_Point ( ) - { - } - -public: - - /* for loggable */ - LOG_CREATE_FUNC( Annotation_Point ); - SEQUENCE_WIDGET_CLONE_FUNC( Annotation_Point ); - - Annotation_Point ( Sequence *sequence, nframes_t when, const char *label ) - { - _sequence = NULL; - - _r->start = when; - - _label = strdup( label ); - - sequence->add( this ); - - log_create(); - } - - Annotation_Point ( const Annotation_Point &rhs ) : Sequence_Point( rhs ) - { - log_create(); - } - - ~Annotation_Point ( ) - { - log_destroy(); - } - - - int - handle ( int m ) - { - Logger _log( this ); - - if ( m == FL_PUSH && Fl::test_shortcut( FL_BUTTON3 ) && ! Fl::event_shift() ) - { - const char *s = fl_input( "New label for mark:", label() ); - - if ( s ) - label( s ); - - return 0; - } - - int r = Sequence_Widget::handle( m ); - - if ( m == FL_RELEASE ) - { - sequence()->sort(); - redraw(); - } - - return r; - } - -}; diff --git a/timeline/src/Annotation_Region.C b/timeline/src/Annotation_Region.C deleted file mode 100644 index 83c374c..0000000 --- a/timeline/src/Annotation_Region.C +++ /dev/null @@ -1,125 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include -#include -#include - -#include "Annotation_Region.H" - - - -void -Annotation_Region::get ( Log_Entry &e ) const -{ - Sequence_Region::get( e ); - - e.add( ":label", _label ); -} - -void -Annotation_Region::set ( Log_Entry &e ) -{ - Sequence_Region::set( e ); - - for ( int i = 0; i < e.size(); ++i ) - { - const char *s, *v; - - e.get( i, &s, &v ); - - if ( ! strcmp( s, ":label" ) ) - label( v ); - } - -// timeline->redraw(); -} - -Annotation_Region::Annotation_Region ( Sequence *sequence, nframes_t when, const char *label ) -{ - _sequence = NULL; - - _r->start = when; - - /* FIXME: hack */ - _r->length = 400; - - _label = strdup( label ); - - sequence->add( this ); - - log_create(); -} - -Annotation_Region::Annotation_Region ( const Annotation_Region &rhs ) : Sequence_Region( rhs ) -{ - log_create(); -} - - -Annotation_Region::~Annotation_Region ( ) -{ - log_destroy(); -} - -void -Annotation_Region::draw_box ( void ) -{ - Sequence_Region::draw_box(); -} - -void -Annotation_Region::draw ( void ) -{ - draw_label( _label, (Fl_Align)(FL_ALIGN_LEFT | FL_ALIGN_INSIDE | FL_ALIGN_TOP | FL_ALIGN_CLIP ) ); -} - -#include -#include - -int -Annotation_Region::handle ( int m ) -{ - Logger _log( this ); - - if ( m == FL_PUSH ) - { - if ( test_press( FL_BUTTON3 ) ) - { - char *s = fl_text_edit( "Annotation text:", "&Save", label() ); - - if ( s ) - label( s ); - - free( s ); - - return 0; - } - } - - int r = Sequence_Region::handle( m ); - - if ( m == FL_RELEASE ) - { - sequence()->sort(); - timeline->redraw(); - } - - return r; -} diff --git a/timeline/src/Annotation_Region.H b/timeline/src/Annotation_Region.H deleted file mode 100644 index 9d56da7..0000000 --- a/timeline/src/Annotation_Region.H +++ /dev/null @@ -1,57 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - - -#pragma once - -// #include "Loggable.H" -#include "Sequence_Region.H" - - -class Annotation_Region : public Sequence_Region -{ - - /* not permitted */ - Annotation_Region & operator = ( const Annotation_Region &rhs ); - -protected: - - virtual void get ( Log_Entry &e ) const; - virtual void set ( Log_Entry &e ); - - Annotation_Region ( ) - { - } - - Annotation_Region ( const Annotation_Region &rhs ); - -public: - - /* for loggable */ - LOG_CREATE_FUNC( Annotation_Region ); - SEQUENCE_WIDGET_CLONE_FUNC( Annotation_Region ); - - Annotation_Region ( Sequence *track, nframes_t when, const char *name ); - virtual ~Annotation_Region ( ); - - void draw_box ( void ); - void draw ( void ); - int handle ( int m ); - -}; diff --git a/timeline/src/Annotation_Sequence.H b/timeline/src/Annotation_Sequence.H deleted file mode 100644 index 8c4d117..0000000 --- a/timeline/src/Annotation_Sequence.H +++ /dev/null @@ -1,156 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include "Sequence.H" -#include "Annotation_Point.H" -#include "Annotation_Region.H" -#include "Timeline.H" - -#include "Track.H" - -class Annotation_Sequence : public Sequence -{ - -protected: - - virtual void get ( Log_Entry &e ) const - { - e.add( ":track", _track ); - } - - void - set ( Log_Entry &e ) - { - for ( int i = 0; i < e.size(); ++i ) - { - const char *s, *v; - - e.get( i, &s, &v ); - - if ( ! strcmp( ":track", s ) ) - { - int i; - sscanf( v, "%X", &i ); - Track *t = (Track*)Loggable::find( i ); - - assert( t ); - - t->add( this ); - } - } - } - - Annotation_Sequence ( ) : Sequence ( 0 ) - { - color( FL_DARK1 ); - } - -public: - - - LOG_CREATE_FUNC( Annotation_Sequence ); - - Fl_Cursor cursor ( void ) const { return FL_CURSOR_INSERT; } - - Annotation_Sequence ( Track *track ) : Sequence( track ) - { - color( FL_DARK1 ); - - log_create(); - } - - virtual ~Annotation_Sequence ( ) - { - Loggable::block_start(); - - clear(); - - log_destroy(); - - track()->remove( this ); - - Loggable::block_end(); - } - - int handle ( int m ) - { - - if ( Sequence::handle( m ) ) - return 1; - - switch ( m ) - { - case FL_PUSH: - { - if ( Fl::event_x() < drawable_x() ) - return 0; - - Logger log( this ); - - if ( Fl::event_button1() ) - { - new Annotation_Point( this, x_to_offset( Fl::event_x() - drawable_x() ), "mark" ); - redraw(); - } - if ( Fl::event_button3() && Fl::event_shift() ) - { - Annotation_Region *r = new Annotation_Region( this, x_to_offset( Fl::event_x() - drawable_x() ), "mark" ); - - Sequence_Widget::pushed( r ); - - r->handle( m ); - - redraw(); - - return 1; - - } - else if ( Fl::event_button3() && ! ( Fl::event_state() & ( FL_ALT | FL_SHIFT | FL_CTRL ) ) ) - { - - Fl_Menu_Item menu[] = - { - { "Remove" }, - { 0 } - }; - - const Fl_Menu_Item *r = menu->popup( Fl::event_x(), Fl::event_y(), "Annotation Sequence" ); - - if ( r ) - { - if ( r == &menu[ 0 ] ) - { - Fl::delete_widget( this ); - } - - } - - return 1; - } - break; - } - default: - break; - } - - return 0; - } -}; diff --git a/timeline/src/Audio_Region.C b/timeline/src/Audio_Region.C deleted file mode 100644 index 49f4bd9..0000000 --- a/timeline/src/Audio_Region.C +++ /dev/null @@ -1,973 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include -#include -#include -#include -#include - -#include "Sequence.H" -#include "Audio_Region.H" -#include "Timeline.H" -#include "Waveform.H" -#include "Audio_Sequence.H" -#include "Track.H" - -#include "Engine/Audio_File.H" -#include "Transport.H" -#include "const.h" -#include "debug.h" -#include - -#include -using std::min; -using std::max; - - - -/* defined in timeline.C */ -extern void draw_full_arrow_symbol ( Fl_Color color ); - -extern Timeline *timeline; -extern Transport *transport; - -bool Audio_Region::inherit_track_color = true; -bool Audio_Region::show_box = true; - -Fl_Boxtype Audio_Region::_box = FL_BORDER_BOX; - -Fl_Color Audio_Region::_selection_color = FL_MAGENTA; - - - -/* static Fl_Color fl_invert_color ( Fl_Color c ) */ -/* { */ -/* unsigned char r, g, b; */ - -/* Fl::get_color( c, r, g, b ); */ - -/* return fl_rgb_color( 255 - r, 255 - g, 255 - b ); */ -/* } */ - - - -void -Audio_Region::get ( Log_Entry &e ) const -{ - e.add( ":source", _clip ? _clip->name() : "" ); - e.add( ":gain", _scale ); - e.add( ":fade-in-type", _fade_in.type ); - e.add( ":fade-in-duration", _fade_in.length ); - e.add( ":fade-out-type", _fade_out.type ); - e.add( ":fade-out-duration", _fade_out.length ); - - Sequence_Region::get( e ); - - e.add( ":offset", _r->offset ); - e.add( ":loop", _loop ); -} - -void -Audio_Region::set ( Log_Entry &e ) -{ - for ( int i = 0; i < e.size(); ++i ) - { - const char *s, *v; - - e.get( i, &s, &v ); - - if ( ! strcmp( s, ":gain" ) ) - _scale = atof( v ); - else if ( ! strcmp( s, ":fade-in-type" ) ) - _fade_in.type = (Fade::fade_type_e)atoi( v ); - else if ( ! strcmp( s, ":fade-in-duration" ) ) - _fade_in.length = atoll( v ); - else if ( ! strcmp( s, ":fade-out-type" ) ) - _fade_out.type = (Fade::fade_type_e)atoi( v ); - else if ( ! strcmp( s, ":fade-out-duration" ) ) - _fade_out.length = atoll( v ); - else if ( ! strcmp( s, ":offset" ) ) - _r->offset = atoll( v ); - else if ( ! strcmp( s, ":loop" ) ) - _loop = atoll( v ); - else if ( ! strcmp( s, ":source" ) ) - { - if ( ! ( _clip = Audio_File::from_file( v ) ) ) - { - printf( "Grave error: could not open source \"%s\"\n", v ); - } - } - } - - Sequence_Region::set( e ); -} - -void -Audio_Region::init ( void ) -{ - _adjusting_gain = 0; - _loop = 0; - _sequence = NULL; - _scale = 1.0f; - _clip = NULL; - - _color = FL_FOREGROUND_COLOR; - _box_color = FL_GRAY; - - /* FIXME: shouldn't this be a fraction of the sample rate? */ - _fade_in.length = 256; - _fade_in.type = Fade::Sigmoid; - - _fade_out = _fade_in; -} - -/* copy constructor */ -Audio_Region::Audio_Region ( const Audio_Region & rhs ) : Sequence_Region( rhs ) -{ -// *((Sequence_Region*)this) = (Sequence_Region &)rhs; - - _clip = rhs._clip->duplicate(); - _scale = rhs._scale; - - _fade_in = rhs._fade_in; - _fade_out = rhs._fade_out; - - _loop = rhs._loop; - - _box_color = rhs._box_color; - _color = rhs._color; - - _adjusting_gain = 0.0f; - - log_create(); -} - -/* */ -Audio_Region::Audio_Region ( Audio_File *c ) -{ - init(); - _clip = c; - _r->length = _clip->length(); - - log_create(); -} - -/* used when DND importing and when recording. must not invoke log_create() */ -Audio_Region::Audio_Region ( Audio_File *c, Sequence *t, nframes_t o ) -{ - init(); - _clip = c; - _r->offset = 0; - _r->start = o; - _r->length = _clip->length(); - - int sum = 0; - const char *s = rindex( _clip->name(), '/' ); - if ( ! s ) - s = _clip->name(); - - for ( int i = strlen( s ); i--; ) - sum += s[ i ]; - - while ( sum >> 8 ) - sum = (sum & 0xFF) + (sum >> 8); - - _box_color = (Fl_Color)sum; - - t->add( this ); -} - -Audio_Region::~Audio_Region ( ) -{ - log_destroy(); - - _clip->release(); -} - - - -void -Audio_Region::menu_cb ( Fl_Widget *w, void *v ) -{ - ((Audio_Region*)v)->menu_cb( (Fl_Menu_*) w ); -} - -void -Audio_Region::menu_cb ( const Fl_Menu_ *m ) -{ - char picked[256]; - - m->item_pathname( picked, sizeof( picked ) ); - - if ( ! strcmp( picked, "Fade/In/Linear" ) ) - _fade_in.type = Fade::Linear; - else if ( ! strcmp( picked, "Fade/In/Sigmoid" ) ) - _fade_in.type = Fade::Sigmoid; - else if ( ! strcmp( picked, "Fade/In/Logarithmic" ) ) - _fade_in.type = Fade::Logarithmic; - else if ( ! strcmp( picked, "Fade/In/Parabolic" ) ) - _fade_in.type = Fade::Parabolic; - else if ( ! strcmp( picked, "Fade/Out/Linear" ) ) - _fade_out.type = Fade::Linear; - else if ( ! strcmp( picked, "Fade/Out/Sigmoid" ) ) - _fade_out.type = Fade::Sigmoid; - else if ( ! strcmp( picked, "Fade/Out/Logarithmic" ) ) - _fade_out.type = Fade::Logarithmic; - else if ( ! strcmp( picked, "Fade/Out/Parabolic" ) ) - _fade_out.type = Fade::Parabolic; - else if ( ! strcmp( picked, "/Color" ) ) - box_color( fl_show_colormap( box_color() ) ); - else if ( ! strcmp( picked, "/Split at mouse" ) ) - { - split( timeline->x_to_offset( Fl::event_x() ) ); - } - else if ( ! strcmp( picked, "/Crop to range" ) ) - { - trim_left( timeline->range_start() ); - trim_right( timeline->range_end() ); - } - else if ( ! strcmp( picked, "/Fade in to mouse" ) ) - { - nframes_t offset = x_to_offset( Fl::event_x() ); - - if ( offset < length() ) - _fade_in.length = offset; - - DMESSAGE( "set fade in duration" ); - } - else if ( ! strcmp( picked, "/Fade out to mouse" ) ) - { - long offset = length() - x_to_offset( Fl::event_x() ); - - if ( offset > 0 ) - _fade_out.length = offset; - } - else if ( ! strcmp( picked, "/Gain with mouse vertical drag" ) ) - { - /* float g = h() / (y() - Fl::event_y() ); */ - - /* _scale = g; */ - } - else if ( ! strcmp( picked, "/Loop point to mouse" ) ) - { - nframes_t offset = x_to_offset( Fl::event_x() ); - - if ( offset > 0 ) - { - nframes_t f = offset + _r->start; - - if ( timeline->nearest_line( &f, false ) ) - _loop = f - _r->start; - else - _loop = offset; - } - } - else if ( ! strcmp( picked, "/Clear loop point" ) ) - _loop = 0; - else if ( ! strcmp( picked, "/Normalize" ) ) - normalize(); - else if ( ! strcmp( picked, "/Denormalize" ) ) - _scale = 1.0; - else if ( ! strcmp( picked, "/Range from" ) ) - timeline->range( start(), length() ); - else if ( ! strcmp( picked, "/Trim left to playhead" ) ) - { - redraw(); - trim_left( transport->frame ); - } - else if ( ! strcmp( picked, "/Trim right to playhead" ) ) - { - redraw(); - trim_right( transport->frame ); - } - else if ( ! strcmp( picked, "/Split at playhead" ) ) - { - redraw(); - - split( transport->frame ); - } - else if ( ! strcmp( picked, "/Loop point at playhead" ) ) - { - nframes_t f = transport->frame; - - _loop = f - _r->start; - } - else if ( ! strcmp( picked, "/Fade in to playhead" ) ) - { - nframes_t offset = transport->frame - _r->start; - - if ( offset < length() ) - _fade_in.length = offset; - } - else if ( ! strcmp( picked, "/Fade out to playhead" ) ) - { - nframes_t offset = _r->start + _r->length - transport->frame; - - if ( offset > 0 ) - _fade_out.length = offset; - } - else if ( ! strcmp( picked, "/Remove" ) ) - remove(); - else - FATAL( "Unknown menu choice \"%s\"", picked ); - - redraw(); -} - -#include "FL/test_press.H" -#include "FL/menu_popup.H" - -/** build the context menu for this region */ -Fl_Menu_Button & -Audio_Region::menu ( void ) -{ - static Fl_Menu_Button m( 0, 0, 0, 0, "Region" ); - - Fade::fade_type_e it = _fade_in.type; - Fade::fade_type_e ot = _fade_out.type; - - Fl_Menu_Item items[] = - { - { "Fade", 0, 0, 0, FL_SUBMENU }, - { "In", 0, 0, 0, FL_SUBMENU }, - { "Linear", 0, 0, 0, FL_MENU_RADIO | ( it == Fade::Linear ? FL_MENU_VALUE : 0 ) }, - { "Sigmoid", 0, 0, 0, FL_MENU_RADIO | ( it == Fade::Sigmoid ? FL_MENU_VALUE : 0 ) }, - { "Logarithmic", 0, 0, 0, FL_MENU_RADIO | ( it == Fade::Logarithmic ? FL_MENU_VALUE : 0 ) }, - { "Parabolic", 0, 0, 0, FL_MENU_RADIO | ( it == Fade::Parabolic ? FL_MENU_VALUE : 0 ) }, - { 0 }, - { "Out", 0, 0, 0, FL_SUBMENU }, - { "Linear", 0, 0, 0, FL_MENU_RADIO | ( ot == Fade::Linear ? FL_MENU_VALUE : 0 ) }, - { "Sigmoid", 0, 0, 0, FL_MENU_RADIO | ( ot == Fade::Sigmoid ? FL_MENU_VALUE : 0 ) }, - { "Logarithmic", 0, 0, 0, FL_MENU_RADIO | ( ot == Fade::Logarithmic ? FL_MENU_VALUE : 0 ) }, - { "Parabolic", 0, 0, 0, FL_MENU_RADIO | ( ot == Fade::Parabolic ? FL_MENU_VALUE : 0 ) }, - { 0 }, - { 0 }, - { "Color", 0, 0, 0, inherit_track_color ? FL_MENU_INACTIVE : 0 }, - { "Crop to range", 'c', 0, 0, FL_MENU_DIVIDER }, - { "Split at mouse", 's', 0, 0 }, - { "Gain with mouse vertical drag", 'g', 0, 0 }, - { "Fade in to mouse", FL_F + 3, 0, 0 }, - { "Fade out to mouse", FL_F + 4, 0, 0 }, - { "Loop point to mouse", 'l', 0, 0 }, - { "Clear loop point", 0, 0, 0, 0 == _loop ? FL_MENU_INACTIVE : 0 }, - { "Normalize", 'n', 0, 0 }, - { "Denormalize", FL_SHIFT + 'n', 0, 0, 1.0 == _scale ? FL_MENU_INACTIVE : 0 }, - { "Range from", FL_CTRL + 'r', 0, 0, FL_MENU_DIVIDER }, - { "Trim left to playhead", '{', 0, 0 }, - { "Trim right to playhead", '}', 0, 0 }, - { "Split at playhead", FL_SHIFT + 's', 0, 0 }, - { "Loop point at playhead", FL_SHIFT + 'l', 0, 0 }, - { "Fade in to playhead", FL_F + 3 + FL_SHIFT, 0, 0 }, - { "Fade out to playhead", FL_F + 4 + FL_SHIFT, 0, 0 }, - { "Remove", 0, 0, 0 }, - { 0 }, - }; - - menu_set_callback( items, &Audio_Region::menu_cb, (void*)this ); - - m.copy( items, (void*)this ); - - return m; -} - -/** Draws the curve for a single fade. /X/ and /W/ repersent the - portion of the region covered by this draw, which may or may not - cover the fade in question. */ -void -Audio_Region::draw_fade ( const Fade &fade, Fade::fade_dir_e dir, bool line, int X, int W ) -{ - const int dy = y() + Fl::box_dy( box() ); - const int dh = h() - Fl::box_dh( box() ); - const int height = dh; - const int width = timeline->ts_to_x( fade.length ); - - if ( width < 4 ) - /* too small to draw */ - return; - - int fx; - - if ( dir == Fade::In ) - { - fx = curve_x(); - - if ( fx + width < X || - fx > X + W ) - /* clipped */ - return; - } - else - { - fx = curve_x() + abs_w(); - - if ( fx - width > X + W || - fx < X ) - /* clipped */ - return; - } - - if ( line ) - fl_begin_line(); - else - fl_begin_polygon(); - - fl_vertex( fx, dy ); - fl_vertex( fx, dy + height ); - - { - const double ti = 1.0 / (double)width; - double ts = 0.0; - - const int xi = dir == Fade::In ? 1 : -1; - - for ( int i = 0; i < width; i++, ts += ti, fx += xi ) - fl_vertex( fx, dy + height - ( height * fade.gain( ts ))); - } - - fl_vertex( fx, dy ); - - if ( line ) - fl_end_line(); - else - fl_end_polygon(); -} - -Fl_Color -Audio_Region::actual_box_color ( void ) const -{ - return Audio_Region::inherit_track_color ? sequence()->track()->color() : _box_color; -} - -void -Audio_Region::draw_box( void ) -{ -// fl_push_clip( x(), y(), w(), h() ); - - Fl_Color selection_color = _selection_color; - - Fl_Color color = actual_box_color(); - - color = fl_color_average( color, sequence()->color(), 0.75f ); - - if ( recording() ) - { - color = FL_RED; - } - else if ( ! active_r() ) - { - color = fl_inactive( color ); - selection_color = fl_inactive( selection_color ); - } - - Fl_Boxtype b; - Fl_Color c = selected() ? fl_color_average( color, fl_rgb_color(10,10,10), 0.4f ) : color; - - if ( Audio_Region::show_box ) - { - b = box(); - } - else - { - b = FL_DOWN_FRAME; - } - - fl_draw_box( b, x(), y(), w(), h(), c ); - -// fl_pop_clip(); -} - -void -Audio_Region::peaks_ready_callback ( void *v ) -{ - /* this is called from the peak builder thread */ - - DMESSAGE("Damaging region from peaks ready callback"); - Fl::lock(); - ((Audio_Region*)v)->redraw(); - Fl::unlock(); - Fl::awake(); -} - -bool -Audio_Region::recording ( void ) const -{ - return this == sequence()->track()->capture_region(); -} - -/** Draw (part of) region. X, Y, W and H are the rectangle we're clipped to. */ -void -Audio_Region::draw ( void ) -{ - /* intersect clip with region */ - - int X, Y, W, H; - - fl_clip_box( x(), y(), w(), h(), X, Y, W, H ); - - if ( ! ( W > 0 && H > 0 ) ) - /* no coverage */ - return; - - - if ( start() > timeline->xoffset + timeline->x_to_ts( sequence()->drawable_w() ) || - start() + length() < timeline->xoffset ) - /* not in viewport */ - return; - - fl_push_clip( X, Y, W, H ); - - /* overdraw a little to avoid artifacts when scrolling */ - W += 2; - -// Fl_Color c = selected() ? fl_invert_color( _color ) : _color; - - if ( sequence()->damage() & FL_DAMAGE_USER1 && - recording() ) - { - /* TODO: limit drawing. */ - } - - /* calculate waveform offset due to scrolling */ - /* offset is the number of frames into the waveform the value of X translates to */ - - /* this is the timestamp at where we'll actually be drawing. */ - nframes_t x_frame = timeline->x_to_ts( - timeline->ts_to_x( timeline->xoffset ) + ( X - _sequence->drawable_x() ) ); - - nframes_t offset = 0; - - if ( x_frame > start() ) - offset = x_frame - start(); - - nframes_t fo = 0; - nframes_t ostart = 0, oend = 0; - const int total_peaks_needed = W; - nframes_t total_frames_needed = timeline->x_to_ts( total_peaks_needed ); - - { - /* Fl_Color c = fl_color_average( FL_DARK1, */ - /* Audio_Region::inherit_track_color ? sequence()->track()->color() : _box_color, */ - /* 0.75f ); */ - - fl_color( fl_color_add_alpha( FL_DARK1, 127 ) ); - - draw_fade( _fade_in, Fade::In, false, X, W ); - draw_fade( _fade_out, Fade::Out, false, X, W ); - } - - int channels = 0; - int peaks = 0; - Peak *pbuf = NULL; - - - Fl_Color fg_color = FL_FOREGROUND_COLOR; - Fl_Color bg_color = FL_BACKGROUND_COLOR; - - if ( !active_r() ) - { - fg_color = fl_inactive(fg_color); - bg_color = fl_inactive(bg_color); - } - - do { - - nframes_t loop_frames_needed = _loop ? _loop : total_frames_needed; - int loop_peaks_needed = timeline->ts_to_x( loop_frames_needed ); - - nframes_t start = _r->offset; - - if ( ! fo ) /* first loop... */ - { - if ( _loop ) - { -// start += offset; - start += offset % _loop; - loop_frames_needed -= offset % loop_frames_needed; - loop_peaks_needed = timeline->ts_to_x( loop_frames_needed ); - } - else - start += offset; - - assert( loop_peaks_needed >= 0 ); - } - - if ( fo + loop_frames_needed > total_frames_needed ) - { - loop_frames_needed -= ( fo + loop_frames_needed ) - total_frames_needed; - loop_peaks_needed = timeline->ts_to_x( loop_frames_needed ); - } - - if ( !loop_peaks_needed ) - break; - - const nframes_t end = start + loop_frames_needed; - - if ( start != ostart || end != oend ) - { - _clip->peaks()->peakfile_ready(); - - if ( _clip->read_peaks( timeline->fpp(), - start, - end, - &peaks, &pbuf, &channels ) ) - { - Waveform::scale( pbuf, peaks * channels, _scale ); - - ostart = start; - oend = end; - } - - if ( _clip->peaks()->needs_more_peaks() && ! transport->rolling ) - { - /* maybe create a thread to make the peaks */ - /* this function will just return if there's nothing to do. */ - _clip->peaks()->make_peaks_asynchronously( Audio_Region::peaks_ready_callback, this ); - } - } - else - { -// DMESSAGE( "using cached peaks" ); - } - - if ( peaks && pbuf ) - { - int ch = (h() - Fl::box_dh( box() )) / channels; - int xo = timeline->ts_to_x( fo ); - - for ( int i = 0; i < channels; ++i ) - { - Waveform::draw( X + xo, - (y() + Fl::box_dy( box() )) + (i * ch), - loop_peaks_needed, - ch, - pbuf + i, peaks, channels, - fg_color, bg_color ); - } - } - else - ; -// WARNING( "Pbuf == %p, peaks = %lu", pbuf, (unsigned long)peaks ); - - - - if ( _loop ) - { - const int lx = sequence()->drawable_x() + timeline->ts_to_x( ( this->start() + _loop ) - timeline->xoffset ); - - if ( lx < X + W ) - { - fl_color( fl_darker( FL_CYAN ) ); - fl_line( lx, y(), lx, y() + h() ); - fl_line( lx - 3, y(), lx + 3, y() ); - fl_line( lx - 3, y() + h() - 1, lx + 3, y() + h() - 1 ); - - } - } - - if ( peaks < loop_peaks_needed ) - { -// DMESSAGE( "Peak read came up %lu peaks short", (unsigned long)loop_peaks_needed - peaks ); - } - - fo += loop_frames_needed; - - } - while ( _loop && fo < total_frames_needed ); - - - - if ( _adjusting_gain > 0.0f ) - { - fl_color( fl_color_add_alpha( FL_DARK1, 127 ) ); - - fl_rectf( X, ( y() + h() ) - ( h() * ( _scale * 0.25 ) ), X + W, y() + h() ); - - fl_line_style( FL_DASH, 1 ); - - fl_color( fl_color_add_alpha( FL_GREEN, 200 ) ); - - float j = 5; - - for ( int i = y() + h(); i > y(); i -= j, j *= 1.2 ) - { - fl_line( X, i, X + W, i ); - } - - fl_line_style( FL_SOLID, 0 ); - } - - if ( selected() ) - draw_selection_frame( line_x() + Fl::box_dx(box()), - y() + Fl::box_dy(box()), - abs_w() - Fl::box_dw(box()), - h() - Fl::box_dh(box()), - selection_color() ); - -/* if ( current() ) */ -/* { */ -/* /\* draw length bubble *\/ */ - -/* char pat[40]; */ - -/* snprintf( pat, sizeof( pat ), "%dm:%.1fs", (int)(length() / timeline->sample_rate()) / 60, (double)length() / timeline->sample_rate() ); */ - -/* draw_label( pat, (Fl_Align)(FL_ALIGN_INSIDE | FL_ALIGN_CENTER), FL_GREEN ); */ -/* } */ - - fl_pop_clip(); - -} - -void -Audio_Region::draw_label ( void ) -{ - if ( _clip->dummy() ) - { - char pat[256]; - snprintf( pat, sizeof( pat ), "Missing Source!: %s", _clip->name() ); - draw_label( pat, align() ); - } - else - draw_label( _clip->name(), align() ); -} - -/** split region at absolute frame /where/ */ -void -Audio_Region::split ( nframes_t where ) -{ - block_start(); - - nframes_t old_fade_in = _fade_in.length; - - _fade_in.length = 256; - - Audio_Region *copy = new Audio_Region( *this ); - - { - Logger _log( copy ); - - _fade_in.length = old_fade_in; - _fade_out.length = 256; - - Sequence_Region::split( copy, where ); - } - - log_end(); - - block_end(); - - log_start(); -} - -int -Audio_Region::handle ( int m ) -{ - static int ox; - - static bool copied = false; - static nframes_t os; - - int X = Fl::event_x(); - int Y = Fl::event_y(); - - Logger _log( this ); - - if ( ! Fl::pushed() ) - // selecting an item from the context menu can leave this value set. - Sequence_Widget::pushed( NULL ); - - switch ( m ) - { - case FL_FOCUS: - case FL_UNFOCUS: - return 1; - case FL_KEYUP: - if ( _adjusting_gain > 0 ) - { - _adjusting_gain = 0; - redraw(); - return 1; - } - break; - case FL_KEYBOARD: - if ( Fl::event_key() == 'g' ) - { - if ( _adjusting_gain <= 0 ) - { - _adjusting_gain = _scale; - redraw(); - } - return 1; - } - return menu().test_shortcut() != 0; - case FL_ENTER: - return Sequence_Region::handle( m ); - case FL_LEAVE: - if ( _adjusting_gain > 0 ) - { - _adjusting_gain = 0; - redraw(); - } - return Sequence_Region::handle( m ); - case FL_PUSH: - { - if ( _adjusting_gain > 0.0f ) - { - _adjusting_gain = _scale; - return 1; - } - - /* splitting */ - if ( test_press( FL_BUTTON2 | FL_SHIFT ) ) - { - /* split */ - if ( ! copied ) - { - split( timeline->x_to_offset( X ) ); - } - - return 0; - } - else - { - ox = x() - X; - /* for panning */ - os = _r->offset; - - if ( test_press( FL_BUTTON2 | FL_CTRL ) ) - { - normalize(); - return 1; - } - else if ( test_press( FL_BUTTON3 ) ) - { - /* context menu */ - menu_popup( &menu() ); - - return 1; - } - else - return Sequence_Region::handle( m ); - } - - break; - } - case FL_RELEASE: - { - Sequence_Region::handle( m ); - - copied = false; - - return 1; - } - case FL_DRAG: - - if ( Fl::event_is_click() ) - return 1; - - if ( ! _drag ) - { - begin_drag( Drag( X, Y, x_to_offset( X ) ) ); - _log.hold(); - } - - if ( _adjusting_gain ) - { - int d = _drag->y - Y; - - _scale = _adjusting_gain + ( 0.01f * d ); - - if ( _scale < 0.01f ) - _scale = 0.01f; - - redraw(); - return 1; - } - - if ( test_press( FL_BUTTON1 | FL_SHIFT | FL_CTRL ) ) - { - /* panning */ - int d = (ox + X) - x(); - - if ( d < 0 ) - _r->offset = os + timeline->x_to_ts( 0 - d ); - else - { - if ( os < timeline->x_to_ts( d ) ) - _r->offset = 0; - else - _r->offset = os - timeline->x_to_ts( d ); - } - - redraw(); - return 1; - } - - return Sequence_Region::handle( m ); - - default: - return Sequence_Region::handle( m ); - break; - } - - return 0; -} - - - -/**********/ -/* Public */ -/**********/ - -/** return the name of the audio source this region represents */ -const char * -Audio_Region::source_name ( void ) const -{ - return _clip->name(); -} - -/** set the amplitude scaling for this region from the normalization - * factor for the range of samples represented by this region */ -void -Audio_Region::normalize ( void ) -{ - int peaks, channels; - Peak *pbuf; - - const nframes_t npeaks = _loop ? _loop : length(); - - - if ( _clip->read_peaks( npeaks, offset(), offset() + npeaks, &peaks, &pbuf, &channels ) && - peaks ) - { - _scale = 1000.0f; - - for ( int i = 0; i < channels; i++ ) - { - float f = (pbuf + i)->normalization_factor(); - if ( f < _scale ) - _scale = f; - } - } - - /* FIXME: wrong place for this? */ - sequence()->handle_widget_change( start(), length() ); - redraw(); -} diff --git a/timeline/src/Audio_Region.H b/timeline/src/Audio_Region.H deleted file mode 100644 index fb142d8..0000000 --- a/timeline/src/Audio_Region.H +++ /dev/null @@ -1,176 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include "Timeline.H" -#include "Sequence_Region.H" - -class Audio_File; - -class Fl_Menu_; -class Fl_Menu_Button; - -class Audio_Region : public Sequence_Region -{ - - /* not permitted */ - Audio_Region & operator = ( const Audio_Region &rhs ); - - static void peaks_ready_callback ( void *v ); - -public: - - static bool inherit_track_color; - static bool show_box; - - struct Fade - { - enum fade_type_e { Linear = 0, Sigmoid, Logarithmic, Parabolic }; - enum fade_dir_e { In, Out }; - - fade_type_e type; - nframes_t length; - - Fade ( ) - { - type = Linear; - length = 0; - } - - bool - operator< ( const Fade &rhs ) const - { - return length < rhs.length; - } - - double increment ( void ) const - { - return 1.0f / length; - } - - /** Return gain for frame /index/ of /nframes/ on a gain curve - * of type /type/.*/ - /* FIXME: calling a function per sample is bad, switching on - * type mid fade is bad. */ - inline float - gain ( const float fi ) const - { - switch ( type ) - { - case Linear: - return fi; - case Sigmoid: - return (1.0f - cosf( fi * M_PI )) * 0.5f; - case Logarithmic: - return powf( 0.1f, (1.0f - fi) * 3.0f ); - case Parabolic: - return 1.0f - (1.0f - fi) * (1.0f - fi); - default: - return 1.0f; - } - } - - void apply ( sample_t *buf, fade_dir_e dir, nframes_t start, nframes_t nframes ) const; - void apply_interleaved ( sample_t *buf, fade_dir_e dir, nframes_t start, nframes_t nframes, int channels ) const; - - }; - -/* struct Fade_In : public Fade; */ -/* struct Fade_Out : public Fade; */ - -private: - - Audio_File *_clip; /* clip this region represents */ - - float _adjusting_gain; - float _scale; /* amplitude adjustment */ - - Fade _fade_in; - Fade _fade_out; - - nframes_t _loop; /* loop point */ - - friend class Track; /* for _clip */ - - Fl_Menu_Button & menu ( void ); - - static void menu_cb ( Fl_Widget *w, void *v ); - void menu_cb ( const Fl_Menu_ *m ); - - void draw_fade ( const Fade &fade, Fade::fade_dir_e dir, bool filled, int X, int W ); - -protected: - - virtual void get ( Log_Entry &e ) const; - virtual void set ( Log_Entry &e ); - - virtual void draw_label ( const char *label, Fl_Align align, Fl_Color color=(Fl_Color)0, int xo=0, int yo=0 ) - { - Sequence_Widget::draw_label( label, align ); - } - virtual void draw_label ( void ); - - int handle ( int m ); - void draw_box ( void ); - void draw ( void ); - void resize ( void ); - -public: - - LOG_CREATE_FUNC( Audio_Region ); - - SEQUENCE_WIDGET_CLONE_FUNC( Audio_Region ); - - static Fl_Boxtype _box; - static Fl_Color _selection_color; - Fl_Color selection_color ( void ) const { return _selection_color; } - void selection_color ( Fl_Color v ) { _selection_color = v; } - - void init ( void ); - - Audio_Region ( ) - { - init(); - } - - bool current ( void ) const { return this == belowmouse(); } - - const char * source_name ( void ) const; - - Audio_Region ( const Audio_Region & rhs ); - Audio_Region ( Audio_File *c ); - Audio_Region ( Audio_File *c, Sequence *t, nframes_t o ); - ~Audio_Region ( ); - - Fl_Boxtype box ( void ) const { return Audio_Region::_box; } - Fl_Align align ( void ) const { return (Fl_Align)(FL_ALIGN_LEFT | FL_ALIGN_BOTTOM | FL_ALIGN_INSIDE | FL_ALIGN_CLIP ); } - - void normalize ( void ); - void split ( nframes_t where ); - bool recording ( void ) const; - - virtual Fl_Color actual_box_color ( void ) const; - /* Engine */ - nframes_t read ( sample_t *buf, bool buf_is_empty, nframes_t pos, nframes_t nframes, int out_channels ) const; - nframes_t write ( nframes_t nframes ); - void prepare ( void ); - bool finalize ( nframes_t frame ); - -}; diff --git a/timeline/src/Audio_Sequence.C b/timeline/src/Audio_Sequence.C deleted file mode 100644 index f8dddd5..0000000 --- a/timeline/src/Audio_Sequence.C +++ /dev/null @@ -1,366 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -/* An Audio_Sequence is a sequence of Audio_Regions. Takes and 'track - * contents' consist of these objects */ - -#include "debug.h" - -#include -#include -#include -#include "Audio_Sequence.H" -#include "Waveform.H" - -#include -using namespace std; - -#include "Track.H" - -#include "Engine/Audio_File.H" // for ::from_file() -#include "Transport.H" // for locate() -#include "Track_Header.H" -#include - -#include // for symlink() - -#include "string_util.h" - - - -const char * -Audio_Sequence::name ( void ) const -{ - return Sequence::name(); -} - -void -Audio_Sequence::name ( const char *s ) -{ - Sequence::name( s ); - header()->name_input->value( s ); -} - -void -Audio_Sequence::cb_button ( Fl_Widget *w, void *v ) -{ - ((Audio_Sequence*)v)->cb_button( w ); -} - -void -Audio_Sequence::cb_button ( Fl_Widget *w ) -{ - Logger log(this); - - if ( w == header()->name_input ) - { - Sequence::name( header()->name_input->value() ); - } - else if ( w == header()->delete_button ) - { - track()->remove( this ); - } - else if ( w == header()->promote_button ) - { - track()->sequence( this ); - } -} - -void -Audio_Sequence::init ( void ) -{ - labeltype( FL_NO_LABEL ); - { - Audio_Sequence_Header *o = new Audio_Sequence_Header( x(), y(), Track::width(), 52 ); - - o->name_input->callback( cb_button, this ); - o->delete_button->callback( cb_button, this ); - o->promote_button->callback( cb_button, this ); - - Fl_Group::add( o ); - } - - resizable(0); -} - -Audio_Sequence::Audio_Sequence ( Track *track, const char *name ) : Sequence( track ) -{ - _track = track; - - init(); - - if ( name ) - Audio_Sequence::name( name ); - else - { - struct timeval tv; - - gettimeofday( &tv, NULL ); - - time_t t = tv.tv_sec; - - char s[40]; - - ctime_r( &t, s ); - - s[ strlen( s ) - 1 ] = 0; - - Audio_Sequence::name( s ); - } - - if ( track ) - track->add( this ); - - log_create(); -} - - -Audio_Sequence::~Audio_Sequence ( ) -{ - Loggable::block_start(); - - clear(); - - log_destroy(); - - track()->remove( this ); - - Loggable::block_end(); -} - - - -/** return a pointer to the current capture region for this sequence */ -const Audio_Region * -Audio_Sequence::capture_region ( void ) const -{ - return track()->capture_region(); -} - -void -Audio_Sequence::get ( Log_Entry &e ) const -{ - e.add( ":track", _track ); - e.add( ":name", name() ); -} - -void -Audio_Sequence::set ( Log_Entry &e ) -{ - for ( int i = 0; i < e.size(); ++i ) - { - const char *s, *v; - - e.get( i, &s, &v ); - - if ( ! strcmp( ":track", s ) ) - { - int i; - sscanf( v, "%X", &i ); - Track *t = (Track*)Loggable::find( i ); - - assert( t ); - - t->sequence( this ); - } - else if ( ! strcmp( ":name", s ) ) - name( v ); - } -} - - -void -Audio_Sequence::handle_widget_change ( nframes_t start, nframes_t length ) -{ - Sequence::handle_widget_change( start, length ); - - /* a region has changed. we may need to rebuffer... */ - - /* trigger rebuffer */ - /* FIXME: we really only need to rebuffer *this* sequence! */ - /* FIXME: how does this fit into the selection? */ - - if ( transport->rolling && ( start > transport->frame || start + length > transport->frame ) ) - transport->locate( transport->frame ); -} - -void -Audio_Sequence::draw ( void ) -{ - - Sequence::draw(); - - int xfades = 0; - - fl_push_clip( drawable_x(), y(), drawable_w(), h() ); - - /* draw crossfades */ - for ( list ::const_iterator r = _widgets.begin(); r != _widgets.end(); r++ ) - { - Sequence_Widget *o = overlaps( *r ); - - if ( o ) - { - if ( *o <= **r ) - { -/* if ( o->x() == (*r)->x() && o->w() == (*r)->w() ) */ -/* printf( "complete superposition\n" ); */ - - if ( o->contains( *r ) ) - /* completely inside */ - continue; - - ++xfades; - - Rectangle b( (*r)->x(), - o->y(), - (o->x() + o->w()) - (*r)->x(), - o->h() ); - - if ( b.w > 0 ) - { - cairo_t *cc = Fl::cairo_cc(); - - cairo_set_operator( cc, CAIRO_OPERATOR_HSL_COLOR ); - cairo_set_source_rgba( cc, 1, 1, 0, 0.80 ); - cairo_rectangle( cc, b.x, b.y, b.w, b.h ); - - cairo_fill( cc ); - - cairo_set_operator( cc, CAIRO_OPERATOR_OVER ); - } - } - } - - } - - fl_pop_clip(); -} - -int -Audio_Sequence::handle_paste ( const char *text ) -{ - int X = Fl::event_x(); - - if ( ! strcmp( text, "Audio_Region" ) ) - return 1; - - char *file; - - if ( ! sscanf( text, "file://%m[^\r\n]\n", &file ) ) - { - WARNING( "invalid drop \"%s\"\n", text ); - return 0; - } - - unescape_url( file ); - - printf( "pasted file \"%s\"\n", file ); - - fl_cursor( FL_CURSOR_WAIT ); - Fl::check(); - - char *t = strdup( file ); - - char *filebase = strdup( basename( t ) ); - - free( t ); - - char *s = 0; - - int i = 0; - - for ( ; ; i++ ) - { - if ( i ) - { - free( s ); - asprintf( &s, "sources/%s-%i", filebase, i ); - } - else - asprintf( &s, "sources/%s", filebase ); - - DMESSAGE( "Symlink %s -> %s", file, s ); - if ( symlink( file, s ) == 0 ) - break; - - if ( errno != EEXIST ) - { - WARNING( "Failed to create symlink: %s", strerror( errno ) ); - break; - } - } - - Audio_File *c = Audio_File::from_file( basename( s ) ); - - free( s ); - free( filebase ); - - fl_cursor( FL_CURSOR_DEFAULT ); - Fl::check(); - - if ( ! c || c->dummy() ) - { - fl_alert( "Could not import file \"%s\"", file ); - free( file ); - - if ( c ) - { - delete c; - c = NULL; - } - - return 0; - } - - free( file ); - - Audio_Region *r = - new Audio_Region( c, this, timeline->xoffset + timeline->x_to_ts( X - drawable_x() ) ); - - r->log_create(); - - redraw(); - - return 1; - -} - -/** event handler that supports DND of audio clips */ -int -Audio_Sequence::handle ( int m ) -{ - switch ( m ) - { - case FL_PASTE: - { - DMESSAGE("Got sequence paste"); - - if ( ! Fl::event_inside( this ) ) - { - DMESSAGE("ignoring"); - return 0; - } - - return handle_paste(Fl::event_text()); - } - default: - return Sequence::handle( m ); - } -} diff --git a/timeline/src/Audio_Sequence.H b/timeline/src/Audio_Sequence.H deleted file mode 100644 index 756144a..0000000 --- a/timeline/src/Audio_Sequence.H +++ /dev/null @@ -1,88 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - - -#pragma once - -#include "Sequence.H" -#include "Audio_Region.H" - -#include -class Audio_Sequence_Header; - -class Audio_Sequence : public Sequence -{ - -protected: - - void get ( Log_Entry &e ) const; - - void set ( Log_Entry &e ); - - Audio_Sequence ( ) : Sequence( 0 ) - { - init(); - } - - void handle_widget_change ( nframes_t start, nframes_t length ); - - void draw ( void ); - - static void cb_button ( Fl_Widget *w, void *v ); - void cb_button ( Fl_Widget *w ); - - void init ( void ); - -public: - - int handle_paste ( const char *text ); - - int handle ( int m ); - - LOG_CREATE_FUNC( Audio_Sequence ); - - Audio_Sequence_Header * header ( void ) { return (Audio_Sequence_Header*)child(0); } - - Audio_Sequence ( Track *track, const char *name = 0 ); - ~Audio_Sequence ( ); - - Fl_Cursor cursor ( void ) const { return FL_CURSOR_DEFAULT; } - - virtual Sequence * clone_empty ( void ) - { - Audio_Sequence *t = new Audio_Sequence( track() ); - - return t; - } - - virtual Sequence * clone_empty ( const char *name ) - { - Audio_Sequence *t = new Audio_Sequence( track(), name ); - - return t; - } - - virtual void name ( const char *s ); - virtual const char *name ( void ) const; - - const Audio_Region *capture_region ( void ) const; - - nframes_t play ( sample_t *buf, nframes_t frame, nframes_t nframes, int channels ); - -}; diff --git a/timeline/src/Clock.H b/timeline/src/Clock.H deleted file mode 100644 index 948b4c9..0000000 --- a/timeline/src/Clock.H +++ /dev/null @@ -1,243 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - - -/* Digital clock widget to show points on the timeline. May be -switched between Bar Beat Tick and Wallclock displays */ - -#include -#include -#include - -#include "Timeline.H" -#include "types.h" - -const float CLOCK_UPDATE_FREQ = 0.08f; - -/* TODO: frames per second? */ - -#include "Sequence_Widget.H" - -class Clock : public Fl_Widget -{ - /* not permitted */ - Clock ( const Clock &rhs ); - Clock & operator = ( const Clock &rhs ); - - nframes_t _when; - nframes_t *_v; - - static void - update_cb ( void *v ) - { - ((Clock*)v)->update_cb(); - } - - void - update_cb ( void ) - { - Fl::repeat_timeout( CLOCK_UPDATE_FREQ, update_cb, this ); - - set( *_v ); - } - - -public: - - enum { HMS = 0, BBT, Timecode, Sample, TYPE_MAX }; - - static void - frame_to_Timecode ( char *dst, int n, nframes_t frame ) - { - float S = (double)frame / timeline->sample_rate(); - - int M = S / 60; S -= M * 60; - int H = M / 60; M -= H * 60; - int HS = ((int)(S * 100)) - (((int)S) * 100); - - snprintf( dst, n, "%02d:%02d:%02.0f:%02d", H, M, S, HS ); - } - - static void - frame_to_HMS ( char *dst, int n, nframes_t frame ) - { - float S = (double)frame / timeline->sample_rate(); - - int M = S / 60; S -= M * 60; - int H = M / 60; M -= H * 60; - - snprintf( dst, n, "%02d:%02d:%06.3f", H, M, S ); - } - - static void - frame_to_Sample ( char *dst, int n, nframes_t frame ) - { - snprintf( dst, n, "%lu", (unsigned long)frame ); - } - - static void - frame_to_BBT ( char *dst, int n, nframes_t frame ) - { - struct BBT bbt = timeline->solve_tempomap( frame ).bbt; - - snprintf( dst, n, "%03d|%1d|%04d", bbt.bar + 1, bbt.beat + 1, bbt.tick ); - } - - - - Clock ( int X, int Y, int W, int H, const char *L=0 ) - : Fl_Widget( X, Y, W, H, L ) - { - _when = 0; - _v = 0; - box( FL_BORDER_BOX ); - type( HMS ); - - /* force size */ - size( 170, 40 ); - } - - ~Clock ( ) - { - Fl::remove_timeout( update_cb, this ); - } - - void run ( nframes_t *v ) - { - _v = v; - - Fl::add_timeout( CLOCK_UPDATE_FREQ, update_cb, this ); - } - - void set ( nframes_t frame ) - { - if ( _when != frame ) - { - _when = frame; - redraw(); - } - } - - void draw ( void ) - { - draw_box(); - - fl_push_clip( x(), y(), w(), h() ); - - char buf[15]; - *buf = '\0'; - - switch ( type() ) - { - case HMS: - frame_to_HMS( buf, sizeof( buf ), _when ); - break; - case BBT: - frame_to_BBT( buf, sizeof( buf ), _when ); - break; - case Timecode: - frame_to_Timecode( buf, sizeof( buf ), _when ); - break; - case Sample: - frame_to_Sample( buf, sizeof( buf ), _when ); - break; - default: - printf( "error: invalid clock type\n" ); - } - - - fl_font( FL_COURIER_BOLD, 24 ); - - Fl_Color c = fl_color_average( FL_WHITE, FL_GRAY, 0.60 ); - - fl_color( c ); - - const int dx = x() + Fl::box_dx( box() ); - const int dy = y() + Fl::box_dy( box() ); - const int dw = w() - Fl::box_dw( box() ); - const int dh = h() - Fl::box_dh( box() ); - - fl_draw( buf, dx, dy, dw, dh - 9, FL_ALIGN_CENTER ); - - for ( int i = strlen( buf ); i--; ) - if ( isdigit( buf[ i ] ) ) - buf[ i ] = ' '; - - fl_color( fl_darker( c ) ); - fl_draw( buf, dx, dy, dw, dh - 9, FL_ALIGN_CENTER ); - - fl_font( FL_HELVETICA, 9 ); - - const char *types[] = { "HMS", "BBT", "Timecode", "Sample" }; - - fl_color( fl_color_average( FL_WHITE, FL_GRAY, 0.50 ) ); - - switch ( type() ) - { - case Timecode: - snprintf( buf, sizeof( buf ), "%.1f", 30.0 ); - fl_draw( buf, dx, dy, dw, dh, FL_ALIGN_BOTTOM ); - break; - case Sample: - snprintf( buf, sizeof( buf ), "%lu", (unsigned long)timeline->sample_rate() ); - fl_draw( buf, dx, dy, dw, dh, FL_ALIGN_BOTTOM ); - break; - case BBT: - { - /* FIXME: find a way to avoid doing this twice */ - position_info pos = timeline->solve_tempomap( _when ); - snprintf( buf, sizeof( buf ), "%d/%d %5.1f", pos.beats_per_bar, pos.beat_type, pos.tempo ); - fl_draw( buf, dx, dy, dw, dh, FL_ALIGN_BOTTOM ); - } - default: - break; - } - - const char *s = types[ type() ]; - - fl_color( FL_RED ); - - fl_draw( s, dx + 4, dy, dw, dh, (Fl_Align)( FL_ALIGN_LEFT | FL_ALIGN_BOTTOM ) ); - - if ( label() ) - fl_draw( label(), dx, dy, dw, dh, (Fl_Align)( FL_ALIGN_RIGHT | FL_ALIGN_BOTTOM ) ); - - fl_pop_clip(); - } - - - int handle ( int m ) - { - if ( m == FL_PUSH ) - { - int t = type() + 1; - - if ( t >= TYPE_MAX ) - t = 0; - - type( t ); - - redraw(); - - return 0; - } - - return 0; - } -}; diff --git a/timeline/src/Control_Point.C b/timeline/src/Control_Point.C deleted file mode 100644 index c13f413..0000000 --- a/timeline/src/Control_Point.C +++ /dev/null @@ -1,135 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include - -#include "Control_Point.H" - - - -Control_Point::Control_Point ( Sequence *t, nframes_t when, float y ) -{ - _sequence = NULL; - _y = y; - _r->start = when; - _box_color = FL_WHITE; - - t->add( this ); - - log_create(); -} - -Control_Point::Control_Point ( const Control_Point &rhs ) : Sequence_Point( rhs ) -{ - _y = rhs._y; - - log_create(); -} - -void -Control_Point::get ( Log_Entry &e ) const -{ - Sequence_Point::get( e ); - - e.add( ":y", _y ); -} - -void -Control_Point::set ( Log_Entry &e ) -{ - for ( int i = 0; i < e.size(); ++i ) - { - const char *s, *v; - - e.get( i, &s, &v ); - - if ( ! strcmp( s, ":y" ) ) - _y = atof( v ); - - redraw(); - - // _make_label(); - } - - Sequence_Point::set( e ); -} - -void -Control_Point::draw_box ( void ) -{ - if ( selected() ) - fl_color( selection_color() ); - else - fl_color( box_color() ); - - fl_pie( x() - ( abs_w() / 2 ), y() - ( h() / 2 ), abs_w(), h(), 0, 360 ); - - if ( this == Sequence_Widget::belowmouse() || - this == Sequence_Widget::pushed() ) - { - char val[10]; - snprintf( val, sizeof( val ), "%+.2f", 1.0 - _y * 2 ); - - Fl_Align a = 0; - - if ( x() < _sequence->x() + ( _sequence->w() / 2 ) ) - a |= FL_ALIGN_RIGHT; - else - a |= FL_ALIGN_LEFT; - - if ( y() < _sequence->y() + ( _sequence->h() / 2 ) ) - a |= FL_ALIGN_BOTTOM; - else - a |= FL_ALIGN_TOP; - - draw_label( val, a, FL_FOREGROUND_COLOR ); - } -} - - -int -Control_Point::handle ( int m ) -{ - int r = Sequence_Widget::handle( m ); - - switch ( m ) - { - case FL_RELEASE: - redraw(); - break; - case FL_DRAG: - { - if ( nselected() > 1 ) - // only allow horizontal movement when part of a selection... - break; - - int Y = Fl::event_y() - parent()->y(); - - if ( Y >= 0 && Y < parent()->h() ) - { - _y = (float)Y / parent()->h(); - redraw(); - } - - break; - } - } - - return r; -} diff --git a/timeline/src/Control_Point.H b/timeline/src/Control_Point.H deleted file mode 100644 index 171be96..0000000 --- a/timeline/src/Control_Point.H +++ /dev/null @@ -1,68 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - - -#pragma once - -#include "Sequence_Point.H" - -class Control_Point : public Sequence_Point -{ - float _y; - -protected: - - Control_Point ( ) - { - _box_color = FL_WHITE; - } - - virtual void get ( Log_Entry &e ) const; - virtual void set ( Log_Entry &e ); - - Control_Point ( const Control_Point &rhs ); - -public: - - - /* for loggable */ - LOG_CREATE_FUNC( Control_Point ); - SEQUENCE_WIDGET_CLONE_FUNC( Control_Point ); - - Control_Point ( Sequence *t, nframes_t when, float y ); - - ~Control_Point ( ) - { - log_destroy(); - } - - float control ( void ) const { return _y; } - void control ( float v ) { _y = v; } - /* only for playback thread */ - nframes_t when ( void ) const { return _range.start; } - - long abs_w ( void ) const { return 8; } - - int y ( void ) const { return parent()->y() + ((float)parent()->h() * _y); } - int h ( void ) const { return 8; } - - virtual void draw_box ( void ); - virtual int handle ( int m ); - -}; diff --git a/timeline/src/Control_Sequence.C b/timeline/src/Control_Sequence.C deleted file mode 100644 index 503052e..0000000 --- a/timeline/src/Control_Sequence.C +++ /dev/null @@ -1,809 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "const.h" -#include "debug.h" - -#include -#include - -#include "Control_Sequence.H" -#include "Track.H" - -#include "Engine/Engine.H" // for lock() - -#include "Track_Header.H" - -#include -using std::list; - -#include "Transport.H" - -#include "OSC/Endpoint.H" - -#include "string_util.h" - -#include "FL/event_name.H" -#include "FL/test_press.H" -#include -#include "FL/menu_popup.H" - - - -#define DAMAGE_SEQUENCE FL_DAMAGE_USER1 -#define DAMAGE_HEADER FL_DAMAGE_USER2 - -bool Control_Sequence::draw_with_grid = true; -bool Control_Sequence::draw_with_polygon = true; -Fl_Widget * Control_Sequence::_highlighted = 0; - -Control_Sequence::Control_Sequence ( ) : Sequence( 0 ) -{ - init(); -} - - - -Control_Sequence::Control_Sequence ( Track *track, const char *name ) : Sequence( 0 ) -{ - init(); - - _track = track; - - this->name( name ); - - mode( OSC ); - - if ( track ) - track->add( this ); - - log_create(); -} - - -Control_Sequence::~Control_Sequence ( ) -{ - Loggable::block_start(); - - clear(); - - log_destroy(); - - track()->remove( this ); - - if ( _output ) - { - _output->shutdown(); - - delete _output; - - _output = NULL; - } - - if ( _osc_output() ) - { - OSC::Signal *t = _osc_output(); - - _osc_output( NULL ); - - delete t; - } - - for ( list::iterator i = _persistent_osc_connections.begin(); - i != _persistent_osc_connections.end(); - ++i ) - { - free( *i ); - } - - _persistent_osc_connections.clear(); - - Loggable::block_end(); -} - -const char * -Control_Sequence::name ( void ) const -{ - return Sequence::name(); -} - -void -Control_Sequence::name ( const char *s ) -{ - char *n = track()->get_unique_control_name( s ); - - Sequence::name( n ); - header()->name_input->value( n ); - - if ( mode() == CV ) - update_port_name(); - else - update_osc_path(); - - redraw(); -} - -void -Control_Sequence::update_osc_path ( void ) -{ - char *path; - asprintf( &path, "/track/%s/%s", track()->name(), name() ); - - char *s = escape_url( path ); - - free( path ); - - path = s; - - if ( !_osc_output() ) - { - OSC::Signal *t = timeline->osc->add_signal( path, OSC::Signal::Output, 0, 1, 0, NULL, NULL ); - - _osc_output( t ); - } - else - { - _osc_output()->rename( path ); - } - - free(path); -} - -void -Control_Sequence::update_port_name ( void ) -{ - bool needs_activation = false; - - char s[512]; - snprintf( s, sizeof(s), "%s-cv", name() ); - - if ( ! _output ) - { - _output = new JACK::Port( engine, track()->name(), s, JACK::Port::Output, JACK::Port::CV ); - _output->terminal( true ); - needs_activation = true; - } - - if ( name() ) - { - _output->trackname( track()->name() ); - _output->name( s ); - _output->rename(); - } - - if ( needs_activation ) - { - if ( ! _output->activate() ) - { - fl_alert( "Could not create JACK port for control output on track \"%s\"", track()->name() ); - delete _output; - _output = NULL; - } - } -} - -void -Control_Sequence::cb_button ( Fl_Widget *w, void *v ) -{ - ((Control_Sequence*)v)->cb_button( w ); -} - -void -Control_Sequence::cb_button ( Fl_Widget *w ) -{ - Logger log(this); - - if ( w == header()->name_input ) - { - name( header()->name_input->value() ); - } - else if ( w == header()->delete_button ) - { - Fl::delete_widget( this ); - } - else if ( w == header()->menu_button ) - { - menu_popup( &menu(), header()->menu_button->x(), header()->menu_button->y() ); - } - /* else if ( w == header()->promote_button ) */ - /* { */ - /* track()->sequence( this ); */ - /* } */ -} - -void -Control_Sequence::init ( void ) -{ - timeline->osc->peer_signal_notification_callback( &Control_Sequence::peer_callback, NULL ); - - labeltype( FL_NO_LABEL ); - { - Control_Sequence_Header *o = new Control_Sequence_Header( x(), y(), Track::width(), 52 ); - - o->name_input->callback( cb_button, this ); - o->delete_button->callback( cb_button, this ); - o->menu_button->callback( cb_button, this ); - /* o->promote_button->callback( cb_button, this ); */ - Fl_Group::add( o ); - } - resizable(0); - - box( FL_NO_BOX ); - - _track = NULL; - _output = NULL; - __osc_output = NULL; - _mode = (Mode)-1; - - interpolation( Linear ); -} - - - -void -Control_Sequence::get ( Log_Entry &e ) const -{ - e.add( ":track", _track ); - e.add( ":name", name() ); - e.add( ":color", color() ); -} - -void -Control_Sequence::get_unjournaled ( Log_Entry &e ) const -{ - e.add( ":interpolation", _interpolation ); - - /* if ( _osc_output() && _osc_output()->connected() ) */ - /* { */ - /* DMESSAGE( "OSC Output connections: %i", _osc_output()->noutput_connections() ); */ - - /* for ( int i = 0; i < _osc_output()->noutput_connections(); ++i ) */ - /* { */ - /* char *s; */ - - /* s = _osc_output()->get_output_connection_peer_name_and_path(i); */ - - /* e.add( ":osc-output", s ); */ - - /* free( s ); */ - /* } */ - /* } */ - - e.add( ":mode", mode() ); -} - -void -Control_Sequence::set ( Log_Entry &e ) -{ - for ( int i = 0; i < e.size(); ++i ) - { - const char *s, *v; - - e.get( i, &s, &v ); - - if ( ! strcmp( ":track", s ) ) - { - int i; - sscanf( v, "%X", &i ); - Track *t = (Track*)Loggable::find( i ); - - assert( t ); - - t->add( this ); - } - else if ( ! strcmp( ":name", s ) ) - { - name( v ); - } - else if ( ! strcmp( ":interpolation", s ) ) - { - interpolation( (Curve_Type)atoi( v ) ); - } - else if ( ! strcmp( ":mode", s ) ) - mode( (Mode)atoi( v ) ); - else if ( ! strcmp( ":osc-output", s ) ) - { - _persistent_osc_connections.push_back( strdup( v ) ); - } - else if ( ! strcmp( ":color", s ) ) - { - color( (Fl_Color)atol( v ) ); - } - } -} - -void -Control_Sequence::mode ( Mode m ) -{ - if ( CV != m && mode() == CV ) - { - if ( _output ) - { - _output->shutdown(); - - JACK::Port *t = _output; - - _output = NULL; - - delete t; - } - } - else if ( OSC != m && mode() == OSC ) - { - if ( _osc_output() ) - { - OSC::Signal *t = _osc_output(); - - _osc_output( NULL ); - - delete t; - } - } - - if ( CV == m && mode() != CV ) - { - update_port_name(); - - header()->outputs_indicator->label( "cv" ); - } - else if ( OSC == m && mode() != OSC ) - { - update_osc_path(); - - header()->outputs_indicator->label( "osc" ); - } - - _mode = m; -} - -void -Control_Sequence::draw_curve ( bool filled ) -{ - const int bx = drawable_x(); - const int by = y() + Fl::box_dy( box() ); - const int bw = drawable_w(); - const int bh = h() - Fl::box_dh( box() ); - - /* make a copy of the list for drawing and sort it... */ - list wl; - - std::copy( _widgets.begin(), _widgets.end(), std::back_inserter( wl ) ); - -//= new list (_widgets); - - wl.sort( Sequence_Widget::sort_func ); - - list ::const_iterator e = wl.end(); - e--; - - if ( wl.size() ) - for ( list ::const_iterator r = wl.begin(); ; r++ ) - { - const int ry = (*r)->y(); - const long rx = (*r)->curve_x(); - - if ( r == wl.begin() ) - { - if ( filled ) - fl_vertex( bx, bh + by ); - fl_vertex( bx, ry ); - } - - fl_vertex( rx, ry ); - - if ( r == e ) - { - fl_vertex( bx + bw, ry ); - if ( filled ) - fl_vertex( bx + bw, bh + by ); - break; - } - - } -} - -void -Control_Sequence::draw_box ( void ) -{ - const int bx = drawable_x(); - const int by = y(); - const int bw = drawable_w(); - const int bh = h(); - - int X, Y, W, H; - - fl_clip_box( bx, by, bw, bh, X, Y, W, H ); - -// fl_rectf( X, Y, W, H, fl_color_average( FL_BLACK, FL_BACKGROUND_COLOR, 0.3 ) ); -// fl_rectf( X,Y,W,H, fl_color_average( FL_BLACK, FL_WHITE, 0.90 ) ); - fl_rectf( X,Y,W,H, FL_DARK1 ); - - - if ( draw_with_grid ) - { - fl_color( FL_GRAY ); - - const int inc = bh / 10; - if ( inc ) - for ( int gy = 0; gy < bh; gy += inc ) - fl_line( X, by + gy, X + W, by + gy ); - - } - - timeline->draw_measure_lines( X, Y, W, H ); -} - -void -Control_Sequence::draw ( void ) -{ - fl_push_clip( drawable_x(), y(), drawable_w(), h() ); - - const int bx = x(); - const int by = y() + Fl::box_dy( box() ); - const int bw = w(); - const int bh = h() - Fl::box_dh( box() ); - - int X, Y, W, H; - - fl_clip_box( bx, by, bw, bh, X, Y, W, H ); - - bool active = active_r(); - - const Fl_Color color = active ? this->color() : fl_inactive( this->color() ); -// const Fl_Color selection_color = active ? this->selection_color() : fl_inactive( this->selection_color() ); - - if ( box() != FL_NO_BOX ) - draw_box(); - - if ( interpolation() != None ) - { - if ( draw_with_polygon ) - { - fl_color( fl_color_add_alpha( color, 60 ) ); - - fl_begin_complex_polygon(); - draw_curve( true ); - fl_end_complex_polygon(); - - } - - fl_color( fl_color_average( FL_WHITE, color, 0.5 ) ); - fl_line_style( FL_SOLID, 2 ); - - fl_begin_line(); - draw_curve( false ); - fl_end_line(); - - fl_line_style( FL_SOLID, 0 ); - } - - if ( interpolation() == None || _highlighted == this || Fl::focus() == this ) - for ( list ::const_iterator r = _widgets.begin(); r != _widgets.end(); r++ ) - if ( (*r)->x() + (*r)->w() >= bx && - (*r)->x() <= bw + bw ) - (*r)->draw_box(); - else - for ( list ::const_iterator r = _widgets.begin(); r != _widgets.end(); r++ ) - if ( (*r)->selected() ) - if ( (*r)->x() + (*r)->w() >= bx && - (*r)->x() <= bw + bw ) - (*r)->draw_box(); - - fl_pop_clip(); - - if ( damage() & ~DAMAGE_SEQUENCE ) - { - Fl_Group::draw_children(); - } -} - - -void -Control_Sequence::menu_cb ( Fl_Widget *w, void *v ) -{ - ((Control_Sequence*)v)->menu_cb( (const Fl_Menu_*)w ); -} - -void -Control_Sequence::menu_cb ( const Fl_Menu_ *m ) -{ - char picked[1024]; - - DMESSAGE( "Control_Sequence: menu_cb" ); - - if ( ! m->mvalue() || m->mvalue()->flags & ( FL_SUBMENU_POINTER | FL_SUBMENU )) - return; - - m->item_pathname( picked, sizeof( picked ), m->mvalue() ); - - if ( ! strncmp( picked, "Connect To/", strlen( "Connect To/" ) ) ) - { - char *peer_name = index( picked, '/' ) + 1; - - *index( peer_name, '/' ) = 0; - - const char *path = ((OSC::Signal*)m->mvalue()->user_data())->path(); - - /* if ( ! _osc_output()->is_connected_to( ((OSC::Signal*)m->mvalue()->user_data()) ) ) */ - { - _persistent_osc_connections.push_back( strdup(path) ); - - connect_osc(); - } - /* else */ - /* { */ - /* timeline->osc->disconnect_signal( _osc_output(), path ); */ - - /* for ( std::list::iterator i = _persistent_osc_connections.begin(); */ - /* i != _persistent_osc_connections.end(); */ - /* ++i ) */ - /* { */ - /* if ( !strcmp( *i, path ) ) */ - /* { */ - /* free( *i ); */ - /* i = _persistent_osc_connections.erase( i ); */ - /* break; */ - /* } */ - /* } */ - - /* //free( path ); */ - /* } */ - - } - else if ( ! strcmp( picked, "Interpolation/Linear" ) ) - interpolation( Linear ); - else if ( ! strcmp( picked, "Interpolation/None" ) ) - interpolation( None ); - else if ( ! strcmp( picked, "Mode/Control Signal (OSC)" )) - mode( OSC ); - else if ( ! strcmp( picked, "Mode/Control Voltage (JACK)" ) ) - mode( CV ); - - else if ( ! strcmp( picked, "/Rename" ) ) - { - ((Fl_Sometimes_Input*)header()->name_input)->take_focus(); - } - else if ( !strcmp( picked, "/Remove" ) ) - { - Fl::delete_widget( this ); - } - else if ( ! strcmp( picked, "/Color" ) ) - { - unsigned char r, g, b; - - Fl::get_color( color(), r, g, b ); - - if ( fl_color_chooser( "Track Color", r, g, b ) ) - { - color( fl_rgb_color( r, g, b ) ); - } - - redraw(); - } -} - -void -Control_Sequence::connect_osc ( void ) -{ - timeline->osc_thread->lock(); - - if ( _persistent_osc_connections.size() ) - { - for ( std::list::iterator i = _persistent_osc_connections.begin(); - i != _persistent_osc_connections.end(); - ++i ) - { - if ( ! timeline->osc->connect_signal( _osc_output(), *i ) ) - { - /* WARNING( "Failed to connect output %s to %s", _osc_output()->path(), *i ); */ - } - else - { - MESSAGE( "Connected output %s to %s", _osc_output()->path(), *i ); -// tooltip( _osc_connected_path ); - } - } - } - - /* header()->outputs_indicator->value( _osc_output() && _osc_output()->connected() ); */ - - timeline->osc_thread->unlock(); -} - -void -Control_Sequence::process_osc ( void ) -{ - if ( mode() != OSC ) - return; - - if ( _osc_output() ) - { - sample_t buf[1]; - - *buf = 0; - - play( buf, (nframes_t)transport->frame, (nframes_t) 1 ); - _osc_output()->value( (float)buf[0] ); - } -} - -static Fl_Menu_Button *peer_menu; -static const char *peer_prefix; - -void -Control_Sequence::update_osc_connection_state ( void ) -{ - /* header()->outputs_indicator->value( _osc_output() && _osc_output()->connected() ); */ -} - -void -Control_Sequence::peer_callback( OSC::Signal *sig, OSC::Signal::State state, void *v ) -{ - char *s; - - /* only show inputs */ - if ( sig->direction() != OSC::Signal::Input ) - return; - -// DMESSAGE( "Paramter limits: %f %f", sig->parameter_limits().min, sig->parameter_limits().max ); - - /* only list CV signals for now */ - if ( ! ( sig->parameter_limits().min == 0.0 && - sig->parameter_limits().max == 1.0 ) ) - return; - - if ( ! v ) - { - if( state == OSC::Signal::Created ) - timeline->connect_osc(); - else - timeline->update_osc_connection_state(); - } - else - { - /* building menu */ -// const char *name = sig->peer_name(); - - assert( sig->path() ); - - char *path = strdup( sig->path() ); - - unescape_url( path ); - - asprintf( &s, "%s/%s", peer_prefix, path ); - - peer_menu->add( s, 0, NULL, (void*)( sig ), 0 ); - - /* FL_MENU_TOGGLE | */ - /* ( ((Control_Sequence*)v)->_osc_output()->is_connected_to( sig ) ? FL_MENU_VALUE : 0 ) ); */ - - free( path ); - - free( s ); - } -} - -void -Control_Sequence::add_osc_peers_to_menu ( Fl_Menu_Button *m, const char *prefix ) -{ - peer_menu = m; - peer_prefix = prefix; - - timeline->osc->list_peer_signals( this ); -} - -Fl_Menu_Button & -Control_Sequence::menu ( void ) -{ - static Fl_Menu_Button _menu( 0, 0, 0, 0, "Control Sequence" ); - - _menu.clear(); - - if ( mode() == OSC ) - { - add_osc_peers_to_menu( &_menu, "Connect To" ); - } - - _menu.add( "Interpolation/None", 0, 0, 0, FL_MENU_RADIO | ( interpolation() == None ? FL_MENU_VALUE : 0 ) ); - _menu.add( "Interpolation/Linear", 0, 0, 0, FL_MENU_RADIO | ( interpolation() == Linear ? FL_MENU_VALUE : 0 ) ); - _menu.add( "Mode/Control Voltage (JACK)", 0, 0, 0 ,FL_MENU_RADIO | ( mode() == CV ? FL_MENU_VALUE : 0 ) ); - _menu.add( "Mode/Control Signal (OSC)", 0, 0, 0 , FL_MENU_RADIO | ( mode() == OSC ? FL_MENU_VALUE : 0 ) ); - - _menu.add( "Rename", 0, 0, 0 ); - _menu.add( "Color", 0, 0, 0 ); - _menu.add( "Remove", 0, 0, 0 ); - - _menu.callback( &Control_Sequence::menu_cb, (void*)this); - - return _menu; -} - -int -Control_Sequence::handle ( int m ) -{ - switch ( m ) - { - case FL_ENTER: - break; - case FL_LEAVE: - _highlighted = 0; - damage( DAMAGE_SEQUENCE ); - fl_cursor( FL_CURSOR_DEFAULT ); - break; - case FL_MOVE: - if ( Fl::event_x() > drawable_x() ) - { - if ( _highlighted != this ) - { - _highlighted = this; - damage( DAMAGE_SEQUENCE ); - fl_cursor( FL_CURSOR_CROSS ); - } - } - else - { - if ( _highlighted == this ) - { - _highlighted = 0; - damage( DAMAGE_SEQUENCE ); - fl_cursor( FL_CURSOR_DEFAULT ); - } - } - default: - break; - } - - Logger log(this); - - int r = Sequence::handle( m ); - - if ( r ) - return r; - - switch ( m ) - { - case FL_PUSH: - { - - if ( Fl::event_x() >= drawable_x() && - test_press( FL_BUTTON1 ) ) - { - /* insert new control point */ - timeline->sequence_lock.wrlock(); - - new Control_Point( this, timeline->xoffset + timeline->x_to_ts( Fl::event_x() - drawable_x() ), (float)(Fl::event_y() - y()) / h() ); - - timeline->sequence_lock.unlock(); - - return 1; - } - else if ( Fl::event_x() < drawable_x() && - test_press( FL_BUTTON3 ) ) - { - menu_popup( &menu() ); - - return 1; - } - - return Fl_Group::handle( m ); - } - default: - return 0; - } -} diff --git a/timeline/src/Control_Sequence.H b/timeline/src/Control_Sequence.H deleted file mode 100644 index 38e9822..0000000 --- a/timeline/src/Control_Sequence.H +++ /dev/null @@ -1,147 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - - -#pragma once - -#include "Sequence.H" -#include "Control_Point.H" - -#include "JACK/Port.H" - -// class JACK::Port; -#include "OSC/Endpoint.H" - -class Control_Sequence_Header; -class Fl_Menu_Button; - -class Control_Sequence : public Sequence -{ - /* not permitted */ - Control_Sequence ( const Control_Sequence &rhs ); - Control_Sequence & operator = ( const Control_Sequence &rhs ); - -public: - - enum Curve_Type { None, Linear, Quadratic }; - - enum Mode { - CV, - OSC, - MIDI - }; - -private: - - static void cb_button ( Fl_Widget *w, void *v ); - void cb_button ( Fl_Widget *w ); - - JACK::Port *_output; - - /* these are used to cache the saved osc connection until the - * session is loaded, at which time we will reconnect */ - std::list _persistent_osc_connections; - /* osc output port */ - volatile void *__osc_output; - - OSC::Signal *_osc_output ( void ) const - { - return (OSC::Signal *)__osc_output; - } - - void _osc_output ( OSC::Signal * s) - { - __osc_output = s; - } - - - static void peer_callback( OSC::Signal *sig, OSC::Signal::State state, void *v ); - void peer_callback( OSC::Signal *sig, OSC::Signal::State state ); - void add_osc_peers_to_menu ( Fl_Menu_Button *m, const char *prefix ); - - static Fl_Widget *_highlighted; - - Curve_Type _interpolation; - - void init ( void ); - - void draw_curve ( bool filled ); - - static void menu_cb ( Fl_Widget *w, void *v ); - void menu_cb ( const Fl_Menu_ *m ); - - Mode _mode; - - float _rate; - -protected: - - Control_Sequence ( ); - - virtual void get ( Log_Entry &e ) const; - virtual void get_unjournaled ( Log_Entry &e ) const; - void set ( Log_Entry &e ); - - void draw_box ( void ); - void draw ( void ); - int handle ( int m ); - - void update_osc_path ( void ); - void update_port_name ( void ); - - - Fl_Menu_Button & menu ( void ); - -public: - - Control_Sequence_Header * header ( void ) { return (Control_Sequence_Header*)child(0); } - - virtual void name ( const char *s ); - virtual const char *name ( void ) const; - - void process_osc ( void ); - void connect_osc ( void ); - void update_osc_connection_state ( void ); - - static bool draw_with_polygon; - static bool draw_with_grid; - - LOG_CREATE_FUNC( Control_Sequence ); - - Control_Sequence ( Track *, const char *name = 0 ); - ~Control_Sequence ( ); - - Fl_Cursor cursor ( void ) const { return FL_CURSOR_CROSS; } - - Curve_Type interpolation ( void ) const { return _interpolation; } - void interpolation ( Curve_Type v ) - { - _interpolation = v; - damage( FL_DAMAGE_USER1 ); - } - - Mode mode ( void ) const { return _mode; } - void mode ( Mode v ); - - /* Engine */ - void output ( JACK::Port *p ) { _output = p; } - nframes_t play ( sample_t *buf, nframes_t frame, nframes_t nframes ); - nframes_t process ( nframes_t nframes ); - -}; diff --git a/timeline/src/Cursor_Point.C b/timeline/src/Cursor_Point.C deleted file mode 100644 index e953b16..0000000 --- a/timeline/src/Cursor_Point.C +++ /dev/null @@ -1,134 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2012 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - - -#include "Cursor_Point.H" -#include "Cursor_Sequence.H" -#include "Timeline.H" // for timeline->time_track - -Cursor_Point::Cursor_Point ( ) -{ -// timeline->->add( this ); - _label = NULL; - _type = NULL; -} - -Cursor_Point::Cursor_Point ( nframes_t when, const char *type, const char *label ) -{ -// _make_label(); - - _label = NULL; - _type = NULL; - - this->label( label ); - this->type( type ); - - timeline->add_cursor( this ); - - start( when ); - - log_create(); -} - -Cursor_Point::Cursor_Point ( const Cursor_Point &rhs ) : Sequence_Point( rhs ) -{ - label( rhs.label() ); - type( rhs.type() ); - - log_create(); -} - -Cursor_Point::~Cursor_Point ( ) -{ -// sequence()->remove( this ); - - log_destroy(); - - label(NULL); - type(NULL); -} - - - -void -Cursor_Point::get ( Log_Entry &e ) const -{ -// Sequence_Point::get( e ); - - e.add( ":start", start() ); - e.add( ":label", label() ); - e.add( ":type", type() ); -} - -void -Cursor_Point::set ( Log_Entry &e ) -{ - - Sequence_Point::set( e ); - - for ( int i = 0; i < e.size(); ++i ) - { - const char *s, *v; - - e.get( i, &s, &v ); - - if ( ! strcmp( s, ":label" ) ) - label( v ); - else if ( ! strcmp( s, ":type" )) - { - type( v ); - - timeline->add_cursor( this ); - } - -/* /\* FIXME: we need to add this to the time track on creation!!! *\/ */ -/* timeline->time_track->add( this ); */ - - } - - sequence()->handle_widget_change( start(), length() ); - -// _make_label(); -} - - - - -int -Cursor_Point::handle ( int m ) -{ - Logger log( this ); - - /* if ( m == FL_PUSH && Fl::event_button3() && ! ( Fl::event_state() & ( FL_ALT | FL_CTRL | FL_SHIFT ) ) ) */ - /* { */ - - /* time_sig t = _time; */ - - /* edit( &t ); */ - - /* time( t.beats_per_bar, t.beat_type ); */ - - /* return 0; */ - - /* } */ - - return Sequence_Point::handle( m ); -} - - diff --git a/timeline/src/Cursor_Point.H b/timeline/src/Cursor_Point.H deleted file mode 100644 index 0cd05b6..0000000 --- a/timeline/src/Cursor_Point.H +++ /dev/null @@ -1,64 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2012 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include "Sequence_Point.H" - - -class Cursor_Point : public Sequence_Point -{ - char *_type; - -protected: - -// const char *class_name ( void ) { return "Time_Point"; } - - virtual void get ( Log_Entry &e ) const; - void set ( Log_Entry &e ); - - Cursor_Point ( ); - -public: - - LOG_CREATE_FUNC( Cursor_Point ); - SEQUENCE_WIDGET_CLONE_FUNC( Cursor_Point ); - -// static bool edit ( time_sig *sig ); - - Cursor_Point ( nframes_t when, const char *type, const char *label ); - Cursor_Point ( const Cursor_Point &rhs ); - - ~Cursor_Point ( ); - - const char * type ( void ) const { return _type; } - void type ( const char *v ) - { - if ( _type ) - free( _type ); - - _type = NULL; - - if ( v ) - _type = strdup( v ); - } - - int handle ( int m ); - -}; diff --git a/timeline/src/Cursor_Region.C b/timeline/src/Cursor_Region.C deleted file mode 100644 index 3c1be5c..0000000 --- a/timeline/src/Cursor_Region.C +++ /dev/null @@ -1,153 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2012 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include -#include -#include - -#include "Cursor_Region.H" -#include "Cursor_Sequence.H" -#include "Timeline.H" - -Fl_Color Cursor_Region::box_color ( void ) const -{ - return ((Cursor_Sequence*)sequence())->cursor_color(); -} - - -void Cursor_Region::box_color ( Fl_Color c ) -{ - ((Cursor_Sequence*)sequence())->cursor_color( c ); -} - - - -void -Cursor_Region::get ( Log_Entry &e ) const -{ -// Sequence_Region::get( e ); - e.add( ":start", start() ); - e.add( ":length", length() ); - e.add( ":label", label() ); - e.add( ":type", type() ); -} - -void -Cursor_Region::set ( Log_Entry &e ) -{ - Sequence_Region::set( e ); - - for ( int i = 0; i < e.size(); ++i ) - { - const char *s, *v; - - e.get( i, &s, &v ); - - if ( ! strcmp( s, ":label" ) ) - label( v ); - if ( ! strcmp( s, ":type" ) ) - { - type( v ); - timeline->add_cursor( this ); - } - } - -// timeline->redraw(); -} - -Cursor_Region::Cursor_Region ( nframes_t when, nframes_t length, const char *type, const char *label ) -{ - _label = NULL; - _type = NULL; - - this->label( label ); - this->type( type ); - - start( when ); - this->length( length ); - - timeline->add_cursor( this ); - - log_create(); -} - -Cursor_Region::Cursor_Region ( const Cursor_Region &rhs ) : Sequence_Region( rhs ) -{ - _label = rhs._label ? strdup( rhs._label ) : NULL; - _type = rhs._type ? strdup( rhs._type ) : NULL; - - log_create(); -} - - -Cursor_Region::~Cursor_Region ( ) -{ -// timeline->cursor_track->remove( this ); - - log_destroy(); - - label(NULL); - type(NULL); -} - -void -Cursor_Region::draw_box ( void ) -{ - Sequence_Region::draw_box(); -} - -void -Cursor_Region::draw ( void ) -{ - draw_label( _label, (Fl_Align)(FL_ALIGN_LEFT | FL_ALIGN_INSIDE | FL_ALIGN_TOP | FL_ALIGN_CLIP ) ); -} - -#include -#include - -int -Cursor_Region::handle ( int m ) -{ - Logger _log( this ); - - if ( m == FL_PUSH ) - { - if ( test_press( FL_BUTTON3 ) ) - { - char *s = fl_text_edit( "Cursor text:", "&Save", label() ); - - if ( s ) - label( s ); - - free( s ); - - return 0; - } - } - - int r = Sequence_Region::handle( m ); - - if ( m == FL_RELEASE ) - { - sequence()->sort(); - timeline->redraw(); - } - - return r; -} diff --git a/timeline/src/Cursor_Region.H b/timeline/src/Cursor_Region.H deleted file mode 100644 index 3290867..0000000 --- a/timeline/src/Cursor_Region.H +++ /dev/null @@ -1,74 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2012 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include "Sequence_Region.H" -#include "Cursor_Sequence.H" - -class Cursor_Region : public Sequence_Region -{ - /* not permitted */ - Cursor_Region & operator = ( const Cursor_Region &rhs ); - - char *_type; - -protected: - - virtual void get ( Log_Entry &e ) const; - virtual void set ( Log_Entry &e ); - - Cursor_Region ( ) - { - _label = NULL; - _type = NULL; - } - - Cursor_Region ( const Cursor_Region &rhs ); - -public: - - virtual Fl_Color box_color ( void ) const; - virtual void box_color ( Fl_Color c ); - - /* for loggable */ - LOG_CREATE_FUNC( Cursor_Region ); - SEQUENCE_WIDGET_CLONE_FUNC( Cursor_Region ); - - Cursor_Region ( nframes_t when, nframes_t length, const char *type, const char *label ); - virtual ~Cursor_Region ( ); - - void draw_box ( void ); - void draw ( void ); - int handle ( int m ); - - - const char * type ( void ) const { return _type; } - void type ( const char *v ) - { - if ( _type ) - free( _type ); - - _type = NULL; - - if ( v ) - _type = strdup( v ); - } - -}; diff --git a/timeline/src/Cursor_Sequence.C b/timeline/src/Cursor_Sequence.C deleted file mode 100644 index 2f683e9..0000000 --- a/timeline/src/Cursor_Sequence.C +++ /dev/null @@ -1,97 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2012 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "Cursor_Sequence.H" -#include "Cursor_Point.H" -#include "Timeline.H" -#include "Track.H" - -Cursor_Sequence::Cursor_Sequence( int X, int Y, int W, int H ) : Sequence ( X, Y, W, H ) -{ - _cursor_color = FL_CYAN; - - labeltype(FL_NO_LABEL); - - box( FL_FLAT_BOX ); - - { Fl_Box *o = new Fl_Box( X, Y, Track::width(), H ); - o->align( FL_ALIGN_RIGHT | FL_ALIGN_INSIDE ); - o->labelsize( 12 ); - o->labeltype( FL_NORMAL_LABEL ); - Fl_Group::add( o ); - } - - resizable(0); -} - - - -void -Cursor_Sequence::label ( const char *s ) -{ - Sequence::label(s); - child(0)->label(s); -} - -const char * -Cursor_Sequence::label ( void ) const -{ - return Sequence::label(); -} - -void -Cursor_Sequence::handle_widget_change ( nframes_t start, nframes_t length ) -{ - sort(); - timeline->redraw_overlay(); - timeline->redraw(); -} - -Sequence_Widget * -Cursor_Sequence::active_cursor ( void ) -{ - if ( _widgets.size() ) - return _widgets.front(); - else - return 0; -} - -int -Cursor_Sequence::handle ( int m ) -{ - int r = Sequence::handle( m ); - - if ( r ) - return r; - - switch ( m ) - { - case FL_PUSH: - /* if ( Fl::event_button1() ) */ - /* { */ - /* add( new Cursor_Point( timeline->x_to_offset( Fl::event_x() ), "NONE" ) ); */ - /* timeline->redraw(); */ - /* return 0; */ - /* } */ - return 0; - default: - return 0; - - } -} diff --git a/timeline/src/Cursor_Sequence.H b/timeline/src/Cursor_Sequence.H deleted file mode 100644 index 57fe5f7..0000000 --- a/timeline/src/Cursor_Sequence.H +++ /dev/null @@ -1,53 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2012 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include "Sequence.H" -#include "Cursor_Point.H" -#include "Cursor_Region.H" - -class Cursor_Sequence : public Sequence -{ - - Fl_Color _cursor_color; - -protected: - - /* not used */ - void get ( Log_Entry & ) const { } - void set ( Log_Entry & ) { } - -public: - - void label ( const char * s ); - const char *label ( void ) const; - - Sequence_Widget *active_cursor ( void ); - - Fl_Color cursor_color ( void ) const { return _cursor_color; } - void cursor_color ( Fl_Color c ) { _cursor_color = c; } - - Fl_Cursor cursor ( void ) const { return FL_CURSOR_DEFAULT; } - - Cursor_Sequence ( int X, int Y, int W, int H ); - - void handle_widget_change ( nframes_t start, nframes_t length ); - int handle ( int m ); -}; diff --git a/timeline/src/Engine/Audio_File.C b/timeline/src/Engine/Audio_File.C deleted file mode 100644 index 0d70346..0000000 --- a/timeline/src/Engine/Audio_File.C +++ /dev/null @@ -1,196 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "Audio_File.H" -#include "Audio_File_SF.H" -#include "Audio_File_Dummy.H" - -#include "const.h" -#include "debug.h" -#include "Block_Timer.H" - -#include - -std::map Audio_File::_open_files; - -Audio_File::~Audio_File ( ) -{ - DMESSAGE( "Freeing Audio_File object for \"%s\"", _filename ); - - _open_files[ std::string( _filename ) ] = NULL; - - if ( _filename ) - free( _filename ); - - if ( _path ) - free( _path ); -} - -const Audio_File::format_desc * -Audio_File::find_format ( const format_desc *fd, const char *name ) -{ - for ( ; fd->name; ++fd ) - if ( ! strcmp( fd->name, name ) ) - return fd; - - return NULL; -} - -void -Audio_File::all_supported_formats ( std::list &formats ) -{ - const format_desc *fd; - - fd = Audio_File_SF::supported_formats; - - for ( ; fd->name; ++fd ) - formats.push_back( fd->name ); -} - -static bool -is_absolute ( const char *name ) -{ - return *name == '/'; -} - -/** return pointer to /name/ corrected for relative path. */ -char *Audio_File::path ( const char *name ) -{ - char *path = 0; - - if ( is_absolute( name ) ) - path = strdup( name ); - else - asprintf( &path, "sources/%s", name ); - - return path; -} - -const char * -Audio_File::filename ( void ) const -{ - return _path; -} - -static bool is_poor_seeker ( const char * filename ) -{ - if ( ( strlen(filename) > 4 && - ! strcasecmp( &filename[strlen(filename)-4], ".ogg" ) ) - || - ( strlen(filename) > 5 && - ! strcasecmp( &filename[strlen(filename)-5], ".flac" ) ) - ) - { - return true; - } - - return false; -} - -/** attempt to open any supported filetype */ -Audio_File * -Audio_File::from_file ( const char * filename ) -{ - Block_Timer timer( "Opened audio file" ); - - Audio_File *a; - - if ( is_poor_seeker(filename) ) - { - /* OGG and FLAC have poor seek performance, so they require - * separate file descriptors to be useful */ - } - else - { - /* WAV are quick enough to seek that we can save - * filedescriptors by sharing them between regions */ - if ( ( a = _open_files[ std::string( filename ) ] ) ) - { - ++a->_refs; - - return a; - } - } - - if ( ( a = Audio_File_SF::from_file( filename ) ) ) - goto done; - -// TODO: other formats - - DWARNING( "creating dummy source for \"%s\"", filename ); - - /* FIXME: wrong place for this? */ - if ( ( a = Audio_File_Dummy::from_file( filename ) ) ) - goto done; - - return NULL; - -done: - - /* ASSERT( ! _open_files[ std::string( filename ) ], "Programming errror" ); */ - - _open_files[ std::string( filename ) ] = a; - - return a; -} - -Audio_File * -Audio_File::duplicate ( void ) -{ - if ( is_poor_seeker( _filename ) ) - { - return from_file(_filename); - } - else - { - ++_refs; - return this; - } -} - -/** release the resources assoicated with this audio file if no other - * references to it exist */ -void -Audio_File::release ( void ) -{ - if ( --_refs == 0 ) - delete this; -} - - -bool -Audio_File::read_peaks( float fpp, nframes_t start, nframes_t end, int *peaks, Peak **pbuf, int *channels ) -{ - *peaks = 0; - *channels = 0; - *pbuf = NULL; - - if ( dummy() ) - return false; - else - { - *peaks = _peaks.fill_buffer( fpp, start, end ); - - *channels = this->channels(); - - *pbuf = _peaks.peakbuf(); - - return true; - } -} diff --git a/timeline/src/Engine/Audio_File.H b/timeline/src/Engine/Audio_File.H deleted file mode 100644 index baeedee..0000000 --- a/timeline/src/Engine/Audio_File.H +++ /dev/null @@ -1,108 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -/* Base class for all audio file library interfaces */ - -#include -#include -#include -#include - -#include "types.h" -#include "Mutex.H" -#include "Peaks.H" - -class Peak_Writer; - -class Audio_File : protected Mutex -{ - int _refs; - - static std::map _open_files; - - /* not permitted */ - Audio_File ( const Audio_File &rhs ); - const Audio_File & operator= ( const Audio_File &rhs ); - -protected: - - struct format_desc - { - const char *name; - const char *extension; - unsigned long id; - int quality; - }; - - char *_filename; - char *_path; - - volatile nframes_t _length; /* length of file in samples */ - nframes_t _samplerate; /* sample rate */ - int _channels; - - Peaks _peaks; - - static const format_desc * find_format ( const format_desc *fd, const char *name ); - - static char *path ( const char *name ); - -public: - - Audio_File ( ) : _peaks( this ) - { - _path =_filename = NULL; - _samplerate = 0; - _length = _channels = 0; - _refs = 1; - } - - virtual ~Audio_File ( ); - - virtual bool dummy ( void ) const { return false; } - - static void all_supported_formats ( std::list &formats ); - - static Audio_File *from_file ( const char *filename ); - - void release ( void ); - Audio_File *duplicate ( void ); - - Peaks const * peaks ( ) { return &_peaks; } - const char *filename ( void ) const; - const char *name ( void ) const { return _filename; } - nframes_t length ( void ) const { return _length; } - int channels ( void ) const { return _channels; } - nframes_t samplerate ( void ) const { return _samplerate; } -// Peaks const * peaks ( void ) { return &_peaks; } - - virtual bool open ( void ) = 0; - virtual void close ( void ) = 0; - virtual void seek ( nframes_t offset ) = 0; - virtual nframes_t read ( sample_t *buf, int channel, nframes_t len ) = 0; - virtual nframes_t read ( sample_t *buf, int channel, nframes_t start, nframes_t len ) = 0; - virtual nframes_t write ( sample_t *buf, nframes_t len ) = 0; - - virtual void finalize ( void ) { _peaks.finish_writing(); } - - bool read_peaks( float fpp, nframes_t start, nframes_t end, int *peaks, Peak **pbuf, int *channels ); - -}; diff --git a/timeline/src/Engine/Audio_File_Dummy.C b/timeline/src/Engine/Audio_File_Dummy.C deleted file mode 100644 index b91ede9..0000000 --- a/timeline/src/Engine/Audio_File_Dummy.C +++ /dev/null @@ -1,30 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "Audio_File_Dummy.H" - -#include - -Audio_File_Dummy * -Audio_File_Dummy::from_file ( const char *filename ) -{ - Audio_File_Dummy *d = new Audio_File_Dummy; - d->_filename = strdup( filename ); - return d; -} diff --git a/timeline/src/Engine/Audio_File_Dummy.H b/timeline/src/Engine/Audio_File_Dummy.H deleted file mode 100644 index 331e3f9..0000000 --- a/timeline/src/Engine/Audio_File_Dummy.H +++ /dev/null @@ -1,46 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include "Audio_File.H" - -class Audio_File_Dummy : public Audio_File -{ - Audio_File_Dummy ( ) - { - } - -public: - - static Audio_File_Dummy *from_file ( const char *filename ); - - bool dummy ( void ) const { return true; } - - ~Audio_File_Dummy ( ) - { - } - - bool open ( void ) { return true; } - void close ( void ) { } - void seek ( nframes_t ) { } - nframes_t read ( sample_t *, int, nframes_t len ) { return 0; } - nframes_t read ( sample_t *, int, nframes_t start, nframes_t end ) { return 0; } - nframes_t write ( sample_t *, nframes_t nframes ) { return nframes; } -}; diff --git a/timeline/src/Engine/Audio_File_SF.C b/timeline/src/Engine/Audio_File_SF.C deleted file mode 100644 index a1ef61f..0000000 --- a/timeline/src/Engine/Audio_File_SF.C +++ /dev/null @@ -1,267 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "Audio_File_SF.H" -// #include "Timeline.H" - -#include - -#include -#include - -#include - -#include "Peaks.H" - -// #define HAS_SF_FORMAT_VORBIS - -#include "const.h" -#include "debug.h" -#include - - - -const Audio_File::format_desc Audio_File_SF::supported_formats[] = -{ - { "Wav 24", "wav", SF_FORMAT_WAV | SF_FORMAT_PCM_24 | SF_ENDIAN_FILE }, - { "Wav 16", "wav", SF_FORMAT_WAV | SF_FORMAT_PCM_16 | SF_ENDIAN_FILE }, - { "Wav f32", "wav", SF_FORMAT_WAV | SF_FORMAT_FLOAT | SF_ENDIAN_FILE }, - { "W64 24", "w64", SF_FORMAT_W64 | SF_FORMAT_PCM_24 | SF_ENDIAN_FILE }, - { "W64 16", "w64", SF_FORMAT_W64 | SF_FORMAT_PCM_16 | SF_ENDIAN_FILE }, - { "W64 f32", "w64", SF_FORMAT_W64 | SF_FORMAT_FLOAT | SF_ENDIAN_FILE }, - { "Au 24", "au", SF_FORMAT_AU | SF_FORMAT_PCM_24 | SF_ENDIAN_FILE }, - { "Au 16", "au", SF_FORMAT_AU | SF_FORMAT_PCM_16 | SF_ENDIAN_FILE }, - { "FLAC", "flac", SF_FORMAT_FLAC | SF_FORMAT_PCM_24 }, -#ifdef HAVE_SF_FORMAT_VORBIS - { "Vorbis q10", "ogg", SF_FORMAT_OGG | SF_FORMAT_VORBIS, 10 }, - { "Vorbis q6", "ogg", SF_FORMAT_OGG | SF_FORMAT_VORBIS, 6 }, - { "Vorbis q3", "ogg", SF_FORMAT_OGG | SF_FORMAT_VORBIS, 3 }, -#endif - { 0, 0 } -}; - - - -Audio_File_SF * -Audio_File_SF::from_file ( const char *filename ) -{ - SNDFILE *in; - SF_INFO si; - - Audio_File_SF *c = NULL; - - memset( &si, 0, sizeof( si ) ); - - char *fp = path( filename ); - - if ( ! ( in = sf_open( fp, SFM_READ, &si ) ) ) - return NULL; - -/* if ( si.samplerate != timeline->sample_rate() ) */ -/* { */ -/* printf( "error: samplerate mismatch!\n" ); */ -/* goto invalid; */ -/* } */ - - c = new Audio_File_SF; - -// c->_peak_writer = NULL; - c->_current_read = 0; - c->_filename = strdup( filename ); - c->_path = fp; - c->_length = si.frames; - c->_samplerate = si.samplerate; - c->_channels = si.channels; - - c->_in = in; -// sf_close( in ); - - return c; - -//invalid: - - sf_close( in ); - return NULL; -} - -Audio_File_SF * -Audio_File_SF::create ( const char *filename, nframes_t samplerate, int channels, const char *format ) -{ - SF_INFO si; - SNDFILE *out; - - memset( &si, 0, sizeof( si ) ); - - - const Audio_File::format_desc *fd = Audio_File::find_format( Audio_File_SF::supported_formats, format ); - - if ( ! fd ) - return (Audio_File_SF *)1; - - si.samplerate = samplerate; - si.channels = channels; - si.format = fd->id; - - char *name; - asprintf( &name, "%s.%s", filename, fd->extension ); - - char *filepath = path( name ); - - if ( ! ( out = sf_open( filepath, SFM_WRITE, &si ) ) ) - { - printf( "couldn't create soundfile.\n" ); - free( name ); - return NULL; - } - - if ( !strcmp( fd->extension, "ogg" ) ) - { - /* set high quality encoding for vorbis */ - double quality = ( fd->quality + 1 ) / (float)11; - - sf_command( out, SFC_SET_VBR_ENCODING_QUALITY, &quality, sizeof( double ) ); - } - - Audio_File_SF *c = new Audio_File_SF; - - c->_path = filepath; - c->_filename = name; - c->_length = 0; - c->_samplerate = samplerate; - c->_channels = channels; - - c->_in = out; - - c->_peaks.prepare_for_writing(); - - return c; -} - -bool -Audio_File_SF::open ( void ) -{ - SF_INFO si; - - assert( _in == NULL ); - - memset( &si, 0, sizeof( si ) ); - - if ( ! ( _in = sf_open( _path, SFM_READ, &si ) ) ) - return false; - - _current_read = 0; - _length = si.frames; - _samplerate = si.samplerate; - _channels = si.channels; - -// seek( 0 ); - return true; -} - -void -Audio_File_SF::close ( void ) -{ - if ( _in ) - sf_close( _in ); - - _in = NULL; -} - -void -Audio_File_SF::seek ( nframes_t offset ) -{ - lock(); - - if ( offset != _current_read ) - sf_seek( _in, _current_read = offset, SEEK_SET | SFM_READ ); - - unlock(); -} - -/* if channels is -1, then all channels are read into buffer - (interleaved). buf should be big enough to hold them all */ -nframes_t -Audio_File_SF::read ( sample_t *buf, int channel, nframes_t len ) -{ - if ( len > 256 * 100 ) - WARNING( "warning: attempt to read an insane number of frames (%lu) from soundfile\n", (unsigned long)len ); - -// printf( "len = %lu, channels = %d\n", len, _channels ); - - lock(); - - nframes_t rlen; - - if ( _channels == 1 || channel == -1 ) - rlen = sf_readf_float( _in, buf, len ); - else - { - sample_t *tmp = new sample_t[ len * _channels ]; - - rlen = sf_readf_float( _in, tmp, len ); - - /* extract the requested channel */ - for ( unsigned int i = channel; i < rlen * _channels; i += _channels ) - *(buf++) = tmp[ i ]; - - delete[] tmp; - } - - _current_read += rlen; - - unlock(); - - return rlen; -} - -/** read samples from /start/ to /end/ into /buf/ */ -nframes_t -Audio_File_SF::read ( sample_t *buf, int channel, nframes_t start, nframes_t len ) -{ - lock(); -// open(); - - seek( start ); - - nframes_t cnt = read( buf, channel, len ); - - unlock(); - -// close(); - - return cnt; -} - -/** write /nframes/ from /buf/ to soundfile. Should be interleaved for - * the appropriate number of channels */ -nframes_t -Audio_File_SF::write ( sample_t *buf, nframes_t nframes ) -{ - _peaks.write( buf, nframes ); - - lock(); - - nframes_t l = sf_writef_float( _in, buf, nframes ); - - _length += l; - - unlock(); - - return l; -} diff --git a/timeline/src/Engine/Audio_File_SF.H b/timeline/src/Engine/Audio_File_SF.H deleted file mode 100644 index 8ab9a75..0000000 --- a/timeline/src/Engine/Audio_File_SF.H +++ /dev/null @@ -1,63 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include "Audio_File.H" - -#include - -class Audio_File_SF : public Audio_File -{ -// Audio_File_SF ( const char *filename ) - - SNDFILE *_in; - - /* used to avoid unnecessary seeking--libsndfile isn't smart - * enough to do this for us */ - volatile nframes_t _current_read; - - Audio_File_SF ( ) - { - _in = 0; - _current_read = 0; - } - -public: - - static const Audio_File::format_desc supported_formats[]; - - static Audio_File_SF *from_file ( const char *filename ); - static Audio_File_SF *create ( const char *filename, nframes_t samplerate, int channels, const char *format ); - - - ~Audio_File_SF ( ) - { - /* stupid C++ */ - close(); - } - - bool open ( void ); - void close ( void ); - void seek ( nframes_t offset ); - nframes_t read ( sample_t *buf, int channel, nframes_t len ); - nframes_t read ( sample_t *buf, int channel, nframes_t start, nframes_t len ); - nframes_t write ( sample_t *buf, nframes_t nframes ); - -}; diff --git a/timeline/src/Engine/Audio_Region.C b/timeline/src/Engine/Audio_Region.C deleted file mode 100644 index e96e215..0000000 --- a/timeline/src/Engine/Audio_Region.C +++ /dev/null @@ -1,371 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -/**********/ -/* Engine */ -/**********/ - -#include "../Audio_Region.H" - -#include "Audio_File.H" -#include "dsp.h" - -#include "const.h" -#include "const.h" -#include "debug.h" -#include "Thread.H" - - - -/** Apply a (portion of) fade from /start/ to a buffer up to size /nframes/. */ -void -Audio_Region::Fade::apply ( sample_t *buf, Audio_Region::Fade::fade_dir_e dir, nframes_t start, nframes_t nframes ) const -{ -// printf( "apply fade %s: start=%ld end=%lu\n", dir == Fade::Out ? "out" : "in", start, end ); - if ( ! nframes ) - return; - - nframes_t n = nframes; - - const double inc = increment(); - double fi = start / (double)length; - - if ( dir == Fade::Out ) - { - fi = 1.0f - fi; - for ( ; n--; fi -= inc ) - *(buf++) *= gain( fi ); - } - else - for ( ; n--; fi += inc ) - *(buf++) *= gain( fi ); -} - -void -Audio_Region::Fade::apply_interleaved ( sample_t *buf, Audio_Region::Fade::fade_dir_e dir, nframes_t start, nframes_t nframes, int channels ) const -{ -// printf( "apply fade %s: start=%ld end=%lu\n", dir == Fade::Out ? "out" : "in", start, end ); - if ( ! nframes ) - return; - - nframes_t n = nframes; - - const double inc = increment(); - double fi = start / (double)length; - - if ( n > length - start ) - /* don't try to apply fade to more samples than specified by the fade length... */ - n = length - start; - - /* ASSERT( nframes < length - start, "Attempt to apply fade to more samples than its length" ); */ - - if ( dir == Fade::Out ) - { - fi = 1.0 - fi; - for ( ; n--; fi -= inc ) - { - const float g = gain(fi); - - for ( int i = channels; i--; ) - *(buf++) *= g; - } - } - else - for ( ; n--; fi += inc ) - { - const float g = gain(fi); - - for ( int i = channels; i--; ) - *(buf++) *= g; - } -} - -static -void -apply_fade ( sample_t *buf, const int channels, Audio_Region::Fade fade, const nframes_t bS, const nframes_t bE, const nframes_t edge, Audio_Region::Fade::fade_dir_e dir ) -{ - const nframes_t bSS = dir == Audio_Region::Fade::Out ? bS + fade.length : bS; - const nframes_t fade_start = bSS > edge ? bSS - edge : 0; - const nframes_t fade_offset = bSS > edge ? 0 : edge - bSS; - - fade.apply_interleaved( buf + ( channels * fade_offset ), dir, fade_start, (bE - bS) - fade_offset, channels ); -}; - -/** read the overlapping at /pos/ for /nframes/ of this region into - /buf/, where /pos/ is in timeline frames. /buf/ is an interleaved - buffer of /channels/ channels */ -/* this runs in the diskstream thread. */ -nframes_t -Audio_Region::read ( sample_t *buf, bool buf_is_empty, nframes_t pos, nframes_t nframes, int channels ) const -{ - THREAD_ASSERT( Playback ); - - const Range r = _range; - - const nframes_t rS = r.start; - const nframes_t rE = r.start + r.length; - const nframes_t bS = pos; - const nframes_t bE = pos + nframes; - - /* do nothing if region isn't inside buffer */ - if ( bS > rE || bE < rS ) - return 0; - - sample_t *cbuf = NULL; - - if ( buf_is_empty && channels == _clip->channels() ) - { - /* in this case we don't need a temp buffer */ - cbuf = buf; - } - else - { - /* temporary buffer to hold interleaved samples from the clip */ - cbuf = buffer_alloc( _clip->channels() * nframes ); - memset(cbuf, 0, _clip->channels() * sizeof(sample_t) * nframes ); - } - - /* calculate offsets into file and sample buffer */ - - const nframes_t sO = bS < rS ? 0 : bS - rS; /* offset into source */ - const nframes_t bO = bS < rS ? rS - bS : 0; /* offset into buffer (when region start is after beginning of buffer) */ - - nframes_t cnt = nframes; /* number of frames to read */ - - /* if region ends within this buffer, don't read beyond end */ - if ( bE > rE ) - cnt = nframes - ( bE - rE ); - - cnt -= bO; - - const nframes_t len = cnt; - - /* FIXME: keep the declick defults someplace else */ - Fade declick; - - declick.length = (float)timeline->sample_rate() * 0.01f; - declick.type = Fade::Sigmoid; - - /* FIXME: what was this for? */ - if ( bO >= nframes ) - { - cnt = 0; - goto done; - } - - /* FIXME: what was this for? */ - if ( len == 0 ) - { - cnt = 0; - goto done; - } - - /* now that we know how much and where to read, get on with it */ - - // printf( "reading region ofs = %lu, sofs = %lu, %lu-%lu\n", ofs, sofs, start, end ); - - if ( _loop ) - { - if ( _loop < nframes ) - { - /* very small loop or very large buffer... */ - WARNING("Loop size (%lu) is smaller than buffer size (%lu). Behavior undefined.", _loop, nframes ); - } - - const nframes_t lO = sO % _loop; /* how far we are into the loop */ - const nframes_t nthloop = sO / _loop; /* which loop iteration */ - const nframes_t seam_L = rS + ( nthloop * _loop ); /* receding seam */ - const nframes_t seam_R = rS + ( (nthloop + 1 ) * _loop ); /* upcoming seam */ - - /* read interleaved channels */ - if ( seam_R > bS && seam_R < bE ) - { - /* this buffer covers a loop boundary */ - - /* read the first part */ - cnt = _clip->read( cbuf + ( _clip->channels() * bO ), -1, r.offset + lO, ( seam_R - bS ) - bO ); - /* read the second part */ - cnt += _clip->read( cbuf + ( _clip->channels() * ( bO + cnt ) ), -1, r.offset + 0, ( len - cnt ) - bO ); - - /* assert( cnt == len ); */ - } - else - /* buffer contains no loop seam, perform straight read. */ - cnt = _clip->read( cbuf + ( _clip->channels() * bO ), -1, r.offset + lO, cnt ); - - for ( int i = 0; i < 2; i++ ) - { - nframes_t seam = i ? seam_R : seam_L; - - if ( seam != rS && seam != rE ) /* not either end of the region */ - { - if ( seam >= bS && seam <= bE + declick.length ) - /* fade out previous loop segment */ - apply_fade( cbuf, _clip->channels(), declick, bS, bE, seam, Fade::Out ); - - if ( seam <= bE && seam + declick.length >= bS ) - /* fade in next loop segment */ - apply_fade( cbuf, _clip->channels(), declick, bS, bE, seam, Fade::In ); - } - } - } - else - { -// DMESSAGE("Clip read, rL=%lu, b0=%lu, sO=%lu, r.offset=%lu, len=%lu",r.length,bO,sO,r.offset,len); - cnt = _clip->read( cbuf + ( _clip->channels() * bO ), -1, sO + r.offset, len ); - } - - if ( ! cnt ) - goto done; - - /* apply gain */ - - /* just do the whole buffer so we can use the alignment optimized - * version when we're in the middle of a region, this will be full - * anyway */ - buffer_apply_gain( cbuf, nframes * _clip->channels(), _scale ); - - /* perform fade/declicking if necessary */ - { - assert( cnt <= nframes ); - - Fade fade; - - fade = declick < _fade_in ? _fade_in : declick; - - /* do fade in if necessary */ - if ( sO < fade.length ) - apply_fade( cbuf, _clip->channels(), fade, bS, bE, rS, Fade::In ); - - fade = declick < _fade_out ? _fade_out : declick; - - /* do fade out if necessary */ - if ( sO + cnt + fade.length > r.length ) - apply_fade( cbuf, _clip->channels(), fade, bS, bE, rE, Fade::Out ); - } - - if ( buf != cbuf ) - { - /* now interleave the clip channels into the playback buffer */ - for ( int i = 0; i < channels && i < _clip->channels(); i++ ) - { - if ( buf_is_empty ) - buffer_interleaved_copy( buf, cbuf, i, i, channels, _clip->channels(), nframes ); - else - buffer_interleaved_mix( buf, cbuf, i, i, channels, _clip->channels(), nframes ); - - } - } - -done: - - if ( buf != cbuf ) - { - free( cbuf ); - } - - return cnt; -} - -/** prepare for capturing */ -void -Audio_Region::prepare ( void ) -{ - THREAD_ASSERT( Capture ); - - DMESSAGE( "Preparing capture region" ); - -// log_start(); -} - - -class SequenceRedrawRequest { -public: - nframes_t start; - nframes_t length; - Sequence *sequence; -}; - -static -void -sequence_redraw_request_handle ( void *v ) -{ - THREAD_ASSERT(UI); - - SequenceRedrawRequest *o = (SequenceRedrawRequest*)v; - - o->sequence->damage( FL_DAMAGE_USER1, timeline->offset_to_x( o->start ), o->sequence->y(), timeline->ts_to_x( o->length ), o->sequence->h() ); - - delete o; -}; - -/** write /nframes/ from /buf/ to source. /buf/ is interleaved and - must match the channel layout of the write source! */ -nframes_t -Audio_Region::write ( nframes_t nframes ) -{ - THREAD_ASSERT( Capture ); - - if ( 0 == ( timeline->ts_to_x( _range.length ) % 20 ) ) - { - int W = 20; - - if ( W ) - { - SequenceRedrawRequest *o = new SequenceRedrawRequest(); - o->sequence = sequence(); - o->start = _range.start + ( _range.length - timeline->x_to_ts( 20 ) ); - o->length = timeline->x_to_ts( 20 ); - - Fl::awake(sequence_redraw_request_handle, o); - } - } - - timeline->sequence_lock.wrlock(); - - _range.length += nframes; - - timeline->sequence_lock.unlock(); - - return nframes; -} - -/** finalize region capture. Assumes that this *is* a captured region - and that no other regions refer to the same source */ -bool -Audio_Region::finalize ( nframes_t frame ) -{ - THREAD_ASSERT( Capture ); - - DMESSAGE( "finalizing capture region" ); - - timeline->sequence_lock.wrlock(); - - _range.length = frame - _range.start; - - timeline->sequence_lock.unlock(); - - _clip->close(); - _clip->open(); - - log_create(); -// log_end(); - - return true; -} diff --git a/timeline/src/Engine/Audio_Sequence.C b/timeline/src/Engine/Audio_Sequence.C deleted file mode 100644 index cda9eda..0000000 --- a/timeline/src/Engine/Audio_Sequence.C +++ /dev/null @@ -1,63 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "../Audio_Sequence.H" - -#include "dsp.h" - -#include "const.h" -#include "debug.h" -#include "Thread.H" - -using namespace std; - - - -/**********/ -/* Engine */ -/**********/ - -/** determine region coverage and fill /buf/ with interleaved samples - * from /frame/ to /nframes/ for exactly /channels/ channels. */ -nframes_t -Audio_Sequence::play ( sample_t *buf, nframes_t frame, nframes_t nframes, int channels ) -{ - THREAD_ASSERT( Playback ); - - bool buf_is_empty = true; - - /* quick and dirty--let the regions figure out coverage for themselves */ - for ( list ::const_iterator i = _widgets.begin(); - i != _widgets.end(); ++i ) - { - const Audio_Region *r = (Audio_Region*)(*i); - - int nfr; - - /* read mixes into buf */ - if ( ! ( nfr = r->read( buf, buf_is_empty, frame, nframes, channels ) ) ) - /* error ? */ - continue; - - buf_is_empty = false; - } - - /* FIXME: bogus */ - return nframes; -} diff --git a/timeline/src/Engine/Control_Sequence.C b/timeline/src/Engine/Control_Sequence.C deleted file mode 100644 index f334e65..0000000 --- a/timeline/src/Engine/Control_Sequence.C +++ /dev/null @@ -1,135 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "../Control_Sequence.H" - -#include "../Transport.H" // for ->frame - -#include "const.h" -#include "debug.h" -#include "Thread.H" - -#include -using std::list; - - - -/**********/ -/* Engine */ -/**********/ - -static inline float -linear_interpolate ( float y1, float y2, float mu ) -{ -// return y1 + mu * ( y2 - y1 ); - return y1 * ( 1.0f - mu ) + y2 * mu; -} - -static inline float -sigmoid_interpolate ( float y1, float y2, float mu ) -{ - return linear_interpolate( y1, y2, ( 1 - cos( mu * M_PI ) ) / 2 ); -} - - - -/** fill buf with /nframes/ of interpolated control curve values - * starting at /frame/ */ -nframes_t -Control_Sequence::play ( sample_t *buf, nframes_t frame, nframes_t nframes ) -{ - // THREAD_ASSERT( RT ); - - Control_Point *p2, *p1 = (Control_Point*)_widgets.front(); - - nframes_t n = nframes; - - for ( list ::const_iterator i = _widgets.begin(); - i != _widgets.end(); ++i, p1 = p2 ) - { - p2 = (Control_Point*)(*i); - - if ( ! n ) - /* buffer's full, no point in continuing */ - break; - - if ( p2->when() < frame ) - { - if ( p2 != _widgets.back() ) - continue; - - /* no more control points left, fill buffer with last value */ - const float v = 1.0f - p2->control(); - - while ( n && n-- ) - *(buf++) = v; - - break; - } - else - { - /* do incremental linear interpolation */ - - const nframes_t len = p1 != p2 ? - p2->when() - p1->when() : - p1->when(); - - const float y1 = 1.0f - p1->control(); - const float y2 = 1.0f - p2->control(); - - const nframes_t start = frame > p1->when() ? - frame - p1->when() : - frame; - - float incr; - - if ( interpolation() != None ) - incr = ( y2 - y1 ) / (float)len; - else - incr = 0.0f; - - float v = y1 + start * incr; - - for ( nframes_t i = start; - i < start + len && n && n--; - ++i, v += incr ) - *(buf++) = v; - } - } - - return nframes - n; -} - -nframes_t -Control_Sequence::process ( nframes_t nframes ) -{ - THREAD_ASSERT( RT ); - - if ( ! _output ) - return nframes; - - if ( _output->connected() ) /* don't waste CPU on disconnected ports */ - { - void *buf = _output->buffer( nframes ); - - return play( (sample_t*)buf, transport->frame, nframes ); - } - else - return nframes; -} diff --git a/timeline/src/Engine/Disk_Stream.C b/timeline/src/Engine/Disk_Stream.C deleted file mode 100644 index 7268e67..0000000 --- a/timeline/src/Engine/Disk_Stream.C +++ /dev/null @@ -1,236 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "../Track.H" -// #include "Audio_Sequence.H" -class Audio_Sequence; - -// #include "Port.H" -#include "Engine.H" // for locking. - -#include "Disk_Stream.H" -#include "dsp.h" - -#include "const.h" -#include "debug.h" - -#include - - - -/**********/ -/* Engine */ -/**********/ - -/* A Disk_Stream uses a separate I/O thread to stream a track's - regions from disk into a ringbuffer to be processed by the RT - thread (or vice-versa). The I/O thread syncronizes access with the - user thread via the Timeline mutex. The size of the buffer (in - seconds) must be set before any Disk_Stream objects are created; - that is, at startup time. The default is 5 seconds, which may or - may not be excessive depending on various external factors. */ - -float Disk_Stream::seconds_to_buffer = 2.0f; -/* this is really only a rough estimate. The actual amount of data - read depends on many factors. Overlapping regions, for example, will - require more data to be read from disk, as will varying channel - counts.*/ -size_t Disk_Stream::disk_io_kbytes = 256; - - - -Disk_Stream::Disk_Stream ( Track *track, float frame_rate, nframes_t nframes, int channels ) : _track( track ) -{ - assert( channels ); - - _frame = 0; - _terminate = false; - _pending_seek = false; - _seek_frame = 0; - _xruns = 0; - _frame_rate = frame_rate; - - sem_init( &_blocks, 0, 0 ); - - _resize_buffers( nframes, channels ); -} - -Disk_Stream::~Disk_Stream ( ) -{ - /* it isn't safe to do all this with the RT thread running */ - -// timeline->wrlock(); - - _track = NULL; - - sem_destroy( &_blocks ); - - for ( int i = channels(); i--; ) - { - jack_ringbuffer_free( _rb[ i ] ); - _rb[i] = 0; - } - -// timeline->unlock(); -} - - - -/** flush buffers and reset. Must only be called from the RT thread. */ -void -Disk_Stream::base_flush ( bool is_output ) -{ -// THREAD_ASSERT( RT ); - - /* flush buffers */ - for ( unsigned int i = _rb.size(); i--; ) - jack_ringbuffer_reset( _rb[ i ] ); - - sem_destroy( &_blocks ); - - if ( is_output ) - sem_init( &_blocks, 0, _total_blocks ); - else - sem_init( &_blocks, 0, 0 ); -} - -/** signal thread to terminate, then detach it */ -void -Disk_Stream::detach ( void ) -{ - _terminate = true; - - block_processed(); - - _thread.detach(); -} - -/** stop the IO thread. */ -void -Disk_Stream::shutdown ( void ) -{ - if ( _thread.running() ) - { - DMESSAGE( "Sending terminate signal to diskthread." ); - - _terminate = true; - - /* try to wake the thread so it'll see that it's time to die */ - while ( _terminate ) - { - block_processed(); - usleep( 10 * 1000 ); - } - } - - /* thread may have terminated on it's own (due to punch out..), in - * any case join to clean up */ - _thread.join(); - - DMESSAGE( "diskthread joined." ); - -} - -Track * -Disk_Stream::track ( void ) const -{ - return _track; -} - -Audio_Sequence * -Disk_Stream::sequence ( void ) const -{ - return (Audio_Sequence*)_track->sequence(); -} - -/** start Disk_Stream thread */ -void -Disk_Stream::run ( void ) -{ - ASSERT( ! _thread.running(), "Thread is already running" ); - - if ( ! _thread.clone( &Disk_Stream::disk_thread, this ) ) - FATAL( "Could not create IO thread!" ); -} - -void -Disk_Stream::_resize_buffers ( nframes_t nframes, int channels ) -{ - for ( int i = _rb.size(); i--; ) - jack_ringbuffer_free( _rb[ i ] ); - - _rb.clear(); - - _nframes = nframes; - - _total_blocks = ( _frame_rate * seconds_to_buffer ) / nframes; - - size_t bufsize = _total_blocks * nframes * sizeof( sample_t ); - - if ( disk_io_kbytes ) - _disk_io_blocks = ( bufsize * channels ) / ( disk_io_kbytes * 1024 ); - else - _disk_io_blocks = 1; - - for ( int i = channels; i--; ) - _rb.push_back( jack_ringbuffer_create( bufsize ) ); -} - -/* THREAD: RT (non-RT) */ -/* to be called when the JACK buffer size changes. */ -void -Disk_Stream::resize_buffers ( nframes_t nframes ) -{ - if ( nframes != _nframes ) - { - DMESSAGE( "resizing buffers" ); - - const bool was_running = _thread.running(); - - if ( was_running ) - shutdown(); - - _resize_buffers( nframes, channels() ); - - flush(); - - if ( was_running ) - run(); - } -} - - -/* static wrapper */ -void * -Disk_Stream::disk_thread ( void *arg ) -{ - ((Disk_Stream*)arg)->disk_thread(); - - return NULL; -} - -int -Disk_Stream::buffer_percent ( void ) -{ - int n; - - sem_getvalue( &_blocks, &n ); - - return 100 - (n * 100 / _total_blocks); -} diff --git a/timeline/src/Engine/Disk_Stream.H b/timeline/src/Engine/Disk_Stream.H deleted file mode 100644 index 7c3541b..0000000 --- a/timeline/src/Engine/Disk_Stream.H +++ /dev/null @@ -1,126 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - - -#include -#include -#include - -#include - -#include "types.h" -#include "Mutex.H" -#include "const.h" -#include "debug.h" -#include "Thread.H" - -class Track; -class Audio_Sequence; - -class Disk_Stream : public Mutex -{ - - /* not permitted */ - Disk_Stream ( const Disk_Stream &rhs ); - Disk_Stream & operator = ( const Disk_Stream &rhs ); - - -protected: - - Thread _thread; /* io thread */ - - Track *_track; /* Track we belong to */ - - nframes_t _nframes; /* buffer size */ - - - std::vector < jack_ringbuffer_t * >_rb; /* one ringbuffer for each channel */ - - sem_t _blocks; /* semaphore to wake the IO thread with */ - - nframes_t _total_blocks; /* total number of blocks that we can buffer */ - nframes_t _disk_io_blocks; /* the number of blocks to read/write to/from disk at once */ - - - nframes_t _frame_rate; /* used for buffer size calculations */ - - volatile nframes_t _frame; /* location of disk read */ - volatile nframes_t _seek_frame; /* absolute transport position to seek to */ - volatile bool _pending_seek; /* absolute transport position to seek to */ - volatile int _terminate; - - volatile int _xruns; - - int channels ( void ) const { return _rb.size(); } - - Audio_Sequence * sequence ( void ) const; - Track * track ( void ) const; - - static void *disk_thread ( void *arg ); - - void _resize_buffers ( nframes_t nframes, int channels ); - -protected: - - void block_processed ( void ) { sem_post( &_blocks ); } - bool wait_for_block ( void ) - { - if ( _terminate ) - return false; - - while ( ! sem_wait( &_blocks ) && errno == EINTR ) - {} - - return ! _terminate; - } - - virtual void disk_thread ( void ) = 0; - - void base_flush ( bool is_output ); - virtual void flush ( void ) = 0; - - void run ( void ); - void detach ( void ); - -public: - - void shutdown ( void ); - - /* must be set before any Disk_Streams are created */ - static float seconds_to_buffer; - static size_t disk_io_kbytes; - - int xruns ( void ) { return _xruns; } - - Disk_Stream ( Track *th, float frame_rate, nframes_t nframes, int channels ); - - virtual ~Disk_Stream ( ); - - void resize_buffers ( nframes_t nframes ); - -/* void seek ( nframes_t frame ); */ -/* bool seek_pending ( void ); */ - - virtual nframes_t process ( nframes_t nframes ) = 0; - - virtual int buffer_percent ( void ); - -}; diff --git a/timeline/src/Engine/Engine.C b/timeline/src/Engine/Engine.C deleted file mode 100644 index 3f7c84a..0000000 --- a/timeline/src/Engine/Engine.C +++ /dev/null @@ -1,247 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "Engine.H" -#include "../Transport.H" - -#include "../Timeline.H" // for process() -#include "../Sequence_Widget.H" // for BBT and position info. - -/* This is the home of the JACK process callback */ - -#include "const.h" -#include "debug.h" -#include "Thread.H" - - - -Engine::Engine ( ) : _thread( "RT" ) -{ - _buffers_dropped = 0; - - DMESSAGE( "Creating audio I/O engine" ); -} - -Engine::~Engine ( ) -{ - DMESSAGE( "Deleting engine" ); - /* We have to deactivate here in order to avoid our process - callback is being invoked after we're already destroyed, but - before the base class is */ - deactivate(); -} - - - -/*************/ -/* Callbacks */ -/*************/ - -/* THREAD: RT */ -/** This is the jack xrun callback */ -int -Engine::xrun ( void ) -{ - return 0; -} - -/* THREAD: RT */ -void -Engine::freewheel ( bool starting ) -{ - if ( starting ) - DMESSAGE( "entering freewheeling mode" ); - else - DMESSAGE( "leaving freewheeling mode" ); -} - -/* THREAD: RT (non-RT) */ -int -Engine::buffer_size ( nframes_t nframes ) -{ - timeline->resize_buffers( nframes ); - - return 0; -} - -nframes_t -Engine::playback_latency ( void ) const -{ -#ifdef HAVE_JACK_PORT_GET_LATENCY_RANGE - jack_latency_range_t range; - - jack_port_get_latency_range( jack_port_by_name( jack_client(), "system:playback_1" ), - JackPlaybackLatency, - &range ); - - return range.min; -#else - return jack_port_get_latency( jack_port_by_name( jack_client(), "system:playback_1" ) ); -#endif -} - -/* THREAD: RT */ -/** This is the jack slow-sync callback. */ -int -Engine::sync ( jack_transport_state_t state, jack_position_t *pos ) -{ - static bool seeking = false; - - switch ( state ) - { - case JackTransportStopped: /* new position requested */ - /* JACK docs lie. This is only called when the transport - is *really* stopped, not when starting a slow-sync - cycle */ - transport->frame = pos->frame; - return 1; - case JackTransportStarting: /* this means JACK is polling slow-sync clients */ - { - if ( ! seeking ) - { - request_locate( pos->frame ); - seeking = true; - } - - bool r = true; - - if ( timeline ) - r = timeline->seek_pending(); - - if ( ! r ) - seeking = false; - - return ! seeking; - } - case JackTransportRolling: /* JACK's timeout has expired */ - /* FIXME: what's the right thing to do here? */ -// request_locate( pos->frame ); - return 1; -// return transport->frame == pos->frame; - break; - default: - printf( "unknown transport state.\n" ); - } - - return 0; -} - -/* THREAD: RT */ -void -Engine::timebase ( jack_transport_state_t, jack_nframes_t, jack_position_t *pos, int ) -{ - position_info pi = timeline->solve_tempomap( pos->frame ); - - pos->valid = JackPositionBBT; - - pos->beats_per_bar = pi.beats_per_bar; - pos->beat_type = pi.beat_type; - pos->beats_per_minute = pi.tempo; - - pos->bar = pi.bbt.bar + 1; - pos->beat = pi.bbt.beat + 1; - pos->tick = pi.bbt.tick; - pos->ticks_per_beat = 1920.0; /* FIXME: wrong place for this */ - - /* FIXME: fill this in */ - pos->bar_start_tick = 0; -} - -/* THREAD: RT */ -int -Engine::process ( nframes_t nframes ) -{ - /* FIXME: wrong place for this */ - _thread.set( "RT" ); - - transport->poll(); - - if ( !timeline) - /* handle chicken/egg problem */ - return 0; - - nframes_t n = 0; - - n += timeline->process_input(nframes); - n += timeline->process_output(nframes); - - if ( n != nframes * 2 ) - { - _buffers_dropped++; - WARNING("xrun"); - } - - /* if ( freewheeling() ) */ - /* { */ - /* if ( timeline ) */ - /* { */ - /* timeline->rdlock(); */ - - /* timeline->process( nframes ); */ - - /* timeline->unlock(); */ - /* } */ - /* } */ - /* else */ - /* { */ - /* if ( !timeline) */ - /* /\* handle chicken/egg problem *\/ */ - /* return 0; */ - - /* if ( timeline->tryrdlock() ) */ - /* { */ - /* /\* the data structures we need to access here (tracks and */ - /* * their ports, but not track contents) may be in an */ - /* * inconsistent state at the moment. Just punt and drop this */ - /* * buffer. *\/ */ - /* ++_buffers_dropped; */ - /* return 0; */ - /* } */ - - /* /\* this will initiate the process() call graph for the various */ - /* * number and types of tracks, which will in turn send data out */ - /* * the appropriate ports. *\/ */ - /* timeline->process( nframes ); */ - - /* timeline->unlock(); */ - /* } */ - - return 0; -} - - -/* TRHEAD: RT */ -void -Engine::thread_init ( void ) -{ - _thread.set( "RT" ); -} - -/* THREAD: RT */ -void -Engine::shutdown ( void ) -{ -} - -void -Engine::request_locate ( nframes_t frame ) -{ - if ( timeline ) - timeline->seek( frame ); -} diff --git a/timeline/src/Engine/Engine.H b/timeline/src/Engine/Engine.H deleted file mode 100644 index cf1d426..0000000 --- a/timeline/src/Engine/Engine.H +++ /dev/null @@ -1,72 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include "Mutex.H" - -class Port; - -#include "JACK/Client.H" - -#include "Thread.H" - -class Engine : public JACK::Client -{ - Thread _thread; /* only used for thread checking */ - - int _buffers_dropped; /* buffers dropped because of locking */ -/* int _buffers_dropped; /\* buffers dropped because of locking *\/ */ - - void shutdown ( void ); - int process ( nframes_t nframes ); - int sync ( jack_transport_state_t state, jack_position_t *pos ); - int xrun ( void ); - void timebase ( jack_transport_state_t state, jack_nframes_t nframes, jack_position_t *pos, int new_pos ); - void freewheel ( bool yes ); - int buffer_size ( nframes_t nframes ); - void thread_init ( void ); - - Engine ( const Engine &rhs ); - Engine & operator = ( const Engine &rhs ); - - void request_locate ( nframes_t frame ); - -private: - - friend class Port; - friend class Transport; - -public: - - Engine ( ); - virtual ~Engine ( ); - - int dropped ( void ) const { return _buffers_dropped; } - - nframes_t system_latency ( void ) const { return nframes(); } - nframes_t playback_latency ( void ) const; - - float frames_to_milliseconds ( nframes_t frames ) - { - return ( frames * 1000 ) / (float)sample_rate(); - } -}; - -extern Engine * engine; diff --git a/timeline/src/Engine/Peak.H b/timeline/src/Engine/Peak.H deleted file mode 100644 index 8ee1529..0000000 --- a/timeline/src/Engine/Peak.H +++ /dev/null @@ -1,27 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -struct Peak { - float min; - float max; - - float normalization_factor ( void ) const; -} __attribute__ (( packed )); diff --git a/timeline/src/Engine/Peaks.C b/timeline/src/Engine/Peaks.C deleted file mode 100644 index 0fa4dd9..0000000 --- a/timeline/src/Engine/Peaks.C +++ /dev/null @@ -1,980 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - - -/* - peakfile reading/writing. -*/ - -/* Code for peakfile reading, resampling, generation and streaming */ - -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include "Audio_File.H" -#include "Peaks.H" - -#include "assert.h" -#include "const.h" -#include "debug.h" -#include "Thread.H" -#include "file.h" - -#include - -#include -#include -using std::min; -using std::max; - -#include - -#include - - -struct peak_thread_data -{ - void(*callback)(void*); - void *userdata; - Peaks *peaks; -}; - - - - -/* whether to cache peaks at multiple resolutions on disk to - * drastically improve performance */ -bool Peaks::mipmapped_peakfiles = true; - -const int Peaks::cache_minimum = 256; /* minimum chunksize to build peakfiles for */ -const int Peaks::cache_levels = 8; /* number of sampling levels in peak cache */ -const int Peaks::cache_step = 1; /* powers of two between each level. 4 == 256, 2048, 16384, ... */ - -Peaks::peakbuffer Peaks::_peakbuf; - - - -static -char * -peakname ( const char *filename ) -{ - char *file; - - asprintf( &file, "%s.peak", filename ); - - return file; -} - - - - -struct peakfile_block_header -{ - uint32_t chunksize; - uint32_t skip; -} __attribute__ (( packed )); - -class Peakfile -{ - - FILE *_fp; - nframes_t _chunksize; - int _channels; /* number of channels this peakfile represents */ - off_t _offset; - - struct block_descriptor - { - nframes_t chunksize; - off_t pos; - - block_descriptor ( nframes_t chunksize, off_t pos ) : chunksize( chunksize ), pos( pos ) - { - } - - bool operator< ( const block_descriptor &rhs ) - { - return chunksize < rhs.chunksize; - } - }; - - std::list blocks; - -public: - - int nblocks ( void ) const - { - return blocks.size(); - } - - Peakfile ( ) - { - _fp = NULL; - _offset = 0; - _chunksize = 0; - _channels = 0; - } - - ~Peakfile ( ) - { - if ( _fp ) - close(); - } - - void rescan ( void ) - { - blocks.clear(); - } - - /* int blocks ( void ) const { return blocks.size(); } */ - /** find the best block for /chunksize/ */ - void - scan ( nframes_t chunksize ) - { - if ( ! blocks.size() ) - { - rewind( _fp ); - clearerr( _fp ); - - /* scan all blocks */ - for ( ;; ) - { - peakfile_block_header bh; - - fread( &bh, sizeof( bh ), 1, _fp ); - - if ( feof( _fp ) ) - break; - - DMESSAGE( "Peakfile: chunksize=%lu, skip=%lu", (uint64_t)bh.chunksize, (uint64_t) bh.skip ); - - ASSERT( bh.chunksize, "Chucksize of zero. Invalid peak file structure!" ); - - blocks.push_back( block_descriptor( bh.chunksize, ftello( _fp ) ) ); - - if ( ! bh.skip ) - /* last block */ - break; - - if ( fseeko( _fp, bh.skip, SEEK_CUR ) ) - { - WARNING( "seek failed: %s (%lu)", strerror( errno ), bh.skip ); - break; - } - } - } - - if ( ! blocks.size() ) - FATAL( "Peak file contains no blocks!" ); - - blocks.sort(); - - /* fall back on the smallest chunksize */ - fseeko( _fp, blocks.front().pos, SEEK_SET ); - _chunksize = blocks.front().chunksize; - - /* search for the best-fit chunksize */ - for ( std::list ::const_reverse_iterator i = blocks.rbegin(); - i != blocks.rend(); ++i ) - if ( chunksize >= i->chunksize ) - { - _chunksize = i->chunksize; - fseeko( _fp, i->pos, SEEK_SET ); - break; - } - -// DMESSAGE( "using peakfile block for chunksize %lu", _chunksize ); - _offset = ftello( _fp ); - } - - /** convert frame number of peak number */ - nframes_t frame_to_peak ( nframes_t frame ) - { - return ( frame / _chunksize ) * (nframes_t)_channels; - } - - /** return the number of peaks in already open peakfile /fp/ */ - nframes_t - npeaks ( void ) const - { - struct stat st; - - fstat( fileno( _fp ), &st ); - - return ( st.st_size - sizeof( peakfile_block_header ) ) / sizeof( Peak ); - } - - /** returns true if the peakfile contains /npeaks/ peaks starting at sample /s/ */ - bool - ready ( nframes_t start, nframes_t npeaks ) - { - if ( blocks.size() > 1 ) - return true; - else - return this->npeaks() > frame_to_peak( start ) + npeaks; - } - - /** given soundfile name /name/, try to open the best peakfile for /chunksize/ */ - bool - open ( const char *name, int channels, nframes_t chunksize ) - { - assert( ! _fp ); -// _chunksize = 0; - _channels = channels; - - char *pn = peakname( name ); - - if ( ! ( _fp = fopen( pn, "r" ) ) ) - { - WARNING( "Failed to open peakfile for reading: %s", strerror(errno) ); - free( pn ); - return false; - } - - free( pn ); - - scan( chunksize ); - - assert( _chunksize ); - - return true; - } - - bool - open ( FILE *fp, int channels, nframes_t chunksize ) - { - assert( ! _fp ); - - _fp = fp; - _chunksize = 0; - _channels = channels; - - scan( chunksize ); - - assert( _chunksize ); - - return true; - } - - void - leave_open ( void ) - { - _fp = NULL; - } - - void - close ( void ) - { - fclose( _fp ); - _fp = NULL; - } - - /** read /npeaks/ peaks at /chunksize/ starting at sample /s/ - * assuming the peakfile contains data for /channels/ - * channels. Place the result in buffer /peaks/, which must be - * large enough to fit the entire request. Returns the number of - * peaks actually read, which may be fewer than were requested. */ - nframes_t - read_peaks ( Peak *peaks, nframes_t s, nframes_t npeaks, nframes_t chunksize ) - { - if ( ! _fp ) - { - DMESSAGE( "No peakfile open, WTF?" ); - return 0; - } - - const unsigned int ratio = chunksize / _chunksize; - - /* locate to start position */ - - if ( fseeko( _fp, _offset + ( frame_to_peak( s ) * sizeof( Peak ) ), SEEK_SET ) ) - { - DMESSAGE( "failed to seek... peaks not ready?" ); - return 0; - } - - if ( feof( _fp ) ) - return 0; - - if ( ratio == 1 ) - return fread( peaks, sizeof( Peak ) * _channels, npeaks, _fp ); - - Peak *pbuf = new Peak[ ratio * _channels ]; - - nframes_t len = 0; - - nframes_t i; - - for ( i = 0; i < npeaks; ++i ) - { - /* read in a buffer */ - len = fread( pbuf, sizeof( Peak ) * _channels, ratio, _fp ); - - Peak *pk = peaks + (i * _channels); - - /* get the peak for each channel */ - for ( int j = 0; j < _channels; ++j ) - { - Peak *p = &pk[ j ]; - - p->min = 0; - p->max = 0; - - const Peak *pb = pbuf + j; - - for ( int k = len; k--; pb += _channels ) - { - if ( pb->max > p->max ) - p->max = pb->max; - if ( pb->min < p->min ) - p->min = pb->min; - } - - } - - if ( feof( _fp) || len < ratio ) - break; - } - - delete[] pbuf; - - return i; - } -}; - - - -Peaks::Peaks ( Audio_File *c ) -{ - _rescan_needed = false; - _first_block_pending = false; - _mipmaps_pending = false; - _clip = c; - _peak_writer = NULL; - _peakfile = new Peakfile(); -} - -Peaks::~Peaks ( ) -{ - if ( _peak_writer ) - { - delete _peak_writer; - _peak_writer = NULL; - } - - delete _peakfile; - _peakfile = NULL; -} - - - -/** Prepare a buffer of peaks from /s/ to /e/ for reading. Must be - * called before any calls to operator[] */ -int -Peaks::fill_buffer ( float fpp, nframes_t s, nframes_t e ) const -{ - _fpp = fpp; - - return read_peaks( s, (e - s) / fpp, fpp ); -} - - -bool -Peaks::ready ( nframes_t s, nframes_t npeaks, nframes_t chunksize ) const -{ - if ( ! _peakfile->open( _clip->filename(), _clip->channels(), chunksize ) ) - return false; - - int r = _peakfile->ready( s, npeaks ); - - _peakfile->close(); - - return r; -} - -/** If this returns false, then the peakfile needs to be built */ -bool -Peaks::peakfile_ready ( void ) const -{ - if ( _rescan_needed ) - { - DMESSAGE( "Rescanning peakfile" ); - _peakfile->rescan(); - if ( _peakfile->open( _clip->filename(), _clip->channels(), 256 ) ) - _peakfile->close(); - - _rescan_needed = false; - } - - return _first_block_pending || current(); -} - -/** start building peaks and/or peak mipmap in another thread. It is - * safe to call this again before the thread finishes. /callback/ will - * be called with /userdata/ FROM THE PEAK BUILDING THREAD when the - * peaks are finished. */ -void -Peaks::make_peaks_asynchronously ( void(*callback)(void*), void *userdata ) const -{ - if ( _clip->dummy() ) - return; - - /* already working on it... */ - if( _first_block_pending || _mipmaps_pending ) - return; - - /* maybe still building mipmaps... */ - _first_block_pending = _peakfile->nblocks() < 1; - _mipmaps_pending = _peakfile->nblocks() <= 1; - - peak_thread_data *pd = new peak_thread_data(); - - pd->callback = callback; - pd->userdata = userdata; - pd->peaks = const_cast(this); - - _make_peaks_thread.clone( &Peaks::make_peaks, pd ); - _make_peaks_thread.detach(); - - DMESSAGE( "Starting new peak building thread" ); -} - -nframes_t -Peaks::read_peakfile_peaks ( Peak *peaks, nframes_t s, nframes_t npeaks, nframes_t chunksize ) const -{ - if ( ! _peakfile->open( _clip->filename(), _clip->channels(), chunksize ) ) - { - DMESSAGE( "Failed to open peakfile!" ); - return 0; - } - - nframes_t l = _peakfile->read_peaks( peaks, s, npeaks, chunksize ); - - _peakfile->close(); - - return l; -} - -nframes_t -Peaks::read_source_peaks ( Peak *peaks, nframes_t npeaks, nframes_t chunksize ) const -{ - int channels = _clip->channels(); - - sample_t *fbuf = new sample_t[ chunksize * channels ]; - - off_t len; - - nframes_t i; - for ( i = 0; i < npeaks; ++i ) - { - /* read in a buffer */ - len = _clip->read( fbuf, -1, chunksize ); - - Peak *pk = peaks + (i * channels); - - /* get the peak for each channel */ - for ( int j = 0; j < channels; ++j ) - { - Peak &p = pk[ j ]; - - p.min = 0; - p.max = 0; - - for ( nframes_t k = j; k < len * channels; k += channels ) - { - if ( fbuf[ k ] > p.max ) - p.max = fbuf[ k ]; - if ( fbuf[ k ] < p.min ) - p.min = fbuf[ k ]; - } - - } - - if ( len < (nframes_t)chunksize ) - break; - } - - delete[] fbuf; - - return i; -} - -nframes_t -Peaks::read_source_peaks ( Peak *peaks, nframes_t s, nframes_t npeaks, nframes_t chunksize ) const -{ - _clip->seek( s ); - - return read_source_peaks( peaks, npeaks, chunksize ); -} - -nframes_t -Peaks::read_peaks ( nframes_t s, nframes_t npeaks, nframes_t chunksize ) const -{ - THREAD_ASSERT( UI ); /* because _peakbuf cache is static */ - -// printf( "reading peaks %d @ %d\n", npeaks, chunksize ); - - if ( _peakbuf.size < (nframes_t)( npeaks * _clip->channels() ) ) - { - _peakbuf.size = npeaks * _clip->channels(); -// printf( "reallocating peak buffer %li\n", _peakbuf.size ); - _peakbuf.buf = (peakdata*)realloc( _peakbuf.buf, sizeof( peakdata ) + (_peakbuf.size * sizeof( Peak )) ); - } - - _peakbuf.offset = s; - _peakbuf.buf->chunksize = chunksize; - - /* FIXME: use actual minimum chunksize from peakfile! */ - if ( chunksize < (nframes_t)cache_minimum ) - { - _peakbuf.len = read_source_peaks( _peakbuf.buf->data, s, npeaks, chunksize ); - } - else - { - _peakbuf.len = read_peakfile_peaks( _peakbuf.buf->data, s, npeaks, chunksize ); - } - - return _peakbuf.len; -} - -/** returns false if peak file for /filename/ is out of date */ -bool -Peaks::current ( void ) const -{ - char *pn = peakname( _clip->filename() ); - - bool b = newer( pn, _clip->filename() ); - - free( pn ); - - return b; -} - -/* thread entry point */ -void * -Peaks::make_peaks ( void *v ) -{ - peak_thread_data *pd = (peak_thread_data*)v; - - if ( pd->peaks->make_peaks() ) - { - if ( pd->callback ) - pd->callback( pd->userdata ); - - pd->peaks->_rescan_needed = true; - } - - delete pd; - - return NULL; -} - -bool -Peaks::needs_more_peaks ( void ) const -{ - return _peakfile->nblocks() <= 1 && ! ( _first_block_pending || _mipmaps_pending ); -} - -bool -Peaks::make_peaks ( void ) const -{ - Peaks::Builder pb( this ); - - /* make the first block */ - int b = pb.make_peaks(); - - _first_block_pending = false; - - b = pb.make_peaks_mipmap(); - - _mipmaps_pending = false; - - return b; -} - -/** return normalization factor for a single peak, assuming the peak - * represents a downsampling of the entire range to be normalized. */ -float -Peak::normalization_factor( void ) const -{ - float s; - - s = 1.0f / fabs( this->max ); - - if ( s * this->min < -1.0 ) - s = 1.0f / fabs( this->min ); - - return s; -} - -/* wrapper for peak writer */ -void -Peaks::prepare_for_writing ( void ) -{ - THREAD_ASSERT( Capture ); - - assert( ! _peak_writer ); - - char *pn = peakname( _clip->filename() ); - - _first_block_pending = true; - _peak_writer = new Peaks::Streamer( pn, _clip->channels(), cache_minimum ); - - free( pn ); -} - -void -Peaks::finish_writing ( void ) -{ - assert( _peak_writer ); - - delete _peak_writer; - _peak_writer = NULL; - - _first_block_pending = false; -} - -void -Peaks::write ( sample_t *buf, nframes_t nframes ) -{ - THREAD_ASSERT( Capture ); - - _peak_writer->write( buf, nframes ); -} - - - -/* - The Streamer is for streaming peaks from audio buffers to disk while - capturing. It works by accumulating a peak value across write() - calls. The Streamer can only generate peaks at a single - chunksize--additional cache levels must be appended after the - Streamer has finished. -*/ - -Peaks::Streamer::Streamer ( const char *filename, int channels, nframes_t chunksize ) -{ - _channels = channels; - _chunksize = chunksize; - _index = 0; - _fp = NULL; - - _peak = new Peak[ channels ]; - memset( _peak, 0, sizeof( Peak ) * channels ); - - if ( ! ( _fp = fopen( filename, "w" ) ) ) - { - FATAL( "could not open peakfile for streaming." ); - } - - peakfile_block_header bh; - - bh.chunksize = chunksize; - bh.skip = 0; - - fwrite( &bh, sizeof( bh ), 1, _fp ); - - fflush( _fp ); - fsync( fileno( _fp ) ); -} - -Peaks::Streamer::~Streamer ( ) -{ -/* fwrite( _peak, sizeof( Peak ) * _channels, 1, _fp ); */ - - fflush( _fp ); - - touch( fileno( _fp ) ); - - fsync( fileno( _fp ) ); - - fclose( _fp ); - - delete[] _peak; -} - -/** append peaks for samples in /buf/ to peakfile */ -void -Peaks::Streamer::write ( const sample_t *buf, nframes_t nframes ) -{ - while ( nframes ) - { - const nframes_t remaining = _chunksize - _index; - - if ( ! remaining ) - { - fwrite( _peak, sizeof( Peak ) * _channels, 1, _fp ); - - memset( _peak, 0, sizeof( Peak ) * _channels ); - - _index = 0; - } - - int processed = min( nframes, remaining ); - - for ( int i = _channels; i--; ) - { - Peak *p = _peak + i; - - const sample_t *f = buf + i; - - for ( int j = processed; j--; f += _channels ) - { - if ( *f > p->max ) - p->max = *f; - if ( *f < p->min ) - p->min = *f; - } - } - - _index += processed; - nframes -= processed; - } - - /* FIXME: shouldn't we just use write() instead? */ - fflush( _fp ); -} - - - -/* - The Builder is for generating peaks from imported or updated - sources, or when the peakfile is simply missing. -*/ - -void -Peaks::Builder::write_block_header ( nframes_t chunksize ) -{ - if ( last_block_pos ) - { - /* update previous block */ - off_t pos = ftello( fp ); - - fseeko( fp, last_block_pos - sizeof( peakfile_block_header ), SEEK_SET ); - - peakfile_block_header bh; - - fread( &bh, sizeof( bh ), 1, fp ); - - fseeko( fp, last_block_pos - sizeof( peakfile_block_header ), SEEK_SET ); -// fseeko( fp, 0 - sizeof( bh ), SEEK_CUR ); - -// DMESSAGE( "old block header: chunksize=%lu, skip=%lu", (unsigned long) bh.chunksize, (unsigned long) bh.skip ); - - bh.skip = pos - last_block_pos; - - ASSERT( bh.skip, "Attempt to create empty block. pos=%lu, last_block_pos=%lu", pos, last_block_pos ); - -// DMESSAGE( "new block header: chunksize=%lu, skip=%lu", (unsigned long) bh.chunksize, (unsigned long) bh.skip ); - - fwrite( &bh, sizeof( bh ), 1, fp ); - - fseeko( fp, pos, SEEK_SET ); - } - - peakfile_block_header bh; - - bh.chunksize = chunksize; - bh.skip = 0; - - fwrite( &bh, sizeof( bh ), 1, fp ); - - last_block_pos = ftello( fp ); - - fflush( fp ); -} - -/** generate additional cache levels for a peakfile with only 1 block (ie. that of a new capture) */ -bool -Peaks::Builder::make_peaks_mipmap ( void ) -{ - if ( ! Peaks::mipmapped_peakfiles ) - return false; - - Audio_File *_clip = _peaks->_clip; - - const char *filename = _clip->filename(); - char *pn = peakname( filename ); - - FILE *rfp; - - if ( ! ( rfp = fopen( pn, "r" ) ) ) - { - WARNING( "could not open peakfile for reading: %s.", strerror( errno ) ); - free( pn ); - return false; - } - - { - peakfile_block_header bh; - - fread( &bh, sizeof( peakfile_block_header ), 1, rfp ); - - if ( bh.skip ) - { - WARNING( "Peakfile already has multiple blocks..." ); - fclose( rfp ); - free( pn ); - return false; - } - - } - - last_block_pos = sizeof( peakfile_block_header ); - - /* open for reading */ -// rfp = fopen( peakname( filename ), "r" ); - - /* open the file again for appending */ - if ( ! ( fp = fopen( pn, "r+" ) ) ) - { - WARNING( "could not open peakfile for appending: %s.", strerror( errno ) ); - free( pn ); - return false; - } - - free( pn ); - - if ( fseeko( fp, 0, SEEK_END ) ) - FATAL( "error performing seek: %s", strerror( errno ) ); - - if ( ftello( fp ) == sizeof( peakfile_block_header ) ) - { - DWARNING( "truncated peakfile. Programming error?" ); - return false; - } - - Peak buf[ _clip->channels() ]; - - /* now build the remaining peak levels, each based on the - * preceding level */ - - nframes_t cs = Peaks::cache_minimum << Peaks::cache_step; - - for ( int i = 1; i < Peaks::cache_levels; ++i, cs <<= Peaks::cache_step ) - { - DMESSAGE( "building level %d peak cache cs=%i", i + 1, cs ); - -/* DMESSAGE( "%lu", _clip->length() / cs ); */ - - if ( _clip->length() / cs < 1 ) - { - DMESSAGE( "source not long enough for any peaks at chunksize %lu", cs ); - break; - } - - Peakfile pf; - - /* open the peakfile for the previous cache level */ - - pf.open( rfp, _clip->channels(), cs >> Peaks::cache_step ); - -// pf.open( _clip->filename(), _clip->channels(), cs >> Peaks::cache_step ); - - write_block_header( cs ); - - off_t len; - nframes_t s = 0; - do { - len = pf.read_peaks( buf, s, 1, cs ); - - s += cs; - - fwrite( buf, sizeof( buf ), len, fp ); - } - while ( len > 0 && s < _clip->length() ); - - DMESSAGE( "Last sample was %lu", (unsigned long)s ); - - pf.leave_open(); - } - - fclose( rfp ); - fclose( fp ); - - DMESSAGE( "done" ); - - return true; -} - -bool -Peaks::Builder::make_peaks ( void ) -{ - Audio_File *_clip = _peaks->_clip; - - const char *filename = _clip->filename(); - - if ( _peaks->_peakfile && _peaks->_peakfile->nblocks() > 1 ) - { - /* this peakfile already has enough blocks */ - return false; - } - else - { - DMESSAGE( "building peaks for \"%s\"", filename ); - - char *pn = peakname( filename ); - - if ( ! ( fp = fopen( pn, "w+" ) ) ) - { - free( pn ); - return false; - } - - free( pn ); - - _clip->seek( 0 ); - - Peak buf[ _clip->channels() ]; - - DMESSAGE( "building level 1 peak cache" ); - - write_block_header( Peaks::cache_minimum ); - - /* build first level from source */ - off_t len; - do { - len = _peaks->read_source_peaks( buf, 1, Peaks::cache_minimum ); - - fwrite( buf, sizeof( buf ), len, fp ); - } - while ( len ); - - fclose( fp ); - - DMESSAGE( "done building peaks" ); - } - - return true; -} - -Peaks::Builder::Builder ( const Peaks *peaks ) : _peaks( peaks ) -{ - fp = NULL; - last_block_pos = 0; -} - - diff --git a/timeline/src/Engine/Peaks.H b/timeline/src/Engine/Peaks.H deleted file mode 100644 index c8d7612..0000000 --- a/timeline/src/Engine/Peaks.H +++ /dev/null @@ -1,159 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include - -#include "types.h" - -#include "Peak.H" - -#include - -#include "Thread.H" - - -class Audio_File; -class Peakfile; - -class Peaks -{ - /* true if first block is still being built */ - mutable volatile bool _first_block_pending; - mutable volatile bool _mipmaps_pending; - - mutable Thread _make_peaks_thread; - mutable Thread _make_peaks_mipmap_thread; - - static void * make_peaks_mipmap ( void *v ); - static void * make_peaks ( void *v ); - - struct peakdata { - - nframes_t chunksize; /* should always be a power of 2 */ - Peak data[]; - - }; - - struct peakbuffer { - - size_t size; /* total allocation size */ - size_t len; /* number of peaks */ - nframes_t offset; /* starting sample */ - - peakdata *buf; - - peakbuffer ( ) - { - size = len = 0; - } - }; - - Peakfile *_peakfile; - - class Streamer - { - FILE *_fp; - Peak *_peak; - int _chunksize; - int _channels; - int _index; - - /* not permitted */ - Streamer ( const Streamer &rhs ); - const Streamer &operator= ( const Streamer &rhs ); - - public: - - Streamer ( const char *filename, int channels, nframes_t chunksize ); - ~Streamer ( ); - - void write ( const sample_t *buf, nframes_t nframes ); - - }; - - class Builder - { - FILE *fp; - off_t last_block_pos; - const Peaks *_peaks; - - void write_block_header ( nframes_t chunksize ); - - public: - - bool make_peaks_mipmap ( void ); - bool make_peaks ( void ); - - Builder ( const Peaks *peaks ); - }; - - /* FIXME: Is this ever accessed by multiple threads? */ - static peakbuffer _peakbuf; - - Audio_File *_clip; - - mutable float _fpp; - - volatile mutable bool _rescan_needed; - - nframes_t read_peaks ( nframes_t s, nframes_t npeaks, nframes_t chunksize ) const; - nframes_t read_source_peaks ( Peak *peaks, nframes_t s, nframes_t npeaks, nframes_t chunksize ) const; - nframes_t read_source_peaks ( Peak *peaks, nframes_t npeaks, nframes_t chunksize ) const; - nframes_t read_peakfile_peaks ( Peak *peaks, nframes_t s, nframes_t npeaks, nframes_t chunksize ) const; - - Streamer * volatile _peak_writer; /* exists when streaming peaks to disk */ - - /* not permitted */ - Peaks ( const Peaks &rhs ); - const Peaks &operator= ( const Peaks &rhs ); - - bool current ( void ) const; - -public: - - static bool mipmapped_peakfiles; - - static const int cache_minimum; - static const int cache_levels; - static const int cache_step; - - Peaks ( Audio_File *c ); - ~Peaks ( ); - - Peak *peakbuf ( void ) const { return Peaks::_peakbuf.buf->data; } - void clip ( Audio_File *c ) { _clip = c; } - - int fill_buffer ( float fpp, nframes_t s, nframes_t e ) const; - - bool peakfile_ready ( void ) const; - - void read ( int X, float *hi, float *lo ) const; - bool ready ( nframes_t s, nframes_t npeaks, nframes_t chunksize ) const; - - bool make_peaks ( void ) const; - void make_peaks_asynchronously ( void(*callback)(void*), void *userdata ) const; - - void prepare_for_writing ( void ); - void finish_writing ( void ); - void write ( sample_t *buf, nframes_t nframes ); - - bool needs_more_peaks ( void ) const; -}; diff --git a/timeline/src/Engine/Playback_DS.C b/timeline/src/Engine/Playback_DS.C deleted file mode 100644 index e5cf15d..0000000 --- a/timeline/src/Engine/Playback_DS.C +++ /dev/null @@ -1,233 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - - -/* Handles streaming regions from disk to track outputs. */ - -/* FIXME: we shouldn't depend on these */ -#include "../Timeline.H" // for locking -#include "../Audio_Sequence.H" -#include "../Track.H" - -// #include "Port.H" -#include "Playback_DS.H" -#include "Engine.H" -#include "dsp.h" - -#include "const.h" -#include "debug.h" -#include "Thread.H" -#include - -bool -Playback_DS::seek_pending ( void ) -{ - return _pending_seek || buffer_percent() < 50; -} - -/** request that the IO thread perform a seek and rebuffer. This is - called for each Disk_Stream whenever the RT thread determines that - the transport has jumped to a new position. This is called *before* - process. */ -void -Playback_DS::seek ( nframes_t frame ) -{ - THREAD_ASSERT( RT ); - - /* FIXME: non-RT-safe IO */ - DMESSAGE( "requesting seek to frame %lu", (unsigned long)frame ); - - if ( seek_pending() ) - printf( "seek error, attempt to seek while seek is pending\n" ); - - _seek_frame = frame; - _pending_seek = true; - - /* wake the IO thread */ - block_processed(); -} - -/** set the playback delay to /frames/ frames. This be called prior to -a seek. */ -void -Playback_DS::undelay ( nframes_t delay ) -{ - _undelay = delay; -} - -/** read /nframes/ from the attached track into /buf/ */ -void -Playback_DS::read_block ( sample_t *buf, nframes_t nframes ) -{ - THREAD_ASSERT( Playback ); - - memset( buf, 0, nframes * sizeof( sample_t ) * channels() ); - -// printf( "IO: attempting to read block @ %lu\n", _frame ); - - if ( !timeline ) - return; - - while ( timeline->sequence_lock.tryrdlock() ) - { - if ( _terminate ) - return; - - usleep( 1000 * 10 ); - } - - if ( sequence() ) - { - if ( ! sequence()->play( buf, _frame + _undelay, nframes, channels() ) ) - WARNING( "Programming error?" ); - - _frame += nframes; - } - - timeline->sequence_lock.unlock(); -} - -void -Playback_DS::disk_thread ( void ) -{ - _thread.name( "Playback" ); - - DMESSAGE( "playback thread running" ); - - /* buffer to hold the interleaved data returned by the track reader */ - sample_t *buf = buffer_alloc( _nframes * channels() * _disk_io_blocks ); - sample_t *cbuf = buffer_alloc( _nframes ); - - const nframes_t nframes = _nframes; - nframes_t blocks_written; - - while ( ! _terminate ) - { - - seek: - - blocks_written = 0; - read_block( buf, nframes * _disk_io_blocks ); - - while ( blocks_written < _disk_io_blocks && - wait_for_block() ) - { -// lock(); // for seeking - - if ( _pending_seek ) - { - /* FIXME: non-RT-safe IO */ - DMESSAGE( "performing seek to frame %lu", (unsigned long)_seek_frame ); - - _frame = _seek_frame; - _pending_seek = false; - - flush(); - - goto seek; - } - - /* might have received terminate signal while waiting for block */ - if ( _terminate ) - goto done; - -// unlock(); // for seeking - - /* deinterleave the buffer and stuff it into the per-channel ringbuffers */ - - const size_t block_size = nframes * sizeof( sample_t ); - - for ( int i = 0; i < channels(); i++ ) - { - buffer_deinterleave_one_channel( cbuf, - buf + ( blocks_written * nframes * channels() ), - i, - channels(), - nframes ); - - while ( jack_ringbuffer_write_space( _rb[ i ] ) < block_size ) - usleep( 100 * 1000 ); - - jack_ringbuffer_write( _rb[ i ], ((char*)cbuf), block_size ); - } - - blocks_written++; - } - } - -done: - - DMESSAGE( "playback thread terminating" ); - - free(buf); - free(cbuf); - -// flush(); - - _terminate = false; -} - -/** take a single block from the ringbuffers and send it out the - * attached track's ports */ -nframes_t -Playback_DS::process ( nframes_t nframes ) -{ - THREAD_ASSERT( RT ); - - const size_t block_size = nframes * sizeof( sample_t ); - -// printf( "process: %lu %lu %lu\n", _frame, _frame + nframes, nframes ); - - for ( int i = channels(); i--; ) - { - void *buf = track()->output[ i ].buffer( nframes ); - - if ( engine->freewheeling() ) - { - /* only ever read nframes at a time */ - while ( jack_ringbuffer_read_space( _rb[i] ) < block_size ) - usleep( 10 * 1000 ); - - jack_ringbuffer_read( _rb[ i ], ((char*)buf), block_size ); - } - else - { - /* only ever read nframes at a time */ - if ( jack_ringbuffer_read_space( _rb[i] ) < block_size ) - { - ++_xruns; - memset( buf, 0, block_size ); - /* FIXME: we need to resync somehow */ - } - else - { - jack_ringbuffer_read( _rb[ i ], (char*)buf, block_size ); - } - } - - /* TODO: figure out a way to stop IO while muted without losing sync */ - if ( track()->mute() || ( Track::soloing() && ! track()->solo() ) ) - buffer_fill_with_silence( (sample_t*)buf, nframes ); - } - - block_processed(); - - /* FIXME: bogus */ - return nframes; -} diff --git a/timeline/src/Engine/Playback_DS.H b/timeline/src/Engine/Playback_DS.H deleted file mode 100644 index 128a745..0000000 --- a/timeline/src/Engine/Playback_DS.H +++ /dev/null @@ -1,51 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "Disk_Stream.H" - -class Playback_DS : public Disk_Stream -{ - - void read_block ( sample_t *buf, nframes_t nframes ); - void disk_thread ( void ); - - void flush ( void ) { base_flush( true ); } - - volatile nframes_t _undelay; /* number of frames this diskstream - * should be undelayed by */ - -public: - - Playback_DS ( Track *th, float frame_rate, nframes_t nframes, int channels ) : - Disk_Stream( th, frame_rate, nframes, channels ) - { - _undelay = 0; - - run(); - } - - virtual ~Playback_DS ( ) { shutdown(); } - - bool seek_pending ( void ); - void seek ( nframes_t frame ); - nframes_t process ( nframes_t nframes ); - - void undelay ( nframes_t v ); - -}; diff --git a/timeline/src/Engine/Record_DS.C b/timeline/src/Engine/Record_DS.C deleted file mode 100644 index 312ce74..0000000 --- a/timeline/src/Engine/Record_DS.C +++ /dev/null @@ -1,382 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -/* Handles streaming from track inputs to disk */ - -/* FIXME: we shouldn't depend on these */ -#include "../Timeline.H" // for locking -#include "../Audio_Sequence.H" -#include "../Track.H" - -// #include "Port.H" -#include "Record_DS.H" -#include "Engine.H" -#include "dsp.h" - -#include "const.h" -#include "debug.h" -#include "Thread.H" - -#include - -const Audio_Region * -Record_DS::capture_region ( void ) const -{ - if ( _capture ) - return _capture->region; - else - return NULL; -} - -Track::Capture * -Record_DS::capture ( void ) -{ - return _capture; -} - -/** write /nframes/ from buf to the capture file of the attached track */ -void -Record_DS::write_block ( sample_t *buf, nframes_t nframes ) -{ - THREAD_ASSERT( Capture ); - - /* stupid chicken/egg */ - if ( ! ( timeline && sequence() ) ) - return; - - if ( ! _capture ) - { - _capture = new Track::Capture; - - /* if ( ! _capture->audio_file ) */ - /* create the file */ - track()->record( _capture, _frame ); - } - - track()->write( _capture, buf, nframes ); - - _frames_written += nframes; -} - -void -Record_DS::disk_thread ( void ) -{ - _thread.name( "Capture" ); - - DMESSAGE( "capture thread running..." ); - - const nframes_t nframes = _nframes; - - _disk_io_blocks = 1; - - /* buffer to hold the interleaved data returned by the track reader */ - sample_t *buf = buffer_alloc( nframes * channels() * _disk_io_blocks ); - sample_t *cbuf = buffer_alloc( nframes ); - - _recording = true; - -// const size_t block_size = nframes * sizeof( sample_t ); - - nframes_t frames_read = 0; - - bool punching_in = false; - bool punching_out = false; - bool punched_in = false; - - nframes_t bS = 0; /* block start */ - nframes_t bE = 0; /* block end */ - -again: - - _capture = NULL; - - punched_in = false; - punching_out = false; - - nframes_t pS = _frame; /* punch start */ - nframes_t pE = _stop_frame; /* punch end */ - - if ( punching_in ) - { - /* write remainder of buffer */ - write_block( buf + ((pS - bS) * channels()), - bE - pS ); - - punching_in = false; - punched_in = true; - } - - while ( wait_for_block() ) - { - /* pull data from the per-channel ringbuffers and interlace it */ - size_t frames_to_read = nframes; - - /* we read the entire block if a partial... */ - for ( int i = 0; i < channels(); i++ ) - { - while ( jack_ringbuffer_read_space( _rb[ i ] ) < frames_to_read * sizeof( sample_t ) ) - usleep( 10 * 1000 ); - - jack_ringbuffer_read( _rb[ i ], ((char*)cbuf), frames_to_read * sizeof( sample_t ) ); - - buffer_interleave_one_channel( buf, - cbuf, - i, - channels(), - frames_to_read); - } - - bS = _first_frame + frames_read; - - frames_read += frames_to_read; - - bE = _first_frame + frames_read; - - if ( ! punched_in && bS > pS ) - { - /* we're supposed to be punching in but don't have data - until a later frame... write null data instead. FIXME: - it would probably be better to just have the record - threads running all the time so that there would always - have some actual data to write here */ - sample_t nbuf[bS - pS]; - memset(nbuf,0,bS - pS); - write_block(nbuf, pS - pS); - write_block(buf,frames_to_read); - punched_in = true; - punching_in = false; - } - else - { - punching_in = ! punched_in && bE > pS; - punching_out = punched_in && pE < bE; - - if ( punching_out ) - { - write_block( buf, - pE - bS ); - - break; - } - else if ( punching_in ) - { - assert( pS >= bS ); - assert( bE >= pS ); - - write_block( buf + ((pS - bS) * channels()), - bE - pS ); - - punching_in = false; - punched_in = true; - } - else if ( punched_in ) - { - write_block( buf, bE - bS ); - } - } - } - -// DMESSAGE( "capture thread terminating" ); - - /* flush what remains in the buffer out to disk */ - - /* { */ - /* while ( blocks_read-- > 0 || ( ! sem_trywait( &_blocks ) && errno != EAGAIN ) ) */ - /* { */ - /* for ( int i = channels(); i--; ) */ - /* { */ - /* jack_ringbuffer_read( _rb[ i ], (char*)cbuf, block_size ); */ - - /* buffer_interleave_one_channel( buf, cbuf, i, channels(), nframes ); */ - /* } */ - - /* const nframes_t frames_remaining = (_stop_frame - _frame ) - _frames_written; */ - - /* if ( frames_remaining < nframes ) */ - /* { */ - /* /\* this is the last block, might be partial *\/ */ - /* write_block( buf, frames_remaining ); */ - /* break; */ - /* } */ - /* else */ - /* write_block( buf, nframes ); */ - /* } */ - /* } */ - - - - if ( _capture ) - { - DMESSAGE( "finalzing capture" ); - Track::Capture *c = _capture; - - _capture = NULL; - - /* now finalize the recording */ - -// if ( c->audio_file ) - track()->finalize( c, _stop_frame ); - - delete c; - } - - if ( ! _terminate ) - { - nframes_t in, out; - - if ( timeline->next_punch( _stop_frame, &in, &out ) ) - { - _frame = in; - _stop_frame = out; - _frames_written = 0; - - punched_in = false; - punching_out = false; - - punching_in = bE > in; - - DMESSAGE( "Next punch: %lu:%lu", (unsigned long)in,(unsigned long)out ); - - goto again; - } - } - - free(buf); - free(cbuf); - - flush(); - - _terminate = false; - _recording = false; - - DMESSAGE( "capture thread gone" ); -} - - -/** begin recording */ -void -Record_DS::start ( nframes_t frame, nframes_t start_frame, nframes_t stop_frame ) -{ - THREAD_ASSERT( UI ); - - if ( _recording ) - { - WARNING( "programming error: attempt to start recording while recording is still in progress" ); - return; - } - -/* /\* FIXME: safe to do this here? *\/ */ -/* flush(); */ - - DMESSAGE( "recording started at frame %lu", (unsigned long)frame); - - _frame = start_frame; - _stop_frame = stop_frame ? stop_frame : JACK_MAX_FRAMES; - - _first_frame = frame; - - run(); -} - -/** finalize the recording process. */ -void -Record_DS::stop ( nframes_t frame ) -{ - THREAD_ASSERT( UI ); - - _stop_frame = frame; - - DMESSAGE( "recording stop scheduled" ); -} - - -#include "../Transport.H" -extern Transport *transport; - -/** read from the attached track's ports and stuff the ringbuffers */ -nframes_t -Record_DS::process ( nframes_t nframes ) -{ - THREAD_ASSERT( RT ); - - if ( ! ( _recording && _thread.running() ) ) - return 0; - - /* if ( transport->frame < _frame ) */ - /* return 0; */ - -/* DMESSAGE( "recording actually happening at %lu (start frame %lu)", (unsigned long)transport->frame, (unsigned long)_frame); */ - - nframes_t offset = 0; - -/* if ( _frame > transport->frame && */ -/* _frame < transport->frame + nframes ) */ -/* { */ -/* /\* The record start frame falls somewhere within the current */ -/* buffer. We must discard the unneeded portion and only */ -/* stuff the part requested into the ringbuffer. *\/ */ - -/* offset = _frame - transport->frame; */ - -/* /\* DMESSAGE( "offset = %lu", (unsigned long)offset ); *\/ */ -/* } */ - - const size_t offset_size = offset * sizeof( sample_t ); - const size_t block_size = ( nframes * sizeof( sample_t ) ) - offset_size; - - for ( int i = 0; i < channels(); i++ ) - { - /* read the entire input buffer */ - void *buf = track()->input[ i ].buffer( nframes ); - - if ( engine->freewheeling() ) - { - while ( _thread.running() && jack_ringbuffer_write_space( _rb[i] ) < block_size ) - usleep( 10 * 1000 ); - - if ( ! _thread.running() ) - return 0; - - jack_ringbuffer_write( _rb[ i ], ((char*)buf) + offset_size, block_size ); - } - else - { - if ( ! _thread.running() ) - return 0; - - if ( jack_ringbuffer_write_space( _rb[i] ) < block_size ) - { - memset( buf, 0, block_size ); - /* FIXME: we need to resync somehow */ - WARNING( "xrun" ); - ++_xruns; - } - - jack_ringbuffer_write( _rb[ i ], ((char*)buf) + offset_size, block_size ); - -// DMESSAGE( "wrote %lu", (unsigned long) nframes ); - - } - } - - block_processed(); - - /* FIXME: bogus */ - return nframes; -} diff --git a/timeline/src/Engine/Record_DS.H b/timeline/src/Engine/Record_DS.H deleted file mode 100644 index 054bbc6..0000000 --- a/timeline/src/Engine/Record_DS.H +++ /dev/null @@ -1,76 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include "Disk_Stream.H" - -#include "Audio_File_SF.H" -class Audio_File; -class Peak_Writer; - -class Record_DS : public Disk_Stream -{ - - /* not permitted */ - Record_DS ( const Record_DS &rhs ); - Record_DS & operator= ( const Record_DS &rhs ); - - Track::Capture *_capture; - - nframes_t _frames_written; - volatile nframes_t _stop_frame; - volatile nframes_t _first_frame; - - volatile bool _recording; - - Audio_File_SF *_af; /* capture file */ - - void write_block ( sample_t *buf, nframes_t nframes ); - void disk_thread ( void ); - - virtual void flush ( void ) { base_flush( false ); } - -public: - - Record_DS ( Track *th, float frame_rate, nframes_t nframes, int channels ) : - Disk_Stream( th, frame_rate, nframes, channels ) - { - sem_destroy( &_blocks ); - sem_init( &_blocks, 0, 0 ); - - _capture = NULL; - _recording = false; - _stop_frame = JACK_MAX_FRAMES; - _frames_written = 0; - _first_frame = 0; - } - - virtual ~Record_DS ( ) { shutdown(); } - -/* bool seek_pending ( void ); */ -/* void seek ( nframes_t frame ); */ - const Audio_Region * capture_region ( void ) const; - Track::Capture * capture ( void ); - - void start ( nframes_t frame, nframes_t start_frame, nframes_t stop_frame = 0 ); - void stop ( nframes_t frame ); - nframes_t process ( nframes_t nframes ); - -}; diff --git a/timeline/src/Engine/Timeline.C b/timeline/src/Engine/Timeline.C deleted file mode 100644 index 9bcfa0f..0000000 --- a/timeline/src/Engine/Timeline.C +++ /dev/null @@ -1,362 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "../Timeline.H" - -#include "../Transport.H" // for .rolling -#include "../Track.H" - -#include "Record_DS.H" -#include "Playback_DS.H" - -#include "Thread.H" -#include "../Cursor_Sequence.H" - -#include "Engine.H" - -#include - -/** Initiate recording for all armed tracks */ -bool -Timeline::record ( void ) -{ - THREAD_ASSERT( UI ); - - DMESSAGE( "Initiating recording." ); - - /* FIXME: right place for this? */ - - if ( transport->automatically_create_takes() && - ! _created_new_takes ) - { - DMESSAGE( "Creating new takes." ); - add_take_for_armed_tracks(); - _created_new_takes = true; - } - - deactivate(); - - Loggable::block_start(); - - nframes_t frame = transport->frame; - - nframes_t _punch_out_frame = 0; -// nframes_t _punch_in_frame = 0; - - if ( transport->punch_enabled() ) - { - DMESSAGE( "Finding next punch region following frame %lu...", (unsigned long)frame); - - const Sequence_Widget *p = punch_cursor_track->prev( frame ); - const Sequence_Widget *n = punch_cursor_track->next( frame ); - - if (p || n ) - { - if ( p && frame >= p->start() && frame < p->start() + p->length() ) - { - /* recording started in the middle of a punch - * cursor... Just start recording and punch out at the - * end of it */ - _punch_out_frame = p->start() + p->length(); - } - else if ( n && n->start() >= frame ) - { - /* recording started outside of a punch cursor, set - * punch in frame to beginning of next cursor */ - frame = n->start(); - _punch_out_frame = n->start() + n->length(); - } - - DMESSAGE( "Punch enabled... Range %lu:%lu", - (unsigned long)frame, - (unsigned long)_punch_out_frame); - } - } - -// _punch_in_frame = frame; - - - for ( int i = tracks->children(); i-- ; ) - { - Track *t = (Track*)tracks->child( i ); - - if ( t->armed() && t->record_ds ) - { - t->record_ds->start( transport->frame, frame, _punch_out_frame ); - } - } - - transport->recording = true; - - - return true; -} - -void -Timeline::punch_out ( nframes_t frame ) -{ - THREAD_ASSERT( UI ); - - for ( int i = tracks->children(); i-- ; ) - { - Track *t = (Track*)tracks->child( i ); - - if ( t->armed() && t->record_ds ) - t->record_ds->stop( frame ); - } - - DMESSAGE( "Waiting for record threads to shutdown." ); - - /* none of the record threads need to call Fl::lock, because we're - * holding up the UI thread waiting for them to join.*/ - - for ( int i = tracks->children(); i-- ; ) - { - Track *t = (Track*)tracks->child( i ); - - if ( t->armed() && t->record_ds ) - t->record_ds->shutdown(); - } - - DMESSAGE( "All record threads stopped." ); -} - -/** stop recording for all armed tracks. Does not affect transport. */ -void -Timeline::stop ( void ) -{ - THREAD_ASSERT( UI ); - - nframes_t frame = transport->frame; - - /* if ( transport->punch_enabled() ) */ - /* { */ - /* const Sequence_Widget *w = punch_cursor_track->prev( frame ); */ - - /* if ( w && w->start() + w->length() < frame ) */ - /* frame = w->start() + w->length(); */ - /* } */ - - punch_out( frame ); - - Loggable::block_end(); - - activate(); - - transport->recording = false; -} - - -/**********/ -/* Engine */ -/**********/ - -nframes_t -Timeline::process_input ( nframes_t nframes ) -{ - - /* if ( engine->freewheeling() ) */ - /* { */ - /* rdlock(); */ - /* } */ - /* else */ - /* { */ - /* if ( tryrdlock() ) */ - /* return 0; */ - /* } */ - - if ( ! transport->recording ) - return nframes; - - /* we don't lock here in order to avoid deadlocks. we already know - * that only the record diskthread will be altering timeline - * structures during recording since the GUI is disabled. */ - - for ( int i = tracks->children(); i-- ; ) - { - Track *t = (Track*)tracks->child( i ); - - t->process_input( nframes ); - } - - /* unlock(); */ - - return nframes; -} - -nframes_t -Timeline::process_output ( nframes_t nframes ) -{ - - /* if ( engine->freewheeling() ) */ - /* { */ - /* rdlock(); */ - /* } */ - /* else */ - /* { */ - /* if ( tryrdlock() ) */ - /* return 0; */ - /* } */ - - bool r = transport->recording || engine->freewheeling(); - - if ( ! r ) - if ( track_lock.tryrdlock() ) - return 0; -// rdlock(); - - for ( int i = tracks->children(); i-- ; ) - { - Track *t = (Track*)tracks->child( i ); - - t->process_output( nframes ); - } - - if ( ! r ) - track_lock.unlock(); - - return nframes; - -} - -void -Timeline::seek ( nframes_t frame ) -{ - THREAD_ASSERT( RT ); - - for ( int i = tracks->children(); i-- ; ) - { - Track *t = (Track*)tracks->child( i ); - - t->seek( frame ); - } -} - -/* THREAD: RT (non-RT) */ -void -Timeline::resize_buffers ( nframes_t nframes ) -{ - for ( int i = tracks->children(); i-- ; ) - { - Track *t = (Track*)tracks->child( i ); - - t->resize_buffers( nframes ); - } -} - -/** return true if any playback stream's buffer is less than 50% full */ -bool -Timeline::seek_pending ( void ) -{ -// THREAD_ASSERT( RT ); - - for ( int i = tracks->children(); i-- ; ) - { - Track *t = (Track*)tracks->child( i ); - - if ( t->playback_ds ) - if ( t->playback_ds->seek_pending() ) - return true; - } - - return false; -} - - -/* FIXME: shouldn't these belong to the engine? */ -int -Timeline::total_input_buffer_percent ( void ) -{ - int r = 0; - - int cnt = 0; - - for ( int i = tracks->children(); i-- ; ) - { - Track *t = (Track*)tracks->child( i ); - - if ( t->record_ds ) - { - ++cnt; - r += t->record_ds->buffer_percent(); - } - } - - if ( ! cnt ) - return 0; - - return r / cnt; -} - -int -Timeline::total_output_buffer_percent ( void ) -{ - - int r = 0; - - int cnt = 0; - - for ( int i = tracks->children(); i-- ; ) - { - Track *t = (Track*)tracks->child( i ); - - if ( t->playback_ds ) - { - ++cnt; - r += t->playback_ds->buffer_percent(); - } - } - - if ( ! cnt ) - return 0; - - return r / cnt; -} - -int -Timeline::total_playback_xruns ( void ) -{ - int r = 0; - - for ( int i = tracks->children(); i-- ; ) - { - Track *t = (Track*)tracks->child( i ); - - if ( t->playback_ds ) - r += t->playback_ds->xruns(); - } - - return r; -} - -int -Timeline::total_capture_xruns ( void ) -{ - int r = 0; - - for ( int i = tracks->children(); i-- ; ) - { - Track *t = (Track*)tracks->child( i ); - - if ( t->record_ds ) - r += t->record_ds->xruns(); - } - - return r; -} diff --git a/timeline/src/Engine/Track.C b/timeline/src/Engine/Track.C deleted file mode 100644 index 4bfdb5f..0000000 --- a/timeline/src/Engine/Track.C +++ /dev/null @@ -1,410 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "../Track.H" -#include "../Transport.H" // for rolling -#include "../Control_Sequence.H" - -#include "Playback_DS.H" -#include "Record_DS.H" -#include "Engine.H" - - - -/**********/ -/* Engine */ -/**********/ - -const Audio_Region * -Track::capture_region ( void ) const -{ - if ( record_ds ) - return record_ds->capture_region(); - else - return NULL; -} - -Track::Capture * -Track::capture ( void ) -{ - if ( record_ds ) - return record_ds->capture(); - else - return NULL; -} - -void -Track::update_port_names ( void ) -{ - for ( unsigned int i = 0; i < output.size(); ++i ) - { - output[ i ].trackname( name() ); - output[ i ].rename(); - } - - for ( unsigned int i = 0; i < input.size(); ++i ) - { - input[ i ].trackname( name() ); - input[ i ].rename(); - } -/* /\* tell any attached control sequences to do the same *\/ */ -/* for ( int i = control->children(); i-- ) */ -/* ((Control_Sequence*)control->child( i ))->update_port_names(); */ - -} - -bool -Track::configure_outputs ( int n ) -{ - int on = output.size(); - - if ( n == on ) - return true; - - DMESSAGE( "Reconfiguring outputs for track %s", name() ); - - if ( playback_ds ) - { - Playback_DS *ds = playback_ds; - playback_ds = NULL; - - delete ds; - } - - if ( n > on ) - { - for ( int i = on; i < n; ++i ) - { - char s[512]; - snprintf( s, sizeof(s), "out-%i", i + 1 ); - - JACK::Port p( engine, name(), s, JACK::Port::Output, JACK::Port::Audio ); - - p.terminal(true); - - if ( !p.activate() ) - { - FATAL( "could not created output port!"); - } - - if ( p.valid() ) - output.push_back( p ); - else - WARNING( "could not create output port!" ); - } - } - else - { - for ( int i = on; i > n; --i ) - { - output.back().shutdown(); - output.pop_back(); - } - } - - if ( output.size() ) - playback_ds = new Playback_DS( this, engine->sample_rate(), engine->nframes(), output.size() ); - - /* FIXME: bogus */ - return true; -} - -bool -Track::configure_inputs ( int n ) -{ - int on = input.size(); - - if ( n == on ) - return true; - - DMESSAGE( "Reconfiguring inputs for track %s", name() ); - -// engine->lock(); - - if ( record_ds ) - { - Record_DS *ds = record_ds; - record_ds = NULL; - - delete ds; - } - - if ( n > on ) - { - for ( int i = on; i < n; ++i ) - { - char s[512]; - snprintf( s, sizeof(s), "in-%i", i + 1 ); - - JACK::Port p( engine, name(), s, JACK::Port::Input, JACK::Port::Audio ); - - p.terminal( true ); - - if ( !p.activate() ) - { - FATAL( "could not created output port!"); - } - - if ( p.valid() ) - input.push_back( p ); - else - WARNING( "could not create input port!" ); - } - } - else - { - for ( int i = on; i > n; --i ) - { - input.back().shutdown(); - input.pop_back(); - } - } - - if ( input.size() ) - record_ds = new Record_DS( this, engine->sample_rate(), engine->nframes(), input.size() ); - -// engine->unlock(); - - /* FIXME: bogus */ - return true; -} - -nframes_t -Track::process_input ( nframes_t nframes ) -{ - THREAD_ASSERT( RT ); - - if ( ! transport->rolling ) - { - /* There is no work to do when we're not rolling. */ - - return 0; - } - - if ( record_ds ) - return record_ds->process( nframes ); - else - return 0; - -} - -nframes_t -Track::process_output ( nframes_t nframes ) -{ - THREAD_ASSERT( RT ); - - if ( ! transport->rolling ) - { - for ( int i = output.size(); i--; ) - output[ i ].silence( nframes ); - - return 0; - } - - /* FIXME: should we blank the control output here or leave it floating? */ - for ( int i = 0; i < ((Fl_Pack*)control)->children(); i++ ) - ((Control_Sequence*)((Fl_Pack*)control)->child( i ))->process( nframes ); - - if ( playback_ds ) - return playback_ds->process( nframes ); - else - return 0; -} - - - -void -Track::seek ( nframes_t frame ) -{ - THREAD_ASSERT( RT ); - - compute_latency_compensation(); - - if ( playback_ds ) - return playback_ds->seek( frame ); -} - -void -Track::undelay ( nframes_t nframes ) -{ -// THREAD_ASSERT( RT ); - - if ( playback_ds ) - playback_ds->undelay( nframes ); -} - -/* THREAD: RT (non-RT) */ -void -Track::resize_buffers ( nframes_t nframes ) -{ - if ( record_ds ) - record_ds->resize_buffers( nframes ); - if ( playback_ds ) - playback_ds->resize_buffers( nframes ); -} - -#include - -static unsigned long uuid_counter = 0; - -/** very cheap UUID generator... */ -unsigned long long -uuid ( void ) -{ - time_t t = time( NULL ); - - return (unsigned long long) t + uuid_counter++; -} - -/** create capture region and prepare to record */ -void -Track::record ( Capture *c, nframes_t frame ) -{ - THREAD_ASSERT( Capture ); - - char *pat; - - asprintf( &pat, "%s-%llu", name(), uuid() ); - - c->audio_file = Audio_File_SF::create( pat, engine->sample_rate(), input.size(), Track::capture_format ); - - free( pat ); - - if ( ! c->audio_file ) - FATAL( "Could not create file for new capture!" ); - - /* open it again for reading in the GUI thread */ - // Audio_File *af = Audio_File::from_file( c->audio_file->name() ); - /* must acquire the FLTK lock because adding a widget might interfere with drawing */ -// Fl::lock(); - - /* must acquire a write lock because the Audio_Region constructor - * will add the region to the specified sequence, which might affect playback */ - - timeline->sequence_lock.wrlock(); - - c->region = new Audio_Region( c->audio_file, sequence(), frame ); - - timeline->sequence_lock.unlock(); - -// Fl::unlock(); - - c->region->prepare(); - - nframes_t min,max; - - input[0].get_latency( JACK::Port::Input, &min, &max ); - - if ( transport->freewheel_enabled() ) - { - /* in freewheeling mode, assume we're bouncing and only - * compensate for capture latency */ - _capture_offset = max; - - /* FIXME: hack to compensate for jack 1 period delay when looped back */ -// _capture_offset += engine->playback_latency() / 2; - _capture_offset += engine->nframes(); - } - else - { - /* not freewheeling, so assume we're overdubbing and need to - * compensate for both capture and playback latency */ - _capture_offset = max; - - /* since the track output might not be connected to - * anything, just get the playback latency */ - /* When playback latency compensation is enabled, this will - * have already been done. */ - if ( ! Timeline::playback_latency_compensation ) - _capture_offset += engine->playback_latency(); - } -} - -/** write a block to the (already opened) capture file */ -void -Track::write ( Capture *c, sample_t *buf, nframes_t nframes ) -{ - THREAD_ASSERT( Capture ); - - nframes_t l = c->audio_file->write( buf, nframes ); - - c->region->write( l ); -} - -#include - -void -Track::finalize ( Capture *c, nframes_t frame ) -{ - THREAD_ASSERT( Capture ); - - /* adjust region start for latency */ - /* FIXME: is just looking at the first channel good enough? */ - - DMESSAGE( "finalizing audio file" ); - c->audio_file->finalize(); - - DMESSAGE( "Adjusting capture by %lu frames.", (unsigned long)_capture_offset ); - - timeline->sequence_lock.wrlock(); - - c->region->offset( _capture_offset ); - - timeline->sequence_lock.unlock(); - - _capture_offset = 0; - - /* have to do this last, as it logs the create */ - c->region->finalize( frame ); -} - -void -Track::compute_latency_compensation ( void ) -{ - if ( Timeline::playback_latency_compensation && output.size() ) - { - nframes_t tmin,tmax; - - tmin = JACK_MAX_FRAMES >> 1; - tmax = 0; - - for ( unsigned int i = 0; i < output.size(); i++ ) - { - nframes_t min,max; - output[i].get_latency( JACK::Port::Output, &min, &max ); - - if ( max > tmax ) - tmax = max; - if ( min < tmin ) - tmin = min; - } - - DMESSAGE( "Track %s, setting undelay to %lu", name(), (unsigned long)tmax); - char s[256]; - snprintf( s, sizeof(s), "Latency Comp: -%lu", (unsigned long)tmax); - - copy_tooltip(s); - - undelay( tmax ); - } - else - { - undelay( 0 ); - } -} diff --git a/timeline/src/Engine/const.h b/timeline/src/Engine/const.h deleted file mode 100644 index 623ca48..0000000 --- a/timeline/src/Engine/const.h +++ /dev/null @@ -1,20 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#define __MODULE__ "non-timeline:engine" diff --git a/timeline/src/Engine/types.h b/timeline/src/Engine/types.h deleted file mode 100644 index cd3cc2c..0000000 --- a/timeline/src/Engine/types.h +++ /dev/null @@ -1,25 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include - -typedef jack_nframes_t nframes_t; -typedef float sample_t; diff --git a/timeline/src/NSM.C b/timeline/src/NSM.C deleted file mode 100644 index 28c702f..0000000 --- a/timeline/src/NSM.C +++ /dev/null @@ -1,119 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2012 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "const.h" -#include "debug.h" -#include "Timeline.H" -#include "TLE.H" -#include "Project.H" -#include "OSC/Endpoint.H" - -#include - -#define OSC_INTERVAL 0.2f - -extern char *instance_name; -extern Timeline *timeline; - -// extern NSM_Client *nsm; - - - -static int -command_save ( char **out_msg, void *userdata ) -{ - if ( timeline->command_save() ) - return ERR_OK; - else - { - *out_msg = strdup( "Failed to save for unknown reason"); - return ERR_GENERAL; - } -} - -static int -command_open ( const char *name, const char *display_name, const char *client_id, char **out_msg, void *userdata ) -{ - if ( instance_name ) - free( instance_name ); - - instance_name = strdup( client_id ); - - timeline->osc->name( client_id ); - - int r = 0; - - if ( Project::validate( name ) ) - { - if ( timeline->command_load( name, display_name ) ) - r = ERR_OK; - else - { - *out_msg = strdup( "Failed to load for unknown reason" ); - r = ERR_GENERAL; - } - } - else - { - if ( timeline->command_new( name, display_name ) ) - r =ERR_OK; - else - { - *out_msg = strdup( "Failed to load for unknown reason" ); - r = ERR_GENERAL; - } - } - - timeline->say_hello(); - -// timeline->connect_osc(); - - return r; -} - -static void -command_session_is_loaded ( void *userdata ) -{ - MESSAGE( "NSM says session is loaded." ); -} - -static int -command_broadcast ( const char *path, lo_message msg, void *userdata ) -{ - lo_message_get_argc( msg ); -// lo_arg **argv = lo_message_get_argv( msg ); - - if ( !strcmp( path, "/non/hello" ) ) - { - timeline->handle_hello( msg ); - return 0; - } - else - return -1; - -} - -void -set_nsm_callbacks ( nsm_client_t *nsm ) -{ - nsm_set_open_callback( nsm, command_open, 0 ); - nsm_set_save_callback( nsm, command_save, 0 ); - nsm_set_broadcast_callback( nsm, command_broadcast, 0 ); - nsm_set_session_is_loaded_callback( nsm, command_session_is_loaded, 0 ); -} diff --git a/timeline/src/OSC_Thread.C b/timeline/src/OSC_Thread.C deleted file mode 100644 index 70fe6fe..0000000 --- a/timeline/src/OSC_Thread.C +++ /dev/null @@ -1,94 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2012 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "OSC_Thread.H" - -#include "Timeline.H" - -#include -#include - -#include "debug.h" - -#include "OSC/Endpoint.H" - -extern Timeline *timeline; - -OSC_Thread::OSC_Thread ( ) -{ - // _thread.init(); - _shutdown = false; -} - -OSC_Thread::~OSC_Thread ( ) -{ - lock(); - if ( _shutdown == false ) - { - _shutdown = true; - _thread.join(); - } - unlock(); -} - - -void -OSC_Thread::start ( ) -{ - _thread.clone( &OSC_Thread::process, this ); -} - -void -OSC_Thread::join ( ) -{ - _thread.join(); -} - -void -OSC_Thread::process ( void ) -{ - _thread.name( "OSC" ); - - DMESSAGE( "OSC Thread starting" ); - - while ( !_shutdown ) - { - if ( trylock() ) - { - timeline->osc->check(); - timeline->process_osc(); - unlock(); - } - - usleep( 50 * 1000 ); - } - - DMESSAGE( "OSC Thread stopping." ); -} - -void * -OSC_Thread::process ( void *v ) -{ - OSC_Thread *t = (OSC_Thread*)v; - - t->process(); - - return NULL; -} - diff --git a/timeline/src/OSC_Thread.H b/timeline/src/OSC_Thread.H deleted file mode 100644 index d678028..0000000 --- a/timeline/src/OSC_Thread.H +++ /dev/null @@ -1,42 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2012 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include "Thread.H" -#include "Mutex.H" - -class OSC_Thread : public Mutex -{ - Thread _thread; /* io thread */ - - volatile bool _shutdown; - -public: - - OSC_Thread ( ); - - virtual ~OSC_Thread ( ); - - void join ( void ); - void shutdown ( void ) { _shutdown = true; } - void start ( void ); - void process ( void ); - static void *process ( void * ); -}; diff --git a/timeline/src/Project.C b/timeline/src/Project.C deleted file mode 100644 index f92375f..0000000 --- a/timeline/src/Project.C +++ /dev/null @@ -1,404 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -/* Routings for opening/closing/creation of projects. All the actual - project state belongs to Timeline and other classes. */ - -/* Project management routines. */ - -#include -#include -#include -#include -#include -#include -#include - -#include "Loggable.H" -#include "Project.H" - -#include "Timeline.H" // for sample_rate() -#include "Engine/Engine.H" // for sample_rate() -#include "TLE.H" // all this just for load and save... - -#include - -#include "const.h" -#include "debug.h" -#include "file.h" -#include "Block_Timer.H" - -#include "Transport.H" - -extern Transport *transport; -extern TLE *tle; - -const int PROJECT_VERSION = 2; - -extern char *instance_name; - - - -const char *Project::_errstr[] = -{ - "Not a Non-DAW project", - "Locked by another process", - "Access denied", - "Samplerate mismatch", - "Incompatible project version" -}; - -char Project::_name[256]; -char Project::_created_on[40]; -char Project::_path[512]; -bool Project::_is_open = false; -int Project::_lockfd = 0; - - - -/***********/ -/* Private */ -/***********/ - -void -Project::set_name ( const char *name ) -{ - strcpy( Project::_name, name ); - - if ( Project::_name[ strlen( Project::_name ) - 1 ] == '/' ) - Project::_name[ strlen( Project::_name ) - 1 ] = '\0'; - - char *s = rindex( Project::_name, '/' ); - - s = s ? s + 1 : Project::_name; - - memmove( Project::_name, s, strlen( s ) + 1 ); - - for ( s = Project::_name; *s; ++s ) - if ( *s == '_' || *s == '-' ) - *s = ' '; -} - -bool -Project::write_info ( void ) -{ - FILE *fp; - - if ( ! ( fp = fopen( "info", "w" ) ) ) - { - WARNING( "could not open project info file for writing." ); - return false; - } - - char s[40]; - - if ( ! *_created_on ) - { - time_t t = time( NULL ); - ctime_r( &t, s ); - s[ strlen( s ) - 1 ] = '\0'; - } - else - strcpy( s, _created_on ); - - fprintf( fp, "created by\n\t%s %s\ncreated on\n\t%s\nversion\n\t%d\nsample rate\n\t%lu\n", - APP_NAME, VERSION, - s, - PROJECT_VERSION, - (unsigned long)timeline->sample_rate() ); - - fclose( fp ); - - return true; -} - -void -Project::undo ( void ) -{ - Loggable::undo(); -} - -bool -Project::read_info ( int *version, nframes_t *sample_rate, char **creation_date, char **created_by ) -{ - FILE *fp; - - if ( ! ( fp = fopen( "info", "r" ) ) ) - { - WARNING( "could not open project info file for reading." ); - return false; - } - - *version = 0; - *sample_rate = 0; - *creation_date = 0; - *created_by = 0; - - char *name, *value; - - while ( fscanf( fp, "%m[^\n]\n\t%m[^\n]\n", &name, &value ) == 2 ) - { - MESSAGE( "Info: %s = %s", name, value ); - - if ( ! strcmp( name, "sample rate" ) ) - *sample_rate = atoll( value ); - else if ( ! strcmp( name, "version" ) ) - *version = atoi( value ); - else if ( ! strcmp( name, "created on" ) ) - *creation_date = strdup( value ); - else if ( ! strcmp( name, "created by" ) ) - *created_by = strdup( value ); - - free( name ); - free( value ); - } - - fclose( fp ); - - return true; -} - -/**********/ -/* Public */ -/**********/ - -/** Save out any settings and unjournaled state... */ -bool -Project::save ( void ) -{ - if ( ! open() ) - return true; - - tle->save_timeline_settings(); - - return Loggable::save_unjournaled_state(); -} - - -/** Close the project (reclaiming all memory) */ -bool -Project::close ( void ) -{ - if ( ! open() ) - return true; - - if ( ! save() ) - return false; - - Loggable::close(); - -// write_info(); - - _is_open = false; - - *Project::_name = '\0'; - *Project::_created_on = '\0'; - - release_lock( &_lockfd, ".lock" ); - - delete engine; - engine = NULL; - - return true; -} - -/** Ensure a project is valid before opening it... */ -bool -Project::validate ( const char *name ) -{ - bool r = true; - - char pwd[512]; - - fl_filename_absolute( pwd, sizeof( pwd ), "." ); - - if ( chdir( name ) ) - { - WARNING( "Cannot change to project dir \"%s\"", name ); - return false; - } - - if ( ! exists( "info" ) || - ! exists( "history" ) || - ! exists( "sources" ) ) -// ! exists( "options" ) ) - { - WARNING( "Not a Non-DAW project: \"%s\"", name ); - r = false; - } - - chdir( pwd ); - - return r; -} - -void -Project::make_engine ( void ) -{ - if ( engine ) - FATAL( "Engine should be null!" ); - - engine = new Engine; - - if ( ! engine->init( instance_name, JACK::Client::SLOW_SYNC | JACK::Client::TIMEBASE_MASTER )) - FATAL( "Could not connect to JACK!" ); - - timeline->sample_rate( engine->sample_rate() ); - - /* always start stopped (please imagine for me a realistic - * scenario requiring otherwise */ - transport->stop(); -} - - -/** Try to open project /name/. Returns 0 if sucsessful, an error code - * otherwise */ -int -Project::open ( const char *name ) -{ - if ( ! validate( name ) ) - return E_INVALID; - - close(); - - chdir( name ); - - if ( ! acquire_lock( &_lockfd, ".lock" ) ) - return E_LOCKED; - - int version; - nframes_t rate; - char *creation_date; - char *created_by; - - if ( ! read_info( &version, &rate, &creation_date, &created_by ) ) - return E_INVALID; - - if ( strncmp( created_by, "The Non-DAW", strlen( "The Non-DAW" ) ) && - strncmp( created_by, "Non-DAW", strlen( "Non-DAW" ) ) && - strncmp( created_by, APP_TITLE, strlen( APP_TITLE ) ) && - strncmp( created_by, APP_NAME, strlen( APP_NAME ) ) ) - return E_INVALID; - - if ( version > PROJECT_VERSION ) - return E_VERSION; - - if ( version < 2 ) - { - /* FIXME: Version 1->2 adds Cursor_Sequence and Cursor_Point to default project... */ - } - - /* normally, engine will be NULL after a close or on an initial open, - but 'new' will have already created it to get the sample rate. */ - if ( ! engine ) - make_engine(); - - { - Block_Timer timer( "Replayed journal" ); - if ( ! Loggable::open( "history" ) ) - return E_INVALID; - } - - /* /\* really a good idea? *\/ */ - /* timeline->sample_rate( rate ); */ - - if ( creation_date ) - { - strcpy( _created_on, creation_date ); - free( creation_date ); - } - else - *_created_on = 0; - - if ( created_by ) - free( created_by ); - - - *_path = '\0'; - - fl_filename_absolute( _path, sizeof( _path ), "." ); - - set_name( _path ); - - _is_open = true; - - tle->load_timeline_settings(); - - timeline->zoom_fit(); - - MESSAGE( "Loaded project \"%s\"", _path ); - - return 0; -} - -/** Create a new project /name/ from existing template - * /template_name/ */ -bool -Project::create ( const char *name, const char *template_name ) -{ - if ( exists( name ) ) - { - WARNING( "Project already exists" ); - return false; - } - - close(); - - if ( mkdir( name, 0777 ) ) - { - WARNING( "Cannot create project directory" ); - return false; - } - - if ( chdir( name ) ) - FATAL( "WTF? Cannot change to new project directory" ); - - mkdir( "sources", 0777 ); - creat( "history", 0666 ); - - if ( ! engine ) - make_engine(); - - /* TODO: copy template */ - - write_info(); - - if ( open( name ) == 0 ) - { - /* add the bare essentials */ - timeline->beats_per_minute( 0, 120 ); - timeline->time( 0, 4, 4 ); - - MESSAGE( "Created project \"%s\" from template \"%s\"", name, template_name ); - return true; - } - else - { - WARNING( "Failed to open newly created project" ); - return false; - } -} - -/** Replace the journal with a snapshot of the current state */ -void -Project::compact ( void ) -{ - Block_Timer timer( "Compacted journal" ); - Loggable::compact(); -} diff --git a/timeline/src/Project.H b/timeline/src/Project.H deleted file mode 100644 index a1a67a4..0000000 --- a/timeline/src/Project.H +++ /dev/null @@ -1,66 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -const char template_dir[] = "share/non-daw/templates"; -const char user_template_dir[] = "~/.non-daw/templates"; - -#include "types.h" - -class Project -{ - - static int _lockfd; - static bool _is_open; - static char _name[256]; - static char _path[512]; - static char _created_on[40]; - - static bool write_info ( void ); - static bool read_info ( int *version, nframes_t *sample_rate, char **creation_date, char **created_by ); - static const char *_errstr[]; - - static void make_engine ( void ); - -public: - - enum - { - E_INVALID = -1, - E_LOCKED = -2, - E_PERM = -3, - E_SAMPLERATE = -4, - E_VERSION = -5 - }; - - static void set_name ( const char *name ); - - static const char *errstr ( int n ) { return _errstr[ ( 0 - n ) - 1 ]; } - - static const char * path ( void ) { return Project::_path; } - static const char *name ( void ) { return Project::_name; } - static void compact ( void ); - static bool close ( void ); - static bool save ( void ); - static bool validate ( const char *name ); - static int open ( const char *name ); - static bool open ( void ) { return _is_open; } - static bool create ( const char *name, const char *template_name ); - static void undo ( void ); - static const char *created_on ( void ) { return _created_on; } -}; diff --git a/timeline/src/RWLock.H b/timeline/src/RWLock.H deleted file mode 100644 index b21d945..0000000 --- a/timeline/src/RWLock.H +++ /dev/null @@ -1,73 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - - -#pragma once - -#include - -class RWLock -{ - - pthread_rwlock_t _lock; - -public: - - RWLock ( ) - { -// _lock = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP; - pthread_rwlock_init( &_lock, NULL ); - } - - virtual ~RWLock ( ) - { - pthread_rwlock_destroy( &_lock ); - } - - void - rdlock ( void ) - { - pthread_rwlock_rdlock( &_lock ); - } - - void - wrlock ( void ) - { - pthread_rwlock_wrlock( &_lock ); - } - - void - unlock ( void ) - { - pthread_rwlock_unlock( &_lock ); - } - - int - tryrdlock ( void ) - { - return pthread_rwlock_tryrdlock( &_lock ); - } - - int - trywrlock ( void ) - { - return pthread_rwlock_trywrlock( &_lock ); - } - -}; diff --git a/timeline/src/Sequence.C b/timeline/src/Sequence.C deleted file mode 100644 index 9fd9a07..0000000 --- a/timeline/src/Sequence.C +++ /dev/null @@ -1,621 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "Sequence.H" -#include "Timeline.H" - -#include - -#include "Track.H" - -#include "FL/event_name.H" - -#include "Transport.H" // for locate() - -#include "const.h" -#include "debug.h" - -using namespace std; - - - -queue Sequence::_delete_queue; - - - -Sequence::Sequence ( Track *track, const char *name ) : Fl_Group( 0, 0, 0, 0 ), Loggable( true ) -{ - init(); - - _track = track; - - if ( name ) - _name = strdup( name ); - -// log_create(); -} - -Sequence::Sequence ( int X, int Y, int W, int H ) : Fl_Group( X, Y, W, H ), Loggable( false ) -{ - init(); -} - -void -Sequence::init ( void ) -{ - _track = NULL; - - _name = NULL; - - box( FL_FLAT_BOX ); - color( FL_BACKGROUND_COLOR ); - align( FL_ALIGN_LEFT ); - - end(); -// clear_visible_focus(); -} - - -Sequence::~Sequence ( ) -{ - DMESSAGE( "destroying sequence" ); - - if ( _widgets.size() ) - FATAL( "programming error: leaf destructor must call Sequence::clear()!" ); - - if ( parent() ) - parent()->remove( this ); - - if ( _name ) - free( _name ); -} - - - -int -Sequence::drawable_w ( void ) const -{ - return w() - Track::width(); -} - -int -Sequence::drawable_x ( void ) const -{ - return x() + Track::width(); -} - -void -Sequence::log_children ( void ) const -{ - if ( id() > 0 ) - log_create(); - - for ( std::list ::const_iterator i = _widgets.begin(); - i != _widgets.end(); ++i ) - (*i)->log_create(); -} - -/** remove all widgets from this sequence */ -void -Sequence::clear ( void ) -{ - Loggable::block_start(); - - while ( _widgets.size() ) - delete _widgets.front(); - - Loggable::block_end(); -} - -/** given screen pixel coordinate X, return an absolute frame offset into this sequence */ -nframes_t -Sequence::x_to_offset ( int X ) -{ - return timeline->xoffset + timeline->x_to_ts( X - x() ); -} - -/** sort the widgets in this sequence by position */ -void -Sequence::sort ( void ) -{ - _widgets.sort( Sequence_Widget::sort_func ); -} - -/** return a pointer to the widget that /r/ overlaps, or NULL if none. */ -Sequence_Widget * -Sequence::overlaps ( Sequence_Widget *r ) -{ - for ( list ::const_iterator i = _widgets.begin(); i != _widgets.end(); i++ ) - { - if ( *i == r ) continue; - if ( (*i)->overlaps( r ) ) - return *i; - } - - return NULL; -} - -void -Sequence::handle_widget_change ( nframes_t start, nframes_t length ) -{ - /* this might be invoked from Capture or GUI thread */ -// Fl::lock(); - sort(); - timeline->damage_sequence(); -// Fl::unlock(); - -// timeline->update_length( start + length ); -} - -Sequence_Widget * -Sequence::widget_at ( nframes_t ts, int Y ) -{ - for ( list ::const_reverse_iterator r = _widgets.rbegin(); r != _widgets.rend(); ++r ) - if ( ts >= (*r)->start() && ts <= (*r)->start() + (*r)->length() - && Y >= (*r)->y() && Y <= (*r)->y() + (*r)->h() ) - return (*r); - - return NULL; -} - -/** return a pointer to the widget under the current mouse event, or - * NULL if no widget intersects the event coordinates */ -Sequence_Widget * -Sequence::event_widget ( void ) -{ - if ( Fl::event_x() < drawable_x() ) - return NULL; - - nframes_t ets = timeline->xoffset + timeline->x_to_ts( Fl::event_x() - drawable_x() ); - return widget_at( ets, Fl::event_y() ); -} - -void -Sequence::add ( Sequence_Widget *r ) -{ -// Logger _log( this ); - - if ( r->sequence() == this ) - { - WARNING( "Programming error: attempt to add sequence widget to the same sequence twice" ); - return; - } - - if ( r->sequence() ) - { - /* This method can be called from the Capture thread as well as the GUI thread, so we must lock FLTK before redraw */ - r->redraw(); - r->sequence()->remove( r ); - } - - r->sequence( this ); - - _widgets.push_back( r ); - - handle_widget_change( r->start(), r->length() ); -} - -void -Sequence::remove ( Sequence_Widget *r ) -{ - _widgets.remove( r ); - - handle_widget_change( r->start(), r->length() ); -} - -static nframes_t -abs_diff ( nframes_t n1, nframes_t n2 ) -{ - return n1 > n2 ? n1 - n2 : n2 - n1; -} - -/** snap widget /r/ to nearest edge */ -void -Sequence::snap ( Sequence_Widget *r ) -{ - const int snap_pixels = 10; - const nframes_t snap_frames = timeline->x_to_ts( snap_pixels ); - - /* snap to other widgets */ - if ( Timeline::snap_magnetic ) - { - const int rx1 = r->start(); - const int rx2 = r->start() + r->length(); - - for ( list ::const_iterator i = _widgets.begin(); i != _widgets.end(); i++ ) - { - const Sequence_Widget *w = (*i); - - if ( w == r ) - continue; - - const int wx1 = w->start(); - const int wx2 = w->start() + w->length(); - - if ( abs_diff( rx1, wx2 ) < snap_frames ) - { - r->start( w->start() + w->length() + 1 ); - - return; - } - - if ( abs_diff( rx2, wx1 ) < snap_frames ) - { - r->start( ( w->start() - r->length() ) - 1 ); - - return; - } - } - } - - nframes_t f = r->start(); - - /* snap to beat/bar lines */ - if ( timeline->nearest_line( &f ) ) - r->start( f ); -} - - -void -Sequence::draw_box ( void ) -{ - /* draw the box with the ends cut off. */ - Fl_Group::draw_box( box(), x() - Fl::box_dx( box() ) - 1, y(), w() + Fl::box_dw( box() ) + 2, h(), color() ); -} - -void -Sequence::draw ( void ) -{ - if ( damage() & ~FL_DAMAGE_USER1 ) - { - Fl_Boxtype b = box(); - box( FL_NO_BOX ); - - Fl_Group::draw(); - - box( b ); - } - - fl_push_clip( drawable_x(), y(), drawable_w(), h() ); - - draw_box(); - - for ( list ::const_iterator r = _widgets.begin(); r != _widgets.end(); ++r ) - (*r)->draw_box(); - - - for ( list ::const_iterator r = _widgets.begin(); r != _widgets.end(); ++r ) - (*r)->draw(); - - int X, Y, W, H; - - fl_clip_box( x(), y(), w(), h(), X, Y, W, H ); - - timeline->draw_measure_lines( X, Y, W, H ); - - for ( list ::const_iterator r = _widgets.begin(); r != _widgets.end(); ++r ) - (*r)->draw_label(); - - fl_pop_clip(); -} - -#include "FL/test_press.H" - -int -Sequence::handle ( int m ) -{ - -/* if ( m != FL_NO_EVENT ) */ -/* DMESSAGE( "%s", event_name( m ) ); */ - - switch ( m ) - { - case FL_KEYBOARD: - case FL_SHORTCUT: - if ( Fl::test_shortcut( FL_CTRL + FL_Right ) ) - { - const Sequence_Widget *w = next( transport->frame ); - - if ( w ) - transport->locate( w->start() ); - - return 1; - } - else if ( Fl::test_shortcut( FL_CTRL + FL_Left ) ) - { - const Sequence_Widget *w = prev( transport->frame ); - - if ( w ) - transport->locate( w->start() ); - - return 1; - } - else if ( Fl::test_shortcut( FL_CTRL + ' ' ) ) - { - Sequence_Widget *r = widget_at( transport->frame, y() ); - - if ( r ) - { - if ( r->selected() ) - r->deselect(); - else - r->select(); - } - } - else - { - switch ( Fl::event_key() ) - { - case FL_Left: - case FL_Right: - case FL_Up: - case FL_Down: - /* this is a hack to override FLTK's use of arrow keys for - * focus navigation */ - return timeline->handle_scroll( m ); - default: - break; - } - } - - if ( Sequence_Widget::belowmouse() ) - return Sequence_Widget::belowmouse()->dispatch( m ); - case FL_NO_EVENT: - /* garbage from overlay window */ - return 0; - case FL_FOCUS: - Fl_Group::handle( m ); - redraw(); - return 1; - case FL_UNFOCUS: - Fl_Group::handle( m ); - redraw(); - return 1; - case FL_LEAVE: -// DMESSAGE( "leave" ); - fl_cursor( FL_CURSOR_DEFAULT ); - Fl_Group::handle( m ); - return 1; - case FL_ENTER: -// DMESSAGE( "enter" ); - if ( Fl::event_x() >= drawable_x() ) - { - if ( Sequence_Widget::pushed() ) - { - if ( Sequence_Widget::pushed()->sequence()->class_name() == class_name() ) - { - /* accept objects dragged from other sequences of this type */ - if ( Sequence_Widget::pushed()->sequence() != this ) - { - timeline->sequence_lock.wrlock(); - add( Sequence_Widget::pushed() ); - timeline->sequence_lock.unlock(); - - damage( FL_DAMAGE_USER1 ); - - fl_cursor( FL_CURSOR_MOVE ); - } - } - else - fl_cursor( FL_CURSOR_DEFAULT ); - } - else - if ( ! event_widget() ) - fl_cursor( cursor() ); - - Fl_Group::handle( m ); - - return 1; - } - else - { - return Fl_Group::handle(m); - } - case FL_DND_DRAG: - case FL_DND_ENTER: - case FL_DND_LEAVE: - case FL_DND_RELEASE: - if ( Fl::event_x() >= drawable_x() ) - return 1; - else - return 0; - case FL_MOVE: - { - if ( Fl::event_x() >= drawable_x() ) - { - Sequence_Widget *r = event_widget(); - - if ( r != Sequence_Widget::belowmouse() ) - { - if ( Sequence_Widget::belowmouse() ) - Sequence_Widget::belowmouse()->handle( FL_LEAVE ); - - Sequence_Widget::belowmouse( r ); - - if ( r ) - r->handle( FL_ENTER ); - } - } - - return 1; - } - default: - { - Sequence_Widget *r = Sequence_Widget::pushed() ? Sequence_Widget::pushed() : event_widget(); - -/* if ( this == Fl::focus() ) */ -/* DMESSAGE( "Sequence widget = %p", r ); */ - - if ( m == FL_RELEASE ) - { - // in the case of track jumping, the sequence widget may not get the FL_RELEASE less we send it here: - if ( Sequence_Widget::pushed() ) - Sequence_Widget::pushed()->handle(FL_RELEASE); - - Sequence_Widget::pushed( NULL ); - } - - if ( r ) - { - int retval = r->dispatch( m ); - -/* DMESSAGE( "retval = %d", retval ); */ - - if ( m == FL_PUSH ) - take_focus(); - - if ( retval ) - { - if ( m == FL_PUSH ) - { - if ( Sequence_Widget::pushed() ) - Sequence_Widget::pushed()->handle( FL_UNFOCUS ); - - Sequence_Widget::pushed( r ); - - r->handle( FL_FOCUS ); - } - } - - if ( _delete_queue.size() ) - { - Loggable::block_start(); - - while ( _delete_queue.size() ) - { - Sequence_Widget *t = _delete_queue.front(); - _delete_queue.pop(); - - if ( Sequence_Widget::pushed() == t ) - Sequence_Widget::pushed( NULL ); - if ( Sequence_Widget::belowmouse() == t ) - { - Sequence_Widget::belowmouse()->handle( FL_LEAVE ); - Sequence_Widget::belowmouse( NULL ); - } - - timeline->sequence_lock.wrlock(); - delete t; - timeline->sequence_lock.unlock(); - } - - Loggable::block_end(); - } - - if ( m == FL_PUSH ) - return 1; - else - return retval; - } - else - { - if ( test_press( FL_BUTTON1 ) ) - { - /* traditional selection model */ - Sequence_Widget::select_none(); - } - - return Fl_Group::handle( m ); - } - } - } -} - - - -/**********/ -/* Public */ -/**********/ - -/** calculate the length of this sequence by looking at the end of the - * least widget it contains */ - -/** return the length in frames of this sequence calculated from the - * right edge of the rightmost widget */ - nframes_t - Sequence::length ( void ) const - { - nframes_t l = 0; - - for ( list ::const_iterator r = _widgets.begin(); r != _widgets.end(); ++r ) - l = max( l, (*r)->start() + (*r)->length() ); - - return l; - } - -/** return the location of the next widget from frame /from/ */ -const Sequence_Widget * - Sequence::next ( nframes_t from ) const - { - for ( list ::const_iterator i = _widgets.begin(); i != _widgets.end(); i++ ) -// if ( (*i)->start() >= from ) - if ( (*i)->start() > from ) - return *i; - - if ( _widgets.size() ) - return _widgets.back(); - else - return 0; - } - -/** return the location of the next widget from frame /from/ */ -const Sequence_Widget * - Sequence::prev ( nframes_t from ) const - { - for ( list ::const_reverse_iterator i = _widgets.rbegin(); i != _widgets.rend(); i++ ) - if ( (*i)->start() < from ) - return *i; - - if ( _widgets.size() ) - return _widgets.front(); - else - return 0; - } - -/** delete all selected widgets in this sequence */ - void - Sequence::remove_selected ( void ) - { - Loggable::block_start(); - - for ( list ::iterator r = _widgets.begin(); r != _widgets.end(); ) - if ( (*r)->selected() ) - { - Sequence_Widget *t = *r; - _widgets.erase( r++ ); - delete t; - } - else - ++r; - - Loggable::block_end(); - } - -/** select all widgets intersecting with the range defined by the - * pixel coordinates X through W */ - void - Sequence::select_range ( int X, int W ) - { - nframes_t sts = x_to_offset( X ); - nframes_t ets = sts + timeline->x_to_ts( W ); - - for ( list ::const_reverse_iterator r = _widgets.rbegin(); r != _widgets.rend(); ++r ) - if ( ! ( (*r)->start() > ets || (*r)->start() + (*r)->length() < sts ) ) - (*r)->select(); - } diff --git a/timeline/src/Sequence.H b/timeline/src/Sequence.H deleted file mode 100644 index c07b4f9..0000000 --- a/timeline/src/Sequence.H +++ /dev/null @@ -1,151 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - - -#pragma once - -#include -#include -#include - -#include - -#include "Loggable.H" - -#include - -#include -#include - -class Track; -class Sequence_Widget; - -#include "types.h" - -/* This is the base class for all track types. */ - -class Sequence : public Fl_Group, public Loggable -{ - - /* not permitted */ - Sequence ( const Sequence &rhs ); - Sequence & operator= ( const Sequence &rhs ); - - static std::queue _delete_queue; - - void init ( void ); - -protected: - - Track *_track; /* track this sequence belongs to */ - - char *_name; - - friend class Timeline; // for draw_measure - std::list _widgets; - Sequence_Widget *widget_at ( nframes_t ts, int Y ); - Sequence_Widget *event_widget ( void ); - -public: - - virtual void log_children ( void ) const; - - /* child classes should implement this if they need to take - special action when a widget is changed/moved/resized. /start/ - and /length/ define the affected region */ - virtual void handle_widget_change ( nframes_t start, nframes_t length ); - - /* welcome to C++ */ - LOG_NAME_FUNC( Sequence ); - - Sequence ( Track *track=0, const char *name = 0 ); - - Sequence ( int X, int Y, int W, int H ); - - virtual ~Sequence ( ); - - /* override this to provide cursor */ - virtual Fl_Cursor cursor ( void ) const = 0; - - nframes_t x_to_offset ( int X ); - - const char * name ( void ) const { return _name; } - void name ( const char *s ) - { - if ( _name ) free( _name ); - _name = s ? strdup( s ) : NULL; - label( _name ); - - /* for outside label */ - if ( (Fl_Widget*)track() ) - ((Fl_Widget*)track())->redraw(); - } - - void sort ( void ); - void clear ( void ); - - int drawable_x ( void ) const; - int drawable_w ( void ) const; - - const Sequence_Widget *next ( nframes_t from ) const; - const Sequence_Widget *prev ( nframes_t from ) const; - - Track *track ( void ) const { return _track; } - void track ( Track *t ) { _track = t; } - - void remove ( Sequence_Widget *r ); - void add ( Sequence_Widget *r ); - - void select_range ( int X, int W ); - - void remove_selected ( void ); - - Fl_Color color ( void ) const { return this == Fl::focus() ? fl_color_average( FL_FOREGROUND_COLOR, Fl_Widget::color(), 0.20f ) : Fl_Widget::color(); } - void color ( Fl_Color v ) { Fl_Widget::color( v ); } - - const std::list widgets ( void ) const { return _widgets; } - - void queue_delete ( Sequence_Widget *r ) - { - _delete_queue.push( r ); - } - - Sequence_Widget * overlaps ( Sequence_Widget *r ); - - nframes_t length ( void ) const; - - virtual Sequence * clone ( void ) - { - assert( 0 ); - return NULL; - } - - virtual Sequence * clone_empty ( void ) - { - return NULL; - } - - virtual void snap ( Sequence_Widget *r ); - virtual int handle ( int m ); - virtual void draw ( void ); - virtual void draw_box ( void ); - - virtual nframes_t process ( nframes_t ) { return 0; } - -}; diff --git a/timeline/src/Sequence_Point.C b/timeline/src/Sequence_Point.C deleted file mode 100644 index afb8377..0000000 --- a/timeline/src/Sequence_Point.C +++ /dev/null @@ -1,122 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "Sequence_Point.H" - -#include - - - -Sequence_Point::Sequence_Point ( const Sequence_Point &rhs ) : Sequence_Widget( rhs ) -{ -} - -Sequence_Point::Sequence_Point ( ) -{ - color( FL_CYAN ); -} - -Sequence_Point::~Sequence_Point ( ) -{ -} - - - -void -Sequence_Point::get ( Log_Entry &e ) const -{ - Sequence_Widget::get( e ); -} - -void -Sequence_Point::set ( Log_Entry &e ) -{ - Sequence_Widget::set( e ); - - for ( int i = 0; i < e.size(); ++i ) - { - const char *s, *v; - - e.get( i, &s, &v ); - - if ( ! strcmp( ":start", s ) ) - { - sequence()->sort(); - } - - } -} - -static void -draw_marker ( Fl_Color c ) -{ - fl_color( c ); - - fl_begin_polygon(); - -#define vv(x,y) fl_vertex( x, y ); - - vv( 0.0, 0.0 ); - vv( 0.0, 0.6 ); - vv( 0.5, 1.0 ); - vv( 1.0, 0.6 ); - vv( 1.0, 0.0 ); - vv( 0.0, 0.0 ); - - fl_end_polygon(); - - fl_color( fl_darker( c ) ); - - fl_begin_line(); - - vv( 0.0, 0.0 ); - vv( 0.0, 0.6 ); - vv( 0.5, 1.0 ); - vv( 1.0, 0.6 ); - vv( 1.0, 0.0 ); - vv( 0.0, 0.0 ); - - fl_end_line(); -} - -void -Sequence_Point::draw_box ( void ) -{ - const int X = x() - (abs_w() >> 1); - - const int Y = y(); - - fl_push_matrix(); - fl_translate( X, Y ); - fl_scale( abs_w(), h() ); - - Fl_Color c = selected() ? selection_color() : color(); - - draw_marker( c ); - - fl_pop_matrix(); -} - -void -Sequence_Point::draw ( void ) -{ -// Sequence_Widget::draw(); - - draw_label( _label, align() ); -} diff --git a/timeline/src/Sequence_Point.H b/timeline/src/Sequence_Point.H deleted file mode 100644 index af64b46..0000000 --- a/timeline/src/Sequence_Point.H +++ /dev/null @@ -1,56 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include "Sequence_Widget.H" - -class Sequence_Point : public Sequence_Widget -{ - /* not permitted */ - Sequence_Point & operator= ( const Sequence_Point &rhs ); - -protected: - - void get ( Log_Entry &e ) const; - void set ( Log_Entry &e ); - - virtual void draw_box ( void ); - virtual void draw ( void ); - - Sequence_Point ( const Sequence_Point &rhs ); - Sequence_Point ( ); - virtual ~Sequence_Point ( ); - -public: - - Fl_Align align ( void ) const { return FL_ALIGN_RIGHT; } - virtual long abs_w ( void ) const { return 8; } - -// virtual int abs_x ( void ) const { return Sequence_Widget::abs_x() - ( abs_w() >> 1 ); } -// virtual int x ( void ) const { return Sequence_Widget::line_x() - ( abs_w() >> 1 ); } - - virtual int x ( void ) const - { - return line_x(); - } - - nframes_t length ( void ) const { return timeline->x_to_ts( abs_w() ); } - -}; diff --git a/timeline/src/Sequence_Region.C b/timeline/src/Sequence_Region.C deleted file mode 100644 index c119467..0000000 --- a/timeline/src/Sequence_Region.C +++ /dev/null @@ -1,258 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "Sequence_Region.H" -#include "Track.H" - -#include - - - -Sequence_Region::Sequence_Region ( ) -{ - color( FL_CYAN ); -} - -Sequence_Region::Sequence_Region ( const Sequence_Region &rhs ) : Sequence_Widget( rhs ) -{ -} - -Sequence_Region::~Sequence_Region ( ) -{ -} - - - -void -Sequence_Region::get ( Log_Entry &e ) const -{ - e.add( ":color", _box_color ); - e.add( ":length", _r->length ); - - Sequence_Widget::get( e ); -} - -void -Sequence_Region::set ( Log_Entry &e ) -{ - for ( int i = 0; i < e.size(); ++i ) - { - const char *s, *v; - - e.get( i, &s, &v ); - - if ( ! strcmp( s, ":color" ) ) - _box_color = (Fl_Color)atoll( v ); - else if ( ! strcmp( s, ":length" ) ) - _r->length = atoll( v ); - - } - - Sequence_Widget::set( e ); -} - -void -Sequence_Region::trim_left ( nframes_t where ) -{ - nframes_t f = where; - - /* snap to beat/bar lines */ - if ( timeline->nearest_line( &f ) ) - where = f; - - if ( where > _r->start + _r->length ) - where = _r->start + _r->length; - - if ( where < _r->start && _r->offset < _r->start - where ) - where = _r->start - _r->offset; - - _r->set_left( where ); -} - -void -Sequence_Region::trim_right ( nframes_t where ) -{ - nframes_t f = where; - - /* snap to beat/bar lines */ - if ( timeline->nearest_line( &f ) ) - where = f; - - if ( where < _r->start ) - where = _r->start; - - _r->set_right( where ); -} - -void -Sequence_Region::trim ( enum trim_e t, int X ) -{ - redraw(); - - nframes_t where = timeline->x_to_offset( X ); - - switch ( t ) - { - case LEFT: - trim_left( where ); - break; - case RIGHT: - trim_right( where ); - break; - default: - break; - } -} - -/** split region at absolute frame /where/. due to inheritance issues, - * the copy must be made in the derived classed and passed in */ -void -Sequence_Region::split ( Sequence_Region * copy, nframes_t where ) -{ - trim_right( where ); - copy->trim_left( where ); - sequence()->add( copy ); -} - - -#include "FL/test_press.H" - -int -Sequence_Region::handle ( int m ) -{ - static enum trim_e trimming; - - int X = Fl::event_x(); - int Y = Fl::event_y(); - - Logger _log( this ); - - switch ( m ) - { - case FL_PUSH: - { - /* trimming */ - if ( Fl::event_shift() && ! Fl::event_ctrl() ) - { - switch ( Fl::event_button() ) - { - case 1: - trim( trimming = LEFT, X ); - begin_drag( Drag( X, Y ) ); - _log.hold(); - break; - case 3: - trim( trimming = RIGHT, X ); - begin_drag( Drag( X, Y) ); - _log.hold(); - break; - default: - return 0; - break; - } - - fl_cursor( FL_CURSOR_WE ); - return 1; - } - else if ( test_press( FL_BUTTON2 ) ) - { - if ( Sequence_Widget::current() == this ) - { - if ( selected() ) - deselect(); - else - select(); - } - - redraw(); - return 1; - } - -/* else if ( test_press( FL_CTRL + FL_BUTTON1 ) ) */ -/* { */ -/* /\* duplication *\/ */ -/* fl_cursor( FL_CURSOR_MOVE ); */ -/* return 1; */ -/* } */ - - else - return Sequence_Widget::handle( m ); - } - case FL_RELEASE: - { - Sequence_Widget::handle( m ); - - if ( trimming != NO ) - trimming = NO; - - return 1; - } - case FL_DRAG: - { - if ( ! _drag ) - { - begin_drag( Drag( X, Y, x_to_offset( X ) ) ); - _log.hold(); - } - - /* trimming */ - if ( Fl::event_shift() ) - { - if ( trimming ) - { - trim( trimming, X ); - return 1; - } - else - return 0; - } - - return Sequence_Widget::handle( m ); - } - default: - return Sequence_Widget::handle( m ); - break; - } - - return 0; - -} - -void -Sequence_Region::draw_box ( void ) -{ - Fl_Color c = selected() ? selection_color() : box_color(); - - fl_draw_box( box(), x(), y(), w(), h(), fl_color_add_alpha( c, 127 ) ); -} - -void -Sequence_Region::draw ( void ) -{ - -} - -void -Sequence_Region::draw_label ( const char *label, Fl_Align align, Fl_Color color, int xo, int yo ) -{ - fl_color( active_r() ? FL_FOREGROUND_COLOR : fl_inactive( FL_FOREGROUND_COLOR ) ); - fl_font( FL_HELVETICA_ITALIC, 10 ); - fl_draw( label, line_x() + Fl::box_dx( box() ), y() + Fl::box_dy( box() ), abs_w() - Fl::box_dw( box() ), h() - Fl::box_dh( box() ), align ); -} - diff --git a/timeline/src/Sequence_Region.H b/timeline/src/Sequence_Region.H deleted file mode 100644 index 8be8b81..0000000 --- a/timeline/src/Sequence_Region.H +++ /dev/null @@ -1,58 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include "Sequence.H" -#include "Sequence_Widget.H" - -/* Base class representing a /region/ of time on a /sequence/, with - controls for the offset and length points. */ - -class Sequence_Region : public Sequence_Widget -{ - -protected: - - virtual void get ( Log_Entry &e ) const; - virtual void set ( Log_Entry &e ); - - Sequence_Region ( ); - Sequence_Region ( const Sequence_Region &rhs ); - virtual ~Sequence_Region ( ); - - virtual Fl_Align align ( void ) const { return FL_ALIGN_INSIDE | FL_ALIGN_CENTER | FL_ALIGN_WRAP; } - virtual int handle ( int m ); - virtual void draw_box( void ); - virtual void draw ( void ); - virtual void draw_label ( void ) { Sequence_Widget::draw_label(); } - virtual void draw_label ( const char *label, Fl_Align align, Fl_Color color=(Fl_Color)0, int xo=0, int yo=0 ); - -public: - - LOG_NAME_FUNC( Region ); - - void trim_right ( nframes_t where ); - void trim_left ( nframes_t where ); - - enum trim_e { NO, LEFT, RIGHT }; - void trim ( enum trim_e t, int X ); - - void split ( Sequence_Region *copy, nframes_t where ); -}; diff --git a/timeline/src/Sequence_Widget.C b/timeline/src/Sequence_Widget.C deleted file mode 100644 index ea9a858..0000000 --- a/timeline/src/Sequence_Widget.C +++ /dev/null @@ -1,596 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include - -#include "Sequence_Widget.H" -#include "Track.H" - -#include "const.h" -#include "debug.h" - -using namespace std; - - - -list Sequence_Widget::_selection; -Sequence_Widget * Sequence_Widget::_current = NULL; -Sequence_Widget * Sequence_Widget::_pushed = NULL; -Sequence_Widget * Sequence_Widget::_belowmouse = NULL; -Fl_Color Sequence_Widget::_selection_color = FL_MAGENTA; - - - -Sequence_Widget::Sequence_Widget ( ) -{ - _label = 0; - _sequence = NULL; - - _r = &_range; - - _r->start = _r->offset = _r->length = 0; - - _drag = NULL; - - _box_color = FL_BACKGROUND_COLOR; - _color = FL_FOREGROUND_COLOR; -} - -/* careful with this, it doesn't journal */ -Sequence_Widget::Sequence_Widget ( const Sequence_Widget &rhs ) : Loggable( rhs ) -{ - _drag = NULL; - - if ( rhs._label ) - _label = strdup( rhs._label ); - else - _label = 0; - - - _range = rhs._range; - _dragging_range = rhs._dragging_range; - _r = &_range; - - _color = rhs._color; - _box_color = rhs._box_color; - - _sequence = NULL; - - if ( rhs._sequence ) - rhs._sequence->add( this ); -}; - -const Sequence_Widget & -Sequence_Widget::operator= ( const Sequence_Widget &rhs ) -{ - if ( this == &rhs ) - return *this; - - _r = &_range; - _range = rhs._range; - _dragging_range = rhs._dragging_range; - _sequence = rhs._sequence; - _box_color = rhs._box_color; - _color = rhs._color; - - if ( rhs._label ) - _label = strdup( rhs._label ); - - return *this; -} - -Sequence_Widget::~Sequence_Widget ( ) -{ - redraw(); - - if ( this == _pushed ) - _pushed = NULL; - - if ( this == _belowmouse ) - _belowmouse = NULL; - - label( NULL ); - - _sequence->remove( this ); - - _selection.remove( this ); -} - - - -void -Sequence_Widget::get ( Log_Entry &e ) const -{ - e.add( ":start", _r->start ); -// e.add( ":offset", _r->offset ); -// e.add( ":length", _r->length ); - e.add( ":sequence", _sequence ); - e.add( ":selected", selected() ); -} - -void -Sequence_Widget::set ( Log_Entry &e ) -{ - for ( int i = 0; i < e.size(); ++i ) - { - const char *s, *v; - - e.get( i, &s, &v ); - - if ( ! strcmp( s, ":start" ) ) - _r->start = atoll( v ); -// else if ( ! strcmp( s, ":offset" ) ) -// _r->offset = atoll( v ); -// else if ( ! strcmp( s, ":length" ) ) -// _r->length = atoll( v ); - else if ( ! strcmp( s, ":selected" ) ) - { - if ( atoi( v ) ) - select(); - else - deselect(); - } - else if ( ! strcmp( s, ":sequence" ) ) - { - int i; - sscanf( v, "%X", &i ); - Sequence *t = (Sequence*)Loggable::find( i ); - - ASSERT( t, "No such object ID (%s)", v ); - - t->add( this ); - } -// else -// e.erase( i ); - } - - if ( _sequence ) - { - _sequence->handle_widget_change( _r->start, _r->length ); - _sequence->damage( FL_DAMAGE_USER1 ); - } -} - -void -Sequence_Widget::begin_drag ( const Drag &d ) -{ - _drag = new Drag( d ); - - timeline->sequence_lock.wrlock(); - - /* copy current values */ - - _dragging_range = _range; - - /* tell display to use temporary */ - _r = &_dragging_range; - - timeline->sequence_lock.unlock(); -} - -void -Sequence_Widget::end_drag ( void ) -{ - /* swap in the new value */ - /* go back to playback and display using same values */ - - timeline->sequence_lock.wrlock(); - - _range = _dragging_range; - _r = &_range; - - delete _drag; - _drag = NULL; - - /* this will result in a sort */ - sequence()->handle_widget_change( _r->start, _r->length ); - - timeline->sequence_lock.unlock(); -} - -/** set position of widget on the timeline. */ -void -Sequence_Widget::start ( nframes_t where ) -{ - /* this is pretty complicated because of selection and snapping */ - - if ( ! selected() ) - { - redraw(); - _r->start = where; - } - else - { - if ( this != Sequence_Widget::_current ) - return; - - /* difference between where we are current and desired position */ - - if ( where < _r->start ) - { - nframes_t d = _r->start - where; - - /* first, make sure we stop at 0 */ - nframes_t m = JACK_MAX_FRAMES; - - /* find the earliest region start point */ - for ( list ::const_iterator i = _selection.begin(); i != _selection.end(); ++i ) - m = min( m, (*i)->_r->start ); - - if ( d > m ) - d = 0; - - for ( list ::iterator i = _selection.begin(); i != _selection.end(); ++i ) - { - (*i)->redraw(); - (*i)->_r->start -= d; - } - } - else - { - nframes_t d = where - _r->start; - - /* TODO: do like the above and disallow wrapping */ - for ( list ::iterator i = _selection.begin(); i != _selection.end(); ++i ) - { - (*i)->redraw(); - (*i)->_r->start += d; - } - } - } -} - -void -Sequence_Widget::draw_label ( void ) -{ -} - -void -Sequence_Widget::draw_label ( const char *label, Fl_Align align, Fl_Color color, int xo, int yo ) -{ - int X = x(); - int Y = y(); - int W = w(); - int H = h(); - - if ( align & FL_ALIGN_CLIP ) fl_push_clip( X, Y, W, H ); - - X += xo; - Y += yo; - - Fl_Label lab; - - lab.color = color; -// lab.type = FL_SHADOW_LABEL; - lab.type = FL_NORMAL_LABEL; - lab.value = label; - lab.font = FL_HELVETICA_ITALIC; - lab.size = 9; - - int lw = 0, lh = 0; - - fl_font( lab.font, lab.size ); - fl_measure( lab.value, lw, lh ); - - int dx = 0; - - /* adjust for scrolling */ - if ( abs_x() < scroll_x() ) - dx = min( 32767, scroll_x() - abs_x() ); - - const Fl_Boxtype b = FL_BORDER_BOX; - const int bx = Fl::box_dx( b ); - const int bw = Fl::box_dw( b ); - const int by = Fl::box_dy( b ); - const int bh = Fl::box_dh( b ); - - /* FIXME: why do we have to do this here? why doesn't Fl_Label::draw take care of this stuff? */ - if ( align & FL_ALIGN_INSIDE ) - { - if ( align & FL_ALIGN_BOTTOM ) - Y += h() - ( lh + bh ); - else if ( align & FL_ALIGN_TOP ) - Y += by; - else - Y += ( h() / 2 ) - ( lh + bh ); - - if ( align & FL_ALIGN_RIGHT ) - X += abs_w() - ( lw + bw ); - else if ( align & FL_ALIGN_LEFT ) - X += bx; - else - X += ( abs_w() / 2 ) - ( ( lw + bw ) / 2 ); - - } - else - { - if ( align & FL_ALIGN_RIGHT ) - X += abs_w(); - else if ( align & FL_ALIGN_LEFT ) - X -= lw + bw; - else - X += ( abs_w() / 2 ) - ( ( lw + bw ) / 2 ); - - if ( align & FL_ALIGN_BOTTOM ) - Y += h(); - else if ( align & FL_ALIGN_TOP ) - Y -= lh + bh; - else - Y += ( h() / 2 ) - ( ( lh + bh ) / 2 ); - } - - fl_draw_box( b, ( X - dx ), Y - by, lw + bw, lh + bh, fl_color_add_alpha( FL_DARK1, 150 ) ); - - fl_color( color ); - - fl_draw( label, ( X - dx ), Y, lw + bw, lh, (Fl_Align)(FL_ALIGN_CENTER) ); - - if ( align & FL_ALIGN_CLIP ) fl_pop_clip(); -} - -int -Sequence_Widget::dispatch ( int m ) -{ - Sequence_Widget::_current = this; - - if ( selected() ) - { - Loggable::block_start(); - - int r = 0; - - for ( list ::iterator i = _selection.begin(); i != _selection.end(); i++ ) - if ( *i != this ) - r |= (*i)->handle( m ); - - r |= handle( m ); - - Loggable::block_end(); - - return r; - } - else - return handle( m ); -} - -void -Sequence_Widget::draw ( void ) -{ - draw_box(); -} - -void -Sequence_Widget::draw_box ( void ) -{ - fl_draw_box( box(), x(), y(), w(), h(), selected() ? FL_MAGENTA : _box_color ); -} - - -#include "FL/test_press.H" - -/* base hanlde just does basic dragging */ -int -Sequence_Widget::handle ( int m ) -{ - int X = Fl::event_x(); - int Y = Fl::event_y(); - - Logger _log( this ); - - switch ( m ) - { - case FL_ENTER: - fl_cursor( FL_CURSOR_HAND ); - return 1; - case FL_LEAVE: -// DMESSAGE( "leave" ); - fl_cursor( sequence()->cursor() ); - return 1; - case FL_PUSH: - { - /* deletion */ - if ( test_press( FL_BUTTON3 + FL_CTRL ) ) - { - remove(); - - return 1; - } - else if ( test_press( FL_BUTTON1 ) || test_press( FL_BUTTON1 + FL_CTRL ) ) - { - /* traditional selection model */ - if ( Fl::event_ctrl() ) - select(); - - fl_cursor( FL_CURSOR_MOVE ); - - /* movement drag */ - return 1; - } - - return 0; - } - case FL_RELEASE: - - if ( _drag ) - { - end_drag(); - _log.release(); - } - - fl_cursor( FL_CURSOR_HAND ); - - return 1; - case FL_DRAG: - { - Fl::event_key( 0 ); - - if ( ! _drag ) - { - begin_drag ( Drag( X, Y, x_to_offset( X ), start() ) ); - _log.hold(); - } - - if ( test_press( FL_BUTTON1 + FL_CTRL ) && ! _drag->state ) - { - /* duplication */ - timeline->sequence_lock.wrlock(); - sequence()->add( this->clone() ); - timeline->sequence_lock.unlock(); - - _drag->state = 1; - return 1; - } - else if ( test_press( FL_BUTTON1 ) || test_press( FL_BUTTON1 + FL_CTRL ) ) - { - redraw(); - - const nframes_t of = timeline->x_to_offset( X ); - - int64_t s = (int64_t)of - _drag->offset; - - if ( s < 0 ) - s = 0; - - start(s); - - if ( Sequence_Widget::_current == this ) - sequence()->snap( this ); - - if ( X >= sequence()->x() + sequence()->w() || - X <= sequence()->drawable_x() ) - { - /* this drag needs to scroll */ - - int64_t pos = s - ( _drag->mouse_offset - _drag->offset ); - - - if ( X > sequence()->x() + sequence()->w() ) - pos -= timeline->x_to_ts( sequence()->drawable_w() ); - - if ( s == 0 ) - pos = 0; - - if ( pos < 0 ) - pos = 0; - - timeline->xposition(timeline->ts_to_x(pos)); - - /* timeline->redraw(); */ - sequence()->damage( FL_DAMAGE_USER1 ); - } - - if ( ! selected() || _selection.size() == 1 ) - { - /* track jumping */ - if ( Y > _sequence->y() + _sequence->h() || Y < _sequence->y() ) - { - Track *t = timeline->track_under( Y ); - - fl_cursor( FL_CURSOR_HAND ); - - if ( t ) - t->handle( FL_ENTER ); - - return 0; - } - } - - return 1; - } - else - { - DMESSAGE( "unknown" ); - return 0; - } - } - default: - return 0; - } -} - - -/**********/ -/* Public */ -/**********/ - -/** add this widget to the selection */ -void -Sequence_Widget::select ( void ) -{ - if ( selected() ) - return; - - _selection.push_back( this ); - _selection.sort( sort_func ); - - redraw(); -} - -/** remove this widget from the selection */ -void -Sequence_Widget::deselect ( void ) -{ - _selection.remove( this ); - redraw(); -} - -bool -Sequence_Widget::selected ( void ) const -{ - return std::find( _selection.begin(), _selection.end(), this ) != _selection.end(); -} - -/** remove this widget from its sequence */ -void -Sequence_Widget::remove ( void ) -{ - redraw(); - sequence()->queue_delete( this ); -} - -void -Sequence_Widget::delete_selected ( void ) -{ - Loggable::block_start(); - - while ( _selection.size() ) - delete _selection.front(); - - Loggable::block_end(); -} - -void -Sequence_Widget::select_none ( void ) -{ - Loggable::block_start(); - - while ( _selection.size() ) - { - Sequence_Widget *w = _selection.front(); - - w->log_start(); - - _selection.front()->redraw(); - _selection.pop_front(); - - w->log_end(); - } - - Loggable::block_end(); -} diff --git a/timeline/src/Sequence_Widget.H b/timeline/src/Sequence_Widget.H deleted file mode 100644 index 210f72b..0000000 --- a/timeline/src/Sequence_Widget.H +++ /dev/null @@ -1,342 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - - -#pragma once - -#include "Sequence.H" -#include "Loggable.H" -#include "Timeline.H" -#include -#include -using std::min; -using std::max; - -class Sequence_Widget; - -struct Drag -{ - /* mouse coords at offset of drag */ - int x; - int y; - int state; - -// nframes_t start; - int64_t offset; - int64_t mouse_offset; - - Drag( int X, int Y, uint64_t offset=0, uint64_t mouse_offset = 0 ) : x( X ), y( Y ), offset( offset ), mouse_offset( mouse_offset ) { state = 0; } -}; - -/* most common position description. /offset/ is only used by Regions, - but it's more convenient to have it here */ -struct Range -{ - nframes_t start; /* where on the timeline */ - nframes_t offset; /* first sample from clip */ - nframes_t length; /* total number of samples */ - - void - set_left ( nframes_t f ) - { - offset += f - start; - length -= f - start; - start = f; - } - - void - set_right ( nframes_t f ) - { - length = f - start; - } - - Range ( ) : start( 0 ), offset( 0 ), length( 0 ) - { - } -}; - -/* Used by time/tempo points or any other child of Sequence_Widget - which must be locked to a point in musical time rather than wallclock - time. Bar and beat start at 1. */ -struct BBT -{ - unsigned short bar; - unsigned char beat; - unsigned short tick; - - BBT ( ) : bar( 0 ), beat( 0 ), tick( 0 ) - { - } -}; - - -/* FIXME: wrong place for this */ -struct position_info -{ - nframes_t frame; - - float tempo; - int beats_per_bar; - int beat_type; - - BBT bbt; -}; - -#define SEQUENCE_WIDGET_CLONE_FUNC(class) \ - virtual Sequence_Widget *clone ( void ) const \ - { \ - return new class ( *this ); \ - } - - -/* Base class for virtual widget on a track */ -class Sequence_Widget : public Loggable -{ - - static std::list _selection; /* all the widgets making up the selection */ - - /* FIXME: is this not the same as /pushed/? */ - static Sequence_Widget * _current; /* the widget initiating events that affect the selection */ - - /* these are actually managed in the Sequence classes */ - static Sequence_Widget * _pushed; /* the widget receiving drag events (a copy) */ - static Sequence_Widget * _original; /* the original of the /pushed/ widget */ - static Sequence_Widget * _belowmouse; /* the widget below the mouse cursor */ - - - static Fl_Color _selection_color; - - -protected: - - char *_label; - - Sequence *_sequence; /* track this region belongs to */ - - Range _range; /* always used by RT/osc threads */ - Range _dragging_range; /* used when dragging */ - - Range *_r; /* range for editing / display (points to the same thing as above, except for when dragging etc) */ - - Fl_Color _color; /* color of waveform */ - Fl_Color _box_color; /* color of background (box) */ - - Drag *_drag; - - virtual void get ( Log_Entry &e ) const; - virtual void set ( Log_Entry &e ); - - Sequence_Widget ( const Sequence_Widget &rhs ); - Sequence_Widget ( ); - - const Sequence_Widget & - operator= ( const Sequence_Widget &rhs ); - -public: - - - virtual ~Sequence_Widget ( ); - - virtual Sequence_Widget *clone ( void ) const = 0; - - bool selected ( void ) const; - static int nselected ( void ) - { return _selection.size(); } - void select ( void ); - void deselect ( void ); - void remove ( void ); - - static void delete_selected ( void ); - static void select_none ( void ); - - static Sequence_Widget *current ( void ) { return Sequence_Widget::_current; } - static Sequence_Widget *pushed ( void ) { return Sequence_Widget::_pushed; } - static Sequence_Widget *belowmouse ( void ) { return Sequence_Widget::_belowmouse; } - - static void pushed ( Sequence_Widget *w ) { Sequence_Widget::_pushed = w; } - static void belowmouse ( Sequence_Widget *w ) { Sequence_Widget::_belowmouse = w; } - - void begin_drag ( const Drag &d ); - void end_drag ( void ); - - int dispatch ( int m ); - - Fl_Widget * parent ( void ) const { return _sequence; } - - int scroll_x ( void ) const { return timeline->ts_to_x( timeline->xoffset ); } - nframes_t scroll_ts ( void ) const { return timeline->xoffset; } - - virtual int y ( void ) const { return _sequence->y(); } - virtual int h ( void ) const { return _sequence->h(); } - - /* used by regions */ - - int get_x( nframes_t frame ) const - { - return frame < timeline->xoffset ? - _sequence->drawable_x() - 10 : - min( _sequence->drawable_x() + _sequence->drawable_w(), - _sequence->drawable_x() + timeline->ts_to_x( frame - timeline->xoffset ) ); - } - - virtual int x ( void ) const - { - return get_x( _r->start ); - } - - /* use this as x() when you need to draw lines between widgets. Clamped to -32767-32767 to match max canvas size of FLTK/NTK */ - int line_x ( void ) const - { - return _r->start < timeline->xoffset ? - max( -32767, _sequence->drawable_x() - timeline->ts_to_x( timeline->xoffset - _r->start )) : - min( 32767, _sequence->drawable_x() + timeline->ts_to_x( _r->start - timeline->xoffset )); - } - - /* same as above but un-clamped for cairo */ - long curve_x ( void ) const - { - return _r->start < timeline->xoffset ? - _sequence->drawable_x() - timeline->ts_to_x( timeline->xoffset - _r->start ) : - _sequence->drawable_x() + timeline->ts_to_x( _r->start - timeline->xoffset ); - } - - virtual int w ( void ) const - { -// int tx = timeline->ts_to_x( _r->start ); - - long rw; - - if ( _r->start < timeline->xoffset ) - { - if ( _r->start + _r->length < timeline->xoffset ) - rw = 0; - else - rw = timeline->ts_to_x( ( _r->start + _r->length ) - timeline->xoffset ) + 10; - } - else - rw = abs_w(); - - return (int)min( rw, (long)(_sequence->drawable_w()) + 20 ); - } - - int abs_x ( void ) const { return timeline->ts_to_x( _r->start ); } - virtual long abs_w ( void ) const { return timeline->ts_to_x( _r->length ); } - - Fl_Color color ( void ) const { return _color; } - void color ( Fl_Color v ) { _color = v; } - virtual Fl_Color box_color ( void ) const { return _box_color; } - virtual void box_color ( Fl_Color v ) { _box_color = v; } - virtual Fl_Color selection_color ( void ) const { return _selection_color; } - virtual void selection_color ( Fl_Color v ) { _selection_color = v; } - virtual Fl_Color actual_box_color ( void ) const { return box_color(); } - - Sequence * sequence ( void ) const { return _sequence; } - void sequence ( Sequence *t ) { _sequence = t; } - - nframes_t start ( void ) const { return _r->start; } - -/* void start ( nframes_t o ) { _r->start = o; } */ - - void start ( nframes_t where ); - void length ( nframes_t v ) { _r->length = v; } - virtual nframes_t length ( void ) const { return _r->length; } - void offset ( nframes_t v ) { _r->offset = v; } - nframes_t offset ( void ) const { return _r->offset; } - - void set_left ( nframes_t v ) { _r->set_left( v ); } - void set_right ( nframes_t v ) { _r->set_right( v ); } - - const char *label ( void ) const { return _label; } - void label ( const char *s ) - { - if ( _label ) - free( _label ); - - _label = NULL; - - if ( s ) - _label = strdup( s ); - - redraw(); - } - - /** convert a screen x coord into an start into the region */ - nframes_t x_to_offset ( int X ) - { - return timeline->x_to_ts( scroll_x() + ( X - _sequence->drawable_x() ) ) - _r->start; - } - - int active_r ( void ) const { return _sequence->active_r(); } - -/** returns true if widget /w/ begins and ends completely within the range of this widget */ - bool contains ( const Sequence_Widget *w ) const - { - return w->start() >= start() && w->start() + w->length() <= start() + length(); - } - -/** returns true of widget /w/ overlaps this widget in any place */ - bool overlaps ( const Sequence_Widget *w ) const - { - return ! ( w->start() > start() + length() || w->start() + w->length() < start() ); - } - - virtual Fl_Boxtype box ( void ) const { return FL_UP_BOX; } - virtual Fl_Align align ( void ) const { return (Fl_Align)0; } - - virtual void - redraw ( void ) - { - if ( ! _sequence ) - return; - - if ( ! (align() & FL_ALIGN_INSIDE) ) - { - // FIXME: do better.. - _sequence->damage( FL_DAMAGE_USER1 ); - } - else - _sequence->damage( FL_DAMAGE_USER1, x(), y(), w(), h() ); - } - - virtual void draw_box ( void ); - virtual void draw ( void ); - virtual void draw_label ( void ); - virtual void draw_label ( const char *label, Fl_Align align, Fl_Color color=(Fl_Color)0, int xo=0, int yo=0 ); - - bool - operator< ( const Sequence_Widget & rhs ) const - { - return _r->start < rhs._r->start; - } - - bool - operator<=( const Sequence_Widget & rhs ) const - { - return _r->start <= rhs._r->start; - } - - virtual int handle ( int m ); - - static bool - sort_func ( const Sequence_Widget *lhs, const Sequence_Widget *rhs ) - { - return *lhs < *rhs; - } - -}; diff --git a/timeline/src/TLE.fl b/timeline/src/TLE.fl deleted file mode 100644 index e54de7f..0000000 --- a/timeline/src/TLE.fl +++ /dev/null @@ -1,1132 +0,0 @@ -# data file for the Fltk User Interface Designer (fluid) -version 1.0300 -header_name {.H} -code_name {.C} -comment {// -// Copyright (C) 2008-2010 Jonathan Moore Liles -// -// This program is free software; you can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -// -} {in_source in_header -} - -decl {const float STATUS_UPDATE_FREQ = 0.5f;} {private local -} - -decl {class Fl_Flowpack;} {public global -} - -decl {\#include } {private local -} - -decl {\#include } {private local -} - -decl {\#include } {private local -} - -decl {\#include } {private local -} - -decl {\#include } {private local -} - -decl {\#include "Timeline.H"} {private local -} - -decl {\#include "Transport.H"} {private local -} - -decl {\#include "Loggable.H"} {private local -} - -decl {\#include "Project.H"} {private local -} - -decl {\#include "Clock.H"} {public local -} - -decl {\#include } {private local -} - -decl {\#include } {private local -} - -decl {\#include "Track.H" // for capture_format} {private local -} - -decl {\#include "Waveform.H" // for options} {private local -} - -decl {\#include "Audio_Region.H" // for options} {private local -} - -decl {\#include "Control_Sequence.H" // for options} {private local -} - -decl {\#include } {private local -} - -decl {\#include } {private local -} - -decl {\#include } {private local -} - -decl {\#include } {private local -} - -decl {\#include "Engine/Engine.H"} {private local -} - -decl {\#include "Engine/Audio_File.H" // for supported formats} {private local -} - -decl {\#include } {private local -} - -decl {extern char project_display_name[256];} {private global -} - -decl {\#include } {private local -} - -decl {extern nsm_client_t *nsm;} {private global -} - -decl {extern char *user_config_dir;} {private global -} - -decl {extern char *APP_NAME;} {private global -} - -class TLE_Window {open : {public Fl_Overlay_Window} -} { - Function {TLE_Window(int W, int H, const char *L = 0) : Fl_Overlay_Window( W, H, L )} {open - } { - code {} {} - } - Function {draw_overlay(void)} {open return_type void - } { - code {timeline->draw_overlay();} {} - } - Function {~TLE_Window()} {open return_type virtual - } { - code {} {} - } -} - -class TLE {open -} { - decl {Fl_Color system_colors[3];} {private local - } - Function {save_options()} {open - } { - code {const char options_filename[] = "options"; - // const char state_filename[] = "state"; - - // save options - - char *path; - asprintf( &path, "%s/%s", user_config_dir, options_filename ); - ((Fl_Menu_Settings*)menubar)->dump( menubar->find_item( "&Options" ), path ); - free( path );} {} - } - Function {save()} {open - } { - code {timeline->command_save();} {} - } - Function {quit()} {} { - code {timeline->command_quit();} {} - } - Function {open( const char *name )} {} { - code {timeline->command_load( name, NULL );} {} - } - Function {save_timeline_settings()} {open - } { - code {if ( ! Project::open() ) - return; - - -// save project local options (Timeline menu) -((Fl_Menu_Settings*)menubar)->dump( menubar->find_item( "&Project/Se&ttings" ), "options" );} {} - } - Function {reset_timeline_settings( void )} {open private return_type void - } { - code {char path[256]; -snprintf( path, sizeof( path ), "%s/%s", user_config_dir, ".default_project_settings" ); - -((Fl_Menu_Settings*)menubar)->load( menubar->find_item( "&Project/Se&ttings" ), path );} {} - } - Function {load_timeline_settings()} {open - } { - code {reset_timeline_settings(); - - -if ( Project::open() ) - ((Fl_Menu_Settings*)menubar)->load( menubar->find_item( "&Project/Se&ttings" ), "options" ); - -update_menu(); - -project_name->redraw();} {} - } - Function {run()} {} { - code {update_menu(); - -// main_window->show(); - -Fl::lock(); - -// Fl::run();} {} - } - Function {TLE()} {open - } { - code {make_window(); - -Fl::visible_focus( 0 ); - -// constrain window to size of screen. -{ - int sx, sy, sw, sh; - - Fl::screen_xywh( sx, sy, sw, sh ); - - main_window->size_range( 947, 500 ); - main_window->size( 947, 600 ); - - if ( main_window->w() > sw || - main_window->h() > sh ) - main_window->resize( sx, sy, sw, sh ); -} - -Fl::add_timeout( STATUS_UPDATE_FREQ, update_cb, this ); - -fl_message_icon()->box( FL_RSHADOW_BOX ); -fl_message_icon()->labelcolor( FL_BLACK ); -fl_message_icon()->color( FL_RED ); -fl_message_font( FL_HELVETICA, 18 ); - - -std::list formats; - -Audio_File::all_supported_formats( formats ); - -for ( std::list ::const_iterator f = formats.begin(); f != formats.end(); ++f ) -{ -// capture_format_menu->add( *f, FL_MENU_RADIO, 0, 0, 0 ); -//; - char pat[256]; - snprintf( pat, sizeof( pat ), "&Project/Se&ttings/Capture Format/%s", *f ); - - menubar->add( pat, 0, &TLE::capture_format_cb, this, FL_MENU_RADIO ); -} - -menubar->picked( menubar->find_item( "&Project/Se&ttings/Capture Format/Wav 24" ) ); - -char *path; -asprintf( &path, "%s/options", user_config_dir ); -((Fl_Menu_Settings*)menubar)->load( menubar->find_item( "&Options" ), path ); -free( path ); - - -menubar->add( "&Timeline", 0, 0, const_cast< Fl_Menu_Item *>( timeline->menu->menu() ), FL_SUBMENU_POINTER ); - - -// save a copy of the project settings menu so that we can restore the defaults later -{ - char path[512]; - snprintf( path, sizeof( path ), "%s/%s", user_config_dir, ".default_project_settings" ); - - ((Fl_Menu_Settings*)menubar)->dump( menubar->find_item( "&Project/Se&ttings" ), path ); -} - - -Loggable::progress_callback( &TLE::progress_cb, this );} {} - } - Function {make_window()} {open - } { - Fl_Window main_window { - label {Non Timeline} - callback {if ( Fl::event_key() != FL_Escape ) - timeline->command_quit();} open - xywh {204 266 1025 770} type Double resizable - code0 {o->xclass( APP_NAME );} - class TLE_Window size_range {947 300 0 0} visible - } { - Fl_Group {} {open - xywh {0 -53 1025 126} box FLAT_BOX - } { - Fl_Menu_Bar menubar {open - private xywh {0 0 1025 25} - } { - Submenu {} { - label {&Project} open - xywh {5 5 74 25} - } { - MenuItem {} { - label {&Info} - callback {Project_Info_Dialog pi; - -pi.run();} - xywh {5 5 40 25} deactivate - } - Submenu {} { - label {Se&ttings} open - xywh {25 25 74 25} - } { - MenuItem {} { - label {&Follow Playhead} - callback {Timeline::follow_playhead = menu_picked_value( o );} - xywh {45 45 40 25} type Toggle value 1 - } - MenuItem {} { - label {&Center Playhead} - callback {Timeline::center_playhead = menu_picked_value( o );} - xywh {55 55 40 25} type Toggle value 1 - } - Submenu {} { - label {&Snap to} open - xywh {25 25 74 25} - } { - MenuItem {} { - label Bars - callback {Timeline::snap_to = Timeline::Bars;} - xywh {25 25 40 25} type Radio value 1 - } - MenuItem {} { - label Beats - callback {Timeline::snap_to = Timeline::Beats;} - xywh {35 35 40 25} type Radio - } - MenuItem {} { - label Off - callback {Timeline::snap_to = Timeline::None;} - xywh {45 45 40 25} type Radio - } - } - MenuItem {} { - label {Magnetic snap} - callback {Timeline::snap_magnetic = menu_picked_value( o );} - xywh {35 35 40 25} type Toggle value 1 - } - Submenu {} { - label {Capture Format} open - xywh {25 25 74 25} - } {} - MenuItem {} { - label {Playback Latency Compensation} - callback {Timeline::playback_latency_compensation = menu_picked_value( o );} selected - xywh {55 55 40 25} type Toggle - } - } - MenuItem {} { - label {&New} - callback {save_timeline_settings(); - - - char *result_path; - - char *default_path = read_line( user_config_dir, "default_path" ); - result_path = default_path; - - char *path = new_project_chooser( &result_path ); - - if ( path ) - { - if ( ! Project::create( path, NULL ) ) - fl_alert( "Error creating project!" ); - free( path ); - } - - if ( result_path != default_path ) - free(default_path); - - if ( result_path ) - { - write_line( user_config_dir, "default_path", result_path ); - free( result_path ); - } - - -load_timeline_settings(); - -update_menu(); - -main_window->redraw();} - xywh {5 5 40 25} - } - MenuItem {} { - label {&Open} - callback {char *path = read_line( user_config_dir, "default_path" ); - -const char *name = fl_dir_chooser( "Open Project", path ); - -free( path ); - -open( name );} - xywh {15 15 40 25} - } - MenuItem {} { - label {&Compact} - callback {int n = fl_choice( "Compacting will replace the project history with a snapshot of the current state.\\nYou will not be able to use Undo to go back beyond this point.\\n\\nThis operation is irreversible!", NULL, "&Cancel", "Pr&ocede with compaction" ); - -if ( n != 2 ) - return; - -Project::compact();} - xywh {25 25 40 25} - } - Submenu {} { - label {I&mport} open - xywh {20 20 74 25} - } { - MenuItem {} { - label {Import Ardour Session} - callback {if ( !Project::open() ) -{ - fl_alert( "You must create a new project before importing" ); - return; -} - -if ( timeline->ntracks() ) -{ - fl_alert( "You can only import into an empty session!" ); - return; -} - - -pid_t pid; -if ( ! (pid = fork()) ) -{ - exit( system( "import-ardour-session_gui" ) ); -} - -char *path = strdup( Project::path() ); - -Project::close(); - -int status; - -while ( 0 == waitpid( pid, &status, WNOHANG ) ) -{ - Fl::wait(0.2); -} - -Project::open(path); - -free(path);} - xywh {20 20 40 25} - } - } - Submenu {} { - label {&Export} open - xywh {5 5 74 25} hide deactivate - } { - MenuItem {} { - label Project - xywh {5 5 40 25} - } - MenuItem {} { - label Range - xywh {15 15 40 25} - } - } - MenuItem {} { - label {&Quit} - callback {quit()} - xywh {45 45 40 25} shortcut 0x40071 - } - } - Submenu {} { - label {&Edit} open - xywh {5 5 74 25} - } { - MenuItem {} { - label Undo - callback {timeline->command_undo();} - xywh {5 5 40 25} shortcut 0x4007a divider - } - MenuItem {} { - label {Select None} - callback {timeline->select_none();} - xywh {15 15 40 25} shortcut 0x50061 - } - MenuItem {} { - label {Delete Selected} - callback {timeline->delete_selected();} - xywh {25 25 40 25} shortcut 0xffff - } - } - Submenu {} { - label {T&ransport} open - xywh {5 5 74 25} - } { - MenuItem {} { - label Start - callback {transport->locate( 0 );} - xywh {5 5 40 25} shortcut 0xff50 - } - MenuItem {} { - label End - callback {transport->locate( timeline->length() );} - xywh {15 15 40 25} shortcut 0xff57 - } - MenuItem {} { - label {Play/Stop} - callback {transport->toggle();} - xywh {25 25 40 25} shortcut 0x20 - } - MenuItem {} { - label Record - callback {transport->toggle_record();} - xywh {45 45 40 25} shortcut 0x10072 - } - } - MenuItem {} { - label {&Timeline} - xywh {5 5 40 25} - } - Submenu {} { - label {&View} open - xywh {5 5 74 25} - } { - Submenu {} { - label {&Zoom} open - xywh {5 5 74 25} - } { - MenuItem {} { - label {&In} - callback {timeline->zoom_in();} - xywh {25 25 40 25} shortcut 0x2b - } - MenuItem {} { - label {&Out} - callback {timeline->zoom_out();} - xywh {35 35 40 25} shortcut 0x5f - } - MenuItem {} { - label {&Fit} - callback {timeline->zoom_fit();} - xywh {15 15 40 25} shortcut 0x3d divider - } - MenuItem {} { - label {1 sec.} - callback {timeline->zoom( 1 );} - xywh {15 15 40 25} shortcut 0x31 - } - MenuItem {} { - label {1 min.} - callback {timeline->zoom( 60 );} - xywh {25 25 40 25} shortcut 0x32 - } - MenuItem {} { - label {1 hour.} - callback {timeline->zoom( 60 * 60 );} - xywh {35 35 40 25} shortcut 0x33 - } - } - MenuItem {} { - label {&Theme} - callback {fl_theme_chooser();} - xywh {15 15 40 24} - code0 {\#include "FL/Fl_Theme_Chooser.H"} - } - } - Submenu {} { - label {&Options} open - xywh {5 5 74 25} divider - } { - Submenu {} { - label {&Display} open - xywh {15 15 74 25} - } { - Submenu {} { - label {&Timeline} open - xywh {15 15 74 25} - } { - MenuItem {} { - label {&Measure lines} - callback {Timeline::draw_with_measure_lines = menu_picked_value( o ); - -timeline->redraw();} - xywh {15 15 40 25} type Toggle value 1 - } - MenuItem {} { - label {&Cursor Overlay} - callback {Timeline::draw_with_cursor_overlay = menu_picked_value( o ); - -timeline->redraw();} - xywh {15 14 40 25} type Toggle value 1 - } - } - Submenu {} { - label {&Waveform} open - xywh {15 15 74 25} - } { - MenuItem {} { - label Fill - callback {Waveform::fill = menu_picked_value( o ); - -timeline->redraw();} - xywh {25 25 40 25} type Toggle value 1 - } - MenuItem {} { - label Outline - callback {Waveform::outline = menu_picked_value( o ); - -timeline->redraw();} - xywh {45 45 40 25} type Toggle value 1 - } - MenuItem {} { - label {Vary color} - callback {Waveform::vary_color = menu_picked_value( o ); - -timeline->redraw();} - xywh {35 35 40 25} type Toggle value 1 - } - } - Submenu {} { - label {&Region} open - xywh {15 15 74 25} - } { - MenuItem {} { - label {Filled fades} - xywh {45 45 40 25} type Toggle value 1 - } - MenuItem {} { - label {Inherit track color} - callback {Audio_Region::inherit_track_color = menu_picked_value( o ); - -timeline->redraw();} - xywh {55 55 40 25} type Toggle value 1 - } - MenuItem {} { - label {Show box} - callback {Audio_Region::show_box = menu_picked_value( o ); - -timeline->redraw();} - xywh {55 55 40 25} type Toggle value 1 - } - } - Submenu {} { - label {&Control Sequence} open - xywh {15 15 74 25} - } { - MenuItem {} { - label Ruled - callback {Control_Sequence::draw_with_grid = menu_picked_value( o ); - -timeline->redraw();} - xywh {55 55 40 25} type Toggle value 1 - } - } - Submenu {} { - label {&Track} open - xywh {15 15 74 25} - } { - MenuItem {} { - label {Colored tracks} - callback {Track::colored_tracks = menu_picked_value( o ); - -timeline->redraw();} - xywh {45 45 40 25} type Toggle value 1 - } - } - } - Submenu {} { - label {&Behavior} open - xywh {5 5 74 25} - } { - Submenu {} { - label {&Transport} open - xywh {5 5 74 25} - } { - MenuItem {} { - label {Stop Disables Record} - callback {transport->stop_disables_record( ((Fl_Menu_*)o)->mvalue()->flags & FL_MENU_VALUE );} - xywh {10 10 40 25} type Toggle value 1 - } - MenuItem {} { - label {Loop Playback} - callback {transport->loop_enabled( ( ((Fl_Menu_*)o)->mvalue()->flags & FL_MENU_VALUE )) ;} - xywh {10 10 40 25} type Toggle - } - MenuItem {} { - label {Automatically Create Takes} - callback {transport->automatically_create_takes( ( ((Fl_Menu_*)o)->mvalue()->flags & FL_MENU_VALUE ));} - xywh {10 10 40 25} type Toggle - } - } - } - } - Submenu {} { - label {&Help} open - xywh {5 5 74 25} - } { - MenuItem {} { - label {&Manual} - callback {show_help_dialog( "MANUAL" );} - xywh {15 15 40 25} divider - } - MenuItem {} { - label {&About} - callback {About_Dialog ab( PIXMAP_PATH "/non-timeline/icon-256x256.png" ); - - ab.logo_box->label( VERSION ); - - ab.title->label( "Non Timeline" ); - - ab.copyright->label( "Copyright (C) 2008-2013 Jonathan Moore Liles" ); - ab.credits->label( "Non Timeline was written from scratch by\\nJonathan Moore Liles for his own use\\n(see the manual).\\n\\nNobody planned. Nobody helped.\\nYou can help now by donating time, money,\\nand/or replacing the rest of Linux Audio\\nwith fast, light, reliable alternatives.\\n" ); - - ab.website_url->label( "http://non.tuxfamily.org" ); - -ab.run();} - xywh {5 5 40 25} - } - } - } - Fl_Pack {} {open - xywh {1 27 584 46} type HORIZONTAL - code0 {o->spacing( 10 );} - } { - Fl_Box {} { - label {} - xywh {5 28 290 44} color 30 - code0 {transport = o;} - code1 {o->labeltype( FL_NO_LABEL );} - class Transport - } - Fl_Pack clocks_pack {open - private xywh {295 30 290 41} type HORIZONTAL - code0 {o->spacing( 2 );} - } { - Fl_Box {} { - label PLAYHEAD - private xywh {301 30 137 41} box FLAT_BOX color 47 - code0 {o->type( Clock::HMS );} - code1 {o->run( &transport->frame );} - class Clock - } - Fl_Box {} { - label PLAYHEAD - xywh {440 30 137 41} box FLAT_BOX color 47 - code0 {o->type( Clock::BBT );} - code1 {o->run( &transport->frame );} - class Clock - } - } - } - Fl_Box {} { - label {} - xywh {585 32 155 40} resizable - code0 {o->labeltype( FL_NO_LABEL );} - } - Fl_Group {} {open - xywh {850 23 175 50} - } { - Fl_Box {} { - label {capture:} - xywh {910 27 56 14} labelsize 10 align 24 - } - Fl_Box {} { - label {playback:} - xywh {910 43 56 14} labelsize 10 align 24 - } - Fl_Box {} { - label {DSP:} - xywh {910 57 56 14} labelsize 10 align 24 - } - Fl_Box {} { - label filesystem - xywh {855 28 55 18} labelsize 10 align 16 - } - Fl_Progress capture_buffer_progress { - label {50%} - private xywh {965 27 60 14} selection_color 0 labelsize 10 - } - Fl_Progress cpu_load_progress { - label {50%} - private xywh {965 57 60 14} selection_color 0 labelsize 9 - } - Fl_Progress playback_buffer_progress { - label {50%} - private xywh {965 42 60 14} selection_color 0 labelsize 10 - } - Fl_Progress disk_usage_progress { - label {50%} - private xywh {855 43 55 28} selection_color 0 labelsize 10 - code0 {o->type( FL_VERTICAL );} - } - } - Fl_Group {} {open - xywh {740 31 115 40} - } { - Fl_Button solo_blinker { - label SOLO - xywh {800 33 50 15} box BORDER_BOX down_box BORDER_BOX color 74 selection_color 92 labelfont 1 labelsize 11 labelcolor 32 - code0 {\#include "FL/Fl_Blink_Button.H"} - code1 {o->box( FL_ASYM_BOX );} - code2 {o->down_box( FL_ASYM_BOX );} - code3 {o->ignore_input( true );} - class Fl_Blink_Button - } - Fl_Button rec_blinker { - label REC - xywh {800 53 50 15} box BORDER_BOX down_box BORDER_BOX color 72 selection_color 88 labelfont 1 labelsize 11 labelcolor 32 - code0 {\#include "FL/Fl_Blink_Button.H"} - code1 {o->box( FL_ASYM_BOX );} - code2 {o->down_box( FL_ASYM_BOX );} - code3 {o->ignore_input( true );} - class Fl_Blink_Button - } - Fl_Button selected_blinker { - label SEL - xywh {745 53 50 15} box BORDER_BOX down_box BORDER_BOX color 13 selection_color 5 labelfont 1 labelsize 11 labelcolor 32 - code0 {\#include "FL/Fl_Blink_Button.H"} - code1 {o->box( FL_ASYM_BOX );} - code2 {o->down_box( FL_ASYM_BOX );} - code3 {o->ignore_input( true );} - class Fl_Blink_Button - } - Fl_Button seek_blinker { - label SEEK - xywh {745 33 50 15} box BORDER_BOX down_box BORDER_BOX color 10 selection_color 2 labelfont 1 labelsize 11 labelcolor 32 - code0 {\#include "FL/Fl_Blink_Button.H"} - code1 {o->box( FL_ASYM_BOX );} - code2 {o->down_box( FL_ASYM_BOX );} - code3 {o->ignore_input( true );} - class Fl_Blink_Button - } - } - Fl_Box stats_box { - label {} - xywh {745 0 235 25} labelsize 13 labelcolor 53 align 88 - } - Fl_Button sm_blinker { - label SM - xywh {985 6 35 15} box ROUNDED_BOX down_box ROUNDED_BOX color 45 selection_color 93 labelfont 3 labelcolor 39 deactivate - class Fl_Button - } - } - Fl_Group progress_group {open - xywh {295 352 450 79} hide - } { - Fl_Progress progress { - label {0%} - private xywh {295 394 450 37} box ROUNDED_BOX selection_color 55 labelfont 1 labelsize 22 - } - Fl_Box {} { - label {Loading...} - xywh {295 362 450 31} labelfont 1 labelsize 17 align 18 - } - } - Fl_Box {} { - label {} - xywh {0 75 1025 692} box FLAT_BOX color 47 labeltype NO_LABEL labelsize 100 resizable - code0 {timeline = o;} - class Timeline - } - Fl_Box project_name { - label {} - private xywh {440 0 305 24} labeltype SHADOW_LABEL labelfont 2 - code0 {o->label( Project::name() );} - } - } - } - Function {menu_picked_value( const Fl_Menu_ *m )} {private return_type {static int} - } { - code {return m->menu()[ m->value() ].flags & FL_MENU_VALUE;} {} - } - Function {find_item( Fl_Menu_ *menu, const char *path )} {private return_type {static Fl_Menu_Item *} - } { - code {return const_cast(menu->find_item( path ));} {} - } - decl {static void menubar_cb ( void *v )} {private local - } - decl {void menubar_cb ( void )} {private local - } - Function {update_menu()} {private - } { - code {Fl_Menu_Bar *m = menubar; - -if ( ! Project::open() ) -{ - find_item( m, "&Project/&Export" )->deactivate(); - find_item( m, "&Project/&Compact" )->deactivate(); - find_item( m, "&Project/&Info" )->deactivate(); - - find_item( m, "&Project/Se&ttings" )->deactivate(); - find_item( m, "&Timeline" )->deactivate(); - - timeline->deactivate(); - transport->deactivate(); -} -else -{ - find_item( m, "&Project/&Export" )->activate(); - find_item( m, "&Project/&Compact" )->activate(); - find_item( m, "&Project/&Info" )->activate(); - - find_item( m, "&Project/Se&ttings" )->activate(); - find_item( m, "&Timeline" )->activate(); - - timeline->activate(); - transport->activate(); -} - -m->redraw(); -project_name->redraw();} {} - } - Function {update_progress( Fl_Progress *p, char *s, float v )} {private return_type {static void} - } { - code {if ( p->value() != v ) -{ -p->value( v ); - -snprintf( s, 5, "%d%%", (int)v ); - -p->label( s ); - -}} {} - } - Function {update_status()} {open private - } { - code {static char cbp[5], pbp[5], clp[5], dup[5]; - -update_progress( capture_buffer_progress, cbp, timeline->total_input_buffer_percent() ); -update_progress( playback_buffer_progress, pbp, timeline->total_output_buffer_percent() ); -update_progress( cpu_load_progress, clp, engine ? engine->cpu_load() : 0 ); - -if ( Project::open() ) - update_progress( disk_usage_progress, dup, percent_used( Project::path() ) ); -else - update_progress( disk_usage_progress, dup, 0 ); - -if ( timeline->total_capture_xruns() ) - capture_buffer_progress->selection_color( FL_RED ); - -if ( timeline->total_playback_xruns() ) - playback_buffer_progress->selection_color( FL_RED ); - -static char stats[100]; - -if ( engine && ! engine->zombified() ) -{ -snprintf( stats, sizeof( stats ), "latency: %.1fms, xruns: %d", - engine->frames_to_milliseconds( engine->system_latency() ), - engine->xruns() ); -} -else -{ - snprintf( stats, sizeof( stats ), "%s", "DISCONNECTED" ); -} - -stats_box->label( stats ); - -static bool zombie = false; - -if ( engine && engine->zombified() && ! zombie ) -{ - zombie = true; - fl_alert( "Disconnected from JACK!" ); -} - -solo_blinker->value( Track::soloing() ); - -if ( transport->punch_enabled() && timeline->range_start() != timeline->range_end() ) - rec_blinker->value( transport->rolling && - transport->rec_enabled() && - transport->frame >= timeline->range_start() && - transport->frame <= timeline->range_end() ); -else - rec_blinker->value( transport->rolling && transport->rec_enabled() ); - -sm_blinker->value( timeline->session_manager_name() != NULL ); -sm_blinker->tooltip( timeline->session_manager_name() ); -selected_blinker->value( timeline->nselected() ); -seek_blinker->value( timeline->seek_pending() ); - -if ( timeline->session_manager_name() != NULL ) -{ - find_item( menubar, "&Project/&New" )->deactivate(); - find_item( menubar, "&Project/&Open" )->deactivate(); -} - -// project_name->redraw();} {} - } - Function {update_cb( void *v )} {open private return_type {static void} - } { - code {Fl::repeat_timeout( STATUS_UPDATE_FREQ, update_cb, v ); - -((TLE*)v)->update_status();} {} - } - Function {capture_format_cb( Fl_Widget *, void *v )} {private return_type {static void} - } { - code {((TLE*)v)->capture_format_cb();} {} - } - Function {capture_format_cb()} {private return_type void - } { - code {Fl_Menu_ *o = menubar; - -Track::capture_format = o->menu()[ o->value() ].label();} {} - } - Function {progress_cb( int p, void *arg )} {private return_type {static void} - } { - code {((TLE*)arg)->progress_cb( p );} {} - } - Function {progress_cb( int p )} {private return_type void - } { - code {if ( ! progress_group->visible() ) -{ - timeline->hide(); - progress_group->show(); -} -else if ( 0 == p ) -{ - timeline->show(); - progress_group->hide(); -} - -// never allow drawing timeline while loading, as this would cause lock recursion. -if ( timeline->visible() ) - return; - -static int oldp; -static char pat[10]; - -if ( p != oldp ) -{ - oldp = p; - nsm_send_progress( nsm, p / 100.0f ); - update_progress( progress, pat, p ); - - progress->redraw(); - - Fl::check(); -}} {} - } - Function {show_help_dialog( const char *file )} {open private return_type {static void} - } { - code {char pat[256]; - -snprintf( pat, 256, "file://%s/non-timeline/%s.html", DOCUMENT_PATH, file ); - -open_url( pat );} {} - } -} - -Function {set_theme_dark()} {C return_type void -} { - code {Fl::background2( 100, 100, 100 ); - Fl::background( 50, 50, 50 ); - Fl::foreground( 255, 255, 255 );} {} -} - -class Project_Info_Dialog {open -} { - Function {Project_Info_Dialog()} {open - } { - code {make_window();} {} - } - Function {run()} {open return_type void - } { - code {window->show(); - -while ( window->shown() ) - Fl::wait();} {} - } - Function {make_window()} {open - } { - Fl_Window window { - label {Project info} - callback {o->hide(); - -if ( logo_box->image() ) -{ - ((Fl_Shared_Image*)logo_box->image())->release(); - logo_box->image( NULL ); -}} open - private xywh {1195 197 520 710} type Double modal visible - } { - Fl_Group {} {open - xywh {25 30 470 75} - } { - Fl_Value_Output {} { - label {Sample Rate} - xywh {35 30 90 25} labeltype SHADOW_LABEL align 1 - code0 {o->value( timeline->sample_rate() );} - } - Fl_Output {} { - label {Size of Journal} - xywh {175 30 100 25} box UP_BOX labeltype SHADOW_LABEL align 1 - code0 {static char pat[40];} - code1 {snprintf( pat, sizeof( pat ), "%.1fK", size( "history" ) / (float)1024 );} - code2 {o->value( pat );} - code3 {\#include "file.h"} - } - Fl_Output {} { - label {Created On} - xywh {315 30 180 25} box UP_BOX labeltype SHADOW_LABEL align 1 textfont 11 textsize 12 - code0 {o->value( Project::created_on() );} - } - Fl_Output {} { - label Length - xywh {25 80 115 25} box BORDER_BOX color 47 align 1 textcolor 71 - code0 {char pat[40];} - code1 {Clock::frame_to_HMS( pat, sizeof( pat ), timeline->length() );} - code2 {o->value( pat );} - } - Fl_Value_Output {} { - label Tracks - xywh {195 80 55 25} align 1 - code0 {o->value( timeline->ntracks() );} - } - Fl_Output {} { - label {Last Modified On} - xywh {315 80 180 25} box UP_BOX labeltype SHADOW_LABEL align 1 textfont 11 textsize 12 - code0 {time_t t = modification_time( "history" );} - code1 {static char s[40];} - code2 {ctime_r( &t, s ); s[ strlen( s ) - 1 ] = 0;} - code3 {o->value( s );} - } - } - Fl_Box logo_box { - label {} - private xywh {18 117 485 268} color 53 labelfont 1 labelsize 18 align 16 - code0 {o->image( Fl_Shared_Image::get( PIXMAP_PATH "/non-timeline/icon-256x256.png" ) );} - code1 {o->label( NULL );} - } - Fl_Text_Editor notes_field { - label {Notes:} - private xywh {20 420 480 245} color 47 selection_color 31 textsize 18 textcolor 92 - code0 {o->buffer( new Fl_Text_Buffer() );} - code1 {o->buffer()->loadfile( "notes" );} - } - Fl_Button {} { - label {&Save} - callback {notes_field->buffer()->savefile( "notes" ); - -window->do_callback();} - xywh {422 676 74 25} - } - Fl_Button {} { - label {&Discard} - callback {window->do_callback();} - xywh {332 676 74 25} - } - } - } -} diff --git a/timeline/src/Tempo_Point.C b/timeline/src/Tempo_Point.C deleted file mode 100644 index 5848ffc..0000000 --- a/timeline/src/Tempo_Point.C +++ /dev/null @@ -1,174 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "Tempo_Point.H" -#include "Tempo_Sequence.H" -#include "Timeline.H" // for timeline->tempo_track - - - -Tempo_Point::Tempo_Point ( ) -{ - timeline->tempo_track->add( this ); -} - -Tempo_Point::Tempo_Point ( nframes_t when, float bpm ) -{ - _tempo = bpm; - - _make_label(); - - timeline->tempo_track->add( this ); - - start( when ); - - log_create(); -} - -Tempo_Point::~Tempo_Point ( ) -{ - timeline->tempo_track->remove( this ); - log_destroy(); -} - - - -void -Tempo_Point::get ( Log_Entry &e ) const -{ -// Sequence_Point::get( e ); - - e.add( ":start", start() ); - e.add( ":tempo", _tempo ); -} - -void -Tempo_Point::set ( Log_Entry &e ) -{ - - Sequence_Point::set( e ); - - for ( int i = 0; i < e.size(); ++i ) - { - const char *s, *v; - - e.get( i, &s, &v ); - - if ( ! strcmp( s, ":tempo" ) ) - _tempo = atof( v ); - -/* /\* FIXME: we need to add this to the time track on creation!!! *\/ */ -/* timeline->tempo_track->add( this ); */ - - } - - sequence()->handle_widget_change( start(), length() ); - - _make_label(); -} - -int -Tempo_Point::handle ( int m ) -{ - Logger log( this ); - - if ( m == FL_PUSH && Fl::event_button3() && ! ( Fl::event_state() & ( FL_ALT | FL_CTRL | FL_SHIFT ) ) ) - { - float t = _tempo; - edit( &t ); - tempo( t ); - return 0; - } - - return Sequence_Point::handle( m ); -} - - -#include -#include - - -class Tempo_Point_Editor : public Fl_Menu_Window -{ - - /* not permitted */ - Tempo_Point_Editor ( const Tempo_Point_Editor &rhs ); - Tempo_Point_Editor & operator = ( const Tempo_Point_Editor &rhs ); - - float *_tempo; - Fl_Float_Input *_fi; - - bool _sucess; - -public: - - Tempo_Point_Editor ( float *tempo ) : Fl_Menu_Window( 75, 58, "Edit Tempo" ) - { - _sucess = false; - _tempo = tempo; - - set_modal(); - - Fl_Float_Input *fi = _fi = new Fl_Float_Input( 12, 0 + 24, 50, 24, "Tempo:" ); - fi->align( FL_ALIGN_TOP ); - fi->when( FL_WHEN_NOT_CHANGED | FL_WHEN_ENTER_KEY ); - fi->callback( &Tempo_Point_Editor::enter_cb, (void*)this ); - - char pat[10]; - snprintf( pat, sizeof( pat ), "%.1f", *tempo ); - - fi->value( pat ); - - end(); - - show(); - - while ( shown() ) - Fl::wait(); - } - - static void - enter_cb ( Fl_Widget *, void *v ) - { - ((Tempo_Point_Editor*)v)->enter_cb(); - } - - void - enter_cb ( void ) - { - sscanf( _fi->value(), "%f", _tempo ); - _sucess = true; - hide(); - } - - bool - sucess ( void ) - { - return _sucess; - } -}; - - -bool -Tempo_Point::edit ( float *tempo ) -{ - Tempo_Point_Editor ti( tempo ); - - return ti.sucess(); -} diff --git a/timeline/src/Tempo_Point.H b/timeline/src/Tempo_Point.H deleted file mode 100644 index 8dd88d0..0000000 --- a/timeline/src/Tempo_Point.H +++ /dev/null @@ -1,79 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - - -#pragma once - -#include "Sequence_Point.H" -// #include "Tempo_Sequence.H" - -class Tempo_Point : public Sequence_Point -{ - float _tempo; - - BBT _bbt; - - void - _make_label ( void ) - { - char l[10]; - - snprintf( l, sizeof(l), "%.1f", _tempo ); - - label( l ); - } - -protected: - -// const char *class_name ( void ) { return "Tempo_Point"; } - - virtual void get ( Log_Entry &e ) const; - void set ( Log_Entry &e ); - - Tempo_Point ( ); - -public: - - LOG_CREATE_FUNC( Tempo_Point ); - SEQUENCE_WIDGET_CLONE_FUNC( Tempo_Point ); - - static bool edit ( float *tempo ); - - const BBT * bbt ( void ) const { return &_bbt; } - - Tempo_Point ( nframes_t when, float bpm ); - - virtual ~Tempo_Point ( ); - - Tempo_Point ( const Tempo_Point &rhs ) : Sequence_Point( rhs ) - { - _tempo = rhs._tempo; - _bbt = rhs._bbt; - - log_create(); - } - - - float tempo ( void ) const - { return _tempo; } - void tempo ( float v ) - { if ( v != _tempo ) { _tempo = v; _make_label(); timeline->redraw(); } } - - int handle ( int m ); -}; diff --git a/timeline/src/Tempo_Sequence.C b/timeline/src/Tempo_Sequence.C deleted file mode 100644 index 50c16b3..0000000 --- a/timeline/src/Tempo_Sequence.C +++ /dev/null @@ -1,79 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "Tempo_Sequence.H" -#include "Track.H" - -Tempo_Sequence::Tempo_Sequence ( int X, int Y, int W, int H ) : Sequence ( X, Y, W, H ) -{ - box( FL_FLAT_BOX ); - - { Fl_Box *o = new Fl_Box( X, Y, Track::width(), H ); - o->align( FL_ALIGN_RIGHT | FL_ALIGN_INSIDE ); - o->labelsize( 12 ); - o->labeltype( FL_NORMAL_LABEL ); - o->label( "Tempo" ); - Fl_Group::add( o ); - } - - resizable(0); -} - -void -Tempo_Sequence::handle_widget_change ( nframes_t start, nframes_t length ) -{ - Sequence::handle_widget_change( start, length ); - - sort(); - timeline->update_tempomap(); - timeline->redraw(); -} - -int -Tempo_Sequence::handle ( int m ) -{ - int r = Sequence::handle( m ); - - if ( r ) - return r; - - switch ( m ) - { - case FL_PUSH: - if ( Fl::event_button1() ) - { - static float t = 120.0f; - - if ( Tempo_Point::edit( &t ) ) - { - timeline->sequence_lock.wrlock(); - - new Tempo_Point( timeline->x_to_offset( Fl::event_x() ), t ); - - timeline->sequence_lock.unlock(); - - timeline->redraw(); - } - return 0; - } - default: - return 0; - - } -} diff --git a/timeline/src/Tempo_Sequence.H b/timeline/src/Tempo_Sequence.H deleted file mode 100644 index 61f6498..0000000 --- a/timeline/src/Tempo_Sequence.H +++ /dev/null @@ -1,43 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include "Sequence.H" -#include "Tempo_Point.H" - -class Tempo_Sequence : public Sequence -{ - -protected: - - /* not used */ - void get ( Log_Entry & ) const { } - void set ( Log_Entry & ) { } - -public: - - Fl_Cursor cursor ( void ) const { return FL_CURSOR_DEFAULT; } - - Tempo_Sequence ( int X, int Y, int W, int H ); - - void handle_widget_change ( nframes_t start, nframes_t length ); - int handle ( int m ); - -}; diff --git a/timeline/src/Time_Point.C b/timeline/src/Time_Point.C deleted file mode 100644 index 002c38c..0000000 --- a/timeline/src/Time_Point.C +++ /dev/null @@ -1,203 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "Time_Point.H" -#include "Time_Sequence.H" -#include "Timeline.H" // for timeline->time_track - - - -Time_Point::Time_Point ( ) : _time( 4, 4 ) -{ - timeline->time_track->add( this ); -} - -Time_Point::Time_Point ( nframes_t when, int bpb, int note ) : _time( bpb, note ) -{ - _make_label(); - - timeline->time_track->add( this ); - - start( when ); - - log_create(); -} - -Time_Point::Time_Point ( const Time_Point &rhs ) : Sequence_Point( rhs ) -{ - _time = rhs._time; - - log_create(); - -} - -Time_Point::~Time_Point ( ) -{ - timeline->time_track->remove( this ); - - log_destroy(); -} - - - -void -Time_Point::get ( Log_Entry &e ) const -{ -// Sequence_Point::get( e ); - - e.add( ":start", start() ); - e.add( ":beats_per_bar", _time.beats_per_bar ); - e.add( ":beat_type", _time.beat_type ); -} - -void -Time_Point::set ( Log_Entry &e ) -{ - - Sequence_Point::set( e ); - - for ( int i = 0; i < e.size(); ++i ) - { - const char *s, *v; - - e.get( i, &s, &v ); - - if ( ! strcmp( s, ":beats_per_bar" ) ) - _time.beats_per_bar = atoi( v ); - else if ( ! strcmp( s, ":beat_type" ) ) - _time.beat_type = atoi( v ); - -/* /\* FIXME: we need to add this to the time track on creation!!! *\/ */ -/* timeline->time_track->add( this ); */ - - } - - sequence()->handle_widget_change( start(), length() ); - - _make_label(); -} - -int -Time_Point::handle ( int m ) -{ - Logger log( this ); - - if ( m == FL_PUSH && Fl::event_button3() && ! ( Fl::event_state() & ( FL_ALT | FL_CTRL | FL_SHIFT ) ) ) - { - - time_sig t = _time; - - edit( &t ); - - time( t.beats_per_bar, t.beat_type ); - - return 0; - - } - - return Sequence_Point::handle( m ); -} - -#include -#include - -class Time_Point_Editor : public Fl_Menu_Window -{ - - /* not permitted */ - Time_Point_Editor ( const Time_Point_Editor &rhs ); - Time_Point_Editor & operator = ( const Time_Point_Editor &rhs ); - - time_sig *_sig; - Fl_Int_Input *_beats; - Fl_Int_Input *_beat_type; - - bool _sucess; - -public: - - Time_Point_Editor ( time_sig *sig ) - : Fl_Menu_Window( 150, 110, "Edit Time" ) - { - _sig = sig; - - set_modal(); - - { - Fl_Int_Input *o = _beats = new Fl_Int_Input( 50, 0 + 24, 50, 24, "Beats Per Bar:" ); - o->align( FL_ALIGN_TOP ); - o->when( FL_WHEN_NOT_CHANGED | FL_WHEN_ENTER_KEY ); - o->callback( &Time_Point_Editor::enter_cb, (void*)this ); - } - - { - Fl_Int_Input *o = _beat_type = new Fl_Int_Input( 50, 0 + 75, 50, 24, "Beat Type:" ); - o->align( FL_ALIGN_TOP ); - o->when( FL_WHEN_NOT_CHANGED | FL_WHEN_ENTER_KEY ); - o->callback( &Time_Point_Editor::enter_cb, (void*)this ); - } - - char pat[10]; - snprintf( pat, sizeof( pat ), "%d", _sig->beats_per_bar ); - - _beats->value( pat ); - - snprintf( pat, sizeof( pat ), "%d", _sig->beat_type ); - - _beat_type->value( pat ); - - end(); - - show(); - - while ( shown() ) - Fl::wait(); - } - - static void - enter_cb ( Fl_Widget *, void *v ) - { - ((Time_Point_Editor*)v)->enter_cb(); - } - - void - enter_cb ( void ) - { - _sig->beats_per_bar = atoi( _beats->value() ); - _sig->beat_type = atoi( _beat_type->value() ); - - _sucess = true; - - hide(); - } - - bool - sucess ( void ) - { - return _sucess; - } -}; - -bool -Time_Point::edit ( time_sig *sig ) -{ - Time_Point_Editor ti( sig ); - - return ti.sucess(); -} diff --git a/timeline/src/Time_Point.H b/timeline/src/Time_Point.H deleted file mode 100644 index 79665aa..0000000 --- a/timeline/src/Time_Point.H +++ /dev/null @@ -1,87 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - - -#pragma once - -#include "Sequence_Point.H" -#include "Loggable.H" - -struct time_sig -{ - int beats_per_bar; - int beat_type; - - time_sig ( ) : beats_per_bar( 0 ), beat_type( 0 ) - { - } - - time_sig ( int bpb, int note ) : beats_per_bar( bpb ), beat_type( note ) - { - } -}; - -class Time_Point : public Sequence_Point -{ - time_sig _time; - - void - _make_label ( void ) - { - char l[10]; - - snprintf( l, sizeof(l), "%d/%d", _time.beats_per_bar, _time.beat_type ); - - label( l ); - } - - -protected: - -// const char *class_name ( void ) { return "Time_Point"; } - - virtual void get ( Log_Entry &e ) const; - void set ( Log_Entry &e ); - - Time_Point ( ); - -public: - - LOG_CREATE_FUNC( Time_Point ); - SEQUENCE_WIDGET_CLONE_FUNC( Time_Point ); - - static bool edit ( time_sig *sig ); - - Time_Point ( nframes_t when, int bpb, int note ); - Time_Point ( const Time_Point &rhs ); - - ~Time_Point ( ); - - void - time ( int bpb, int note ) - { - _time.beats_per_bar = bpb; _time.beat_type = note; - _make_label(); - redraw(); - } - time_sig time ( void ) const { return _time; } - - int handle ( int m ); - -}; diff --git a/timeline/src/Time_Sequence.C b/timeline/src/Time_Sequence.C deleted file mode 100644 index f877b8a..0000000 --- a/timeline/src/Time_Sequence.C +++ /dev/null @@ -1,82 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include "Time_Sequence.H" -#include "Track.H" -#include - -Time_Sequence::Time_Sequence ( int X, int Y, int W, int H ) : Sequence ( X, Y, W, H ) -{ - box( FL_FLAT_BOX ); - - { Fl_Box *o = new Fl_Box( X, Y, Track::width(), H ); - o->align( FL_ALIGN_RIGHT | FL_ALIGN_INSIDE ); - o->labelsize( 12 ); - o->labeltype( FL_NORMAL_LABEL ); - o->label( "Time" ); - Fl_Group::add( o ); - } - - resizable(0); -} - - - -void -Time_Sequence::handle_widget_change ( nframes_t start, nframes_t length ) -{ - Sequence::handle_widget_change( start, length ); - - sort(); - timeline->update_tempomap(); - timeline->redraw(); -} - -int -Time_Sequence::handle ( int m ) -{ - int r = Sequence::handle( m ); - - if ( r ) - return r; - - switch ( m ) - { - case FL_PUSH: - if ( Fl::event_button1() ) - { - static time_sig t = time_sig( 4, 4 ); - - if ( Time_Point::edit( &t ) ) - { - timeline->sequence_lock.wrlock(); - - new Time_Point( timeline->x_to_offset( Fl::event_x() ), t.beats_per_bar, t.beat_type ); - - timeline->sequence_lock.unlock(); - - timeline->redraw(); - } - return 0; - } - default: - return 0; - - } -} diff --git a/timeline/src/Time_Sequence.H b/timeline/src/Time_Sequence.H deleted file mode 100644 index 4e71a71..0000000 --- a/timeline/src/Time_Sequence.H +++ /dev/null @@ -1,65 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - - -#pragma once - -#include "Sequence.H" -#include "Time_Point.H" - -#include -using std::list; - -class Time_Sequence : public Sequence -{ - -protected: - - /* not used */ - void get ( Log_Entry & ) const { } - void set ( Log_Entry & ) { } - -public: - - Fl_Cursor cursor ( void ) const { return FL_CURSOR_DEFAULT; } - - Time_Sequence ( int X, int Y, int W, int H ); - - time_sig - time ( nframes_t when ) - { - for ( list ::const_reverse_iterator i = _widgets.rbegin(); - i != _widgets.rend(); i++ ) - { - if ( (*i)->offset() < when ) - return ((Time_Point*)(*i))->time(); - } - - return time_sig( 4, 4 ); - } - - void - time ( nframes_t when, int bpb, int note ) - { - add( new Time_Point( when, bpb, note ) ); - } - - void handle_widget_change ( nframes_t start, nframes_t length ); - int handle ( int m ); -}; diff --git a/timeline/src/Timeline.C b/timeline/src/Timeline.C deleted file mode 100644 index ccde2a1..0000000 --- a/timeline/src/Timeline.C +++ /dev/null @@ -1,2266 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -/* This is the Timeline widget, which contains all the tracks and - * provides cursor overlays, scrolling, zooming, measure lines, tempo - * map and just about everything else. */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "Timeline.H" -#include "Tempo_Sequence.H" -#include "Time_Sequence.H" -#include "Cursor_Sequence.H" -#include "Audio_Sequence.H" -#include "Control_Sequence.H" -#include "Sequence.H" -#include "Annotation_Sequence.H" -#include "Track.H" -#include "Transport.H" - -#include "FL/menu_popup.H" - -#include "const.h" -#include "debug.h" - -/* these headers are just for the NSM support */ -#include "Project.H" -#include "TLE.H" -/* */ - -#include "OSC_Thread.H" -#include "OSC/Endpoint.H" - -#include - -#include -extern nsm_client_t *nsm; - -#define BASE Fl_Group -#define BX this->x() -#define BY this->y() - - - -bool Timeline::draw_with_measure_lines = true; -bool Timeline::draw_with_cursor_overlay = true; -Timeline::snap_e Timeline::snap_to = Bars; -bool Timeline::snapping_on_hold = false; -bool Timeline::snap_magnetic = true; -bool Timeline::follow_playhead = true; -bool Timeline::center_playhead = true; -bool Timeline::playback_latency_compensation = false; - -const float UPDATE_FREQ = 1.0f / 18.0f; - -extern const char *instance_name; -extern TLE *tle; - - - -/** return the combined height of all visible children of (veritcal) - pack, /p/. This is necessary because pack sizes are adjusted only - when the relevant areas are exposes. */ -static int -pack_visible_height ( const Fl_Pack *p ) -{ - int th = 0; - - const Fl_Widget* const *w = p->array(); - for ( int i = p->children(); i--; ++w ) - if ( (*w)->visible() ) - th += (*w)->h() + p->spacing(); - - return th; -} - -#define BP fl_begin_polygon() -#define EP fl_end_polygon() -#define vv(x,y) fl_vertex( x, y ) -#define BL fl_begin_line() -#define EL fl_end_line() - -void -draw_full_arrow_symbol ( Fl_Color color ) -{ - /* draw cap */ - fl_color( color ); - - BP; - vv( -1, -1 ); - vv( 0, 1 ); - vv( 1, -1 ); - EP; - - /* draw cap outline */ - fl_color( FL_BLACK ); - - BL; - vv( -1, -1 ); - vv( 0, 1 ); - vv( 1, -1 ); - EL; - -} - - - -class Timeline::Timeline_Panzoomer : public Fl_Panzoomer -{ -public: - Timeline_Panzoomer ( int X,int Y,int W,int H, const char *L=0) - : Fl_Panzoomer(X,Y,W,H) - { - } -protected: - void - draw_background ( int X, int Y,int W, int H ) - { - nframes_t ef = timeline->x_to_ts( _xmax ); - - double ty = Y; - - for ( int i = 0; i < timeline->tracks->children(); i++ ) - { - Track *t = (Track*)timeline->tracks->child( i ); - - Sequence *s = t->sequence(); - - if ( !s ) - continue; - - fl_color( FL_DARK1 ); - - const double scale = (double)H / ( pack_visible_height( timeline->tracks ) ); - -// double th = (double)H / timeline->tracks->children(); - const double th = t->h() * scale; - - fl_line( X, ty, - X + W, ty ); - - for ( list ::const_iterator r = s->_widgets.begin(); - r != s->_widgets.end(); ++r ) - { - fl_rectf( - X + ( W * ( (double)(*r)->start() / ef ) ), - ty, - W * ( (double)(*r)->length() / ef ), - th, - (*r)->actual_box_color()); - } - - fl_font( FL_HELVETICA, th ); - fl_color( FL_FOREGROUND_COLOR ); - fl_draw( t->name(), X, ty, W, th, (Fl_Align)(FL_ALIGN_LEFT | FL_ALIGN_INSIDE )); - - ty += th; - } - } -}; - - - - - -void -Timeline::redraw_overlay ( void ) -{ - ((Fl_Overlay_Window*)window())->redraw_overlay(); -} - -nframes_t -Timeline::range_start ( void ) const -{ - if ( edit_cursor_track->active_cursor() ) - return edit_cursor_track->active_cursor()->start(); - else - return 0; -} - -nframes_t -Timeline::range_end ( void ) const -{ - if ( edit_cursor_track->active_cursor() ) - return edit_cursor_track->active_cursor()->start() + edit_cursor_track->active_cursor()->length(); - else - return 0; -} - -void -Timeline::range_start ( nframes_t n ) -{ - if ( ! edit_cursor_track->active_cursor() ) - new Cursor_Region( 0, 0, "Edit", NULL ); - - Logger log( edit_cursor_track->active_cursor() ); - - edit_cursor_track->active_cursor()->set_left( n ); -} - -void -Timeline::range_end ( nframes_t n ) -{ - if ( ! edit_cursor_track->active_cursor() ) - new Cursor_Region( 0, 0, "Edit", NULL ); - - Logger log( edit_cursor_track->active_cursor() ); - - edit_cursor_track->active_cursor()->set_right( n ); -} - -/** return first frame of playback (might not be 0) */ -nframes_t -Timeline::playback_home ( void ) const -{ - if ( play_cursor_track->active_cursor() ) - return play_cursor_track->active_cursor()->start(); - else - return 0; -} - -/** return last frame of playback */ -nframes_t -Timeline::playback_end ( void ) const -{ - if ( play_cursor_track->active_cursor() ) - return play_cursor_track->active_cursor()->start() + play_cursor_track->active_cursor()->length(); - else - return length(); -} - -void -Timeline::reset_range ( void ) -{ - delete edit_cursor_track->active_cursor(); -} - -/** callback used by Loggable class to create a snapshot of system - * state. */ -void -Timeline::snapshot ( void ) -{ - tempo_track->log_children(); - time_track->log_children(); - edit_cursor_track->log_children(); - punch_cursor_track->log_children(); - play_cursor_track->log_children(); - - update_track_order(); - - for ( int i = 0; i < tracks->children(); ++i ) - { - ((Track*)tracks->child( i ))->log_children(); - } -} - - -/** recalculate the size of horizontal scrolling area and inform scrollbar */ -void -Timeline::adjust_panzoomer ( void ) -{ - panzoomer->y_value( panzoomer->y_value(), h() - rulers->h() - panzoomer->h(), 0, pack_visible_height( tracks )); - panzoomer->x_value( ts_to_x( xoffset ), /* pos */ - tracks->w() - Track::width(), /* window size */ - 0, /* min */ - max( ts_to_x( length() ), tracks->w() - Track::width() )/* max */ - ); -} - -void -Timeline::cb_scroll ( Fl_Widget *w, void *v ) -{ - ((Timeline*)v)->cb_scroll( w ); -} - -void -Timeline::cb_scroll ( Fl_Widget *w ) -{ - //adjust_panzoomer(); - - if ( panzoomer->zoom_changed() ) - { - nframes_t under_mouse = x_to_offset( Fl::event_x() ); - - _fpp = panzoomer->zoom(); - - panzoomer->x_value( ts_to_x( under_mouse ) ); - - redraw(); - } - - if ( _old_yposition != panzoomer->y_value() ) - { - tracks->position( tracks->x(), track_window->y() - (int)panzoomer->y_value() ); - damage( FL_DAMAGE_SCROLL ); - } - - if ( _old_xposition != x_to_ts( panzoomer->x_value() )) - { - damage( FL_DAMAGE_SCROLL ); - xposition( panzoomer->x_value() ); - } -} - -void -Timeline::menu_cb ( Fl_Widget *w, void *v ) -{ - ((Timeline*)v)->menu_cb( (Fl_Menu_*)w ); -} - -/** ensure that p1 is less than range_end() */ -void -Timeline::fix_range ( void ) -{ - if ( range_start() > range_end() ) - { - nframes_t t = range_end(); - range_end( range_start() ); - range_start( t ); - } -} - -/** set the range to /start/ + /length/ */ -void -Timeline::range ( nframes_t start, nframes_t length ) -{ - range_start( start ); - range_end( start + length ); - - redraw(); -} - -/** create a new take for every armed track */ -void -Timeline::add_take_for_armed_tracks ( void ) -{ - THREAD_ASSERT( UI ); - - track_lock.wrlock(); - - for ( int i = tracks->children(); i-- ; ) - { - Track *t = (Track*)tracks->child( i ); - - if ( t->armed() && t->sequence()->_widgets.size() ) - t->sequence( new Audio_Sequence( t ) ); - } - - track_lock.unlock(); -} - -/* coordinates of mouse at time context menu is brought up. */ -static int menu_event_x = 0; -static int menu_event_y = 0; -void -Timeline::menu_cb ( Fl_Menu_ *m ) -{ - if ( ! active_r() ) - return; - - const char *picked = m->mvalue()->label(); - -/* m->item_pathname( picked, sizeof( picked ) ); */ - - DMESSAGE( "%s", picked ); - - if ( ! strcmp( picked, "Add audio track" ) ) - { - /* FIXME: prompt for I/O config? */ - - Loggable::block_start(); - - /* add audio track */ - char *name = get_unique_track_name( "Audio" ); - - Track *t = new Track( name ); - - free( name ); - - Audio_Sequence *o = new Audio_Sequence( t ); - - add_track( t ); - - t->sequence( o ); - - t->take_focus(); - - Loggable::block_end(); - } - else if ( ! strcmp( picked, "Tempo from edit (beat)" ) ) - { - if ( range_start() != range_end() ) - { - fix_range(); - - beats_per_minute( range_start(), sample_rate() * 60 / (float)( range_end() - range_start() ) ); - - range_end( range_start() ); - } - } - else if ( ! strcmp( picked, "Tempo from edit (bar)" ) ) - { - if ( range_start() != range_end() ) - { - fix_range(); - - position_info pi = solve_tempomap( range_start() ); - - beats_per_minute( range_start(), sample_rate() * 60 / (float)( ( range_end() - range_start() ) / pi.beats_per_bar ) ); - - range_end( range_start() ); - } - } - else if ( ! strcmp( picked, "Playhead to mouse" ) ) - { - int X = Fl::event_x() - Track::width(); - - if ( X > 0 ) - { - transport->locate( xoffset + x_to_ts( X ) ); - } - } - else if ( ! strcmp( picked, "Edit start to mouse" ) ) - { - int X = Fl::event_x() - Track::width(); - - if ( X > 0 ) - { - range_start( xoffset + x_to_ts( X ) ); - } - - fix_range(); - - /* FIXME: only needs to damage the location of the old cursor! */ - redraw(); - } - else if ( ! strcmp( picked, "Edit end to mouse" ) ) - { - int X = Fl::event_x() - Track::width(); - - if ( X > 0 ) - { - range_end( xoffset + x_to_ts( X ) ); - } - - fix_range(); - - /* FIXME: only needs to damage the location of the old cursor! */ - redraw(); - } - else if ( ! strcmp( picked, "Playhead left beat" ) ) - { - nframes_t f = transport->frame; - - if ( prev_line( &f ) ) - transport->locate( f ); - } - else if ( ! strcmp( picked, "Playhead right beat" ) ) - { - nframes_t f = transport->frame; - - if ( next_line( &f ) ) - transport->locate( f ); - } - else if ( ! strcmp( picked, "Playhead left bar" ) ) - { - nframes_t f = transport->frame; - - if ( prev_line( &f, true ) ) - transport->locate( f ); - } - else if ( ! strcmp( picked, "Playhead right bar" ) ) - { - nframes_t f = transport->frame; - - if ( next_line( &f, true ) ) - transport->locate( f ); - } - else if ( ! strcmp( picked, "Swap edit start and playhead" ) ) - { - nframes_t t = transport->frame; - - transport->locate( range_start() ); - - range_start( t ); - - redraw(); - } - else if ( ! strcmp( picked, "Swap edit end and playhead" ) ) - { - nframes_t t = transport->frame; - - transport->locate( range_end() ); - - range_end( t ); - - redraw(); - } - else if ( ! strcmp( picked, "Edit start to playhead" ) ) - { - range_start( transport->frame ); - - redraw(); - } - else if ( ! strcmp( picked, "Edit end to playhead" ) ) - { - range_end( transport->frame ); - - redraw(); - } - else if ( ! strcmp( picked, "Punch from edit" ) ) - { - if ( range_start() != range_end() ) - { - Loggable::block_start(); - - new Cursor_Region( range_start(), range_end() - range_start(), "Punch", NULL ); - reset_range(); - - Loggable::block_end(); - } - - redraw(); - } - else if ( ! strcmp( picked, "Playback from edit" ) ) - { - if ( range_start() != range_end() ) - { - Loggable::block_start(); - - if ( play_cursor_track->active_cursor() ) - { - play_cursor_track->active_cursor()->start( range_start() ); - play_cursor_track->active_cursor()->set_right( range_end() ); - } - else - { - new Cursor_Region( range_start(), range_end() - range_start(), "Playback", NULL ); - } - - reset_range(); - - Loggable::block_end(); - } - - redraw(); - } - else if ( ! strcmp( picked, "Redraw" ) ) - { - redraw(); - } - else if ( ! strcmp( picked, "Import source at mouse" ) ) - { - Fl::e_x = menu_event_x; - Fl::e_y = menu_event_y; - - Track *t = Timeline::event_inside(); - - if ( t ) - { - const char *name = fl_file_chooser( "Import source", "*", NULL ); - - if ( name ) - { - char *url; - asprintf( &url, "file:///%s\n", name ); - - Fl::e_x = menu_event_x; - Fl::e_y = menu_event_y; - - t->sequence()->handle_paste(url); - - free(url); - } - } - } - else - WARNING( "programming error: Unknown menu item" ); -} - -int -Timeline::ntracks ( void ) const -{ - return tracks->children(); -} - - -Timeline::~Timeline ( ) -{ - delete osc_thread; - osc_thread = 0; - delete osc; - osc = 0; -} - -Timeline::Timeline ( int X, int Y, int W, int H, const char* L ) : BASE( X, Y, W, H, L ) -{ - Loggable::snapshot_callback( &Timeline::snapshot, this ); - - edit_cursor_track = NULL; - punch_cursor_track = NULL; - play_cursor_track = NULL; - - _created_new_takes = 0; - osc_thread = 0; - _sample_rate = 44100; - - box( FL_FLAT_BOX ); - xoffset = 0; - _old_yposition = 0; - _old_xposition = 0; - -// range_start( range_end( 0 ) ); - - menu = new Fl_Menu_Button( 0, 0, 0, 0, "Timeline" ); - -/* menu->add( "Add Track", 0, 0, 0 ); */ - - int ruler_height = 0; - - menu->add( "Add audio track", 'a', 0, 0 ); - menu->add( "Tempo from edit (beat)", 't', 0, 0 ); - menu->add( "Tempo from edit (bar)", FL_CTRL + 't', 0, 0 ); - menu->add( "Playhead to mouse", 'p', 0, 0 ); - menu->add( "Edit start to mouse", '[', 0, 0 ); - menu->add( "Edit end to mouse", ']', 0, 0 ); - menu->add( "Playhead left beat", FL_SHIFT + FL_Left, 0, 0 ); - menu->add( "Playhead right beat", FL_SHIFT + FL_Right, 0, 0 ); - menu->add( "Playhead left bar", FL_CTRL + FL_SHIFT + FL_Left, 0, 0 ); - menu->add( "Playhead right bar", FL_CTRL + FL_SHIFT + FL_Right, 0, 0 ); - menu->add( "Swap edit start and playhead", FL_CTRL + FL_SHIFT + '[', 0, 0 ); - menu->add( "Swap edit end and playhead", FL_CTRL + FL_SHIFT + ']', 0, 0 ); - menu->add( "Edit start to playhead", FL_CTRL + '[', 0, 0 ); - menu->add( "Edit end to playhead", FL_CTRL + ']', 0, 0 ); - menu->add( "Punch from edit", FL_CTRL + FL_SHIFT + 'p', 0, 0 ); - menu->add( "Playback from edit", FL_CTRL + FL_SHIFT + 'l', 0, 0 ); - menu->add( "Import source at mouse", 0, 0, 0 ); - menu->add( "Redraw", FL_CTRL + 'l', 0, 0 ); - - menu_set_callback( const_cast(menu->menu()), &Timeline::menu_cb, (void*)this ); - - - { - Fl_Pack *o = new Fl_Pack( X, Y, W, 1, "rulers" ); - o->type( Fl_Pack::VERTICAL ); - - { - Tempo_Sequence *o = new Tempo_Sequence( 0, 0, 800, 18 ); - - o->color( FL_DARK1 ); - - /* o->label( "Tempo" ); */ - - tempo_track = o; - } - - { - Time_Sequence *o = new Time_Sequence( 0, 24, 800, 18 ); - - o->color( FL_DARK2 ); - - /* o->name( "Time" ); */ - - time_track = o; - } - - { - Cursor_Sequence *o = new Cursor_Sequence( 0, 24, 800, 18 ); - - o->color( FL_DARK1 ); - - o->label( "Edit" ); - o->cursor_color( FL_YELLOW ); - - edit_cursor_track = o; - } - - { - Cursor_Sequence *o = new Cursor_Sequence( 0, 24, 800, 18 ); - - o->color( FL_DARK2 ); - - o->label( "Punch" ); - o->cursor_color( FL_RED ); - - punch_cursor_track = o; - } - - { - Cursor_Sequence *o = new Cursor_Sequence( 0, 24, 800, 18 ); - - o->color( FL_DARK1 ); - - o->label( "Playback" ); - o->cursor_color( FL_GREEN ); - - play_cursor_track = o; - } - -/* { */ -/* Annotation_Sequence *o = new Annotation_Sequence( 0, 24, 800, 24 ); */ - -/* o->color( fl_gray_ramp( 'F' ) ); */ - -/* o->label( "Ruler" ); */ -/* o->align( FL_ALIGN_LEFT ); */ - -/* ruler_track = o; */ -/* } */ - - rulers = o; - o->end(); - - ruler_height = o->child( 0 )->h() * o->children(); - - DMESSAGE( "Ruler height: %i", ruler_height ); - - o->size( o->w(), ruler_height ); - } - - { - Fl_Tile *o = new Fl_Tile( X, rulers->y() + ruler_height, W, H - rulers->h() ); - o->box(FL_FLAT_BOX); - o->when( FL_WHEN_RELEASE ); - { - Fl_Group *o = new Fl_Group( X, rulers->y() + rulers->h(), W, ( H - rulers->h() ) - 50 ); - o->box(FL_FLAT_BOX); - o->clip_children(true); - o->resizable(NULL); - { - _fpp = 8; - Fl_Pack *o = new Fl_Pack( X, rulers->y() + rulers->h(), W, 1 ); - o->type( Fl_Pack::VERTICAL ); - o->spacing( 1 ); - - tracks = o; - o->end(); - /* Fl_Group::current()->resizable( o ); */ - } - - o->end(); - track_window = o; - } - { - Fl_Panzoomer *o = new Timeline_Panzoomer( X, - track_window->y() + track_window->h(), - W, - 50 ); - - o->zoom_range( 1, 20 ); - o->zoom( 8 ); - - o->box( FL_FLAT_BOX ); - o->color( FL_DARK1 ); - o->type( FL_HORIZONTAL ); - o->callback( cb_scroll, this ); - - panzoomer = o; - } - - /* this is used to define the sizing limits of the enclosing Fl_Tile */ - Fl_Box *spacebox = new Fl_Box( 0,0,1,1 ); - /* doesn't need to be visible */ - spacebox->hide(); - - o->end(); - o->resizable( spacebox ); - - spacebox->resize( X, rulers->y() + ( ( H - rulers->h() ) - 50 ), - W, 125 ); - - o->position( panzoomer->x(), panzoomer->y(), - panzoomer->x(), track_window->y() + track_window->h() ); - - tile = o; - resizable(o); - } - - /* rulers go above tracks... */ - add( rulers ); - - /* redraw(); */ - - end(); - - Fl::add_timeout( UPDATE_FREQ, update_cb, this ); -} - -void -Timeline::beats_per_minute ( nframes_t when, float bpm ) -{ - tempo_track->add( new Tempo_Point( when, bpm ) ); -} - -void -Timeline::time ( nframes_t when, int bpb, int note_type ) -{ - time_track->add( new Time_Point( when, bpb, note_type ) ); -} - -/************/ -/* Snapping */ -/************/ - -struct nearest_line_arg -{ - nframes_t original; - nframes_t closest; - bool bar; -}; - -const int snap_pixel = 10; - -static nframes_t -abs_diff ( nframes_t n1, nframes_t n2 ) -{ - return n1 > n2 ? n1 - n2 : n2 - n1; -} - -static void -nearest_line_snap_cb ( nframes_t frame, const BBT &bbt, void *arg ) -{ - nearest_line_arg *n = (nearest_line_arg *)arg; - - if ( n->bar && bbt.beat ) - return; - - if ( Timeline::snap_magnetic && - abs_diff( frame, n->original ) > timeline->x_to_ts( snap_pixel ) ) - return; - - if ( abs_diff( frame, n->original ) < abs_diff( n->original, n->closest ) ) - n->closest = frame; -} - -static void -nearest_line_cb ( nframes_t frame, const BBT &bbt, void *arg ) -{ - nearest_line_arg *n = (nearest_line_arg *)arg; - - if ( n->bar && bbt.beat ) - return; - - if ( abs_diff( frame, n->original ) < abs_diff( n->original, n->closest ) ) - n->closest = frame; -} - -static void -prev_next_line_cb ( nframes_t frame, const BBT &bbt, void *arg ) -{ - nearest_line_arg *n = (nearest_line_arg *)arg; - - if ( n->bar && bbt.beat ) - return; - - if ( abs_diff( frame, n->original ) < abs_diff( n->original, n->closest ) ) - n->closest = frame; -} - -/** Set the value pointed to by /frame/ to the frame number of the of - the nearest measure line to /when/. Returns true if the new value of - *frame is valid, false otherwise. */ -bool -Timeline::nearest_line ( nframes_t *frame, bool snap ) const -{ - if ( snap && ( snapping_on_hold || None == Timeline::snap_to ) ) - return false; - - nframes_t when = *frame; - - nearest_line_arg n = { when, JACK_MAX_FRAMES, snap && Timeline::Bars == Timeline::snap_to }; - - render_tempomap( when > x_to_ts( w() >> 1 ) ? when - x_to_ts( w() >> 1 ) : 0, - when + x_to_ts( w() >> 1 ), snap ? nearest_line_snap_cb : nearest_line_cb, &n ); - - if ( n.closest == JACK_MAX_FRAMES ) - return false; - else - { - *frame = n.closest; - return true; - } -} - -/** Set the value pointed to by /frame/ to the frame number of the of - the nearest measure line to *greater than* /when/. Returns true if - the new value of *frame is valid, false otherwise. */ -bool -Timeline::next_line ( nframes_t *frame, bool bar ) const -{ - const nframes_t when = *frame + 1; - - nearest_line_arg n = { when, JACK_MAX_FRAMES, bar }; - - const nframes_t window = sample_rate() * 60; - nframes_t length = window; - - if ( when > JACK_MAX_FRAMES - length ) - length = JACK_MAX_FRAMES - when; - - render_tempomap( when, length, prev_next_line_cb, &n ); - - *frame = n.closest; - - return true; -} - -/** Set the value pointed to by /frame/ to the frame number of the of - the nearest measure line to *less than* /when/. Returns true if - the new value of *frame is valid, false otherwise. */ -bool -Timeline::prev_line ( nframes_t *frame, bool bar ) const -{ - if ( ! *frame ) - return false; - - const nframes_t when = *frame - 1; - - nearest_line_arg n = { when, 0, bar }; - - const nframes_t window = sample_rate() * 60; - nframes_t start = 0; - nframes_t length = when; - - if ( when > window ) - { - start = when - window; - length = window; - } - - render_tempomap( start, length, prev_next_line_cb, &n ); - - *frame = n.closest; - - return true; -} - - - -/** given screen pixel coordinate /x/ return frame offset into - * timeline, taking into account the current scroll position, widget - * layout, etc. */ -nframes_t -Timeline::x_to_offset ( int x ) const -{ - int d = x - Track::width(); - - int64_t r; - - if ( d < 0 ) - r = (int64_t)xoffset - x_to_ts( 0 - d ); - else - r = (int64_t)xoffset + x_to_ts( d ); - - if ( r > JACK_MAX_FRAMES ) - return JACK_MAX_FRAMES; - else if ( r < 0 ) - return 0; - else - return r; -} - -int -Timeline::offset_to_x ( nframes_t frame ) const -{ - return ts_to_x( frame - xoffset ) + Track::width(); -} - -/** draws a single measure line */ -void -Timeline::draw_measure_cb ( nframes_t frame, const BBT &bbt, void *v ) -{ - Timeline *o = (Timeline*)v; - - Fl_Color c = FL_LIGHT3; - - if ( o->panzoomer->zoom() >= 15 ) - return; - - if ( bbt.beat ) - { - if ( o->panzoomer->zoom() > 12 ) - return; - else - c = FL_DARK1; - } - - fl_color( fl_color_add_alpha( c, 64 ) ); - - const int x = timeline->ts_to_x( frame - timeline->xoffset ) + Track::width(); - - fl_line( x, 0, x, 2000 ); -} - -/* FIXME: wrong place for this */ -const float ticks_per_beat = 1920.0; - -/** re-render the unified tempomap based on the current contents of the Time and Tempo sequences */ -void -Timeline::update_tempomap ( void ) -{ - /* FIXME: we need some type of locking! */ - _tempomap.clear(); - - for ( list ::const_iterator i = time_track->_widgets.begin(); - i != time_track->_widgets.end(); ++i ) - _tempomap.push_back( *i ); - - for ( list ::const_iterator i = tempo_track->_widgets.begin(); - i != tempo_track->_widgets.end(); ++i ) - _tempomap.push_back( *i ); - - _tempomap.sort( Sequence_Widget::sort_func ); -} - -/** return a stucture containing the BBT info which applies at /frame/ */ -position_info -Timeline::solve_tempomap ( nframes_t frame ) const -{ - return render_tempomap( frame, 0, 0, 0 ); -} - -/* THREAD: UI and RT */ -/** draw appropriate measure lines inside the given bounding box */ -position_info -Timeline::render_tempomap( nframes_t start, nframes_t length, measure_line_callback * cb, void *arg ) const -{ - const nframes_t end = start + length; - - position_info pos; - memset( &pos, 0, sizeof( pos ) ); - - BBT &bbt = pos.bbt; - - /* default values */ - pos.beat_type = 4; - pos.beats_per_bar = 4; - pos.tempo = 120.0; - - const nframes_t samples_per_minute = sample_rate() * 60; - - float bpm = 120.0f; - - time_sig sig; - - sig.beats_per_bar = 4; - sig.beat_type = 4; - - nframes_t f = 0; - nframes_t next = 0; - - nframes_t frames_per_beat = samples_per_minute / bpm; - - if ( ! _tempomap.size() ) - return pos; - - for ( list ::const_iterator i = _tempomap.begin(); - i != _tempomap.end(); ++i ) - { - - if ( ! strcmp( (*i)->class_name(), "Tempo_Point" ) ) - { - const Tempo_Point *p = (Tempo_Point*)(*i); - - bpm = p->tempo(); - frames_per_beat = samples_per_minute / bpm; - } - else - { - const Time_Point *p = (Time_Point*)(*i); - - sig = p->time(); - - /* Time point resets beat */ - bbt.beat = 0; - } - - { - list ::const_iterator n = i; - ++n; - if ( n == _tempomap.end() ) - next = end; - else -// next = min( (*n)->start(), end ); - /* points may not always be aligned with beat boundaries, so we must align here */ - next = (*n)->start() - ( ( (*n)->start() - (*i)->start() ) % frames_per_beat ); - } - - for ( ; f < next; ++bbt.beat, f += frames_per_beat ) - { - - if ( bbt.beat == sig.beats_per_bar ) - { - bbt.beat = 0; - ++bbt.bar; - } - - if ( f >= start ) - { - /* in the zone */ - if ( cb ) - cb( f, bbt, arg ); - } - - /* ugliness to avoid failing out at -1 */ - if ( end >= frames_per_beat ) - { - if ( f >= end - frames_per_beat ) - goto done; - } - else if ( f + frames_per_beat >= end ) - goto done; - } - } - -done: - - pos.frame = f; - pos.tempo = bpm; - pos.beats_per_bar = sig.beats_per_bar; - pos.beat_type = sig.beat_type; - - assert( f <= end ); - - assert( end - f <= frames_per_beat ); - - /* FIXME: this this right? */ - - const double frames_per_tick = frames_per_beat / ticks_per_beat; - bbt.tick = ( end - f ) / frames_per_tick; - - return pos; -} - -/** maybe draw appropriate measure lines in rectangle defined by X, Y, W, and H, using color /color/ as a base */ -void -Timeline::draw_measure_lines ( int X, int Y, int W, int H ) -{ - if ( ! draw_with_measure_lines ) - return; - - fl_line_style( FL_SOLID, 0 ); - - const nframes_t start = x_to_offset( X ); - const nframes_t length = x_to_ts( W ); - - fl_push_clip( X, Y, W, H ); - - render_tempomap( start, length, draw_measure_cb, this ); - - fl_pop_clip(); -} - -void -Timeline::draw_clip_rulers ( void * v, int X, int Y, int W, int H ) -{ - Timeline *tl = (Timeline *)v; - - fl_push_clip( X, Y, W, H ); - - tl->draw_box(); - - tl->draw_child( *tl->rulers ); - - fl_pop_clip(); -} - -void -Timeline::draw_clip_tracks ( void * v, int X, int Y, int W, int H ) -{ - Timeline *tl = (Timeline *)v; - - fl_push_clip( X, Y, W, H ); - - tl->draw_box(); - - fl_damage_t pzd = tl->panzoomer->damage(); - - tl->draw_child( *tl->tile ); - - tl->panzoomer->damage( pzd ); - - fl_pop_clip(); -} - -/** handle resize event */ -void -Timeline::resize ( int X, int Y, int W, int H ) -{ - int old_panzoomer_h = panzoomer->h(); - - BASE::resize( X, Y, W, H ); - - tile->resizable()->resize( X, - tile->y() + tile->h() - 150, - W, 125 ); - - panzoomer->resize( X, - tile->y() + tile->h() - old_panzoomer_h, - W, - old_panzoomer_h ); - - track_window->resize( X, - tile->y(), - W, - tile->h() - panzoomer->h()); - - tracks->resize( tracks->x(), tracks->y(), W, tracks->h() ); - - /* /\* rulers->resize( X, *\/ */ - /* /\* rulers->y(), *\/ */ - /* /\* W, *\/ */ - /* /\* rulers->h() ); *\/ */ - - /* tile->redraw(); */ -} - - -void -Timeline::add_cursor ( Cursor_Region *o ) -{ - if ( !strcmp( o->type(), "Edit" ) ) - { - DMESSAGE( "Adding cursor to edit track" ); - edit_cursor_track->add( o ); - } - else if ( !strcmp( o->type(), "Punch" ) ) - { - DMESSAGE( "Adding cursor to punch track" ); - punch_cursor_track->add( o ); - } - else if ( !strcmp( o->type(), "Playback" ) ) - { - DMESSAGE( "Adding cursor to punch track" ); - play_cursor_track->add( o ); - } - -} - -void -Timeline::add_cursor ( Cursor_Point *o ) -{ - if ( !strcmp( o->type(), "Edit" ) ) - edit_cursor_track->add( o ); - else if ( !strcmp( o->type(), "Punch" ) ) - punch_cursor_track->add( o ); -} - -void -Timeline::draw_cursors ( Cursor_Sequence *o ) const -{ - fl_push_clip( tracks->x() + Track::width(), rulers->y() + rulers->h(), tracks->w() - Track::width(), h() - rulers->h() - panzoomer->h() ); - - if ( o && o->_widgets.size() > 0 ) - { - for ( std::list::const_iterator i = o->_widgets.begin(); - i != o->_widgets.end(); - i++ ) - { - if ( Timeline::draw_with_cursor_overlay ) - { - fl_color( fl_color_add_alpha( (*i)->box_color(), 25 ) ); - - fl_rectf( (*i)->line_x(), tracks->y(), (*i)->abs_w(), tracks->h() ); - } - else - { - fl_color( fl_color_add_alpha( (*i)->box_color(), 127 )); - - fl_line( (*i)->line_x(), tracks->y(), (*i)->line_x(), tracks->y() + tracks->h() ); - - fl_line( (*i)->line_x() + (*i)->abs_w(), tracks->y(), (*i)->line_x() + (*i)->abs_w(), tracks->y() + tracks->h() ); - } - } - } - - fl_pop_clip(); -} - -/** draw ancillary cursors (not necessarily in the overlay plane) */ -void -Timeline::draw_cursors ( void ) const -{ - draw_cursors( edit_cursor_track ); - - if ( transport->punch_enabled() ) - draw_cursors( punch_cursor_track ); -} - - -void -Timeline::draw ( void ) -{ - /* Any code that might affect the structures used for drawing from - * another thread must use Fl::lock()/unlock()! */ - THREAD_ASSERT( UI ); - -// rdlock(); - - int X, Y, W, H; - - int bdx = 0; - int bdw = 0; - - X = tracks->x() + bdx + 1; - Y = tracks->y(); - W = tracks->w() - bdw - 1; - H = tracks->h(); - - adjust_panzoomer(); - - int dx = ts_to_x( _old_xposition ) - ts_to_x( xoffset ); - int dy = _old_yposition - (int)panzoomer->y_value(); - - int c = damage(); - -// c = FL_DAMAGE_ALL; - - if ( c & FL_DAMAGE_SCROLL ) - { - { - /* draw_child( *rulers ); */ - - Y = track_window->y(); - H = track_window->h(); - - - if ( dx ) - /* when scrolling horizontally, scroll rulers */ - fl_scroll( rulers->x() + Track::width(), - rulers->y(), - rulers->w(), - rulers->h(), dx, 0, draw_clip_rulers, this ); - - if ( dy ) - /* when scrolling vertically, also scroll track headers */ - fl_scroll( - X, - Y, - Track::width(), - H, 0, dy, draw_clip_tracks, this ); - - /* scroll sequences */ - fl_scroll( X + Track::width(), - Y, - W - Track::width(), - H, dx, dy, draw_clip_tracks, this ); - } - } - -// panzoomer->redraw(); - - if ( c & FL_DAMAGE_ALL ) - { - DMESSAGE( "complete redraw" ); - - draw_box( box(), BX, BY, w(), h(), color() ); - - draw_child( *rulers ); - - fl_push_clip( tile->x(), - tile->y(), - tile->w(), - tile->h() ); - - draw_child(*tile); - - fl_pop_clip(); - - redraw_overlay(); - - goto done; - } - - if ( c & FL_DAMAGE_CHILD ) - { - update_child(*rulers); - - fl_push_clip( tile->x(), - tile->y(), - tile->w(), - tile->h() ); - - /* redraw the panzoomer preview whenever tracks change */ - /* if ( tracks->damage() ) */ - /* panzoomer->redraw(); */ - - update_child(*tile); - - fl_pop_clip(); - - redraw_overlay(); - } - -done: - -// unlock(); - - /* panzoomer->redraw(); */ -// update_child( *panzoomer ); - - _old_xposition = xoffset; - _old_yposition = panzoomer->y_value(); -} - -void -Timeline::damage_sequence ( void ) -{ - panzoomer->redraw(); -} - -/** draw a single cursor line at /frame/ with color /color/ using symbol routine /symbol/ for the cap */ -void -Timeline::draw_cursor ( nframes_t frame, Fl_Color color, void (*symbol)(Fl_Color) ) const -{ -// int x = ( ts_to_x( frame ) - ts_to_x( xoffset ) ) + tracks->x() + Track::width(); - - if ( frame < xoffset ) - return; - - const int x = ts_to_x( frame - xoffset ) + tracks->x() + Track::width(); - - if ( x > tracks->x() + tracks->w() ) - return; - - const int y = rulers->y() + rulers->h(); - const int h = this->h() - rulers->h() - panzoomer->h(); - - fl_push_clip( tracks->x() + Track::width(), y, tracks->w(), h ); - - fl_line_style( FL_SOLID, 0 ); - fl_color( color ); - fl_line( x, y, x, y + h ); - - fl_push_matrix(); - - fl_translate( x, y ); - fl_scale( 8, 4 ); - - symbol( color ); - - fl_pop_matrix(); - - fl_pop_clip(); -} - -/** set /in/ and /out/ to start and end of next punch region from /frame/ */ -bool -Timeline::next_punch ( nframes_t frame, nframes_t *in, nframes_t *out ) const -{ - if ( !transport->punch_enabled() ) - return false; - - const Sequence_Widget *w = punch_cursor_track->next( frame ); - - if ( w && w->start() >= frame ) - { - *in = w->start(); - *out = w->start() + w->length(); - - return true; - } - - return false; -} - -void -Timeline::draw_playhead ( void ) -{ - draw_cursor( transport->frame, FL_RED, draw_full_arrow_symbol ); -// draw_cursor( length(), FL_BLACK, draw_full_arrow_symbol ); -} - -void -Timeline::redraw_playhead ( void ) -{ -// static nframes_t last_playhead = -1; - static int last_playhead_x = -1; - - if ( transport->rolling ) - { - if ( play_cursor_track->active_cursor() ) - { - if ( transport->loop_enabled() ) - { - if ( transport->frame > playback_end() ) - { - if ( ! seek_pending() ) - { - if ( transport->recording ) - { - stop(); - transport->locate( playback_home() ); - record(); - } - else - { - transport->locate( playback_home() ); - } - } - } - } - else - if ( transport->frame > playback_end() ) - transport->stop(); - } - } - - int playhead_x = ts_to_x( transport->frame ); - - if ( last_playhead_x != playhead_x ) - { - redraw_overlay(); -// last_playhead = transport->frame; - last_playhead_x = playhead_x; - - if ( follow_playhead ) - { - if ( center_playhead && active() ) - xposition( max( 0, playhead_x - ( ( tracks->w() - Track::width() ) >> 1 ) ) ); - else if ( playhead_x > ts_to_x( xoffset ) + ( tracks->w() - Track::width() ) ) - xposition( playhead_x ); - adjust_panzoomer(); - } - } -} - -/** called so many times a second to redraw the playhead etc. */ -void -Timeline::update_cb ( void *arg ) -{ - Fl::repeat_timeout( UPDATE_FREQ, update_cb, arg ); - - Timeline *tl = (Timeline *)arg; - - tl->redraw_playhead(); -} - -/** draw cursors in overlay plane */ -void -Timeline::draw_overlay ( void ) -{ - draw_playhead(); - - draw_cursors(); - - if ( ! ( _selection.w && _selection.h ) ) - return; - - fl_push_clip( tracks->x() + Track::width(), rulers->y() + rulers->h(), tracks->w() - Track::width(), h() - rulers->h() - panzoomer->h() ); - - const Rectangle &r = _selection; - - fl_color( FL_MAGENTA ); - fl_line_style( FL_SOLID, 0 ); - fl_rect( r.x, r.y, r.w, r.h ); - - fl_pop_clip(); -} - -/** select sequence widgets within rectangle /r/ */ -void -Timeline::select ( const Rectangle &r ) -{ - const int Y = r.y; - - for ( int i = tracks->children(); i-- ; ) - { - Track *t = (Track*)tracks->child( i ); - - if ( ! ( t->y() > Y + r.h || t->y() + t->h() < Y ) ) - t->select( r.x, r.y, r.w, r.h, true, true ); - } -} - -/** delete all selected sequence widgets */ -void -Timeline::delete_selected ( void ) -{ - Sequence_Widget::delete_selected(); -} - -/** clear the selection of seqeunce widgets */ -void -Timeline::select_none ( void ) -{ - Sequence_Widget::select_none(); -} - -int -Timeline::nselected ( void ) const -{ - return Sequence_Widget::nselected(); -} - -/** An unfortunate necessity for implementing our own DND aside from - * the (bogus) native FLTK system */ -Track * -Timeline::track_under ( int Y ) -{ - for ( int i = tracks->children(); i-- ; ) - { - Track *t = (Track*)tracks->child( i ); - - if ( ! ( t->y() > Y || t->y() + t->h() < Y ) ) - return t; - } - - return NULL; -} - -#include "FL/event_name.H" -#include "FL/test_press.H" - -/** a bit of a hack to keep FLTK's focus navigation stuff from - * stealing the arrow keys from us */ -int -Timeline::handle_scroll ( int m ) -{ - if ( m == FL_KEYBOARD && - Fl::event_key() != FL_Home && - Fl::event_key() != FL_End ) - return menu->test_shortcut() || panzoomer->handle( m ); - else - return 0; -} - -Track * -Timeline::event_inside ( void ) -{ - for ( int i = tracks->children(); i--; ) - if ( Fl::event_inside( tracks->child(i) ) ) - return (Track*)tracks->child(i); - - return NULL; -} - -int -Timeline::handle ( int m ) -{ - static Drag *drag = NULL; - static bool range = false; - -/* if ( m != FL_NO_EVENT ) */ -/* DMESSAGE( "%s", event_name( m ) ); */ - -/* int r = BASE::handle( m ); */ - - switch ( m ) - { - case FL_ENTER: - return 1; - case FL_LEAVE: - return 1; - case FL_KEYDOWN: - if ( Fl::event_state() & ( FL_ALT | FL_CTRL | FL_SHIFT ) ) - /* we don't want any keys with modifiers... */ - return 0; - - if ( Fl::event_key() == 'r' ) - { - range = true; - return 1; - } - else if ( Fl::event_key() == 's' ) - { - snapping_on_hold = true; - return 1; - } - return 0; - case FL_KEYUP: - if ( Fl::event_state() & ( FL_ALT | FL_CTRL | FL_SHIFT ) ) - /* we don't want any keys with modifiers... */ - return 0; - - if ( Fl::event_key() == 'r' ) - { - range = false; - return 1; - } - else if ( Fl::event_key() == 's' ) - { - snapping_on_hold = false; - return 1; - } - return 0; -// case FL_KEYBOARD: - case FL_SHORTCUT: - { - if ( Fl::event_state() & ( FL_ALT | FL_CTRL | FL_SHIFT ) ) - /* we don't want any keys with modifiers... */ - return 0; - - switch ( Fl::event_key() ) - { - case FL_Delete: - case FL_Home: - case FL_End: - /* keep scrollbar from eating these. */ - return 0; - default: - return BASE::handle( m ); - } - - return 0; - } - default: - { - int r = BASE::handle( m ); - - if ( m != FL_RELEASE && r ) - return r; - - const int X = Fl::event_x(); - const int Y = Fl::event_y(); - - switch ( m ) - { - case FL_PUSH: - { - if ( - Fl::event_x() >= Track::width() && - ( test_press( FL_BUTTON1 ) || test_press( FL_BUTTON1 + FL_CTRL ) )) - { - assert( ! drag ); - - drag = new Drag( X, Y ); - _selection.x = X; - _selection.y = Y; - - if ( ! Fl::event_ctrl() ) - select_none(); - - return 1; - } - else if ( test_press( FL_BUTTON3 ) ) - { - { - menu_event_x = X; - menu_event_y = Y; - - Track *t = Timeline::event_inside(); - - Fl_Menu_Item *mi = (Fl_Menu_Item*)menu->find_item("Import source at mouse"); - - if ( t ) - mi->activate(); - else - mi->deactivate(); - } - - menu_popup( menu ); - - return 1; - } - } - - return 0; - - case FL_DRAG: - { - int ox = X - drag->x; - int oy = Y - drag->y; - - if ( ox < 0 ) - _selection.x = X; - if ( oy < 0 ) - _selection.y = Y; - - _selection.w = abs( ox ); - _selection.h = abs( oy ); - - if ( range ) - { - range_start( x_to_offset( _selection.x ) ); - range_end( x_to_offset( _selection.x + _selection.w ) ); - redraw(); - } - - redraw_overlay(); - return 1; - - break; - } - case FL_RELEASE: - { - delete drag; - drag = NULL; - - if ( range ) - { - range_start( x_to_offset( _selection.x ) ); - range_end( x_to_offset( _selection.x + _selection.w ) ); - redraw(); - } - else - select( _selection ); - - _selection.x = _selection.y =_selection.w = _selection.h = 0; - - redraw_overlay(); - return 1; - } - default: - return 0; - break; - } - - return 0; - } - } -} - -/** retrun a pointer to the track named /name/, or NULL if no track is named /name/ */ -Track * -Timeline::track_by_name ( const char *name ) -{ - for ( int i = tracks->children(); i-- ; ) - { - Track *t = (Track*)tracks->child( i ); - - if ( name && t->name() && ! strcmp( name, t->name() ) ) - return t; - } - - return NULL; -} - -/** return a malloc'd string representing a unique name for a new track */ -char * -Timeline::get_unique_track_name ( const char *name ) -{ - char pat[256]; - - strcpy( pat, name ); - - for ( int i = 1; track_by_name( pat ); ++i ) - snprintf( pat, sizeof( pat ), "%s.%d", name, i ); - - return strdup( pat ); -} - -/**********/ -/* Public */ -/**********/ - -/** return the current length of the timeline, which is arrived at by - * calculating the end frame of the rightmost audio region on an - * active audio sequence. Control_Points, etc. do not factor into this - * calcaulation. */ -nframes_t -Timeline::length ( void ) const -{ - nframes_t l = 0; - - for ( int i = tracks->children(); i--; ) - { - Sequence *t = ((Track*)tracks->child( i ))->sequence(); - - if ( t ) - l = max( l, ((Track*)tracks->child( i ))->sequence()->length() ); - } - - return l; -} - -/** set horizontal scroll postion to absolute pixel coordinate /X/ */ -void -Timeline::xposition ( int X ) -{ - xoffset = x_to_ts( X ); - - long dx = ts_to_x( _old_xposition ) - ts_to_x( xoffset ); - - if ( dx ) - damage( FL_DAMAGE_SCROLL ); -} - -/** zoom in by one zoom step */ -void -Timeline::zoom_in ( void ) -{ - panzoomer->zoom_in(); -} - -/** zoom out by one zoom step */ -void -Timeline::zoom_out ( void ) -{ - panzoomer->zoom_out(); -} - -/** zoom the display to show /secs/ seconds per screen */ -void -Timeline::zoom ( float secs ) -{ - const int sw = tracks->w() - Track::width(); - - int fpp = (int)((secs * sample_rate()) / sw); - - int p = 0; - while ( 1 << p < fpp ) p++; - - panzoomer->zoom( p ); - - redraw(); -} - -/** fit the zoom to the current length of the timeline (subject to nearest power of two) */ -void -Timeline::zoom_fit ( void ) -{ - xposition( 0 ); - - if ( length() ) - zoom( length() / (float)sample_rate() ); - else - zoom( 60 ); -} - -/** add /track/ to the timeline */ -void -Timeline::add_track ( Track *track ) -{ - DMESSAGE( "added new track to the timeline" ); - - tracks->add( track ); - - /* FIXME: why is this necessary? doesn't the above add do DAMAGE_CHILD? */ - redraw(); - -} - -void -Timeline::insert_track ( Track *track, Track *before ) -{ - tracks->insert( *track, before ); - - tracks->redraw(); -} - -void -Timeline::insert_track ( Track *track, int n ) -{ - if ( n > tracks->children() || n < 0 ) - return; - - tracks->insert( *track, n ); - - tracks->redraw(); - - /* FIXME: why is this necessary? doesn't the above add do DAMAGE_CHILD? */ -// redraw(); -} - -static -bool -compare_tracks ( Track *a, Track *b ) -{ - return *a < *b; -} - -void -Timeline::apply_track_order ( void ) -{ - /* wrlock(); */ - - std::list tl; - - for ( int i = 0; i < tracks->children(); i++ ) - tl.push_back( (Track*)tracks->child( i ) ); - - tl.sort(compare_tracks); - - Fl_Widget **a = const_cast(tracks->array()); - - int j = 0; - for ( std::list::const_iterator i = tl.begin(); - i != tl.end(); - i++, j++ ) - a[j] = *i; - - update_track_order(); - - /* unlock(); */ -} - -void -Timeline::update_track_order ( void ) -{ - for ( int i = 0; i < tracks->children(); i++ ) - ((Track*)tracks->child( i ))->row( i ); -} - -int -Timeline::find_track ( const Track *track ) const -{ - return tracks->find( *track ); -} - - -/** remove /track/ from the timeline */ -void -Timeline::remove_track ( Track *track ) -{ - DMESSAGE( "removed track from the timeline" ); - - /* FIXME: what to do about track contents? */ - tracks->remove( track ); - - /* FIXME: why is this necessary? doesn't the above add do DAMAGE_CHILD? */ - redraw(); -} - -/************/ -/* Commands */ -/************/ - -void -Timeline::command_move_track_up ( Track *track ) -{ - track_lock.wrlock(); - insert_track( track, find_track( track ) - 1 ); - track_lock.unlock(); -} - -void -Timeline::command_move_track_down ( Track *track ) -{ - track_lock.wrlock(); - insert_track( track, find_track( track ) + 2 ); - track_lock.unlock(); -} - -void -Timeline::command_remove_track ( Track *track ) -{ - track_lock.wrlock(); - remove_track(track); - track_lock.unlock(); -} - -void -Timeline::command_quit ( void ) -{ - track_lock.wrlock(); - - Project::close(); - - track_lock.unlock(); - - command_save(); - - while ( Fl::first_window() ) Fl::first_window()->hide(); -} - -void -Timeline::command_undo ( void ) -{ - /* FIXME: sequence lock too? */ - track_lock.wrlock(); - Project::undo(); - track_lock.unlock(); -} - -bool -Timeline::command_load ( const char *name, const char *display_name ) -{ - if ( ! name ) - return false; - - track_lock.wrlock(); - int r = Project::open( name ); - track_lock.unlock(); - - if ( r < 0 ) - { - const char *s = Project::errstr( r ); - - fl_alert( "Could not open project \"%s\":\n\n\t%s", name, s ); - - return false; - } - - if ( display_name ) - Project::set_name ( display_name ); - - apply_track_order(); - - return true; -} - -bool -Timeline::command_save ( ) -{ - tle->save_options(); - - return true; -} - -bool -Timeline::command_new ( const char *name, const char *display_name ) -{ - bool b = Project::create( name, NULL ); - - Project::set_name ( display_name ); - - /* FIXME: there's other stuff that needs to be done here! */ - /* tle->update_menu(); */ - - /* tle->main_window->redraw(); */ - - return b; -} - -const char * -Timeline::session_manager_name ( void ) -{ - return nsm_get_session_manager_name( nsm ); -} - - -/*******/ -/* OSC */ -/*******/ - -int -Timeline::init_osc ( const char *osc_port ) -{ - osc = new OSC::Endpoint(); - - if ( int r = osc->init( LO_UDP, osc_port ) ) - return r; - - osc->owner = this; - - char *url = osc->url(); - printf( "OSC=%s\n", url ); - free(url); - - osc->add_method( "/non/hello", "ssss", &Timeline::osc_non_hello, osc, "" ); - -// osc->start(); - - if ( ! osc_thread ) - { - osc_thread = new OSC_Thread(); - - osc_thread->start(); - } - - return 0; -} - -int -Timeline::osc_non_hello ( const char *, const char *, lo_arg **, int , lo_message msg, void * ) -{ - THREAD_ASSERT( OSC ); - - timeline->handle_hello(msg); - return 0; -} - -void -Timeline::handle_hello ( lo_message msg ) -{ - int argc = lo_message_get_argc( msg ); - lo_arg **argv = lo_message_get_argv( msg ); - - if ( argc >= 4 ) - { - const char *url = &argv[0]->s; - const char *name = &argv[1]->s; - const char *version = &argv[2]->s; - const char *id = &argv[3]->s; - - MESSAGE( "Got hello from NON peer %s (%s) @ %s with ID \"%s\"", name, version, url, id ); - - osc->handle_hello( &argv[3]->s, &argv[0]->s ); - } -} - -void -Timeline::say_hello ( void ) -{ - if ( nsm_is_active( nsm ) ) - { - lo_message m = lo_message_new(); - - lo_message_add( m, "sssss", - "/non/hello", - osc->url(), - APP_NAME, - VERSION, - instance_name ); - - nsm_send_broadcast( nsm, m ); - } -} - -void -Timeline::connect_osc ( void ) -{ - /* reconnect OSC signals */ - for ( int i = tracks->children(); i-- ; ) - { - Track *t = (Track*)tracks->child( i ); - - t->connect_osc(); - } -} -void -Timeline::update_osc_connection_state ( void ) -{ - /* reconnect OSC signals */ - for ( int i = tracks->children(); i-- ; ) - { - Track *t = (Track*)tracks->child( i ); - - t->update_osc_connection_state(); - } -} - -/* runs in the OSC thread... */ -void -Timeline::process_osc ( void ) -{ - THREAD_ASSERT( OSC ); - - sequence_lock.rdlock(); - - for ( int i = tracks->children(); i-- ; ) - { - Track *t = (Track*)tracks->child( i ); - - t->process_osc(); - } - - sequence_lock.unlock(); -} - diff --git a/timeline/src/Timeline.H b/timeline/src/Timeline.H deleted file mode 100644 index 022c3af..0000000 --- a/timeline/src/Timeline.H +++ /dev/null @@ -1,320 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - - -/* FIXME: this class needs a lot of cleaning up. Too many public - * members etc. */ - -/* #include "Audio_File.H" // just for nframes_t */ - -#include "types.h" - -#include -#include -#include - -#include "OSC_Thread.H" - -class Fl_Scroll; -class Fl_Pack; -class Fl_Scrollbar; -class Fl_Widget; - -class Fl_Menu_Button; -class Fl_Menu_; - -class Timeline; -extern Timeline *timeline; - -struct BBT; -class Tempo_Sequence; -class Time_Sequence; -class Annotation_Sequence; -class Cursor_Sequence; -class Track; -class Sequence; -class Sequence_Widget; -class Cursor_Region; -class Cursor_Point; -class Fl_Panzoomer; -class Fl_Tile; - -#include "RWLock.H" -#include - -namespace OSC { class Endpoint; } - -#include - -struct position_info; - -struct Rectangle -{ - int x; - int y; - int w; - int h; - - Rectangle ( ) : x( 0 ), y( 0 ), w( 0 ), h( 0 ) {} - Rectangle ( int X, int Y, int W, int H ) : x( X ), y( Y ), w( W ), h( H ) {} -}; - -class Timeline : public Fl_Group -{ - class Timeline_Panzoomer; - - static void draw_clip_rulers ( void * v, int X, int Y, int W, int H ); - static void draw_clip_tracks ( void * v, int X, int Y, int W, int H ); - - nframes_t _old_xposition; - int _old_yposition; - - Rectangle _selection; - - Fl_Group *track_window; - Fl_Pack *tracks; - Fl_Pack *rulers; - Fl_Tile *tile; - Fl_Panzoomer *panzoomer; - - void adjust_panzoomer ( void ); - static void cb_scroll ( Fl_Widget *w, void *v ); - void cb_scroll ( Fl_Widget *w ); - static void menu_cb ( Fl_Widget *w, void *v ); - void menu_cb ( Fl_Menu_ *m ); - void fix_range ( void ); - - static void draw_measure_cb ( nframes_t frame, const BBT &bbt, void * ); - - int _fpp; /* frames per pixel, power of two */ - -// nframes_t p1, p2; /* cursors */ - nframes_t _playhead; - - /* not permitted */ - Timeline ( const Timeline &rhs ); - Timeline & operator = ( const Timeline &rhs ); - - std::list _tempomap; - - static void handle_peer_scan_complete ( void * v ); - - void update_track_order ( void ); - void apply_track_order ( void ); - void insert_track ( Track *track, int n ); - - -public: - - RWLock track_lock; /* tracks/sequences */ - RWLock sequence_lock; /* sequence contents */ - - void redraw_overlay ( void ); - - void insert_track ( Track *track, Track *before ); - Track * event_inside ( void ); - - /* called when widgets are moved etc */ - void damage_sequence ( void ); - - OSC::Endpoint *osc; - OSC_Thread *osc_thread; - - void process_osc ( void ); -#undef Bars -#undef Beats -#undef None - - enum snap_e { - Bars, - Beats, - None - }; - - /* configuration values */ - static bool draw_with_measure_lines; - static bool draw_with_cursor_overlay; - static snap_e snap_to; - static bool snapping_on_hold; - static bool snap_magnetic; - static bool follow_playhead; - static bool center_playhead; - static bool playback_latency_compensation; - - Tempo_Sequence *tempo_track; - Time_Sequence *time_track; - Annotation_Sequence *ruler_track; - Cursor_Sequence *edit_cursor_track; - Cursor_Sequence *punch_cursor_track; - Cursor_Sequence *play_cursor_track; - - Fl_Menu_Button *menu; - - bool _created_new_takes; - - nframes_t xoffset; - - nframes_t _sample_rate; - - Timeline ( int X, int Y, int W, int H, const char *L=0 ); - - virtual ~Timeline ( ); - - void update_tempomap ( void ); - - const char *session_manager_name ( void ); - - - nframes_t fpp ( void ) const { return 1 << _fpp; } - void range ( nframes_t start, nframes_t length ); - - nframes_t range_start ( void ) const; - nframes_t range_end ( void ) const; - void range_start ( nframes_t n ); - void range_end ( nframes_t n ); - void reset_range ( void ); - nframes_t playback_home ( void ) const; - nframes_t playback_end ( void ) const; - -// nframes_t playhead ( void ) const { return transport->frame; } - nframes_t length ( void ) const; - void sample_rate ( nframes_t r ) { _sample_rate = r; } - nframes_t sample_rate ( void ) const { return _sample_rate; } - int ts_to_x( nframes_t ts ) const { return ts >> _fpp; } - nframes_t x_to_ts ( int x ) const { return (nframes_t)x << _fpp; } - nframes_t x_to_offset ( int x ) const; - int offset_to_x ( nframes_t frame ) const; - - float beats_per_minute ( nframes_t when ) const; - int beats_per_bar ( nframes_t when ) const; - void beats_per_minute ( nframes_t when, float bpm ); - void time ( nframes_t when, int bpb, int beat_type ); - bool nearest_line ( nframes_t *f, bool snap=true ) const; - bool next_line ( nframes_t *f, bool bar=false ) const; - bool prev_line ( nframes_t *f, bool bar=false ) const; - - typedef void (measure_line_callback)( nframes_t frame, const BBT & bbt, void *arg ); - - position_info solve_tempomap ( nframes_t when ) const; - void draw_measure_lines ( int X, int Y, int W, int H ); - void draw_measure_BBT ( int X, int Y, int W, int H ); - position_info render_tempomap ( nframes_t start, nframes_t length, measure_line_callback *cb, void *arg ) const; - - void xposition ( int X ); - void draw_cursor ( nframes_t frame, Fl_Color color, void (*symbol)(Fl_Color) ) const; - void draw_cursors ( Cursor_Sequence *o ) const; - void draw_cursors ( void ) const; - void draw_playhead ( void ); - void redraw_playhead ( void ); - void resize ( int X, int Y, int W, int H ); - - void draw ( void ); - void draw_overlay ( void ); - int handle_scroll ( int m ); - int handle ( int m ); - static void update_cb ( void *arg ); - - void select( const Rectangle &r ); - Track * track_under ( int Y ); - - int nselected ( void ) const; - void delete_selected ( void ); - void select_none ( void ); - - void add_track ( Track *track ); - void remove_track ( Track *track ); - void command_remove_track ( Track *track ); - - void command_move_track_up ( Track *track ); - void command_move_track_down ( Track *track ); - void command_undo ( void ); - - int find_track ( const Track * track ) const; - - int ntracks ( void ) const; - - void zoom ( float secs ); - void zoom_in ( void ); - void zoom_out ( void ); - void zoom_fit ( void ); - - bool next_punch ( nframes_t frame, nframes_t *in, nframes_t *out ) const; - - /* Engine */ - int total_input_buffer_percent ( void ); - int total_output_buffer_percent ( void ); - - int total_playback_xruns ( void ); - int total_capture_xruns ( void ); - - bool record ( void ); - void stop ( void ); - void punch_out ( nframes_t frame ); - - void wait_for_buffers ( void ); - bool seek_pending ( void ); - - bool command_load ( const char *name, const char *display_name ); - bool command_new ( const char *name, const char *display_name ); - bool command_save ( void ); - void command_quit ( void ); - - /* OSC */ - - void connect_osc ( void ); - - void update_osc_connection_state ( void ); - - void say_hello ( void ); - - static void check_osc ( void * v ); - - int init_osc ( const char *osc_port ); - - static int osc_reply ( const char *path, const char *types, lo_arg **argv, int argc, lo_message msg, void *user_data ); - static int osc_non_hello ( const char *path, const char *types, lo_arg **argv, int argc, lo_message msg, void *user_data ); - - - void handle_hello ( lo_message msg ); - - void add_cursor ( Cursor_Region *o ); - void add_cursor ( Cursor_Point *o ); - - char * get_unique_track_name ( const char *name ); - Track * track_by_name ( const char *name ); - -private: - - void add_take_for_armed_tracks(); - void resize_rulers ( void ); - - static void snapshot ( void *v ) { ((Timeline*)v)->snapshot(); } - void snapshot ( void ); - - friend class Engine; // FIXME: only Engine::process() needs to be friended.x - - - /* Engine */ - void resize_buffers ( nframes_t nframes ); - nframes_t process_input ( nframes_t nframes ); - nframes_t process_output ( nframes_t nframes ); - void seek ( nframes_t frame ); -}; diff --git a/timeline/src/Track.C b/timeline/src/Track.C deleted file mode 100644 index 0e0ecf6..0000000 --- a/timeline/src/Track.C +++ /dev/null @@ -1,1297 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -/* A Track is a container for various sequences; the sequence, the - * takes (inactive sequences), annotation sequences, control - * sequences */ -/* TODO: split into Track and Audio_Track (and maybe later Video_Track - * and MIDI_Track */ - -#include -#include "Track.H" - -#include "Transport.H" - -#include "../FL/Fl_Sometimes_Input.H" -#include "../FL/Fl_Sometimes_Pack.H" -#include -#include -#include -#include "FL/Fl_Scalepack.H" -#include "FL/Fl_Blink_Button.H" - -#include "Control_Sequence.H" -#include "Annotation_Sequence.H" - -#include "Track_Header.H" - -#include "const.h" -#include "debug.h" - -#include -#include "FL/menu_popup.H" - -extern char *instance_name; - - - -static Fl_Color -random_color ( void ) -{ - return fl_rgb_color( rand() % 255, rand() % 255, rand() % 255 ); -} - -static Fl_Menu_Button _menu( 0, 0, 0, 0, "Track" ); - - - -int Track::_soloing = 0; - -const char *Track::capture_format = "Wav 24"; -bool Track::colored_tracks = true; - - - -Track::Track ( const char *L, int channels ) : - Fl_Group ( 0, 0, 0, 0, 0 ) -{ - init(); - - if ( L ) - name( L ); - - color( random_color() ); - - configure_inputs( channels ); - configure_outputs( channels ); - - log_create(); -} - - -Track::Track ( ) : Fl_Group( 0, 0, 1, 1 ) -{ - init(); - - timeline->add_track( this ); -} - -Track::~Track ( ) -{ - Loggable::block_start(); - - /* must destroy sequences first to preserve proper log order */ - takes->clear(); - control->clear(); - annotation->clear(); - delete sequence(); - - takes = NULL; - control = NULL; - annotation = NULL; - - log_destroy(); - - /* ensure that soloing accounting is performed */ - solo( false ); - - timeline->remove_track( this ); - - /* give up our ports */ - configure_inputs( 0 ); - configure_outputs( 0 ); - - _sequence = NULL; - - if ( _name ) - free( _name ); - - Loggable::block_end(); -} - -void -Track::init ( void ) -{ - _capture_offset = 0; - _row = 0; - _sequence = NULL; - _name = NULL; - _selected = false; - _size = 1; - - record_ds = NULL; - playback_ds = NULL; - - labeltype( FL_NO_LABEL ); - -// clear_visible_focus(); - - Fl_Group::size( timeline->w(), height() ); - - Track *o = this; - o->box( FL_FLAT_BOX ); - - { - Track_Header *o = new Track_Header( x(), y(), w(), h() ); - - name_field = o->name_input; - record_button = o->rec_button; - mute_button = o->mute_button; - solo_button = o->solo_button; - menu_button = o->menu_button; - show_all_takes_button = o->show_all_takes_button; - overlay_controls_button = o->overlay_controls_button; - - name_field->callback( cb_button, this ); - record_button->callback( cb_button, this ); - mute_button->callback( cb_button, this ); - solo_button->callback( cb_button, this ); - - show_all_takes_button->callback( cb_button, this ); - overlay_controls_button->callback( cb_button, this ); - menu_button->callback( cb_button, this ); - - resizable( o ); -// o->color( (Fl_Color)53 ); - } - - { - /* this pack holds the active sequence, annotation sequence, control sequences and takes */ - Fl_Pack *o = pack = new Fl_Pack( x(), y(), w(), h() ); - o->type( Fl_Pack::VERTICAL ); - o->labeltype( FL_NO_LABEL ); - /* o->resize( x() + width(), y(), w() - width(), h() ); */ - - /* resizable( o ); */ - - { - Fl_Pack *o = annotation = new Fl_Pack( 0, 0, pack->w(), 1 ); - o->type( Fl_Pack::VERTICAL ); - o->end(); - } - - { - { - Fl_Group *o = controls_heading = new Fl_Group( 0, 0, pack->w(), 10 ); - o->box( FL_FLAT_BOX ); - o->color( fl_color_add_alpha( fl_rgb_color( 1,1,1 ), 127 ) ); - - { - Fl_Box *o = new Fl_Box( 0,0, Track::width(), 10 ); - o->label( "Controls" ); - o->align( FL_ALIGN_RIGHT | FL_ALIGN_INSIDE ); - o->labelsize( 10 ); - } - - o->hide(); - o->end(); - o->resizable( 0 ); - } - - { - Fl_Sometimes_Pack *o = control = new Fl_Sometimes_Pack( 0, 0, pack->w(), 1 ); - o->spacing( 1 ); - o->box( FL_NO_BOX ); - o->color( FL_BACKGROUND_COLOR ); - o->type( Fl_Pack::VERTICAL ); - o->pack( true ); - o->hide(); - o->align( FL_ALIGN_TOP | FL_ALIGN_LEFT ); - o->end(); - } - } - - { - { - Fl_Group *o = takes_heading = new Fl_Group( 0, 0, pack->w(), 10 ); - o->box( FL_FLAT_BOX ); - o->color( fl_color_add_alpha( fl_rgb_color( 1,1,1 ), 127 ) ); - - { - Fl_Box *o = new Fl_Box( 0,0, Track::width(), 10 ); - o->label( "Takes" ); - o->align( FL_ALIGN_RIGHT | FL_ALIGN_INSIDE ); - o->labelsize( 10 ); - } - o->hide(); - o->end(); - o->resizable( 0 ); - } - - { - Fl_Pack *o = takes = new Fl_Pack( 0, 0, pack->w(), 1 ); - o->type( Fl_Pack::VERTICAL ); - o->end(); - o->hide(); - o->align( FL_ALIGN_TOP | FL_ALIGN_LEFT ); - } - } - - o->end(); - } - end(); -} - - - -void -Track::set ( Log_Entry &e ) -{ - for ( int i = 0; i < e.size(); ++i ) - { - const char *s, *v; - - e.get( i, &s, &v ); - - if ( ! strcmp( s, ":height" ) ) - { - size( atoi( v ) ); - adjust_size(); - } - else if ( ! strcmp( s, ":selected" ) ) - _selected = atoi( v ); -// else if ( ! strcmp( s, ":armed" - else if ( ! strcmp( s, ":name" ) ) - name( v ); - else if ( ! strcmp( s, ":inputs" ) ) - configure_inputs( atoi( v ) ); - else if ( ! strcmp( s, ":outputs" ) ) - configure_outputs( atoi( v ) ); - else if ( ! strcmp( s, ":color" ) ) - { - color( (Fl_Color)atoll( v ) ); - redraw(); - } - else if ( ! strcmp( s, ":show-all-takes" ) ) - show_all_takes( atoi( v ) ); - else if ( ! strcmp( s, ":overlay-controls" ) ) - overlay_controls( atoi( v ) ); - else if ( ! strcmp( s, ":solo" ) ) - solo( atoi( v ) ); - else if ( ! strcmp( s, ":mute" ) ) - mute( atoi( v ) ); - else if ( ! strcmp( s, ":arm" ) ) - armed( atoi( v ) ); - else if ( ! strcmp( s, ":sequence" ) ) - { - int i; - sscanf( v, "%X", &i ); - - if ( i ) - { - Audio_Sequence *t = (Audio_Sequence*)Loggable::find( i ); - - /* FIXME: our track might not have been - * defined yet... what should we do about this - * chicken/egg problem? */ - if ( t ) - { -// assert( t ); - - sequence( t ); - } - - } - - } - else if ( ! strcmp( s, ":row" ) ) - row( atoi( v ) ); - } -} - -void -Track::get ( Log_Entry &e ) const -{ - e.add( ":name", _name ); - e.add( ":sequence", sequence() ); - e.add( ":selected", _selected ); - e.add( ":color", (unsigned long)color()); -} - -void -Track::get_unjournaled ( Log_Entry &e ) const -{ - e.add( ":height", size() ); - e.add( ":inputs", input.size() ); - e.add( ":outputs", output.size() ); - e.add( ":show-all-takes", show_all_takes() ); - e.add( ":overlay-controls", overlay_controls() ); - e.add( ":armed", armed() ); - e.add( ":mute", mute() ); - e.add( ":solo", solo() ); - e.add( ":row", timeline->find_track( this ) ); -} - -int -Track::row ( void ) const -{ - return _row; -} - -void -Track::row ( int n ) -{ - _row = n; -} - -void -Track::log_children ( void ) const -{ - log_create(); - - for ( int i = 0; i < control->children(); i++ ) - ((Sequence*)control->child( i ))->log_children(); - - for ( int i = 0; i < annotation->children(); i++ ) - ((Sequence*)annotation->child( i ))->log_children(); - - for ( int i = takes->children(); i--; ) - ((Sequence*)takes->child( i ))->log_children(); - - sequence()->log_children(); -} - -void -Track::solo ( bool b ) -{ - if ( b && ! solo_button->value() ) - ++_soloing; - else if ( ! b && solo_button->value() ) - --_soloing; - - solo_button->value( b ); -} - - -void -Track::cb_button ( Fl_Widget *w, void *v ) -{ - ((Track*)v)->cb_button( w ); -} - -void -Track::cb_button ( Fl_Widget *w ) -{ - Logger log(this); - - if ( w == name_field ) - { - name( name_field->value() ); - } - else if ( w == record_button ) - { - - } - else if ( w == mute_button ) - { - - } - else if ( w == solo_button ) - { - if ( solo_button->value() ) - ++_soloing; - else - --_soloing; - } - else if ( w == show_all_takes_button ) - { - show_all_takes( show_all_takes_button->value() ); - } - else if ( w == overlay_controls_button ) - { - overlay_controls( overlay_controls_button->value() ); - } - else if ( w == menu_button ) - { - menu_popup( &menu(), menu_button->x(), menu_button->y() ); - } -} - -static int pack_visible( Fl_Pack *p ) -{ - int v = 0; - for ( int i = p->children(); i--; ) - if ( p->child( i )->visible() ) - v++; - - return v; -} - -/* adjust size of widget and children */ -void -Track::adjust_size ( void ) -{ - for ( int i = takes->children(); i--; ) - takes->child( i )->size( w(), height() ); - - for ( int i = annotation->children(); i--; ) - annotation->child( i )->size( w(), 24 ); - - for ( int i = control->children(); i--; ) - control->child( i )->size( w(), height() ); - - if ( overlay_controls() ) - { - for ( int i = 0; i < control->children(); i++ ) - { - Control_Sequence *o = (Control_Sequence*)control->child(i); - - if ( i != 0 ) - o->box( FL_NO_BOX ); - - o->header()->hide(); - } - - control->pack( false ); - } - else - { - for ( int i = 0; i < control->children(); i++ ) - { - Control_Sequence *o = (Control_Sequence*)control->child(i); - - o->box( FL_FLAT_BOX ); - - o->header()->show(); - } - - control->pack( true ); - } - - - int TY = 0; - - if ( annotation->children() ) - { - annotation->show(); - TY += 24 * pack_visible( annotation ); - } - else - annotation->hide(); - - /* height of the sequence */ - TY += height(); - - if ( control->children() ) - { - int TH; - - /* calculate height of control pack */ - if ( overlay_controls() ) - TH = height() * (control->children() ? 1 : 0); - else - TH = height() * pack_visible( control ); - - TY += TH; - - control->show(); - controls_heading->show(); - } - else - { - control->hide(); - controls_heading->hide(); - } - - if ( show_all_takes() ) - { - /* calculate height of takes pack */ - const int TH = height() * takes->children(); - - TY += TH; - - takes->show(); - takes_heading->show(); - } - else - { - takes_heading->hide(); - takes->hide(); - } - - if ( takes_heading->visible() ) - TY += takes_heading->h(); - if ( controls_heading->visible() ) - TY += controls_heading->h(); - - int TH; - - if ( ! size() ) - { - takes->hide(); - control->hide(); - TH = height(); - } - else - TH = TY; - - Fl_Group::size( w(), TH ); - - if ( sequence() ) - sequence()->size( w(), height() ); - - /* FIXME: why is this necessary? */ - if ( parent() ) - parent()->parent()->redraw(); -} - -void -Track::name ( const char *name ) -{ - if ( _name ) - free( _name ); - - _name = timeline->get_unique_track_name(name); - - if ( name_field ) - name_field->value( _name ); - - update_port_names(); -} - -const char * -Track::name ( void ) const -{ - return _name; -} - -void -Track::size ( int v ) -{ - if ( v < 0 || v > 4 ) - return; - - _size = v; - - adjust_size(); -} - - -void -Track::add ( Audio_Sequence * t ) -{ - t->track( this ); - - takes->insert( *t, 0 ); - - /* show the take header */ - t->child(0)->show(); - - t->color( fl_color_average( FL_BLACK, FL_GRAY, 0.25f ) ); - - t->labeltype( FL_ENGRAVED_LABEL ); -} - -void -Track::remove ( Audio_Sequence *t ) -{ - if ( ! takes ) - return; - - if ( sequence() == t ) - { - pack->remove( t ); - - if ( takes->children() ) - sequence( (Audio_Sequence*)takes->child( 0 ) ); - else - /* FIXME: should this ever happen? */ - _sequence = NULL; - } - else - takes->remove( t ); - -/* delete t; */ - - adjust_size(); -} - -void -Track::remove ( Annotation_Sequence *t ) -{ - if ( ! annotation ) - return; - - annotation->remove( t ); - - adjust_size(); -} - -void -Track::remove ( Control_Sequence *t ) -{ - if ( ! control ) - return; - - control->remove( t ); - - adjust_size(); -} - -void -Track::sequence ( Audio_Sequence * t ) -{ - if ( sequence() == t ) - { - DMESSAGE( "Attempt to set sequence twice" ); - return; - } - - t->track( this ); - - if ( sequence() ) - add( sequence() ); - - _sequence = t; - /* insert following the annotation pack */ - pack->insert( *t, 1 ); - - /* hide the take header */ - t->child(0)->hide(); - - t->color( FL_GRAY ); - t->labeltype( FL_NO_LABEL ); - - adjust_size(); -} - - -void -Track::add ( Control_Sequence *t ) -{ - DMESSAGE( "adding control sequence" ); - - t->track( this ); - - t->color( random_color() ); - -// control->insert( *t, 0 ); - control->add( t ); - - adjust_size(); -} - -void -Track::add ( Annotation_Sequence *t ) -{ - DMESSAGE( "adding annotation sequence" ); - - t->track( this ); - - annotation->add( t ); - - adjust_size(); -} - -/** add all widget on this track falling within the given rectangle to - the selection. */ -void -Track::select ( int X, int Y, int W, int H, - bool include_control, bool merge_control ) -{ - - Sequence *t = sequence(); - - X -= Track::width(); - - if ( ! ( t->y() > Y + H || t->y() + t->h() < Y ) ) - t->select_range( X, W ); - else - include_control = true; - - if ( include_control ) - for ( int i = control->children(); i--; ) - { - Control_Sequence *c = (Control_Sequence*)control->child( i ); - - if ( merge_control || - ( c->y() >= Y && c->y() + c->h() <= Y + H ) ) - c->select_range( X, W ); - } -} - - -void -Track::menu_cb ( Fl_Widget *w, void *v ) -{ - ((Track*)v)->menu_cb( (Fl_Menu_*) w ); -} - -void -Track::command_configure_channels ( int n ) -{ - /* due to locking this should only be invoked by direct user action */ - timeline->track_lock.wrlock(); - configure_inputs( n ); - configure_outputs( n ); - timeline->track_lock.unlock(); -} - -void -Track::menu_cb ( const Fl_Menu_ *m ) -{ - char picked[256]; - - m->item_pathname( picked, sizeof( picked ) ); - - DMESSAGE( "Picked: %s", picked ); - - Logger log( this ); - - if ( ! strcmp( picked, "Type/Mono" ) ) - { - command_configure_channels( 1 ); - } - else if ( ! strcmp( picked, "Type/Stereo" ) ) - { - command_configure_channels( 2 ); - } - else if ( ! strcmp( picked, "Type/Quad" ) ) - { - command_configure_channels( 4 ); - } - else if ( ! strcmp( picked, "Type/..." ) ) - { - const char *s = fl_input( "How many channels?", "3" ); - if ( s ) - { - - int c = atoi( s ); - - if ( c <= 0 || c > 10 ) - fl_alert( "Invalid number of channels." ); - else - { - command_configure_channels(c); - } - } - } - else if ( ! strcmp( picked, "/Add Control" ) ) - { - /* add audio track */ - char *name = get_unique_control_name( "Control" ); - - timeline->track_lock.wrlock(); - new Control_Sequence( this, name ); - timeline->track_lock.unlock(); - } - else if ( ! strcmp( picked, "/Overlay controls" ) ) - { - overlay_controls( ! m->mvalue()->value() ); - } - else if ( ! strcmp( picked, "/Add Annotation" ) ) - { - add( new Annotation_Sequence( this ) ); - } - else if ( ! strcmp( picked, "/Color" ) ) - { - unsigned char r, g, b; - - Fl::get_color( color(), r, g, b ); - - if ( fl_color_chooser( "Track Color", r, g, b ) ) - { - color( fl_rgb_color( r, g, b ) ); - } - - redraw(); - } - else if ( ! strcmp( picked, "Flags/Record" ) ) - { - armed( m->mvalue()->flags & FL_MENU_VALUE ); - } - else if ( ! strcmp( picked, "Flags/Mute" ) ) - { - mute( m->mvalue()->flags & FL_MENU_VALUE ); - } - else if ( ! strcmp( picked, "Flags/Solo" ) ) - { - solo( m->mvalue()->flags & FL_MENU_VALUE ); - } - else if ( ! strcmp( picked, "Size/Small" ) ) - { - size( 0 ); - } - else if ( ! strcmp( picked, "Size/Medium" ) ) - { - size( 1 ); - } - else if ( ! strcmp( picked, "Size/Large" ) ) - { - size( 2 ); - } - else if ( ! strcmp( picked, "Size/Huge" ) ) - { - size( 3 ); - } - else if ( ! strcmp( picked, "Size/Enormous" ) ) - { - size( 4 ); - } - else if ( ! strcmp( picked, "/Remove" ) ) - { - int r = fl_choice( "Are you certain you want to remove track \"%s\"?", "Cancel", NULL, "Remove", name() ); - - if ( r == 2 ) - { - timeline->command_remove_track( this ); - Fl::delete_widget( this ); - } - } - else if ( ! strcmp( picked, "/Rename" ) ) - { - ((Fl_Sometimes_Input*)name_field)->take_focus(); - } - else if ( ! strcmp( picked, "/Move Up" ) ) - { - timeline->command_move_track_up( this ); - } - else if ( ! strcmp( picked, "/Move Down" ) ) - { - timeline->command_move_track_down( this ); - } - else if ( !strcmp( picked, "Takes/Show all takes" ) ) - { - show_all_takes( ! m->mvalue()->value() ); - } - else if ( !strcmp( picked, "Takes/New" ) ) - { - timeline->track_lock.wrlock(); - sequence( (Audio_Sequence*)sequence()->clone_empty() ); - timeline->track_lock.unlock(); - } - else if ( !strcmp( picked, "Takes/Remove" ) ) - { - if ( takes->children() ) - { - Loggable::block_start(); - - timeline->track_lock.wrlock(); - - Audio_Sequence *s = sequence(); - - sequence( (Audio_Sequence*)takes->child( 0 ) ); - - delete s; - - timeline->track_lock.unlock(); - - Loggable::block_end(); - } - } - else if ( !strcmp( picked, "Takes/Remove others" )) - { - if ( takes->children() ) - { - Loggable::block_start(); - - takes->clear(); - - Loggable::block_end(); - } - } - else if ( !strncmp( picked, "Takes/", sizeof( "Takes/" ) - 1 ) ) - { - Audio_Sequence* s = (Audio_Sequence*)m->mvalue()->user_data(); - - timeline->track_lock.wrlock(); - sequence( s ); - timeline->track_lock.unlock(); - } -} - -/** retrun a pointer to the control sequence named /name/, or NULL if no control sequence is named /name/ */ -Control_Sequence * -Track::control_by_name ( const char *name ) -{ - for ( int i = control->children(); i-- ; ) - { - Control_Sequence *t = (Control_Sequence*)control->child( i ); - - if ( t->name() && name && ! strcmp( name, t->name() ) ) - return t; - } - - return NULL; -} - -/** return a malloc'd string representing a unique name for a new control sequence */ -char * -Track::get_unique_control_name ( const char *name ) -{ - char pat[256]; - - strcpy( pat, name ); - - for ( int i = 1; control_by_name( pat ); ++i ) - snprintf( pat, sizeof( pat ), "%s.%d", name, i ); - - return strdup( pat ); -} - - -/** build the context menu */ -Fl_Menu_Button & -Track::menu ( void ) const -{ - - int c = output.size(); - int s = size(); - - _menu.clear(); - - _menu.add( "Takes/Show all takes", 0, 0, 0, FL_MENU_TOGGLE | ( show_all_takes() ? FL_MENU_VALUE : 0 ) ); - _menu.add( "Takes/New", 0, 0, 0 ); - - if ( takes->children() ) - { - _menu.add( "Takes/Remove", 0, 0, 0 ); - _menu.add( "Takes/Remove others", 0, 0, 0, FL_MENU_DIVIDER ); - - for ( int i = 0; i < takes->children(); ++i ) - { - Sequence *s = (Sequence *)takes->child( i ); - - char n[256]; - snprintf( n, sizeof(n), "Takes/%s", s->name() ); - - _menu.add( n, 0, 0, s); - } - } - - _menu.add( "Type/Mono", 0, 0, 0, FL_MENU_RADIO | ( c == 1 ? FL_MENU_VALUE : 0 ) ); - _menu.add( "Type/Stereo", 0, 0, 0, FL_MENU_RADIO | ( c == 2 ? FL_MENU_VALUE : 0 )); - _menu.add( "Type/Quad", 0, 0, 0, FL_MENU_RADIO | ( c == 4 ? FL_MENU_VALUE : 0 ) ); - _menu.add( "Type/...", 0, 0, 0, FL_MENU_RADIO | ( c == 3 || c > 4 ? FL_MENU_VALUE : 0 ) ); - _menu.add( "Overlay controls", 0, 0, 0, FL_MENU_TOGGLE | ( overlay_controls() ? FL_MENU_VALUE : 0 ) ); - _menu.add( "Add Control", 0, 0, 0 ); - _menu.add( "Add Annotation", 0, 0, 0 ); - _menu.add( "Color", 0, 0, 0 ); - _menu.add( "Rename", FL_CTRL + 'n', 0, 0 ); - _menu.add( "Size/Small", FL_ALT + '1', 0, 0, FL_MENU_RADIO | ( s == 0 ? FL_MENU_VALUE : 0 ) ); - _menu.add( "Size/Medium", FL_ALT + '2', 0, 0, FL_MENU_RADIO | ( s == 1 ? FL_MENU_VALUE : 0 ) ); - _menu.add( "Size/Large", FL_ALT + '3', 0, 0, FL_MENU_RADIO | ( s == 2 ? FL_MENU_VALUE : 0 ) ); - _menu.add( "Size/Huge", FL_ALT + '4', 0, 0, FL_MENU_RADIO | ( s == 3 ? FL_MENU_VALUE : 0 ) ); - _menu.add( "Size/Enormous", FL_ALT + '5', 0, 0, FL_MENU_RADIO | ( s == 4 ? FL_MENU_VALUE : 0 ) ); - _menu.add( "Flags/Record", FL_CTRL + 'r', 0, 0, FL_MENU_TOGGLE | ( armed() ? FL_MENU_VALUE : 0 ) ); - _menu.add( "Flags/Mute", FL_CTRL + 'm', 0, 0, FL_MENU_TOGGLE | ( mute() ? FL_MENU_VALUE : 0 ) ); - _menu.add( "Flags/Solo", FL_CTRL + 's', 0, 0, FL_MENU_TOGGLE | ( solo() ? FL_MENU_VALUE : 0 ) ); - _menu.add( "Move Up", FL_SHIFT + '1', 0, 0 ); - _menu.add( "Move Down", FL_SHIFT + '2', 0, 0 ); - _menu.add( "Remove", 0, 0, 0 ); // transport->rolling ? FL_MENU_INACTIVE : 0 ); - - _menu.callback( &Track::menu_cb, (void*)this ); - - return _menu; -} - -#include "FL/event_name.H" -#include "FL/test_press.H" - -static Fl_Widget *receptive_to_drop = NULL; - -void -Track::draw ( void ) -{ - fl_push_clip( x(), y(), w(), h() ); - - Fl_Color saved_color = color(); - - if ( ! Track::colored_tracks ) - color( FL_GRAY ); - - if ( _selected ) - { - Fl_Color c = color(); - - color( FL_RED ); - - Fl_Group::draw(); - - color( c ); - } - else - Fl_Group::draw(); - - if ( ((Track_Header*)child(0))->input_connector_handle == receptive_to_drop ) - { - Fl_Widget *o = ((Track_Header*)child(0))->input_connector_handle; - fl_draw_box( FL_OVAL_BOX, o->x(), o->y(), o->w(), o->h(), fl_color_add_alpha( FL_GREEN, 127 ) ); - } - - if ( ! Track::colored_tracks ) - color( saved_color ); - - fl_pop_clip(); -} - -int -Track::handle ( int m ) -{ - -/* if ( m != FL_NO_EVENT ) */ -/* DMESSAGE( "%s", event_name( m ) ); */ - static Fl_Widget *dragging = NULL; - - switch ( m ) - { - case FL_DND_ENTER: - case FL_DND_LEAVE: - case FL_DND_DRAG: - case FL_DND_RELEASE: - case FL_PASTE: - if ( Fl::event_x() > Track::width() ) - return sequence()->handle(m); - default: - break; - } - - switch ( m ) - { - case FL_KEYBOARD: - { - Fl_Menu_Button * men = &menu(); - - if ( Fl::event_key() == FL_Menu ) - { - menu_popup( men ); - return 1; - } - else - return men->test_shortcut() || Fl_Group::handle( m ); - } - case FL_MOUSEWHEEL: - { - Logger log( this ); - - if ( ! Fl::event_alt() ) - return Fl_Group::handle( m ); - - int d = Fl::event_dy(); - - if ( d < 0 ) - size( size() - 1 ); - else - size( size() + 1 ); - - return 1; - } - case FL_PUSH: - { - if ( Fl::event_button1() && Fl::event_inside( ((Track_Header*)child(0))->color_box ) ) - { - dragging = this; - return 1; - } - if ( Fl::event_button1() && Fl::event_inside( ((Track_Header*)child(0))->output_connector_handle ) ) - return 1; - - Logger log( this ); - - if ( Fl_Group::handle( m ) ) - return 1; - - if ( test_press( FL_BUTTON3 ) && Fl::event_x() < Track::width() ) - { - menu_popup( &menu() ); - return 1; - } - - return 0; - } - /* we have to prevent Fl_Group::handle() from getting these, otherwise it will mess up Fl::belowmouse() */ - case FL_ENTER: - case FL_LEAVE: - case FL_MOVE: - if ( Fl::event_x() >= Track::width() ) - { - return Fl_Group::handle(m); - } - return 1; - case FL_DND_ENTER: - return 1; - case FL_DND_LEAVE: - - if ( ! Fl::event_inside(this) && this == receptive_to_drop ) - { - receptive_to_drop = 0; - redraw(); - Fl::selection_owner(0); - } - return 1; - case FL_RELEASE: - if ( dragging == this ) - { - dragging = NULL; - timeline->insert_track( this, timeline->event_inside() ); - return 1; - } - return Fl_Group::handle( m ); - break; - case FL_DND_RELEASE: - receptive_to_drop = 0; - redraw(); - Fl::selection_owner(0); - return 1; - case FL_DND_DRAG: - { - - if ( receptive_to_drop == ((Track_Header*)child(0))->input_connector_handle ) - return 1; - - - - if ( Fl::event_inside( ((Track_Header*)child(0))->input_connector_handle ) - && receptive_to_drop != ((Track_Header*)child(0))->input_connector_handle ) - - { - receptive_to_drop = ((Track_Header*)child(0))->input_connector_handle; - redraw(); - return 1; - } - else - { - receptive_to_drop = NULL; - redraw(); - return 0; - } - } - case FL_PASTE: - { - receptive_to_drop = 0; - redraw(); - - if (! Fl::event_inside( ((Track_Header*)child(0))->input_connector_handle ) ) - return 0; - - /* NOW we get the text... */ - const char *text = Fl::event_text(); - - DMESSAGE( "Got drop text \"%s\"",text); - - if ( strncmp( text, "jack.port://", strlen( "jack.port://" ) ) ) - { - return 0; - } - - std::vector port_names; - - char *port_name; - int end; - while ( sscanf( text, "jack.port://%m[^\r\n]\r\n%n", &port_name, &end ) > 0 ) - { - DMESSAGE( "Scanning %s", port_name ); - port_names.push_back( port_name ); - free(port_name ); - - text += end; - } - - for ( unsigned int i = 0; i < input.size() && i < port_names.size(); i++) - { - const char *pn = port_names[i].c_str(); - - JACK::Port *ji = &input[i]; - - if ( ji->connected_to( pn ) ) - { - - DMESSAGE( "Disconnecting from \"%s\"", pn ); - ji->disconnect( pn ); - } - else - { - DMESSAGE( "Connecting to %s", pn ); - ji->connect( pn ); - } - } - - Fl::selection_owner(0); - - return 1; - } - case FL_DRAG: - { - if ( this != Fl::selection_owner() && - Fl::event_inside( ((Track_Header*)child(0))->output_connector_handle ) ) - { - char *s = (char*)malloc(256); - s[0] = 0; - - for ( unsigned int i = 0; i < output.size(); ++i ) - { - char *s2; - asprintf(&s2, "jack.port://%s:%s\r\n", instance_name, output[i].name() ); - - s = (char*)realloc( s, strlen( s ) + strlen( s2 ) + 1 ); - strcat( s, s2 ); - - free( s2 ); - } - - Fl::copy(s, strlen(s) + 1, 0); - Fl::selection_owner(this); - - free( s ); - - Fl::dnd(); - - return 1; - } - else - { - return 1; - } - } - default: - return Fl_Group::handle( m ); - } - - return 0; -} - -void -Track::connect_osc ( void ) -{ - for ( int j = control->children(); j--; ) - { - Control_Sequence *c = (Control_Sequence*)control->child( j ); - c->connect_osc(); - } -} - -void -Track::update_osc_connection_state ( void ) -{ - for ( int j = control->children(); j--; ) - { - Control_Sequence *c = (Control_Sequence*)control->child( j ); - c->update_osc_connection_state(); - } -} - -void -Track::process_osc ( void ) -{ - for ( int j = control->children(); j--; ) - { - Control_Sequence *c = (Control_Sequence*)control->child( j ); - c->process_osc(); - } -} diff --git a/timeline/src/Track.H b/timeline/src/Track.H deleted file mode 100644 index b2e0134..0000000 --- a/timeline/src/Track.H +++ /dev/null @@ -1,262 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include -#include "Sequence.H" -#include -#include -#include -#include -#include -#include -#include - -#include "Loggable.H" - -/* TODO: rename this to Audio_Track or something since it's clearly audio specific. */ - -#include -using std::vector; - -#include "JACK/Port.H" - -#include "Timeline.H" - -class Control_Sequence; -class Annotation_Sequence; -class Playback_DS; -class Record_DS; -// class JACK::Port; -class Audio_Region; -class Audio_File; -class Fl_Scalepack; -class Fl_Sometimes_Pack; -class Fl_Blink_Button; - -//class Audio_Sequence; - -#include "Audio_Sequence.H" - -class Track : public Fl_Group, public Loggable -{ - - /* not permitted */ - Track ( const Track &rhs ); - Track & operator= ( const Track &rhs ); - -public: - - Track ( const char *L, int channels=1 ); - virtual ~Track ( ); - - static bool soloing ( void ) { return _soloing; } - - static const char *capture_format; - - static bool colored_tracks; - - struct Capture - { - Audio_File *audio_file; - Audio_Region *region; - - Capture ( ) - { - region = 0; - audio_file = 0; - } - }; - - virtual Fl_Color color ( void ) const { return child(0)->color(); } - virtual void color ( Fl_Color c ) { child(0)->color( c ); } - - bool operator< ( const Track &rhs ) const - { - return _row < rhs._row; - } - -private: - - static int _soloing; - - char *_name; - - bool _selected; - - int _size; - - int _row; - - nframes_t _capture_offset; - - enum { AUDIO } _type; - - Audio_Sequence *_sequence; - - bool configure_outputs ( int n ); - bool configure_inputs ( int n ); - void command_configure_channels ( int n ); - - void update_port_names ( void ); - - Track ( ); - void init ( void ); - -protected: - - void get ( Log_Entry &e ) const; - void get_unjournaled ( Log_Entry &e ) const; - void set ( Log_Entry &e ); - - Fl_Scalepack *controls; - Fl_Sometimes_Pack *control; - Fl_Blink_Button *connected_indicator; - - Fl_Group *controls_heading; - Fl_Group *takes_heading; - -public: - - virtual void log_children ( void ) const; - - Fl_Input *name_field; - Fl_Button *record_button; - Fl_Button *mute_button; - Fl_Button *solo_button; - Fl_Button *show_all_takes_button; - Fl_Button *overlay_controls_button; - Fl_Button *menu_button; - - Fl_Pack *pack; - Fl_Pack *annotation; - Fl_Pack *takes; - - - vector input; /* input ports... */ - vector output; /* output ports... */ - - Playback_DS *playback_ds; - Record_DS *record_ds; - - /* for loggable */ - LOG_CREATE_FUNC( Track ); - - Control_Sequence * control_by_name ( const char *name ); - char * get_unique_control_name ( const char *name ); - - void add ( Annotation_Sequence *t ); - void remove ( Annotation_Sequence *t ); - - void add ( Control_Sequence *t ); - void add ( Audio_Sequence *t ); - void remove ( Audio_Sequence *t ); - void remove ( Control_Sequence *t ); - - void select ( int X, int Y, int W, int H, bool include_control, bool merge_control ); - - int size ( void ) const { return _size; } - - int ncontrols ( void ) { return ((Fl_Group*)control)->children(); } - - void adjust_size ( void ); - void size ( int v ); - - int height ( void ) const - { - static int table[] = { 25, 54, 80, 150, 300 }; - - return table[ _size ]; - } - - void show_all_takes ( bool b ) - { - show_all_takes_button->value( b ); - adjust_size(); - } - - bool show_all_takes ( void ) const - { - return show_all_takes_button->value(); - } - - void overlay_controls ( bool b ) - { - overlay_controls_button->value( b ); - adjust_size(); - } - bool overlay_controls ( void ) const - { - return overlay_controls_button->value(); - } - - void name ( const char *name ); - const char * name ( void ) const; - - bool mute ( void ) const { return mute_button->value(); } - void mute ( bool b ) { mute_button->value( b ); } - bool solo ( void ) const { return solo_button->value(); } - void solo ( bool b ); - - bool armed ( void ) const { return record_button->value(); } - void armed ( bool b ) { record_button->value( b ); } - - bool selected ( void ) const { return _selected; } - - int row ( void ) const; - void row ( int ); - - static void cb_button ( Fl_Widget *w, void *v ); - void cb_button ( Fl_Widget *w ); - - - static int width ( void ) { return 200; } - - void sequence ( Audio_Sequence * t ); - Audio_Sequence * sequence ( void ) const { return _sequence; } - - - Fl_Menu_Button & menu ( void ) const; - - static void menu_cb ( Fl_Widget *w, void *v ); - void menu_cb ( const Fl_Menu_ *m ); - - void draw ( void ); - int handle ( int m ); - - void process_osc ( void ); - void connect_osc ( void ); - void update_osc_connection_state ( void ); - - /* Engine */ - const Audio_Region *capture_region ( void ) const; - Capture *capture ( void ); - - void resize_buffers ( nframes_t nframes ); - nframes_t process_input ( nframes_t nframes ); - nframes_t process_output ( nframes_t nframes ); - void seek ( nframes_t frame ); - void undelay ( nframes_t frames ); - void compute_latency_compensation ( void ); - void record ( Capture *c, nframes_t frame ); - void write ( Capture *c, sample_t *buf, nframes_t nframes ); - void finalize ( Capture *c, nframes_t frame ); - -}; diff --git a/timeline/src/Track_Header.fl b/timeline/src/Track_Header.fl deleted file mode 100644 index f3821a0..0000000 --- a/timeline/src/Track_Header.fl +++ /dev/null @@ -1,154 +0,0 @@ -# data file for the Fltk User Interface Designer (fluid) -version 1.0300 -header_name {.h} -code_name {.cxx} -decl {\#include "FL/Fl_Sometimes_Input.H"} {public global -} - -decl {\#include "FL/Fl_Blink_Button.H"} {public global -} - -decl {\#include } {private local -} - -decl {\#include } {private local -} - -decl {\#include } {private local -} - -decl {Fl_PNG_Image *output_connector_image = NULL;} {private local -} - -decl {Fl_PNG_Image *input_connector_image = NULL;} {private local -} - -widget_class Track_Header {open - xywh {920 525 525 60} type Double box NO_BOX resizable visible -} { - Fl_Group box_group {open - private xywh {0 -1 200 67} box THIN_UP_BOX color 48 - code0 {o->resizable(0);} - } { - Fl_Group {} {open - xywh {0 -1 200 62} - code0 {o->resizable(0);} - } { - Fl_Input name_input { - label {input:} - xywh {15 2 140 22} labeltype NO_LABEL align 20 when 8 - class Fl_Sometimes_Input - } - Fl_Button track_inputs_indicator { - label in - tooltip {lit if inputs are connected} xywh {0 27 29 16} box BORDER_BOX color 48 selection_color 90 labelfont 5 labelsize 10 labelcolor 53 hide - } - Fl_Button track_outputs_indicator { - label out - tooltip {lit if outputs are connected} xywh {31 27 24 16} box BORDER_BOX color 48 selection_color 90 labelfont 5 labelsize 10 labelcolor 53 hide - } - Fl_Button menu_button { - label menu - tooltip {Expand controls} xywh {15 26 31 24} selection_color 3 labelfont 4 labelsize 10 - } - Fl_Button overlay_controls_button { - label {c-} - tooltip {Expand controls} xywh {50 26 24 24} type Toggle selection_color 3 labelfont 5 labelsize 12 - } - Fl_Button show_all_takes_button { - label {t+} - tooltip {Show all takes} xywh {77 26 24 24} type Toggle selection_color 3 labelfont 5 labelsize 12 - } - Fl_Button rec_button { - label r - tooltip {arm for recording} xywh {118 26 24 24} type Toggle selection_color 88 labelfont 5 labelsize 12 - } - Fl_Button mute_button { - label m - tooltip mute xywh {145 26 24 24} type Toggle selection_color 63 labelfont 5 labelsize 12 - } - Fl_Button solo_button { - label s - tooltip solo xywh {172 26 24 24} type Toggle selection_color 91 labelfont 5 labelsize 12 - } - Fl_Box input_connector_handle { - tooltip {Drag and drop this input connector to make or break JACK connections} xywh {157 4 18 18} box FLAT_BOX - code0 {o->image( input_connector_image ? input_connector_image : input_connector_image = new Fl_PNG_Image( "input-connector", img_io_input_connector_10x10_png, img_io_input_connector_10x10_png_len ) );} - code1 {o->box(FL_NO_BOX);} - } - Fl_Box output_connector_handle { - tooltip {Drag and drop this output connector to make or break JACK connections} xywh {177 4 18 18} box FLAT_BOX - code0 {o->image( output_connector_image ? output_connector_image : output_connector_image = new Fl_PNG_Image( "output-connector", img_io_output_connector_10x10_png, img_io_output_connector_10x10_png_len ) );} - code1 {o->box(FL_NO_BOX);} - } - } - } - Fl_Box {} { - label {} - xywh {200 0 325 60} resizable - code0 {o->labeltype(FL_NO_LABEL);} - } - Fl_Box color_box {selected - xywh {0 0 10 60} box FLAT_BOX color 59 - } - Function {draw()} {open return_type {virtual void} - } { - code {color_box->color( color() ); - -Fl_Group::draw();} {} - } -} - -widget_class Control_Sequence_Header {open - xywh {333 978 200 55} type Double box NO_BOX visible -} { - Fl_Input name_input { - label {input:} - xywh {15 3 182 22} labeltype NO_LABEL align 20 when 8 textsize 12 - class Fl_Sometimes_Input - } - Fl_Button menu_button { - label menu - tooltip {Expand controls} xywh {15 26 31 24} selection_color 3 labelfont 4 labelsize 10 - } - Fl_Button outputs_indicator { - label out - tooltip {lit if outputs are connected} xywh {50 26 24 16} box BORDER_BOX down_box BORDER_BOX color 48 selection_color 90 labelfont 5 labelsize 10 - code0 {o->ignore_input( true );} - code1 {o->blink( false );} - class Fl_Blink_Button - } - Fl_Output osc_name_output { - xywh {60 26 92 24} color 32 labeltype NO_LABEL align 20 textsize 9 hide - } - Fl_Menu_Button osc_connect_menu {open - xywh {147 26 24 24} color 52 hide - } {} - Fl_Button delete_button { - label X - tooltip {Expand controls} xywh {172 26 24 24} labelfont 5 labelsize 12 - } -} - -widget_class Audio_Sequence_Header {open - xywh {418 762 200 50} type Double box NO_BOX resizable visible -} { - Fl_Group {} {open - xywh {0 0 200 55} - code0 {o->resizable(0);} - } { - Fl_Input name_input { - label {input:} - xywh {15 3 178 22} labeltype NO_LABEL align 20 when 8 textsize 12 - class Fl_Sometimes_Input - } - Fl_Button delete_button { - label X - tooltip {Expand controls} xywh {167 26 24 24} labelfont 5 labelsize 12 - } - Fl_Button promote_button { - label {@2} - tooltip {select this take as active sequence} xywh {142 26 24 24} labelfont 5 labelsize 12 - } - } -} diff --git a/timeline/src/Transport.C b/timeline/src/Transport.C deleted file mode 100644 index 27df7fd..0000000 --- a/timeline/src/Transport.C +++ /dev/null @@ -1,339 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -/* Controls the audio transport */ - -#include "Transport.H" -#include "Timeline.H" - -#include "Engine/Engine.H" - - - -Transport::Transport ( int X, int Y, int W, int H, const char *L ) - : Fl_Flowpack( X, Y, W, H, L ) -{ - recording = false; - rolling = false; - _stop_disables_record = true; - - bar = 0; - beat = 0; - tick = 0; - beats_per_minute = 120; - ticks_per_beat = 1920; - beat_type = 4; - beats_per_bar = 4; - next_time = 0; - frame_time =0; - frame_rate = 48000; - frame = 0; - - { _home_button = new Fl_Button(5, 5, 40, 44, "@|<"); - } // Fl_Button* _home_button - { _end_button = new Fl_Button(45, 5, 40, 44, "@>|"); - } // Fl_Button* _end_button - { _play_button = new Fl_Button(85, 5, 40, 44, "@>"); - } // Fl_Button* _play_button - { _record_button = new Fl_Button(130, 5, 40, 44, "@circle"); - } // Fl_Button* _record_button - { _punch_button = new Fl_Button(175, 5, 38, 21, "Punch"); - _punch_button->type(1); - _punch_button->labelsize(10); - } // Fl_Button* _punch_button - { _loop_button = new Fl_Button(175, 20, 38, 21, "Loop"); - _loop_button->type(1); - _loop_button->labelsize(10); - } // Fl_Button* _loop_button - { _new_take_button = new Fl_Button(225, 5, 60, 21, "New Take"); - _new_take_button->type(1); - _new_take_button->labelsize(10); - } // Fl_Button* _new_take_button - { _freewheel_button = new Fl_Button(225, 5, 60, 21, "Freewheel"); - _freewheel_button->type(1); - _freewheel_button->labelsize(10); - } // Fl_Button* _new_take_button - end(); - - Fl_Button *o; - - o = _home_button; - o->callback( cb_button, this ); - o->shortcut( FL_Home ); - - o = _end_button; - o->callback( cb_button, this ); - o->shortcut( FL_End ); - - o = _play_button; - o->callback( cb_button, this ); - o->shortcut( ' ' ); - - o = _record_button; - o->type( FL_TOGGLE_BUTTON ); - o->shortcut( 'R' ); - o->callback( cb_button, this ); - o->color2( FL_RED ); - o->when( FL_WHEN_CHANGED ); - - o = _punch_button; - o->type( FL_TOGGLE_BUTTON ); - o->shortcut( 'P' ); - o->callback( cb_button, this ); - o->when( FL_WHEN_CHANGED ); - o->color2( fl_color_average( FL_GRAY, FL_RED, 0.50 )); - o->tooltip( "Toggle punch in/out recording mode" ); - - o = _loop_button; - o->type( FL_TOGGLE_BUTTON ); - o->shortcut( 'L' ); - o->callback( cb_button, this ); - o->when( FL_WHEN_CHANGED ); - o->color2( fl_color_average( FL_GRAY, FL_GREEN, 0.50 )); - o->tooltip( "Toggle looped playback" ); - - o = _new_take_button; - o->type( FL_TOGGLE_BUTTON ); - o->shortcut( 'T' ); - o->callback( cb_button, this ); - o->when( FL_WHEN_CHANGED ); - o->color2( fl_color_average( FL_GRAY, FL_YELLOW, 0.50 ) ); - o->tooltip( "Toggle automatic creation of new takes for armed tracks" ); - - o = _freewheel_button; - o->type( FL_TOGGLE_BUTTON ); - o->shortcut( 'T' ); - o->callback( cb_button, this ); - o->when( FL_WHEN_CHANGED ); - o->color2( fl_color_average( FL_GRAY, FL_BLUE, 0.50 ) ); - o->tooltip( "When active, the next playback will be done in freewheeling mode" ); - - type( Fl_Pack::HORIZONTAL ); - flowdown( true ); - vspacing( 1 ); - hspacing( 1 ); - - dolayout(); -} - - - -void -Transport::cb_button ( Fl_Widget *w, void *v ) -{ - ((Transport*)v)->cb_button( w ); -} - -void -Transport::update_record_state ( void ) -{ - Fl_Button *w = _record_button; - - /* handle display */ - if ( w->value() ) - w->labelcolor( FL_BACKGROUND_COLOR ); - else - w->labelcolor( FL_FOREGROUND_COLOR ); - - w->redraw(); - - /* this covers the case where the record toggle button is - * pressed while the transport is already rolling. Recording - * should begin or end on the next frame */ - if ( rolling ) - { - if ( ! recording && w->value() ) - { - timeline->record(); - recording = true; - } - else if ( recording ) - { - timeline->stop(); - recording = false; - } - } -} - -/** cb_button - * common handler for all transport buttons */ -void -Transport::cb_button ( Fl_Widget *w ) -{ - if ( w == _home_button ) - locate( timeline->playback_home() ); - else if ( w == _end_button ) - locate( timeline->playback_end() ); - else if ( w == _play_button ) - toggle(); - else if ( w == _record_button ) - update_record_state(); - else if ( w == _punch_button ) - timeline->redraw(); -} - -void -Transport::toggle_record ( void ) -{ - _record_button->value( ! _record_button->value() ); - update_record_state(); -} - -bool -Transport::freewheel_enabled ( void ) const -{ - return _freewheel_button->value(); -} - -bool -Transport::rec_enabled ( void ) const -{ - return _record_button->value(); -} - -bool -Transport::punch_enabled ( void ) const -{ - return _punch_button->value(); -} - -bool -Transport::loop_enabled ( void ) const -{ - return _loop_button->value(); -} - -void -Transport::loop_enabled ( bool b ) -{ - _loop_button->value( b ); -} - -bool -Transport::automatically_create_takes ( void ) const -{ - return _new_take_button->value(); -} - -void -Transport::automatically_create_takes ( bool b ) -{ - _new_take_button->value( b ); -} - - - -int -Transport::handle ( int m ) -{ - /* FIXME: hack to avoid stealing focus */ - - if ( m == FL_FOCUS ) - return 0; - else - return Fl_Flowpack::handle( m ); -} - -/***********/ -/* Control */ -/***********/ - -void -Transport::poll ( void ) -{ - - jack_transport_state_t ts; - - ts = engine->transport_query( this ); - - rolling = ts == JackTransportRolling; -} - -void -Transport::locate ( nframes_t frame ) -{ - if ( ! engine ) - return; - - if ( ! recording ) - { - // don't allow seeking while record is in progress - engine->transport_locate( frame ); - - /* so there isn't a race waiting for the transport to sync */ - this->frame = frame; - } - - timeline->_created_new_takes = false; -} - - -void -Transport::start ( void ) -{ -// MESSAGE( "Starting transport" ); - if ( _record_button->value() ) - { - rolling = true; - update_record_state(); - } - - if ( engine ) - { - if ( _freewheel_button->value() ) - engine->freewheeling( true ); - - engine->transport_start(); - } -} - -void -Transport::stop ( void ) -{ -// MESSAGE( "Stopping transport" ); - if ( _record_button->value() ) - { - if ( _stop_disables_record ) - _record_button->value( 0 ); - - timeline->_created_new_takes = false; - - update_record_state(); - } - - if ( engine ) - { - engine->transport_stop(); - - if ( _freewheel_button->value() ) - { - engine->freewheeling( false ); - _freewheel_button->value( false ); - } - } -} - -void -Transport::toggle ( void ) -{ - if ( rolling ) - stop(); - else - start(); -} diff --git a/timeline/src/Transport.H b/timeline/src/Transport.H deleted file mode 100644 index 8323222..0000000 --- a/timeline/src/Transport.H +++ /dev/null @@ -1,86 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - - -#pragma once - -#include -#include "types.h" - -#include -#include - -#include -#include - -class Transport : public jack_position_t, public Fl_Flowpack -{ - -private: - - bool _stop_disables_record; - - static void cb_button ( Fl_Widget *w, void *arg ); - void cb_button ( Fl_Widget *w ); - - /* not permitted */ - Transport ( const Transport &rhs ); - Transport & operator = ( const Transport &rhs ); - - Fl_Button *_home_button; - Fl_Button *_end_button; - Fl_Button *_play_button; - Fl_Button *_record_button; - Fl_Button *_punch_button; - Fl_Button *_loop_button; - Fl_Button *_new_take_button; - Fl_Button *_freewheel_button; - - void update_record_state ( void ); - -public: - - Transport ( int X, int Y, int W, int H, const char *L=0 ); - - bool freewheel_enabled ( void ) const; - bool rec_enabled ( void ) const; - bool punch_enabled ( void ) const; - bool loop_enabled ( void ) const; - void loop_enabled ( bool b ); - - void automatically_create_takes ( bool b ); - bool automatically_create_takes ( void ) const; - - void stop_disables_record ( bool b ) { _stop_disables_record = b; } - bool stop_disables_record ( void ) const { return _stop_disables_record; } - - void toggle_record ( void ); - int handle ( int m ); - - volatile bool rolling; - volatile bool recording; - - void poll ( void ); - void locate ( nframes_t frame ); - void start ( void ); - void stop ( void ); - void toggle ( void ); -}; - -extern Transport* transport; diff --git a/timeline/src/Waveform.C b/timeline/src/Waveform.C deleted file mode 100644 index a6bb8b9..0000000 --- a/timeline/src/Waveform.C +++ /dev/null @@ -1,143 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -/* routines to draw a waveform from peak data */ - -#include -#include -#include "Waveform.H" - -#include -#include -using std::min; -using std::max; -#include - - - -bool Waveform::fill = true; -bool Waveform::outline = true; -bool Waveform::vary_color = true; -bool Waveform::logarithmic = true; - - - -/* TODO: split the variations into separate functions. eg, plain, - * outlined, filled, polygonal, rectified. */ - -void -Waveform::scale ( Peak *pbuf, int npeaks, float gain ) -{ - /* scale it */ - for ( int j = npeaks; j--; ) - { - pbuf[ j ].min *= gain; - pbuf[ j ].max *= gain; - } -} - -/** draw a portion of /clip/'s waveform. coordinates are the portion to draw */ -void -Waveform::draw ( int X, int Y, int W, int H, - const Peak *pbuf, int peaks, int skip, - Fl_Color fg_color, Fl_Color bg_color ) -{ - int j; - - int start = 0; - - const int halfheight = H / 2; - const int mid = Y + halfheight; - const int ty = Y + halfheight; - - W = min( peaks, W ); - - if ( ! W ) - return; - - fg_color = fl_color_add_alpha( Fl::get_color( fg_color ), 200 ); - - if ( Waveform::fill ) - { - if ( Waveform::vary_color ) - { - j = start; - for ( int x = X; x < X + W; ++x, j += skip ) - { - const Peak p = pbuf[ j ]; - - const float diff = fabs( p.max - p.min ); - - if ( diff > 2.0f ) - fl_color( FL_RED ); - else - fl_color( fl_color_average( fg_color, bg_color, diff * 0.5f ) ); - - const int ty = mid - ( halfheight * p.min ); - const int by = mid - ( halfheight * p.max ); - fl_line( x, ty, x, by ); - } - } - else - { - fl_color( fg_color ); - - fl_begin_complex_polygon(); - - j = start; - - for ( int x = X; x <= X + W; x++, j += skip ) - fl_vertex( x, ty - ( halfheight * pbuf[ j ].min ) ); - - j -= skip; - - for ( int x = X + W; x >= X; x--, j -= skip ) - fl_vertex( x, ty - ( halfheight * pbuf[ j ].max ) ); - - fl_end_complex_polygon(); - } - } - - if ( Waveform::outline ) - { - fl_color( bg_color ); - - fl_line_style( FL_SOLID, 0 ); - - fl_begin_line(); - - j = start; - - for ( int x = X; x < X + W; x++, j += skip ) - fl_vertex( x, ty - ( halfheight * pbuf[ j ].min ) ); - - fl_end_line(); - - fl_begin_line(); - - j = start; - - for ( int x = X; x < X + W; x++, j += skip ) - fl_vertex( x, ty - ( halfheight * pbuf[ j ].max ) ); - - fl_end_line(); - - fl_line_style( FL_SOLID, 0 ); - } -} diff --git a/timeline/src/Waveform.H b/timeline/src/Waveform.H deleted file mode 100644 index eed7747..0000000 --- a/timeline/src/Waveform.H +++ /dev/null @@ -1,39 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - - -#pragma once - -#include "Engine/Peak.H" - -class Waveform { - -public: - - static bool fill; - static bool outline; - static bool vary_color; - static bool logarithmic; - - static void scale ( Peak *pbuf, int npeaks, float gain ); - static void draw ( int X, int Y, int W, int H, - const Peak *pbuf, int peaks, int skip, - Fl_Color fg_color, Fl_Color bg_color ); - -}; diff --git a/timeline/src/const.h b/timeline/src/const.h deleted file mode 100644 index 385b0ce..0000000 --- a/timeline/src/const.h +++ /dev/null @@ -1,22 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -extern const char *APP_NAME; -extern const char *APP_TITLE; -#define __MODULE__ "non-timeline" diff --git a/timeline/src/main.C b/timeline/src/main.C deleted file mode 100644 index a341240..0000000 --- a/timeline/src/main.C +++ /dev/null @@ -1,292 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#include - - -#include -#include -#include -#include -#include -#include -#include - -/* for registrations */ -#include "Audio_Region.H" -#include "Sequence.H" -#include "Audio_Sequence.H" -#include "Timeline.H" -#include "Tempo_Sequence.H" -#include "Time_Sequence.H" -#include "Annotation_Sequence.H" -#include "Control_Sequence.H" -#include "Cursor_Sequence.H" -#include "Track.H" - -#include "TLE.H" -#include "Timeline.H" - -#include "Project.H" -#include "Transport.H" -#include "Engine/Engine.H" - -#include "Thread.H" - -#include - -extern void set_nsm_callbacks ( nsm_client_t *nsm ); - -Engine *engine; -Timeline *timeline; -Transport *transport; -TLE *tle; -nsm_client_t *nsm; - -char *instance_name = NULL; - -/* TODO: put these in a header */ -#define USER_CONFIG_DIR ".non-daw/" - -const char *APP_NAME = "Non-Timeline"; -const char *APP_TITLE = "The Non-Timeline"; - -const char COPYRIGHT[] = "Copyright (C) 2008-2013 Jonathan Moore Liles"; - -const double NSM_CHECK_INTERVAL = 0.25f; - -#define PACKAGE "non" - -#include "const.h" -#include "debug.h" - -char *user_config_dir; - -#include - -static int -ensure_dirs ( void ) -{ - asprintf( &user_config_dir, "%s/%s", getenv( "HOME" ), USER_CONFIG_DIR ); - - int r = mkdir( user_config_dir, 0777 ); - - return r == 0 || errno == EEXIST; -} - -#include - -#include - -void -shift ( char **argv, int *argc, int n ) -{ - int i; - - for ( i = 0; i < *argc; ++i ) - argv[ i ] = argv[ i + n ]; - - argv[ i ] = 0; - argc -= n; -} - -extern Timeline *timeline; - -void -check_nsm ( void * v ) -{ - nsm_check_nowait( nsm ); - Fl::repeat_timeout( NSM_CHECK_INTERVAL, check_nsm, v ); -} - -static int got_sigterm = 0; - -void -sigterm_handler ( int ) -{ - got_sigterm = 1; - Fl::awake(); -} - -void -check_sigterm ( void * ) -{ - if ( got_sigterm ) - { - MESSAGE( "Got SIGTERM, quitting..." ); - timeline->command_quit(); - } -} - -int -main ( int argc, char **argv ) -{ - if ( !strcmp( argv[0], "non-daw" ) ) - { - /* use old app name and title */ - APP_NAME = "Non-DAW"; - APP_TITLE = "The Non-DAW"; - } - - printf( "%s %s -- %s\n", APP_TITLE, VERSION, COPYRIGHT ); - - if ( ! Fl::visual( FL_DOUBLE | FL_RGB ) ) - { - WARNING( "Xdbe not supported, FLTK will fake double buffering." ); - } - - - Thread::init(); - - Thread thread( "UI" ); - thread.set(); - - signal( SIGTERM, sigterm_handler ); - signal( SIGHUP, sigterm_handler ); - signal( SIGINT, sigterm_handler ); - - fl_register_images(); - - /* welcome to C++ */ - LOG_REGISTER_CREATE( Annotation_Point ); - LOG_REGISTER_CREATE( Annotation_Region ); - LOG_REGISTER_CREATE( Annotation_Sequence ); - LOG_REGISTER_CREATE( Audio_Region ); - LOG_REGISTER_CREATE( Audio_Sequence ); - LOG_REGISTER_CREATE( Control_Point ); - LOG_REGISTER_CREATE( Control_Sequence ); - LOG_REGISTER_CREATE( Tempo_Point ); - LOG_REGISTER_CREATE( Time_Point ); - LOG_REGISTER_CREATE( Cursor_Point ); - LOG_REGISTER_CREATE( Cursor_Region ); - LOG_REGISTER_CREATE( Track ); - - signal( SIGPIPE, SIG_IGN ); - - if ( ! ensure_dirs() ) - FATAL( "Cannot create required directories" ); - - instance_name = strdup( APP_NAME ); - bool instance_override = false; - - - const char *osc_port = NULL; - - static struct option long_options[] = - { - { "help", no_argument, 0, '?' }, - { "instance", required_argument, 0, 'i' }, - { "osc-port", required_argument, 0, 'p' }, - { 0, 0, 0, 0 } - }; - - int option_index = 0; - int c = 0; - - while ( ( c = getopt_long_only( argc, argv, "", long_options, &option_index ) ) != -1 ) - { - switch ( c ) - { - - case 'p': - DMESSAGE( "Using OSC port %s", optarg ); - osc_port = optarg; - break; - case 'i': - DMESSAGE( "Using instance name %s", optarg ); - free( instance_name ); - instance_name = strdup( optarg ); - instance_override = true; - break; - case '?': - printf( "\nUsage: %s [--instance instance_name] [--osc-port portnum] [path_to_project]\n\n", argv[0] ); - exit(0); - break; - } - } - - /* we don't really need a pointer for this */ - // will be created on project new/open - engine = NULL; - - tle = new TLE; - - nsm = nsm_new(); - set_nsm_callbacks( nsm ); - - MESSAGE( "Starting GUI" ); - - tle->run(); - - timeline->init_osc( osc_port ); - - tle->main_window->show( 0, NULL ); - - char *nsm_url = getenv( "NSM_URL" ); - - if ( nsm_url ) - { - if ( ! nsm_init( nsm, nsm_url ) ) - { - if ( instance_override ) - WARNING( "--instance option is not available when running under session management, ignoring." ); - - if ( optind < argc ) - WARNING( "Loading files from the command-line is incompatible with session management, ignoring." ); - - nsm_send_announce( nsm, APP_NAME, ":progress:switch:", argv[0] ); - - /* poll so we can keep OSC handlers running in the GUI thread and avoid extra sync */ - Fl::add_timeout( NSM_CHECK_INTERVAL, check_nsm, NULL ); - } - } - else - { - if ( optind < argc ) - { - MESSAGE( "Loading \"%s\"", argv[optind] ); - Fl::lock(); - tle->open( argv[optind] ); - Fl::unlock(); - } - } - - Fl::add_check( check_sigterm ); - - Fl::run(); - - /* cleanup for valgrind's sake */ - - delete timeline; - timeline = NULL; - - delete tle; - tle = NULL; - - if ( engine ) - { - delete engine; - engine = NULL; - } - - nsm_free( nsm ); - nsm = NULL; - - MESSAGE( "Your fun is over" ); -} diff --git a/timeline/src/types.h b/timeline/src/types.h deleted file mode 100644 index cd3cc2c..0000000 --- a/timeline/src/types.h +++ /dev/null @@ -1,25 +0,0 @@ - -/*******************************************************************************/ -/* Copyright (C) 2008 Jonathan Moore Liles */ -/* */ -/* This program is free software; you can redistribute it and/or modify it */ -/* under the terms of the GNU General Public License as published by the */ -/* Free Software Foundation; either version 2 of the License, or (at your */ -/* option) any later version. */ -/* */ -/* This program is distributed in the hope that it will be useful, but WITHOUT */ -/* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or */ -/* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for */ -/* more details. */ -/* */ -/* You should have received a copy of the GNU General Public License along */ -/* with This program; see the file COPYING. If not,write to the Free Software */ -/* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/*******************************************************************************/ - -#pragma once - -#include - -typedef jack_nframes_t nframes_t; -typedef float sample_t; diff --git a/timeline/wscript b/timeline/wscript deleted file mode 100644 index 2a46a59..0000000 --- a/timeline/wscript +++ /dev/null @@ -1,132 +0,0 @@ -#!/usr/bin/env python -import subprocess -import waflib.Options as Options -import string -import os; - -# Version of this package (even if built as a child) -PACKAGE_VERSION = '1.2.0' - -# Variables for 'waf dist' -APPNAME = 'non-timeline' -VERSION = PACKAGE_VERSION - -# Mandatory variables -top = '.' -out = 'build' - -def options(opt): - opt.load('compiler_c') - opt.load('compiler_cxx') - opt.load('gnu_dirs') - -def configure(conf): - conf.load('compiler_c') - conf.load('compiler_cxx') - conf.load('gnu_dirs') - - # conf.env.append_value('CFLAGS', '-D_LARGEFILE64_SOURCE') - # conf.env.append_value('CFLAGS', '-D_FILE_OFFSET_BITS=64') - # conf.env.append_value('CXXFLAGS', '-D_LARGEFILE64_SOURCE') - # conf.env.append_value('CXXFLAGS', '-D_FILE_OFFSET_BITS=64') - - conf.check_cfg(package='sndfile', uselib_store='SNDFILE',args="--cflags --libs", - atleast_version='1.0.18', mandatory=True) - - conf.check(msg='Checking for SF_FORMAT_VORBIS', - define_name='HAVE_SF_FORMAT_VORBIS', - fragment='#include \nint main ( int argc, char **argv ) { return SF_FORMAT_VORBIS; }', - execute=False, mandatory=False) - - conf.define('VERSION', PACKAGE_VERSION) - conf.define('SYSTEM_PATH', '/'.join( [ conf.env.DATADIR, APPNAME ] ) ) - conf.define('DOCUMENT_PATH', '/'.join( [ conf.env.DATADIR, 'doc' ] ) ) - conf.define('PIXMAP_PATH', '/'.join( [ conf.env.DATADIR, 'pixmaps' ] ) ) - - conf.write_config_header('config.h', remove=False) - - print('') - -def build(bld): - # libs = 'LILV SUIL JACK SERD SRATOM LV2' - - libs = '' - - obj = bld(features = 'cxx cxxprogram', - source = ''' -src/Annotation_Region.C -src/Audio_Region.C -src/Audio_Sequence.C -src/Control_Point.C -src/Control_Sequence.C -src/Cursor_Point.C -src/Cursor_Region.C -src/Cursor_Sequence.C -src/Engine/Audio_File.C -src/Engine/Audio_File_Dummy.C -src/Engine/Audio_File_SF.C -src/Engine/Audio_Region.C -src/Engine/Audio_Sequence.C -src/Engine/Control_Sequence.C -src/Engine/Disk_Stream.C -src/Engine/Engine.C -src/Engine/Peaks.C -src/Engine/Playback_DS.C -src/Engine/Record_DS.C -src/Engine/Timeline.C -src/Engine/Track.C -src/NSM.C -src/OSC_Thread.C -src/Project.C -src/Sequence.C -src/Sequence_Point.C -src/Sequence_Region.C -src/Sequence_Widget.C -src/TLE.fl -src/Track_Header.fl -src/Tempo_Point.C -src/Tempo_Sequence.C -src/Time_Point.C -src/Time_Sequence.C -src/Timeline.C -src/Track.C -src/Transport.C -src/Waveform.C -src/main.C -''', - target = 'non-timeline', - includes = ['.', 'src', '..', '../nonlib'], - uselib = [ 'JACK', 'LIBLO', 'SNDFILE', 'NTK', 'NTK_IMAGES', 'PTHREAD'], - use = [ 'fl_widgets', 'nonlib'], - install_path = '${BINDIR}') - - obj = bld(features = 'cxx cxxprogram', - source='bin/import-ardour-session_gui.fl', - target = 'import-ardour-session_gui', - includes = ['.', 'src', '..', '../nonlib'], - uselib = [ 'NTK', 'NTK_IMAGES', 'PTHREAD'], - ## use = [ 'fl_widgets', 'nonlib'], - install_path = '${BINDIR}') - - bld.install_files('${BINDIR}', 'bin/import-ardour-session', chmod=0o0555, - relative_trick=True) - - bld( features = 'subst', - source = 'non-timeline.desktop.in', - target = 'non-timeline.desktop', - encoding = 'utf8', - install_path = "${DATADIR}" + '/applications', - BIN_PATH = bld.env.BINDIR ) - - - bld.symlink_as( '${BINDIR}/' + 'non-daw', APPNAME ) - - start_dir = bld.path.find_dir( 'icons/hicolor' ) - - bld.install_files('${DATADIR}/icons/hicolor', start_dir.ant_glob('**/*.png'), - cwd=start_dir, relative_trick=True) - - bld.install_as('${DATADIR}/pixmaps/' + APPNAME + '/icon-256x256.png', 'icons/hicolor/256x256/apps/' + APPNAME + '.png') - - bld.install_files( '/'.join( [ '${DATADIR}/doc', APPNAME ] ), bld.path.ant_glob( 'doc/*.html doc/*.png' ) ) - diff --git a/tools.waf/ntk_fluid.py b/tools.waf/ntk_fluid.py deleted file mode 100644 index d8389b4..0000000 --- a/tools.waf/ntk_fluid.py +++ /dev/null @@ -1,18 +0,0 @@ -from waflib import Task -from waflib.TaskGen import extension - -class ntk_fluid(Task.Task): - color = 'BLUE' - ext_out = ['.h'] - run_str = '${NTK_FLUID} -c -o ${TGT[0].abspath()} -h ${TGT[1].abspath()} ${SRC}' - -@extension('.fl') -def fluid(self, node): - """add the .fl to the source list; the cxx file generated will be compiled when possible""" - cpp = node.change_ext('.C') - hpp = node.change_ext('.H') - self.create_task('ntk_fluid', node, [cpp, hpp]) - - if 'cxx' in self.features: - self.source.append(cpp) - diff --git a/wscript b/wscript index 647fafd..b5112f8 100644 --- a/wscript +++ b/wscript @@ -30,8 +30,7 @@ def options(opt): def configure(conf): conf.load('compiler_c') conf.load('compiler_cxx') - conf.load('gnu_dirs') - conf.load('ntk_fluid',tooldir='tools.waf') + conf.load('gnu_dirs') conf.load('gccdeps') conf.line_just = 52

%v&qCn1!ES`RoMguN^HB4yN0L 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 b+ao$rfuf8UcHPd?q!$TM*$*YcdSCw^>(U(q diff --git a/sequencer/doc/non-pattern-editor.png b/sequencer/doc/non-pattern-editor.png deleted file mode 100644 index e56e2e530d180966f1f8135a8b9fb0910979a42c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 103894 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 z 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 QR4PDDO8IMzgmK9K0xgXydH?_b diff --git a/sequencer/icons/hicolor/16x16/apps/non-sequencer.png b/sequencer/icons/hicolor/16x16/apps/non-sequencer.png deleted file mode 100644 index aaf17b27cba3ed68d421951687ad09d584e36b5e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1352 zcmeAS@N?(olHy`uVBq!ia0vp^0w65F1SAhIZYc#)Ea{HEjtmSN`?>!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ua371Hn({-St3f8r zxA)tGkS*DID?6?k9M9mrw770bd}c&mbmoF}+*T`I=j;sGKJ6HU`3ZeDqtd3NRPtLFE3g705g zS)yw-HE!MdYp0EWzUepm*>iHunjX*EDf?pNm!7^Fd->@z-~Cf(n6GWQQl%=fp>R9n z`qY1C-go*S6;6WPrk7Unn^iFBoSG`V;*%})@o zdt{#6ec$I~fQ0IA_wJ5q8J*JvPAIZu9pu}Z!qIj@pzyFx;o>}#&RvNuJqI~wA+oAdY*nLb=YdIXkJNe#7^)r|m_L0Php-yQkrVmftwUQgn^!p<-e7pyz^DAe z^cQ@tKf9G&E#EH6-NJq9f}jSo{f~qE?w+DDPep6E)=P9tT<>u$m>MG+KC?)#GWyic zedqq!*3K0XY~f;Bxc%s#wV6(H13$$56WtOY(EjSW)sOt|T8?vr1LoYnS$(tStO@hs zYg4=PzQ4+w%(H|2`PAqui?b}J1W8@U;i#Qp#aDW2?W@AAi*heFUSG9$ukrCXyGw#sWQxtoc-}7JHx%A~{BHBhQw!G3kWc!% zuC`wP}D7+`_(;b-KmpwTt=dMc1)}wr9Moyl7W=py*J{ z^3ds8c6a}MWw8A(`JcC8?%&)ibu+w07CUh9UE+VS>3HBXe%~uHGqdJ8?71%bzG~h@ zmb0w&0#S2BKA)O4^RsyNxod42Wj^m}9$UIaPW$(C(WNQbHY)peZq*G+h?e;C!|eAV zSvzS5flr~KAC_x&SK3SNEBH$4kp8CS-|jna z{Pf$jMN94H!c^HVa@DsgM@ znN+a_sKEs>{&>8pCwtvmVe?22WQ%mvv4FO#my{OBVnD diff --git a/sequencer/icons/hicolor/192x192/apps/non-sequencer.png b/sequencer/icons/hicolor/192x192/apps/non-sequencer.png deleted file mode 100644 index 62d92fa7b87e3839be4974b526c77fde23344966..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21159 zcmc$^Wl&sC&^Nlc1ql#bli==dA;H~!ad)@H5+K0|?vNmXWpQ^265QP#7I$6V{Xb9D z`|Wtr#l|GV1ONco@^YUw;APi;Hy$ed7g4F|GrT~y zky4fd0IK7$p3P9;&j=nGvY!AIV-$z*2O0}G4P^kppB?}R`33+y!bu?q0Du=K0B~dq z00^f80K~4@E$X81KTypTW&i6CemzLH2Ez*sS2=wTcq#Wkx6D5WaR5MFM*g#umhaL@ zj*ldvEOA$GfR88PXLUjp2j0JH_`iSs>R$_pCW}3pUWn~?cC5}KG30Gn!1Asx=npgR zU8{=z#fYha>wNe0RpblnCQiJfWzZ|d@kxi@mAA{<*hrQD{vWM;Ms#GvP#WoinmR