From eb511a1f7926ed44cb55382486cba4085b37197f Mon Sep 17 00:00:00 2001 From: ESCA111 Date: Wed, 21 Jan 2026 20:17:54 +1300 Subject: [PATCH] sine wave works now --- Builds/LinuxMakefile/Makefile | 364 +++++++ .../make_helpers/arch_detection.cpp | 82 ++ .../juce_LinuxSubprocessHelper.cpp | 36 + .../make_helpers/juce_SimpleBinaryBuilder.cpp | 381 +++++++ .../juce_LinuxSubprocessHelperBinaryData.cpp | 442 +++++++++ .../juce_LinuxSubprocessHelperBinaryData.h | 10 + JuceLibraryCode/BinaryData.cpp | 939 +++++++++--------- JuceLibraryCode/BinaryData.h | 25 +- JuceLibraryCode/JuceLV2Defines.h | 5 - JuceLibraryCode/JucePluginDefines.h | 2 +- JuceLibraryCode/include_juce_audio_basics.cpp | 8 + Source/CrushView.cpp | 147 ++- Source/CrushView.h | 45 +- Source/FilterView.cpp | 176 +++- Source/FilterView.h | 88 +- Source/OpenGLUtils.cpp | 19 +- Source/OpenGLUtils.h | 76 +- Source/PluginEditor.cpp | 48 +- Source/PluginEditor.h | 22 +- assets/BG.png | Bin 31662 -> 9041 bytes assets/panel.png | Bin 0 -> 15977 bytes crushFX.jucer | 49 +- 22 files changed, 2401 insertions(+), 563 deletions(-) create mode 100644 Builds/LinuxMakefile/Makefile create mode 100644 Builds/LinuxMakefile/make_helpers/arch_detection.cpp create mode 100644 Builds/LinuxMakefile/make_helpers/juce_LinuxSubprocessHelper.cpp create mode 100644 Builds/LinuxMakefile/make_helpers/juce_SimpleBinaryBuilder.cpp create mode 100644 Builds/LinuxMakefile/pre_build/juce_LinuxSubprocessHelperBinaryData.cpp create mode 100644 Builds/LinuxMakefile/pre_build/juce_LinuxSubprocessHelperBinaryData.h delete mode 100644 JuceLibraryCode/JuceLV2Defines.h create mode 100644 JuceLibraryCode/include_juce_audio_basics.cpp create mode 100644 assets/panel.png diff --git a/Builds/LinuxMakefile/Makefile b/Builds/LinuxMakefile/Makefile new file mode 100644 index 0000000..5c176bc --- /dev/null +++ b/Builds/LinuxMakefile/Makefile @@ -0,0 +1,364 @@ +# Automatically generated makefile, created by the Projucer +# Don't edit this file! Your changes will be overwritten when you re-save the Projucer project! + +# build with "V=1" for verbose builds +ifeq ($(V), 1) +V_AT = +else +V_AT = @ +endif + +# (this disables dependency generation if multiple architectures are set) +DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD) + +ifndef PKG_CONFIG + PKG_CONFIG=pkg-config +endif + +ifndef STRIP + STRIP=strip +endif + +ifndef AR + AR=ar +endif + +ifndef CONFIG + CONFIG=Debug +endif + +JUCE_ARCH_LABEL := $(shell uname -m) + +ifeq ($(CONFIG),Debug) + JUCE_BINDIR := build + JUCE_LIBDIR := build + JUCE_OBJDIR := build/intermediate/Debug + JUCE_OUTDIR := build + + ifeq ($(TARGET_ARCH),) + TARGET_ARCH := + endif + + JUCE_CPPFLAGS := $(DEPFLAGS) "-DLINUX=1" "-DDEBUG=1" "-D_DEBUG=1" "-DJUCE_DISPLAY_SPLASH_SCREEN=0" "-DJUCE_USE_DARK_SPLASH_SCREEN=1" "-DJUCE_PROJUCER_VERSION=0x7000c" "-DJUCE_MODULE_AVAILABLE_juce_audio_basics=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_devices=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_formats=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_plugin_client=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_processors=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_utils=1" "-DJUCE_MODULE_AVAILABLE_juce_core=1" "-DJUCE_MODULE_AVAILABLE_juce_data_structures=1" "-DJUCE_MODULE_AVAILABLE_juce_dsp=1" "-DJUCE_MODULE_AVAILABLE_juce_events=1" "-DJUCE_MODULE_AVAILABLE_juce_graphics=1" "-DJUCE_MODULE_AVAILABLE_juce_gui_basics=1" "-DJUCE_MODULE_AVAILABLE_juce_gui_extra=1" "-DJUCE_MODULE_AVAILABLE_juce_opengl=1" "-DJUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1" "-DJUCE_VST3_CAN_REPLACE_VST2=0" "-DJUCE_STRICT_REFCOUNTEDPOINTER=1" "-DJucePlugin_Build_VST=0" "-DJucePlugin_Build_VST3=1" "-DJucePlugin_Build_AU=0" "-DJucePlugin_Build_AUv3=1" "-DJucePlugin_Build_AAX=0" "-DJucePlugin_Build_Standalone=0" "-DJucePlugin_Build_Unity=0" "-DJucePlugin_Build_LV2=0" "-DJucePlugin_Enable_IAA=0" "-DJucePlugin_Enable_ARA=0" "-DJucePlugin_Name=\"crushFX\"" "-DJucePlugin_Desc=\"crushFX\"" "-DJucePlugin_Manufacturer=\"111euphoria\"" "-DJucePlugin_ManufacturerWebsite=\"www.yourcompany.com\"" "-DJucePlugin_ManufacturerEmail=\"\"" "-DJucePlugin_ManufacturerCode=0x4d616e75" "-DJucePlugin_PluginCode=0x49326a74" "-DJucePlugin_IsSynth=0" "-DJucePlugin_WantsMidiInput=0" "-DJucePlugin_ProducesMidiOutput=0" "-DJucePlugin_IsMidiEffect=0" "-DJucePlugin_EditorRequiresKeyboardFocus=0" "-DJucePlugin_Version=1.0.0" "-DJucePlugin_VersionCode=0x10000" "-DJucePlugin_VersionString=\"1.0.0\"" "-DJucePlugin_VSTUniqueID=JucePlugin_PluginCode" "-DJucePlugin_VSTCategory=kPlugCategEffect" "-DJucePlugin_Vst3Category=\"Fx\"" "-DJucePlugin_AUMainType='aufx'" "-DJucePlugin_AUSubType=JucePlugin_PluginCode" "-DJucePlugin_AUExportPrefix=crushFXAU" "-DJucePlugin_AUExportPrefixQuoted=\"crushFXAU\"" "-DJucePlugin_AUManufacturerCode=JucePlugin_ManufacturerCode" "-DJucePlugin_CFBundleIdentifier=com.yourcompany.crushFX" "-DJucePlugin_AAXIdentifier=com.yourcompany.crushFX" "-DJucePlugin_AAXManufacturerCode=JucePlugin_ManufacturerCode" "-DJucePlugin_AAXProductId=JucePlugin_PluginCode" "-DJucePlugin_AAXCategory=0" "-DJucePlugin_AAXDisableBypass=0" "-DJucePlugin_AAXDisableMultiMono=0" "-DJucePlugin_IAAType=0x61757278" "-DJucePlugin_IAASubType=JucePlugin_PluginCode" "-DJucePlugin_IAAName=\"111euphoria: crushFX\"" "-DJucePlugin_VSTNumMidiInputs=16" "-DJucePlugin_VSTNumMidiOutputs=16" "-DJucePlugin_ARAContentTypes=0" "-DJucePlugin_ARATransformationFlags=0" "-DJucePlugin_ARAFactoryID=\"com.yourcompany.crushFX.factory\"" "-DJucePlugin_ARADocumentArchiveID=\"com.yourcompany.crushFX.aradocumentarchive.1.0.0\"" "-DJucePlugin_ARACompatibleArchiveIDs=\"\"" "-DJUCE_STANDALONE_APPLICATION=JucePlugin_Build_Standalone" "-DJUCER_LINUX_MAKE_6D53C8B4=1" "-DJUCE_APP_VERSION=1.0.0" "-DJUCE_APP_VERSION_HEX=0x10000" "-DJUCE_USE_EXTERNAL_TEMPORARY_SUBPROCESS=1" $(shell $(PKG_CONFIG) --cflags alsa freetype2 gl libcurl webkit2gtk-4.0 gtk+-x11-3.0 zlib libjpeg libpng flac vorbis vorbisfile vorbisenc ogg jack) -pthread -I/usr/share/juce/modules/juce_audio_processors/format_types/VST3_SDK -I../../JuceLibraryCode -Ipre_build -I/usr/share/juce/modules $(CPPFLAGS) + + JUCE_CPPFLAGS_VST3 := + JUCE_CFLAGS_VST3 := -fPIC -fvisibility=hidden + JUCE_LDFLAGS_VST3 := -shared -Wl,--no-undefined + JUCE_VST3DIR := crushFX.vst3 + VST3_PLATFORM_ARCH := $(shell $(CXX) make_helpers/arch_detection.cpp 2>&1 | tr '\n' ' ' | sed "s/.*JUCE_ARCH \([a-zA-Z0-9_-]*\).*/\1/") + JUCE_VST3SUBDIR := Contents/$(VST3_PLATFORM_ARCH)-linux + JUCE_TARGET_VST3 := $(JUCE_VST3DIR)/$(JUCE_VST3SUBDIR)/crushFX.so + JUCE_VST3DESTDIR := $(HOME)/.vst3 + JUCE_COPYCMD_VST3 := $(JUCE_OUTDIR)/$(JUCE_VST3DIR) $(JUCE_VST3DESTDIR) + + JUCE_CPPFLAGS_SHARED_CODE := "-DJUCE_SHARED_CODE=1" + JUCE_CFLAGS_SHARED_CODE := -fPIC -fvisibility=hidden + JUCE_TARGET_SHARED_CODE := crushFX.a + + JUCE_CPPFLAGS_VST3_MANIFEST_HELPER := + JUCE_TARGET_VST3_MANIFEST_HELPER := juce_vst3_helper + + JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -fPIC -g -ggdb -O0 $(CFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++17 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell $(PKG_CONFIG) --libs alsa freetype2 gl libcurl zlib libjpeg libpng flac vorbis vorbisfile vorbisenc ogg jack) -fvisibility=hidden -lrt -ldl -lpthread $(LDFLAGS) + + CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(JUCE_TARGET_VST3) $(JUCE_OUTDIR)/$(JUCE_TARGET_SHARED_CODE) $(JUCE_OUTDIR)/$(JUCE_TARGET_VST3_MANIFEST_HELPER) $(JUCE_OBJDIR) pre_build +endif + +ifeq ($(CONFIG),Release) + JUCE_BINDIR := build + JUCE_LIBDIR := build + JUCE_OBJDIR := build/intermediate/Release + JUCE_OUTDIR := build + + ifeq ($(TARGET_ARCH),) + TARGET_ARCH := + endif + + JUCE_CPPFLAGS := $(DEPFLAGS) "-DLINUX=1" "-DNDEBUG=1" "-DJUCE_DISPLAY_SPLASH_SCREEN=0" "-DJUCE_USE_DARK_SPLASH_SCREEN=1" "-DJUCE_PROJUCER_VERSION=0x7000c" "-DJUCE_MODULE_AVAILABLE_juce_audio_basics=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_devices=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_formats=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_plugin_client=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_processors=1" "-DJUCE_MODULE_AVAILABLE_juce_audio_utils=1" "-DJUCE_MODULE_AVAILABLE_juce_core=1" "-DJUCE_MODULE_AVAILABLE_juce_data_structures=1" "-DJUCE_MODULE_AVAILABLE_juce_dsp=1" "-DJUCE_MODULE_AVAILABLE_juce_events=1" "-DJUCE_MODULE_AVAILABLE_juce_graphics=1" "-DJUCE_MODULE_AVAILABLE_juce_gui_basics=1" "-DJUCE_MODULE_AVAILABLE_juce_gui_extra=1" "-DJUCE_MODULE_AVAILABLE_juce_opengl=1" "-DJUCE_GLOBAL_MODULE_SETTINGS_INCLUDED=1" "-DJUCE_VST3_CAN_REPLACE_VST2=0" "-DJUCE_STRICT_REFCOUNTEDPOINTER=1" "-DJucePlugin_Build_VST=0" "-DJucePlugin_Build_VST3=1" "-DJucePlugin_Build_AU=0" "-DJucePlugin_Build_AUv3=1" "-DJucePlugin_Build_AAX=0" "-DJucePlugin_Build_Standalone=0" "-DJucePlugin_Build_Unity=0" "-DJucePlugin_Build_LV2=0" "-DJucePlugin_Enable_IAA=0" "-DJucePlugin_Enable_ARA=0" "-DJucePlugin_Name=\"crushFX\"" "-DJucePlugin_Desc=\"crushFX\"" "-DJucePlugin_Manufacturer=\"111euphoria\"" "-DJucePlugin_ManufacturerWebsite=\"www.yourcompany.com\"" "-DJucePlugin_ManufacturerEmail=\"\"" "-DJucePlugin_ManufacturerCode=0x4d616e75" "-DJucePlugin_PluginCode=0x49326a74" "-DJucePlugin_IsSynth=0" "-DJucePlugin_WantsMidiInput=0" "-DJucePlugin_ProducesMidiOutput=0" "-DJucePlugin_IsMidiEffect=0" "-DJucePlugin_EditorRequiresKeyboardFocus=0" "-DJucePlugin_Version=1.0.0" "-DJucePlugin_VersionCode=0x10000" "-DJucePlugin_VersionString=\"1.0.0\"" "-DJucePlugin_VSTUniqueID=JucePlugin_PluginCode" "-DJucePlugin_VSTCategory=kPlugCategEffect" "-DJucePlugin_Vst3Category=\"Fx\"" "-DJucePlugin_AUMainType='aufx'" "-DJucePlugin_AUSubType=JucePlugin_PluginCode" "-DJucePlugin_AUExportPrefix=crushFXAU" "-DJucePlugin_AUExportPrefixQuoted=\"crushFXAU\"" "-DJucePlugin_AUManufacturerCode=JucePlugin_ManufacturerCode" "-DJucePlugin_CFBundleIdentifier=com.yourcompany.crushFX" "-DJucePlugin_AAXIdentifier=com.yourcompany.crushFX" "-DJucePlugin_AAXManufacturerCode=JucePlugin_ManufacturerCode" "-DJucePlugin_AAXProductId=JucePlugin_PluginCode" "-DJucePlugin_AAXCategory=0" "-DJucePlugin_AAXDisableBypass=0" "-DJucePlugin_AAXDisableMultiMono=0" "-DJucePlugin_IAAType=0x61757278" "-DJucePlugin_IAASubType=JucePlugin_PluginCode" "-DJucePlugin_IAAName=\"111euphoria: crushFX\"" "-DJucePlugin_VSTNumMidiInputs=16" "-DJucePlugin_VSTNumMidiOutputs=16" "-DJucePlugin_ARAContentTypes=0" "-DJucePlugin_ARATransformationFlags=0" "-DJucePlugin_ARAFactoryID=\"com.yourcompany.crushFX.factory\"" "-DJucePlugin_ARADocumentArchiveID=\"com.yourcompany.crushFX.aradocumentarchive.1.0.0\"" "-DJucePlugin_ARACompatibleArchiveIDs=\"\"" "-DJUCE_STANDALONE_APPLICATION=JucePlugin_Build_Standalone" "-DJUCER_LINUX_MAKE_6D53C8B4=1" "-DJUCE_APP_VERSION=1.0.0" "-DJUCE_APP_VERSION_HEX=0x10000" "-DJUCE_USE_EXTERNAL_TEMPORARY_SUBPROCESS=1" $(shell $(PKG_CONFIG) --cflags alsa freetype2 gl libcurl webkit2gtk-4.0 gtk+-x11-3.0 zlib libjpeg libpng flac vorbis vorbisfile vorbisenc ogg jack) -pthread -I/usr/share/juce/modules/juce_audio_processors/format_types/VST3_SDK -I../../JuceLibraryCode -Ipre_build -I/usr/share/juce/modules $(CPPFLAGS) + + JUCE_CPPFLAGS_VST3 := + JUCE_CFLAGS_VST3 := -fPIC -fvisibility=hidden + JUCE_LDFLAGS_VST3 := -shared -Wl,--no-undefined + JUCE_VST3DIR := crushFX.vst3 + VST3_PLATFORM_ARCH := $(shell $(CXX) make_helpers/arch_detection.cpp 2>&1 | tr '\n' ' ' | sed "s/.*JUCE_ARCH \([a-zA-Z0-9_-]*\).*/\1/") + JUCE_VST3SUBDIR := Contents/$(VST3_PLATFORM_ARCH)-linux + JUCE_TARGET_VST3 := $(JUCE_VST3DIR)/$(JUCE_VST3SUBDIR)/crushFX.so + JUCE_VST3DESTDIR := $(HOME)/.vst3 + JUCE_COPYCMD_VST3 := $(JUCE_OUTDIR)/$(JUCE_VST3DIR) $(JUCE_VST3DESTDIR) + + JUCE_CPPFLAGS_SHARED_CODE := "-DJUCE_SHARED_CODE=1" + JUCE_CFLAGS_SHARED_CODE := -fPIC -fvisibility=hidden + JUCE_TARGET_SHARED_CODE := crushFX.a + + JUCE_CPPFLAGS_VST3_MANIFEST_HELPER := + JUCE_TARGET_VST3_MANIFEST_HELPER := juce_vst3_helper + + JUCE_CFLAGS += $(JUCE_CPPFLAGS) $(TARGET_ARCH) -fPIC -O3 $(CFLAGS) + JUCE_CXXFLAGS += $(JUCE_CFLAGS) -std=c++17 $(CXXFLAGS) + JUCE_LDFLAGS += $(TARGET_ARCH) -L$(JUCE_BINDIR) -L$(JUCE_LIBDIR) $(shell $(PKG_CONFIG) --libs alsa freetype2 gl libcurl zlib libjpeg libpng flac vorbis vorbisfile vorbisenc ogg jack) -fvisibility=hidden -lrt -ldl -lpthread $(LDFLAGS) + + CLEANCMD = rm -rf $(JUCE_OUTDIR)/$(JUCE_TARGET_VST3) $(JUCE_OUTDIR)/$(JUCE_TARGET_SHARED_CODE) $(JUCE_OUTDIR)/$(JUCE_TARGET_VST3_MANIFEST_HELPER) $(JUCE_OBJDIR) pre_build +endif + +OBJECTS_ALL := \ + +OBJECTS_VST3 := \ + $(JUCE_OBJDIR)/include_juce_audio_plugin_client_VST3_dd633589.o \ + +OBJECTS_SHARED_CODE := \ + $(JUCE_OBJDIR)/OpenGLUtils_dbb81aa3.o \ + $(JUCE_OBJDIR)/CrushSliderLook_64ba471c.o \ + $(JUCE_OBJDIR)/FilterButtonLook_51a5e492.o \ + $(JUCE_OBJDIR)/FilterView_f1d22d46.o \ + $(JUCE_OBJDIR)/CrushView_842d1d61.o \ + $(JUCE_OBJDIR)/PluginProcessor_a059e380.o \ + $(JUCE_OBJDIR)/PluginEditor_94d4fb09.o \ + $(JUCE_OBJDIR)/DialLook_428a9938.o \ + $(JUCE_OBJDIR)/BinaryData_ce4232d4.o \ + $(JUCE_OBJDIR)/include_juce_audio_basics_8a4e984a.o \ + $(JUCE_OBJDIR)/include_juce_audio_devices_63111d02.o \ + $(JUCE_OBJDIR)/include_juce_audio_formats_15f82001.o \ + $(JUCE_OBJDIR)/include_juce_audio_plugin_client_ARA_31a052ed.o \ + $(JUCE_OBJDIR)/include_juce_audio_processors_10c03666.o \ + $(JUCE_OBJDIR)/include_juce_audio_processors_ara_2a4c6ef7.o \ + $(JUCE_OBJDIR)/include_juce_audio_processors_lv2_libs_12bdca08.o \ + $(JUCE_OBJDIR)/include_juce_audio_utils_9f9fb2d6.o \ + $(JUCE_OBJDIR)/include_juce_core_f26d17db.o \ + $(JUCE_OBJDIR)/include_juce_data_structures_7471b1e3.o \ + $(JUCE_OBJDIR)/include_juce_dsp_aeb2060f.o \ + $(JUCE_OBJDIR)/include_juce_events_fd7d695.o \ + $(JUCE_OBJDIR)/include_juce_graphics_f817e147.o \ + $(JUCE_OBJDIR)/include_juce_gui_basics_e3f79785.o \ + $(JUCE_OBJDIR)/include_juce_gui_extra_6dee1c1a.o \ + $(JUCE_OBJDIR)/include_juce_opengl_a8a032b.o \ + $(JUCE_OBJDIR)/juce_LinuxSubprocessHelperBinaryData_e1db7dc.o \ + +OBJECTS_VST3_MANIFEST_HELPER := \ + $(JUCE_OBJDIR)/juce_VST3ManifestHelper_e6b4e7f0.o \ + +.PHONY: clean all strip VST3 VST3_MANIFEST_HELPER + +all : VST3 VST3_MANIFEST_HELPER + +VST3 : $(JUCE_OUTDIR)/$(JUCE_TARGET_VST3) +VST3_MANIFEST_HELPER : $(JUCE_OUTDIR)/$(JUCE_TARGET_VST3_MANIFEST_HELPER) + + +$(JUCE_OUTDIR)/$(JUCE_TARGET_VST3) : $(OBJECTS_VST3) $(JUCE_OBJDIR)/execinfo.cmd $(RESOURCES) $(JUCE_OUTDIR)/$(JUCE_TARGET_SHARED_CODE) $(JUCE_OUTDIR)/$(JUCE_TARGET_VST3_MANIFEST_HELPER) + @command -v $(PKG_CONFIG) >/dev/null 2>&1 || { echo >&2 "pkg-config not installed. Please, install it."; exit 1; } + @$(PKG_CONFIG) --print-errors alsa freetype2 gl libcurl zlib libjpeg libpng flac vorbis vorbisfile vorbisenc ogg jack + @echo Linking "crushFX - VST3" + -$(V_AT)mkdir -p $(JUCE_BINDIR) + -$(V_AT)mkdir -p $(JUCE_LIBDIR) + -$(V_AT)mkdir -p $(JUCE_OUTDIR) + -$(V_AT)mkdir -p $(JUCE_OUTDIR)/$(JUCE_VST3DIR)/$(JUCE_VST3SUBDIR) + $(V_AT)$(CXX) -o $(JUCE_OUTDIR)/$(JUCE_TARGET_VST3) $(OBJECTS_VST3) $(JUCE_OUTDIR)/$(JUCE_TARGET_SHARED_CODE) $(JUCE_LDFLAGS) $(shell cat $(JUCE_OBJDIR)/execinfo.cmd) $(JUCE_LDFLAGS_VST3) $(RESOURCES) $(TARGET_ARCH) + -$(V_AT)mkdir -p $(JUCE_OUTDIR)/$(JUCE_VST3DIR)/Contents/Resources + -$(V_AT)rm -f $(JUCE_OUTDIR)/$(JUCE_VST3DIR)/Contents/moduleinfo.json + $(V_AT) $(JUCE_OUTDIR)/$(JUCE_TARGET_VST3_MANIFEST_HELPER) -create -version "1.0.0" -path $(JUCE_OUTDIR)/$(JUCE_VST3DIR) -output $(JUCE_OUTDIR)/$(JUCE_VST3DIR)/Contents/Resources/moduleinfo.json + -$(V_AT)[ ! "$(JUCE_VST3DESTDIR)" ] || (mkdir -p $(JUCE_VST3DESTDIR) && cp -R $(JUCE_COPYCMD_VST3)) + +$(JUCE_OUTDIR)/$(JUCE_TARGET_SHARED_CODE) : $(OBJECTS_SHARED_CODE) $(JUCE_OBJDIR)/execinfo.cmd $(RESOURCES) + @command -v $(PKG_CONFIG) >/dev/null 2>&1 || { echo >&2 "pkg-config not installed. Please, install it."; exit 1; } + @$(PKG_CONFIG) --print-errors alsa freetype2 gl libcurl zlib libjpeg libpng flac vorbis vorbisfile vorbisenc ogg jack + @echo Linking "crushFX - Shared Code" + -$(V_AT)mkdir -p $(JUCE_BINDIR) + -$(V_AT)mkdir -p $(JUCE_LIBDIR) + -$(V_AT)mkdir -p $(JUCE_OUTDIR) + $(V_AT)$(AR) -rcs $(JUCE_OUTDIR)/$(JUCE_TARGET_SHARED_CODE) $(OBJECTS_SHARED_CODE) + +$(JUCE_OUTDIR)/$(JUCE_TARGET_VST3_MANIFEST_HELPER) : $(OBJECTS_VST3_MANIFEST_HELPER) $(JUCE_OBJDIR)/execinfo.cmd $(RESOURCES) $(JUCE_OUTDIR)/$(JUCE_TARGET_SHARED_CODE) $(JUCE_OBJDIR)/cxxfs.cmd + @command -v $(PKG_CONFIG) >/dev/null 2>&1 || { echo >&2 "pkg-config not installed. Please, install it."; exit 1; } + @$(PKG_CONFIG) --print-errors alsa freetype2 gl libcurl zlib libjpeg libpng flac vorbis vorbisfile vorbisenc ogg jack + @echo Linking "crushFX - VST3 Manifest Helper" + -$(V_AT)mkdir -p $(JUCE_BINDIR) + -$(V_AT)mkdir -p $(JUCE_LIBDIR) + -$(V_AT)mkdir -p $(JUCE_OUTDIR) + $(V_AT)$(CXX) -o $(JUCE_OUTDIR)/$(JUCE_TARGET_VST3_MANIFEST_HELPER) $(OBJECTS_VST3_MANIFEST_HELPER) $(JUCE_OUTDIR)/$(JUCE_TARGET_SHARED_CODE) $(JUCE_LDFLAGS) $(shell cat $(JUCE_OBJDIR)/execinfo.cmd) $(shell cat $(JUCE_OBJDIR)/cxxfs.cmd) $(RESOURCES) $(TARGET_ARCH) + +$(JUCE_OBJDIR)/include_juce_audio_plugin_client_VST3_dd633589.o: ../../JuceLibraryCode/include_juce_audio_plugin_client_VST3.cpp + -$(V_AT)mkdir -p $(@D) + @echo "Compiling include_juce_audio_plugin_client_VST3.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_VST3) $(JUCE_CFLAGS_VST3) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/OpenGLUtils_dbb81aa3.o: ../../Source/OpenGLUtils.cpp + -$(V_AT)mkdir -p $(@D) + @echo "Compiling OpenGLUtils.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_SHARED_CODE) $(JUCE_CFLAGS_SHARED_CODE) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/CrushSliderLook_64ba471c.o: ../../Source/CrushSliderLook.cpp + -$(V_AT)mkdir -p $(@D) + @echo "Compiling CrushSliderLook.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_SHARED_CODE) $(JUCE_CFLAGS_SHARED_CODE) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/FilterButtonLook_51a5e492.o: ../../Source/FilterButtonLook.cpp + -$(V_AT)mkdir -p $(@D) + @echo "Compiling FilterButtonLook.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_SHARED_CODE) $(JUCE_CFLAGS_SHARED_CODE) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/FilterView_f1d22d46.o: ../../Source/FilterView.cpp + -$(V_AT)mkdir -p $(@D) + @echo "Compiling FilterView.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_SHARED_CODE) $(JUCE_CFLAGS_SHARED_CODE) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/CrushView_842d1d61.o: ../../Source/CrushView.cpp + -$(V_AT)mkdir -p $(@D) + @echo "Compiling CrushView.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_SHARED_CODE) $(JUCE_CFLAGS_SHARED_CODE) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/PluginProcessor_a059e380.o: ../../Source/PluginProcessor.cpp + -$(V_AT)mkdir -p $(@D) + @echo "Compiling PluginProcessor.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_SHARED_CODE) $(JUCE_CFLAGS_SHARED_CODE) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/PluginEditor_94d4fb09.o: ../../Source/PluginEditor.cpp + -$(V_AT)mkdir -p $(@D) + @echo "Compiling PluginEditor.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_SHARED_CODE) $(JUCE_CFLAGS_SHARED_CODE) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/DialLook_428a9938.o: ../../Source/DialLook.cpp + -$(V_AT)mkdir -p $(@D) + @echo "Compiling DialLook.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_SHARED_CODE) $(JUCE_CFLAGS_SHARED_CODE) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/BinaryData_ce4232d4.o: ../../JuceLibraryCode/BinaryData.cpp + -$(V_AT)mkdir -p $(@D) + @echo "Compiling BinaryData.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_SHARED_CODE) $(JUCE_CFLAGS_SHARED_CODE) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/include_juce_audio_basics_8a4e984a.o: ../../JuceLibraryCode/include_juce_audio_basics.cpp + -$(V_AT)mkdir -p $(@D) + @echo "Compiling include_juce_audio_basics.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_SHARED_CODE) $(JUCE_CFLAGS_SHARED_CODE) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/include_juce_audio_devices_63111d02.o: ../../JuceLibraryCode/include_juce_audio_devices.cpp + -$(V_AT)mkdir -p $(@D) + @echo "Compiling include_juce_audio_devices.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_SHARED_CODE) $(JUCE_CFLAGS_SHARED_CODE) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/include_juce_audio_formats_15f82001.o: ../../JuceLibraryCode/include_juce_audio_formats.cpp + -$(V_AT)mkdir -p $(@D) + @echo "Compiling include_juce_audio_formats.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_SHARED_CODE) $(JUCE_CFLAGS_SHARED_CODE) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/include_juce_audio_plugin_client_ARA_31a052ed.o: ../../JuceLibraryCode/include_juce_audio_plugin_client_ARA.cpp + -$(V_AT)mkdir -p $(@D) + @echo "Compiling include_juce_audio_plugin_client_ARA.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_SHARED_CODE) $(JUCE_CFLAGS_SHARED_CODE) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/include_juce_audio_processors_10c03666.o: ../../JuceLibraryCode/include_juce_audio_processors.cpp + -$(V_AT)mkdir -p $(@D) + @echo "Compiling include_juce_audio_processors.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_SHARED_CODE) $(JUCE_CFLAGS_SHARED_CODE) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/include_juce_audio_processors_ara_2a4c6ef7.o: ../../JuceLibraryCode/include_juce_audio_processors_ara.cpp + -$(V_AT)mkdir -p $(@D) + @echo "Compiling include_juce_audio_processors_ara.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_SHARED_CODE) $(JUCE_CFLAGS_SHARED_CODE) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/include_juce_audio_processors_lv2_libs_12bdca08.o: ../../JuceLibraryCode/include_juce_audio_processors_lv2_libs.cpp + -$(V_AT)mkdir -p $(@D) + @echo "Compiling include_juce_audio_processors_lv2_libs.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_SHARED_CODE) $(JUCE_CFLAGS_SHARED_CODE) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/include_juce_audio_utils_9f9fb2d6.o: ../../JuceLibraryCode/include_juce_audio_utils.cpp + -$(V_AT)mkdir -p $(@D) + @echo "Compiling include_juce_audio_utils.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_SHARED_CODE) $(JUCE_CFLAGS_SHARED_CODE) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/include_juce_core_f26d17db.o: ../../JuceLibraryCode/include_juce_core.cpp + -$(V_AT)mkdir -p $(@D) + @echo "Compiling include_juce_core.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_SHARED_CODE) $(JUCE_CFLAGS_SHARED_CODE) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/include_juce_data_structures_7471b1e3.o: ../../JuceLibraryCode/include_juce_data_structures.cpp + -$(V_AT)mkdir -p $(@D) + @echo "Compiling include_juce_data_structures.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_SHARED_CODE) $(JUCE_CFLAGS_SHARED_CODE) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/include_juce_dsp_aeb2060f.o: ../../JuceLibraryCode/include_juce_dsp.cpp + -$(V_AT)mkdir -p $(@D) + @echo "Compiling include_juce_dsp.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_SHARED_CODE) $(JUCE_CFLAGS_SHARED_CODE) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/include_juce_events_fd7d695.o: ../../JuceLibraryCode/include_juce_events.cpp + -$(V_AT)mkdir -p $(@D) + @echo "Compiling include_juce_events.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_SHARED_CODE) $(JUCE_CFLAGS_SHARED_CODE) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/include_juce_graphics_f817e147.o: ../../JuceLibraryCode/include_juce_graphics.cpp + -$(V_AT)mkdir -p $(@D) + @echo "Compiling include_juce_graphics.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_SHARED_CODE) $(JUCE_CFLAGS_SHARED_CODE) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/include_juce_gui_basics_e3f79785.o: ../../JuceLibraryCode/include_juce_gui_basics.cpp + -$(V_AT)mkdir -p $(@D) + @echo "Compiling include_juce_gui_basics.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_SHARED_CODE) $(JUCE_CFLAGS_SHARED_CODE) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/include_juce_gui_extra_6dee1c1a.o: ../../JuceLibraryCode/include_juce_gui_extra.cpp pre_build/juce_LinuxSubprocessHelperBinaryData.cpp + -$(V_AT)mkdir -p $(@D) + @echo "Compiling include_juce_gui_extra.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_SHARED_CODE) $(JUCE_CFLAGS_SHARED_CODE) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/include_juce_opengl_a8a032b.o: ../../JuceLibraryCode/include_juce_opengl.cpp + -$(V_AT)mkdir -p $(@D) + @echo "Compiling include_juce_opengl.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_SHARED_CODE) $(JUCE_CFLAGS_SHARED_CODE) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/juce_LinuxSubprocessHelperBinaryData_e1db7dc.o: pre_build/juce_LinuxSubprocessHelperBinaryData.cpp + -$(V_AT)mkdir -p $(@D) + @echo "Compiling juce_LinuxSubprocessHelperBinaryData.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_SHARED_CODE) $(JUCE_CFLAGS_SHARED_CODE) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/juce_VST3ManifestHelper_e6b4e7f0.o: /usr/share/juce/modules/juce_audio_plugin_client/VST3/juce_VST3ManifestHelper.cpp + -$(V_AT)mkdir -p $(@D) + @echo "Compiling juce_VST3ManifestHelper.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) $(JUCE_CPPFLAGS_VST3_MANIFEST_HELPER) $(JUCE_CFLAGS_VST3_MANIFEST_HELPER) -o "$@" -c "$<" + +$(JUCE_OBJDIR)/execinfo.cmd: + -$(V_AT)mkdir -p $(@D) + -@if [ -z "$(V_AT)" ]; then echo "Checking if we need to link libexecinfo"; fi + $(V_AT)printf "int main() { return 0; }" | $(CXX) -x c++ -o $(@D)/execinfo.x -lexecinfo - >/dev/null 2>&1 && printf -- "-lexecinfo" > "$@" || touch "$@" + +$(JUCE_OBJDIR)/cxxfs.cmd: + -$(V_AT)mkdir -p $(@D) + -@if [ -z "$(V_AT)" ]; then echo "Checking if we need to link stdc++fs"; fi + $(V_AT)printf "int main() { return 0; }" | $(CXX) -x c++ -o $(@D)/cxxfs.x -lstdc++fs - >/dev/null 2>&1 && printf -- "-lstdc++fs" > "$@" || touch "$@" + +$(JUCE_OBJDIR)/juce_LinuxSubprocessHelper_d0e1814f.o: make_helpers/juce_LinuxSubprocessHelper.cpp + -$(V_AT)mkdir -p $(JUCE_OBJDIR) + @echo "Compiling make_helpers/juce_LinuxSubprocessHelper.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$(JUCE_OBJDIR)/juce_LinuxSubprocessHelper_d0e1814f.o" -c "$<" $(TARGET_ARCH) + +$(JUCE_BINDIR)/juce_linux_subprocess_helper: $(JUCE_OBJDIR)/juce_LinuxSubprocessHelper_d0e1814f.o + -$(V_AT)mkdir -p $(JUCE_BINDIR) + @echo "Linking $(JUCE_BINDIR)/juce_linux_subprocess_helper" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$(JUCE_BINDIR)/juce_linux_subprocess_helper" "$(JUCE_OBJDIR)/juce_LinuxSubprocessHelper_d0e1814f.o" $(JUCE_LDFLAGS) $(TARGET_ARCH) + +$(JUCE_OBJDIR)/juce_SimpleBinaryBuilder_18cb8206.o: make_helpers/juce_SimpleBinaryBuilder.cpp + -$(V_AT)mkdir -p $(JUCE_OBJDIR) + @echo "Compiling make_helpers/juce_SimpleBinaryBuilder.cpp" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$(JUCE_OBJDIR)/juce_SimpleBinaryBuilder_18cb8206.o" -c "$<" $(TARGET_ARCH) + +$(JUCE_BINDIR)/juce_simple_binary_builder: $(JUCE_OBJDIR)/juce_SimpleBinaryBuilder_18cb8206.o + -$(V_AT)mkdir -p $(JUCE_BINDIR) + @echo "Linking $(JUCE_BINDIR)/juce_simple_binary_builder" + $(V_AT)$(CXX) $(JUCE_CXXFLAGS) -o "$(JUCE_BINDIR)/juce_simple_binary_builder" "$(JUCE_OBJDIR)/juce_SimpleBinaryBuilder_18cb8206.o" $(JUCE_LDFLAGS) $(TARGET_ARCH) + +pre_build/juce_LinuxSubprocessHelperBinaryData.cpp: $(JUCE_BINDIR)/juce_linux_subprocess_helper $(JUCE_BINDIR)/juce_simple_binary_builder + $(V_AT)"$(JUCE_BINDIR)/juce_simple_binary_builder" "$(JUCE_BINDIR)/juce_linux_subprocess_helper" "pre_build" "juce_LinuxSubprocessHelperBinaryData" LinuxSubprocessHelperBinaryData + +clean: + @echo Cleaning crushFX + $(V_AT)$(CLEANCMD) + +strip: + @echo Stripping crushFX + -$(V_AT)$(STRIP) --strip-unneeded $(JUCE_OUTDIR)/$(JUCE_TARGET_VST3) + -$(V_AT)$(STRIP) --strip-unneeded $(JUCE_OUTDIR)/$(JUCE_TARGET_VST3_MANIFEST_HELPER) + +-include $(OBJECTS_VST3:%.o=%.d) +-include $(OBJECTS_SHARED_CODE:%.o=%.d) +-include $(OBJECTS_VST3_MANIFEST_HELPER:%.o=%.d) diff --git a/Builds/LinuxMakefile/make_helpers/arch_detection.cpp b/Builds/LinuxMakefile/make_helpers/arch_detection.cpp new file mode 100644 index 0000000..90c9a66 --- /dev/null +++ b/Builds/LinuxMakefile/make_helpers/arch_detection.cpp @@ -0,0 +1,82 @@ +/* + ============================================================================== + + This file is part of the JUCE library. + Copyright (c) 2022 - Raw Material Software Limited + + JUCE is an open source library subject to commercial or open-source + licensing. + + By using JUCE, you agree to the terms of both the JUCE 7 End-User License + Agreement and JUCE Privacy Policy. + + End User License Agreement: www.juce.com/juce-7-licence + Privacy Policy: www.juce.com/juce-privacy-policy + + Or: You may also use this code under the terms of the GPL v3 (see + www.gnu.org/licenses). + + JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER + EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE + DISCLAIMED. + + ============================================================================== +*/ + +#if defined(__arm__) || defined(__TARGET_ARCH_ARM) || defined(_M_ARM) || defined(_M_ARM64) || defined(__aarch64__) || defined(__ARM64__) + + #if defined(_M_ARM64) || defined(__aarch64__) || defined(__ARM64__) + #error JUCE_ARCH aarch64 + #elif (defined(__TARGET_ARCH_ARM) && __TARGET_ARCH_ARM == 8) || defined(__ARMv8__) || defined(__ARMv8_A__) + #error JUCE_ARCH armv8l + #elif (defined(__TARGET_ARCH_ARM) && __TARGET_ARCH_ARM == 7) || defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) || defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7S__) || defined(_ARM_ARCH_7) || defined(__CORE_CORTEXA__) + #error JUCE_ARCH armv7l + #elif (defined(__TARGET_ARCH_ARM) && __TARGET_ARCH_ARM == 6) || defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) || defined(__ARM_ARCH_6T2__) || defined(__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6ZK__) || defined(__ARM_ARCH_6M__) + #error JUCE_ARCH armv6l + #elif (defined(__TARGET_ARCH_ARM) && __TARGET_ARCH_ARM == 5) || defined(__ARM_ARCH_5TEJ__) + #error JUCE_ARCH armv5l + #else + #error JUCE_ARCH arm + #endif + +#elif defined(__i386) || defined(__i386__) || defined(_M_IX86) + + #error JUCE_ARCH i386 + +#elif defined(__x86_64) || defined(__x86_64__) || defined(__amd64) || defined(_M_X64) + + #error JUCE_ARCH x86_64 + +#elif defined(__ia64) || defined(__ia64__) || defined(_M_IA64) + + #error JUCE_ARCH ia64 + +#elif defined(__mips) || defined(__mips__) || defined(_M_MRX000) + + #if defined(_MIPS_ARCH_MIPS64) || defined(__mips64) + #error JUCE_ARCH mips64 + #else + #error JUCE_ARCH mips + #endif + +#elif defined(__ppc__) || defined(__ppc) || defined(__powerpc__) || defined(_ARCH_COM) || defined(_ARCH_PWR) || defined(_ARCH_PPC) || defined(_M_MPPC) || defined(_M_PPC) + + #if defined(__ppc64__) || defined(__powerpc64__) || defined(__64BIT__) + #error JUCE_ARCH ppc64 + #else + #error JUCE_ARCH ppc + #endif + +#elif defined(__riscv) + + #if __riscv_xlen == 64 + #error JUCE_ARCH riscv64 + #else + #error JUCE_ARCH riscv + #endif + +#else + + #error JUCE_ARCH unknown + +#endif diff --git a/Builds/LinuxMakefile/make_helpers/juce_LinuxSubprocessHelper.cpp b/Builds/LinuxMakefile/make_helpers/juce_LinuxSubprocessHelper.cpp new file mode 100644 index 0000000..c690442 --- /dev/null +++ b/Builds/LinuxMakefile/make_helpers/juce_LinuxSubprocessHelper.cpp @@ -0,0 +1,36 @@ +/* + ============================================================================== + + This file is part of the JUCE library. + Copyright (c) 2022 - Raw Material Software Limited + + JUCE is an open source library subject to commercial or open-source + licensing. + + By using JUCE, you agree to the terms of both the JUCE 7 End-User License + Agreement and JUCE Privacy Policy. + + End User License Agreement: www.juce.com/juce-7-licence + Privacy Policy: www.juce.com/juce-privacy-policy + + Or: You may also use this code under the terms of the GPL v3 (see + www.gnu.org/licenses). + + JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER + EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE + DISCLAIMED. + + ============================================================================== +*/ + +#include + +int main (int argc, const char* const* argv) +{ + if (argc >= 3) + if (auto* handle = dlopen (argv[1], RTLD_LAZY)) + if (auto* function = reinterpret_cast (dlsym (handle, argv[2]))) + return function (argc - 3, argv + 3); + + return 1; +} diff --git a/Builds/LinuxMakefile/make_helpers/juce_SimpleBinaryBuilder.cpp b/Builds/LinuxMakefile/make_helpers/juce_SimpleBinaryBuilder.cpp new file mode 100644 index 0000000..af5f0e9 --- /dev/null +++ b/Builds/LinuxMakefile/make_helpers/juce_SimpleBinaryBuilder.cpp @@ -0,0 +1,381 @@ +/* + ============================================================================== + + This file is part of the JUCE library. + Copyright (c) 2022 - Raw Material Software Limited + + JUCE is an open source library subject to commercial or open-source + licensing. + + By using JUCE, you agree to the terms of both the JUCE 7 End-User License + Agreement and JUCE Privacy Policy. + + End User License Agreement: www.juce.com/juce-7-licence + Privacy Policy: www.juce.com/juce-privacy-policy + + Or: You may also use this code under the terms of the GPL v3 (see + www.gnu.org/licenses). + + JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER + EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE + DISCLAIMED. + + ============================================================================== +*/ + +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +//============================================================================== +struct FileHelpers +{ + static std::string getCurrentWorkingDirectory() + { + std::vector buffer (1024); + + while (getcwd (buffer.data(), buffer.size() - 1) == nullptr && errno == ERANGE) + buffer.resize (buffer.size() * 2 / 3); + + return { buffer.data() }; + } + + static bool endsWith (const std::string& s, char c) + { + if (s.length() == 0) + return false; + + return *s.rbegin() == c; + } + + static std::string appendedPaths (const std::string& first, const std::string& second) + { + return endsWith (first, '/') ? first + second : first + "/" + second; + } + + static bool exists (const std::string& path) + { + return ! path.empty() && access (path.c_str(), F_OK) == 0; + } + + static bool deleteFile (const std::string& path) + { + if (! exists (path)) + return true; + + return remove (path.c_str()) == 0; + } + + static std::string getFilename (const std::string& path) + { + return { std::find_if (path.rbegin(), path.rend(), [] (auto c) { return c == '/'; }).base(), + path.end() }; + } + + static bool isDirectory (const std::string& path) + { + #if defined (__FreeBSD__) || defined (__OpenBSD__) + #define JUCE_STAT stat + #else + #define JUCE_STAT stat64 + #endif + + struct JUCE_STAT info; + + return ! path.empty() + && JUCE_STAT (path.c_str(), &info) == 0 + && ((info.st_mode & S_IFDIR) != 0); + } + + static std::string getParentDirectory (const std::string& path) + { + std::string p { path.begin(), + std::find_if (path.rbegin(), + path.rend(), + [] (auto c) { return c == '/'; }).base() }; + + // Trim the ending slash, but only if not root + if (endsWith (p, '/') && p.length() > 1) + return { p.begin(), p.end() - 1 }; + + return p; + } + + static bool createDirectory (const std::string& path) + { + if (isDirectory (path)) + return true; + + const auto parentDir = getParentDirectory (path); + + if (path == parentDir) + return false; + + if (createDirectory (parentDir)) + return mkdir (path.c_str(), 0777) != -1; + + return false; + } +}; + +//============================================================================== +struct StringHelpers +{ + static bool isQuoteCharacter (char c) + { + return c == '"' || c == '\''; + } + + static std::string unquoted (const std::string& str) + { + if (str.length() == 0 || (! isQuoteCharacter (str[0]))) + return str; + + return str.substr (1, str.length() - (isQuoteCharacter (str[str.length() - 1]) ? 1 : 0)); + } + + static void ltrim (std::string& s) + { + s.erase (s.begin(), std::find_if (s.begin(), s.end(), [] (int c) { return ! std::isspace (c); })); + } + + static void rtrim (std::string& s) + { + s.erase (std::find_if (s.rbegin(), s.rend(), [] (int c) { return ! std::isspace (c); }).base(), s.end()); + } + + static std::string trimmed (const std::string& str) + { + auto result = str; + ltrim (result); + rtrim (result); + return result; + } + + static std::string replaced (const std::string& str, char charToReplace, char replaceWith) + { + auto result = str; + std::replace (result.begin(), result.end(), charToReplace, replaceWith); + return result; + } +}; + +//============================================================================== +static bool addFile (const std::string& filePath, + const std::string& binaryNamespace, + std::ofstream& headerStream, + std::ofstream& cppStream, + bool verbose) +{ + std::ifstream fileStream (filePath, std::ios::in | std::ios::binary | std::ios::ate); + + if (! fileStream.is_open()) + { + std::cerr << "Failed to open input file " << filePath << std::endl; + return false; + } + + std::vector buffer ((size_t) fileStream.tellg()); + fileStream.seekg (0); + fileStream.read (buffer.data(), static_cast (buffer.size())); + + const auto variableName = StringHelpers::replaced (StringHelpers::replaced (FileHelpers::getFilename (filePath), + ' ', + '_'), + '.', + '_'); + + if (verbose) + { + std::cout << "Adding " << variableName << ": " + << buffer.size() << " bytes" << std::endl; + } + + headerStream << " extern const char* " << variableName << ";" << std::endl + << " const int " << variableName << "Size = " + << buffer.size() << ";" << std::endl; + + cppStream << "static const unsigned char temp0[] = {"; + + auto* data = (const uint8_t*) buffer.data(); + + for (size_t i = 0; i < buffer.size() - 1; ++i) + { + cppStream << (int) data[i] << ","; + + if ((i % 40) == 39) + cppStream << std::endl << " "; + } + + cppStream << (int) data[buffer.size() - 1] << ",0,0};" << std::endl; + cppStream << "const char* " << binaryNamespace << "::" << variableName + << " = (const char*) temp0" << ";" << std::endl << std::endl; + + return true; +} + +//============================================================================== +class Arguments +{ +public: + enum class PositionalArguments + { + sourceFile = 0, + targetDirectory, + targetFilename, + binaryNamespace + }; + + static std::optional create (int argc, char* argv[]) + { + std::vector arguments; + bool verbose = false; + + for (int i = 1; i < argc; ++i) + { + std::string arg { argv[i] }; + + if (arg == "-v" || arg == "--verbose") + verbose = true; + else + arguments.emplace_back (std::move (arg)); + } + + if (arguments.size() != static_cast (PositionalArguments::binaryNamespace) + 1) + return std::nullopt; + + return Arguments { std::move (arguments), verbose }; + } + + std::string get (PositionalArguments argument) const + { + return arguments[static_cast (argument)]; + } + + bool isVerbose() const + { + return verbose; + } + +private: + Arguments (std::vector args, bool verboseIn) + : arguments (std::move (args)), verbose (verboseIn) + { + } + + std::vector arguments; + bool verbose = false; +}; + +//============================================================================== +int main (int argc, char* argv[]) +{ + const auto arguments = Arguments::create (argc, argv); + + if (! arguments.has_value()) + { + std::cout << " Usage: SimpleBinaryBuilder [-v | --verbose] sourcefile targetdirectory targetfilename namespace" + << std::endl << std::endl + << " SimpleBinaryBuilder will encode the provided source file into" << std::endl + << " two files called (targetfilename).cpp and (targetfilename).h," << std::endl + << " which it will write into the specified target directory." << std::endl + << " The target directory will be automatically created if necessary. The binary" << std::endl + << " resource will be available in the given namespace." << std::endl << std::endl; + + return 0; + } + + const auto currentWorkingDirectory = FileHelpers::getCurrentWorkingDirectory(); + + using ArgType = Arguments::PositionalArguments; + + const auto sourceFile = FileHelpers::appendedPaths (currentWorkingDirectory, + StringHelpers::unquoted (arguments->get (ArgType::sourceFile))); + + if (! FileHelpers::exists (sourceFile)) + { + std::cerr << "Source file doesn't exist: " + << sourceFile + << std::endl << std::endl; + + return 1; + } + + const auto targetDirectory = FileHelpers::appendedPaths (currentWorkingDirectory, + StringHelpers::unquoted (arguments->get (ArgType::targetDirectory))); + + if (! FileHelpers::exists (targetDirectory)) + { + if (! FileHelpers::createDirectory (targetDirectory)) + { + std::cerr << "Failed to create target directory: " << targetDirectory << std::endl; + return 1; + } + } + + const auto className = StringHelpers::trimmed (arguments->get (ArgType::targetFilename)); + const auto binaryNamespace = StringHelpers::trimmed (arguments->get (ArgType::binaryNamespace)); + + const auto headerFilePath = FileHelpers::appendedPaths (targetDirectory, className + ".h"); + const auto cppFilePath = FileHelpers::appendedPaths (targetDirectory, className + ".cpp"); + + if (arguments->isVerbose()) + { + std::cout << "Creating " << headerFilePath + << " and " << cppFilePath + << " from file " << sourceFile + << "..." << std::endl << std::endl; + } + + if (! FileHelpers::deleteFile (headerFilePath)) + { + std::cerr << "Failed to remove old header file: " << headerFilePath << std::endl; + return 1; + } + + if (! FileHelpers::deleteFile (cppFilePath)) + { + std::cerr << "Failed to remove old source file: " << cppFilePath << std::endl; + return 1; + } + + std::ofstream header (headerFilePath); + + if (! header.is_open()) + { + std::cerr << "Failed to open " << headerFilePath << std::endl; + + return 1; + } + + std::ofstream cpp (cppFilePath); + + if (! cpp.is_open()) + { + std::cerr << "Failed to open " << headerFilePath << std::endl; + + return 1; + } + + header << "/* (Auto-generated binary data file). */" << std::endl << std::endl + << "#pragma once" << std::endl << std::endl + << "namespace " << binaryNamespace << std::endl + << "{" << std::endl; + + cpp << "/* (Auto-generated binary data file). */" << std::endl << std::endl + << "#include " << std::quoted (className + ".h") << std::endl << std::endl; + + if (! addFile (sourceFile, binaryNamespace, header, cpp, arguments->isVerbose())) + return 1; + + header << "}" << std::endl << std::endl; + + return 0; +} diff --git a/Builds/LinuxMakefile/pre_build/juce_LinuxSubprocessHelperBinaryData.cpp b/Builds/LinuxMakefile/pre_build/juce_LinuxSubprocessHelperBinaryData.cpp new file mode 100644 index 0000000..bf0549e --- /dev/null +++ b/Builds/LinuxMakefile/pre_build/juce_LinuxSubprocessHelperBinaryData.cpp @@ -0,0 +1,442 @@ +/* (Auto-generated binary data file). */ + +#include "juce_LinuxSubprocessHelperBinaryData.h" + +static const unsigned char temp0[] = {127,69,76,70,2,1,1,0,0,0,0,0,0,0,0,0,3,0,62,0,1,0,0,0,80,16,0,0,0,0,0,0,64,0,0,0,0,0,0,0, + 0,59,0,0,0,0,0,0,0,0,0,0,64,0,56,0,14,0,64,0,36,0,35,0,6,0,0,0,4,0,0,0,64,0,0,0,0,0,0,0, + 64,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,16,3,0,0,0,0,0,0,16,3,0,0,0,0,0,0,8,0,0,0,0,0,0,0, + 3,0,0,0,4,0,0,0,180,3,0,0,0,0,0,0,180,3,0,0,0,0,0,0,180,3,0,0,0,0,0,0,28,0,0,0,0,0,0,0, + 28,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,4,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,88,7,0,0,0,0,0,0,88,7,0,0,0,0,0,0,0,16,0,0,0,0,0,0,1,0,0,0,5,0,0,0, + 0,16,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,16,0,0,0,0,0,0,213,1,0,0,0,0,0,0,213,1,0,0,0,0,0,0, + 0,16,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,32,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,32,0,0,0,0,0,0, + 196,0,0,0,0,0,0,0,196,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,1,0,0,0,6,0,0,0,208,44,0,0,0,0,0,0, + 208,60,0,0,0,0,0,0,208,60,0,0,0,0,0,0,80,3,0,0,0,0,0,0,88,3,0,0,0,0,0,0,0,16,0,0,0,0,0,0, + 2,0,0,0,6,0,0,0,224,44,0,0,0,0,0,0,224,60,0,0,0,0,0,0,224,60,0,0,0,0,0,0,224,2,0,0,0,0,0,0, + 224,2,0,0,0,0,0,0,8,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,80,3,0,0,0,0,0,0,80,3,0,0,0,0,0,0, + 80,3,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0, + 144,3,0,0,0,0,0,0,144,3,0,0,0,0,0,0,144,3,0,0,0,0,0,0,36,0,0,0,0,0,0,0,36,0,0,0,0,0,0,0, + 4,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,164,32,0,0,0,0,0,0,164,32,0,0,0,0,0,0,164,32,0,0,0,0,0,0, + 32,0,0,0,0,0,0,0,32,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,83,229,116,100,4,0,0,0,80,3,0,0,0,0,0,0, + 80,3,0,0,0,0,0,0,80,3,0,0,0,0,0,0,64,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0, + 80,229,116,100,4,0,0,0,4,32,0,0,0,0,0,0,4,32,0,0,0,0,0,0,4,32,0,0,0,0,0,0,36,0,0,0,0,0,0,0, + 36,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,81,229,116,100,6,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,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,82,229,116,100,4,0,0,0, + 208,44,0,0,0,0,0,0,208,60,0,0,0,0,0,0,208,60,0,0,0,0,0,0,48,3,0,0,0,0,0,0,48,3,0,0,0,0,0,0, + 1,0,0,0,0,0,0,0,4,0,0,0,48,0,0,0,5,0,0,0,71,78,85,0,2,128,0,192,4,0,0,0,1,0,0,0,0,0,0,0, + 1,0,1,192,4,0,0,0,1,0,0,0,0,0,0,0,2,0,1,192,4,0,0,0,1,0,0,0,0,0,0,0,4,0,0,0,20,0,0,0, + 3,0,0,0,71,78,85,0,42,152,51,136,192,235,140,112,129,146,232,52,5,231,125,234,163,57,27,210,47,108,105,98,54,52,47,108,100,45,108,105, + 110,117,120,45,120,56,54,45,54,52,46,115,111,46,50,0,1,0,0,0,1,0,0,0,1,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,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,32,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 101,0,0,0,34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,94,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,44,0,0,0,32,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,70,0,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,95,95,103,109,111,110,95,115,116,97,114,116,95,95,0,95,73,84,77,95,100,101,114,101,103,105,115,116,101,114,84,77,67,108,111,110,101,84,97, + 98,108,101,0,95,73,84,77,95,114,101,103,105,115,116,101,114,84,77,67,108,111,110,101,84,97,98,108,101,0,95,95,108,105,98,99,95,115,116,97, + 114,116,95,109,97,105,110,0,100,108,115,121,109,0,100,108,111,112,101,110,0,95,95,99,120,97,95,102,105,110,97,108,105,122,101,0,108,105,98,97, + 115,111,117,110,100,46,115,111,46,50,0,108,105,98,102,114,101,101,116,121,112,101,46,115,111,46,54,0,108,105,98,71,76,46,115,111,46,49,0,108, + 105,98,99,117,114,108,46,115,111,46,52,0,108,105,98,106,112,101,103,46,115,111,46,56,0,108,105,98,112,110,103,49,54,46,115,111,46,49,54,0, + 108,105,98,122,46,115,111,46,49,0,108,105,98,70,76,65,67,46,115,111,46,49,52,0,108,105,98,118,111,114,98,105,115,102,105,108,101,46,115,111, + 46,51,0,108,105,98,118,111,114,98,105,115,101,110,99,46,115,111,46,50,0,108,105,98,118,111,114,98,105,115,46,115,111,46,48,0,108,105,98,111, + 103,103,46,115,111,46,48,0,108,105,98,106,97,99,107,46,115,111,46,48,0,108,105,98,115,116,100,99,43,43,46,115,111,46,54,0,108,105,98,109, + 46,115,111,46,54,0,108,105,98,103,99,99,95,115,46,115,111,46,49,0,108,105,98,99,46,115,111,46,54,0,71,76,73,66,67,95,50,46,50,46, + 53,0,71,76,73,66,67,95,50,46,51,52,0,0,0,0,1,0,2,0,3,0,1,0,2,0,1,0,2,0,0,0,1,0,2,0,84,1,0,0, + 16,0,0,0,0,0,0,0,117,26,105,9,0,0,3,0,94,1,0,0,16,0,0,0,180,145,150,6,0,0,2,0,106,1,0,0,0,0,0,0, + 208,60,0,0,0,0,0,0,8,0,0,0,0,0,0,0,64,17,0,0,0,0,0,0,216,60,0,0,0,0,0,0,8,0,0,0,0,0,0,0, + 240,16,0,0,0,0,0,0,24,64,0,0,0,0,0,0,8,0,0,0,0,0,0,0,24,64,0,0,0,0,0,0,192,63,0,0,0,0,0,0, + 6,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,200,63,0,0,0,0,0,0,6,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0, + 208,63,0,0,0,0,0,0,6,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,216,63,0,0,0,0,0,0,6,0,0,0,6,0,0,0, + 0,0,0,0,0,0,0,0,224,63,0,0,0,0,0,0,6,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0, + 7,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,8,64,0,0,0,0,0,0,7,0,0,0,5,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,243,15,30,250,72,131,236,8,72,139,5,193,47,0,0,72,133,192,116,2,255,208,72,131, + 196,8,195,0,0,0,0,0,255,53,202,47,0,0,255,37,204,47,0,0,15,31,64,0,255,37,202,47,0,0,104,0,0,0,0,233,224,255,255,255, + 255,37,194,47,0,0,104,1,0,0,0,233,208,255,255,255,243,15,30,250,49,237,73,137,209,94,72,137,226,72,131,228,240,80,84,69,49,192,49,201, + 72,141,61,218,0,0,0,255,21,107,47,0,0,244,102,46,15,31,132,0,0,0,0,0,72,141,61,153,47,0,0,72,141,5,146,47,0,0,72,57, + 248,116,21,72,139,5,38,47,0,0,72,133,192,116,9,255,224,15,31,128,0,0,0,0,195,15,31,128,0,0,0,0,72,141,61,105,47,0,0,72, + 141,53,98,47,0,0,72,41,254,72,137,240,72,193,238,63,72,193,248,3,72,1,198,72,209,254,116,20,72,139,5,253,46,0,0,72,133,192,116,8, + 255,224,102,15,31,68,0,0,195,15,31,128,0,0,0,0,243,15,30,250,128,61,37,47,0,0,0,117,51,85,72,131,61,194,46,0,0,0,72,137, + 229,116,13,72,139,61,6,47,0,0,255,21,176,46,0,0,232,99,255,255,255,198,5,252,46,0,0,1,93,195,102,46,15,31,132,0,0,0,0,0, + 195,15,31,64,0,102,102,46,15,31,132,0,0,0,0,0,243,15,30,250,233,103,255,255,255,85,72,137,229,72,131,236,32,137,125,236,72,137,117,224, + 131,125,236,2,126,99,72,139,69,224,72,131,192,8,72,139,0,190,1,0,0,0,72,137,199,232,202,254,255,255,72,137,69,240,72,131,125,240,0,116, + 64,72,139,69,224,72,131,192,16,72,139,16,72,139,69,240,72,137,214,72,137,199,232,149,254,255,255,72,137,69,248,72,131,125,248,0,116,27,72,139, + 69,248,72,139,85,224,72,141,74,24,139,85,236,131,234,3,72,137,206,137,215,255,208,235,5,184,1,0,0,0,201,195,243,15,30,250,72,131,236,8, + 72,131,196,8,195,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, + 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,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,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,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,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,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,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,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, + 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,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,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,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,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,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,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,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, + 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,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,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,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,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,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,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,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, + 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,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,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,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,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,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,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,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, + 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,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,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,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,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,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,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,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, + 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,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,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,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,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,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,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,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, + 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,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,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,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,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,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,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,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, + 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,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,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,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,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,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,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,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, + 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,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,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,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,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,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,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,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, + 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,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,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,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,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,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,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,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, + 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,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,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,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,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,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,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,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, + 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,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,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,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,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,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,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,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, + 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,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,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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,1,27,3,59, + 32,0,0,0,3,0,0,0,28,240,255,255,84,0,0,0,76,240,255,255,60,0,0,0,69,241,255,255,124,0,0,0,20,0,0,0,0,0,0,0, + 1,122,82,0,1,120,16,1,27,12,7,8,144,1,0,0,20,0,0,0,28,0,0,0,8,240,255,255,38,0,0,0,0,68,7,16,0,0,0,0, + 36,0,0,0,52,0,0,0,192,239,255,255,48,0,0,0,0,14,16,70,14,24,74,15,11,119,8,128,0,63,26,59,42,51,36,34,0,0,0,0, + 28,0,0,0,92,0,0,0,193,240,255,255,127,0,0,0,0,65,14,16,134,2,67,13,6,2,122,12,7,8,0,0,0,0,0,0,4,0,0,0, + 16,0,0,0,1,0,0,0,71,78,85,0,0,0,0,0,4,0,0,0,4,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,64,17,0,0,0,0,0,0, + 240,16,0,0,0,0,0,0,1,0,0,0,0,0,0,0,116,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,131,0,0,0,0,0,0,0, + 1,0,0,0,0,0,0,0,148,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,159,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, + 172,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,185,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,200,0,0,0,0,0,0,0, + 1,0,0,0,0,0,0,0,210,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,224,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, + 243,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,5,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,20,1,0,0,0,0,0,0, + 1,0,0,0,0,0,0,0,32,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,45,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0, + 60,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,70,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,84,1,0,0,0,0,0,0, + 12,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,13,0,0,0,0,0,0,0,200,17,0,0,0,0,0,0,25,0,0,0,0,0,0,0, + 208,60,0,0,0,0,0,0,27,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,26,0,0,0,0,0,0,0,216,60,0,0,0,0,0,0, + 28,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,245,254,255,111,0,0,0,0,208,3,0,0,0,0,0,0,5,0,0,0,0,0,0,0, + 176,4,0,0,0,0,0,0,6,0,0,0,0,0,0,0,240,3,0,0,0,0,0,0,10,0,0,0,0,0,0,0,117,1,0,0,0,0,0,0, + 11,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0, + 232,63,0,0,0,0,0,0,2,0,0,0,0,0,0,0,48,0,0,0,0,0,0,0,20,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0, + 23,0,0,0,0,0,0,0,40,7,0,0,0,0,0,0,7,0,0,0,0,0,0,0,104,6,0,0,0,0,0,0,8,0,0,0,0,0,0,0, + 192,0,0,0,0,0,0,0,9,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,251,255,255,111,0,0,0,0,0,0,0,8,0,0,0,0, + 254,255,255,111,0,0,0,0,56,6,0,0,0,0,0,0,255,255,255,111,0,0,0,0,1,0,0,0,0,0,0,0,240,255,255,111,0,0,0,0, + 38,6,0,0,0,0,0,0,249,255,255,111,0,0,0,0,3,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,54,16,0,0,0,0,0,0,70,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,64,0,0,0,0,0,0, + 71,67,67,58,32,40,71,78,85,41,32,49,53,46,50,46,49,32,50,48,50,54,48,49,48,51,0,44,0,0,0,2,0,0,0,0,0,8,0,0, + 0,0,0,73,17,0,0,0,0,0,0,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,1,0,0,5, + 0,1,8,0,0,0,0,9,0,0,0,0,33,4,231,19,3,0,45,0,0,0,0,0,0,0,73,17,0,0,0,0,0,0,127,0,0,0,0,0, + 0,0,0,0,0,0,2,8,7,120,0,0,0,2,8,5,85,0,0,0,3,82,0,0,0,4,65,0,0,0,2,1,6,156,0,0,0,4,75,0, + 0,0,10,8,2,4,7,125,0,0,0,2,8,7,115,0,0,0,5,138,0,0,0,64,87,0,0,0,128,0,0,0,1,87,0,0,0,1,65,0, + 0,0,0,5,108,0,0,0,56,87,0,0,0,153,0,0,0,1,65,0,0,0,1,153,0,0,0,0,11,4,5,105,110,116,0,12,144,0,0,0, + 1,28,5,153,0,0,0,73,17,0,0,0,0,0,0,127,0,0,0,0,0,0,0,1,156,29,1,0,0,6,103,0,0,0,15,153,0,0,0,2, + 145,92,6,161,0,0,0,40,29,1,0,0,2,145,80,7,94,17,0,0,0,0,0,0,99,0,0,0,0,0,0,0,8,149,0,0,0,31,19,87, + 0,0,0,2,145,96,7,129,17,0,0,0,0,0,0,64,0,0,0,0,0,0,0,8,94,0,0,0,32,23,54,1,0,0,2,145,104,0,0,0, + 3,70,0,0,0,13,153,0,0,0,54,1,0,0,1,153,0,0,0,1,29,1,0,0,0,3,34,1,0,0,0,1,5,0,73,19,0,0,2,36, + 0,11,11,62,11,3,14,0,0,3,15,0,11,33,8,73,19,0,0,4,38,0,73,19,0,0,5,46,1,63,25,3,14,58,33,2,59,11,57,33, + 14,73,19,60,25,1,19,0,0,6,5,0,3,14,58,33,1,59,33,28,57,11,73,19,2,24,0,0,7,11,1,17,1,18,7,0,0,8,52,0, + 3,14,58,33,1,59,11,57,11,73,19,2,24,0,0,9,17,1,37,14,19,11,144,1,11,145,1,6,3,31,27,31,17,1,18,7,16,23,0,0, + 10,15,0,11,11,0,0,11,36,0,11,11,62,11,3,8,0,0,12,46,1,63,25,3,14,58,11,59,11,57,11,73,19,17,1,18,7,64,24,124, + 25,1,19,0,0,13,21,1,73,19,1,19,0,0,0,135,0,0,0,5,0,8,0,55,0,0,0,1,1,1,251,14,13,0,1,1,1,1,0,0, + 0,1,0,0,1,1,1,31,3,0,0,0,0,89,0,0,0,102,0,0,0,2,1,31,2,15,3,58,0,0,0,1,58,0,0,0,1,115,0,0, + 0,2,5,1,0,9,2,73,17,0,0,0,0,0,0,3,28,1,5,5,229,5,42,103,5,35,130,5,9,0,2,4,1,8,60,5,108,117,5,93, + 130,5,110,0,2,4,1,8,32,5,13,0,2,4,1,74,5,33,117,5,52,8,130,5,12,48,5,1,89,2,2,0,1,1,71,78,85,32,67,43, + 43,49,55,32,49,53,46,50,46,49,32,50,48,50,54,48,49,48,51,32,45,109,116,117,110,101,61,103,101,110,101,114,105,99,32,45,109,97,114,99, + 104,61,120,56,54,45,54,52,32,45,103,32,45,103,103,100,98,32,45,79,48,32,45,115,116,100,61,99,43,43,49,55,32,45,102,80,73,67,0,108, + 111,110,103,32,105,110,116,0,102,117,110,99,116,105,111,110,0,97,114,103,99,0,100,108,111,112,101,110,0,108,111,110,103,32,108,111,110,103,32,117, + 110,115,105,103,110,101,100,32,105,110,116,0,100,108,115,121,109,0,109,97,105,110,0,104,97,110,100,108,101,0,99,104,97,114,0,97,114,103,118,0, + 47,104,111,109,101,47,101,115,99,97,47,67,111,100,101,47,99,114,117,115,104,70,88,47,66,117,105,108,100,115,47,76,105,110,117,120,77,97,107,101, + 102,105,108,101,0,109,97,107,101,95,104,101,108,112,101,114,115,47,106,117,99,101,95,76,105,110,117,120,83,117,98,112,114,111,99,101,115,115,72,101, + 108,112,101,114,46,99,112,112,0,109,97,107,101,95,104,101,108,112,101,114,115,0,47,117,115,114,47,105,110,99,108,117,100,101,0,100,108,102,99,110, + 46,104,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,1,0,0,0,4,0,241,255, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0,1,0,18,0,164,32,0,0,0,0,0,0,32,0,0,0,0,0,0,0, + 19,0,0,0,4,0,241,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,31,0,0,0,2,0,13,0,128,16,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,33,0,0,0,2,0,13,0,176,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,0,0,0,2,0,13,0, + 240,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,74,0,0,0,1,0,25,0,32,64,0,0,0,0,0,0,1,0,0,0,0,0,0,0, + 86,0,0,0,1,0,20,0,216,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,125,0,0,0,2,0,13,0,64,17,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,137,0,0,0,1,0,19,0,208,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,168,0,0,0,4,0,241,255, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,199,0,0,0,4,0,241,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 209,0,0,0,1,0,17,0,160,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,241,255,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,223,0,0,0,1,0,23,0,232,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,245,0,0,0,1,0,21,0, + 224,60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,254,0,0,0,0,0,16,0,4,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 17,1,0,0,18,0,13,0,73,17,0,0,0,0,0,0,127,0,0,0,0,0,0,0,22,1,0,0,17,2,24,0,32,64,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,118,1,0,0,18,0,13,0,80,16,0,0,0,0,0,0,38,0,0,0,0,0,0,0,34,1,0,0,32,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,62,1,0,0,18,2,14,0,200,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 68,1,0,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,85,1,0,0,34,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,112,1,0,0,16,0,24,0,16,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,125,1,0,0,16,0,25,0, + 32,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,137,1,0,0,16,0,25,0,40,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 142,1,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,157,1,0,0,16,0,24,0,32,64,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,164,1,0,0,18,2,11,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,170,1,0,0,18,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,114,1,0,0,32,0,24,0,16,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 188,1,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,214,1,0,0,17,2,24,0,24,64,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,227,1,0,0,17,0,15,0,0,32,0,0,0,0,0,0,4,0,0,0,0,0,0,0,242,1,0,0,18,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,99,114,116,49,46,111,0,95,95,97,98,105,95,116,97,103,0,99,114,116,98,101, + 103,105,110,83,46,111,0,100,101,114,101,103,105,115,116,101,114,95,116,109,95,99,108,111,110,101,115,0,95,95,100,111,95,103,108,111,98,97,108,95, + 100,116,111,114,115,95,97,117,120,0,99,111,109,112,108,101,116,101,100,46,48,0,95,95,100,111,95,103,108,111,98,97,108,95,100,116,111,114,115,95, + 97,117,120,95,102,105,110,105,95,97,114,114,97,121,95,101,110,116,114,121,0,102,114,97,109,101,95,100,117,109,109,121,0,95,95,102,114,97,109,101, + 95,100,117,109,109,121,95,105,110,105,116,95,97,114,114,97,121,95,101,110,116,114,121,0,106,117,99,101,95,76,105,110,117,120,83,117,98,112,114,111, + 99,101,115,115,72,101,108,112,101,114,46,99,112,112,0,99,114,116,101,110,100,83,46,111,0,95,95,70,82,65,77,69,95,69,78,68,95,95,0,95, + 71,76,79,66,65,76,95,79,70,70,83,69,84,95,84,65,66,76,69,95,0,95,68,89,78,65,77,73,67,0,95,95,71,78,85,95,69,72,95,70, + 82,65,77,69,95,72,68,82,0,109,97,105,110,0,95,95,84,77,67,95,69,78,68,95,95,0,95,73,84,77,95,100,101,114,101,103,105,115,116,101, + 114,84,77,67,108,111,110,101,84,97,98,108,101,0,95,102,105,110,105,0,100,108,115,121,109,64,71,76,73,66,67,95,50,46,51,52,0,95,95,99, + 120,97,95,102,105,110,97,108,105,122,101,64,71,76,73,66,67,95,50,46,50,46,53,0,95,95,100,97,116,97,95,115,116,97,114,116,0,95,95,98, + 115,115,95,115,116,97,114,116,0,95,101,110,100,0,95,95,103,109,111,110,95,115,116,97,114,116,95,95,0,95,101,100,97,116,97,0,95,105,110,105, + 116,0,100,108,111,112,101,110,64,71,76,73,66,67,95,50,46,51,52,0,95,73,84,77,95,114,101,103,105,115,116,101,114,84,77,67,108,111,110,101, + 84,97,98,108,101,0,95,95,100,115,111,95,104,97,110,100,108,101,0,95,73,79,95,115,116,100,105,110,95,117,115,101,100,0,95,95,108,105,98,99, + 95,115,116,97,114,116,95,109,97,105,110,64,71,76,73,66,67,95,50,46,51,52,0,0,46,115,121,109,116,97,98,0,46,115,116,114,116,97,98,0, + 46,115,104,115,116,114,116,97,98,0,46,110,111,116,101,46,103,110,117,46,112,114,111,112,101,114,116,121,0,46,110,111,116,101,46,103,110,117,46,98, + 117,105,108,100,45,105,100,0,46,105,110,116,101,114,112,0,46,103,110,117,46,104,97,115,104,0,46,100,121,110,115,121,109,0,46,100,121,110,115,116, + 114,0,46,103,110,117,46,118,101,114,115,105,111,110,0,46,103,110,117,46,118,101,114,115,105,111,110,95,114,0,46,114,101,108,97,46,100,121,110,0, + 46,114,101,108,97,46,112,108,116,0,46,105,110,105,116,0,46,116,101,120,116,0,46,102,105,110,105,0,46,114,111,100,97,116,97,0,46,101,104,95, + 102,114,97,109,101,95,104,100,114,0,46,101,104,95,102,114,97,109,101,0,46,110,111,116,101,46,65,66,73,45,116,97,103,0,46,105,110,105,116,95, + 97,114,114,97,121,0,46,102,105,110,105,95,97,114,114,97,121,0,46,100,121,110,97,109,105,99,0,46,103,111,116,0,46,103,111,116,46,112,108,116, + 0,46,100,97,116,97,0,46,98,115,115,0,46,99,111,109,109,101,110,116,0,46,100,101,98,117,103,95,97,114,97,110,103,101,115,0,46,100,101,98, + 117,103,95,105,110,102,111,0,46,100,101,98,117,103,95,97,98,98,114,101,118,0,46,100,101,98,117,103,95,108,105,110,101,0,46,100,101,98,117,103, + 95,115,116,114,0,46,100,101,98,117,103,95,108,105,110,101,95,115,116,114,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,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,27,0,0,0,7,0,0,0,2,0,0,0,0,0,0,0,80,3,0,0,0,0,0,0,80,3,0,0,0,0,0,0, + 64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,46,0,0,0,7,0,0,0, + 2,0,0,0,0,0,0,0,144,3,0,0,0,0,0,0,144,3,0,0,0,0,0,0,36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,65,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,180,3,0,0,0,0,0,0, + 180,3,0,0,0,0,0,0,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 73,0,0,0,246,255,255,111,2,0,0,0,0,0,0,0,208,3,0,0,0,0,0,0,208,3,0,0,0,0,0,0,28,0,0,0,0,0,0,0, + 5,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,83,0,0,0,11,0,0,0,2,0,0,0,0,0,0,0, + 240,3,0,0,0,0,0,0,240,3,0,0,0,0,0,0,192,0,0,0,0,0,0,0,6,0,0,0,1,0,0,0,8,0,0,0,0,0,0,0, + 24,0,0,0,0,0,0,0,91,0,0,0,3,0,0,0,2,0,0,0,0,0,0,0,176,4,0,0,0,0,0,0,176,4,0,0,0,0,0,0, + 117,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,255,255,255,111, + 2,0,0,0,0,0,0,0,38,6,0,0,0,0,0,0,38,6,0,0,0,0,0,0,16,0,0,0,0,0,0,0,5,0,0,0,0,0,0,0, + 2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,112,0,0,0,254,255,255,111,2,0,0,0,0,0,0,0,56,6,0,0,0,0,0,0, + 56,6,0,0,0,0,0,0,48,0,0,0,0,0,0,0,6,0,0,0,1,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 127,0,0,0,4,0,0,0,2,0,0,0,0,0,0,0,104,6,0,0,0,0,0,0,104,6,0,0,0,0,0,0,192,0,0,0,0,0,0,0, + 5,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0,137,0,0,0,4,0,0,0,66,0,0,0,0,0,0,0, + 40,7,0,0,0,0,0,0,40,7,0,0,0,0,0,0,48,0,0,0,0,0,0,0,5,0,0,0,23,0,0,0,8,0,0,0,0,0,0,0, + 24,0,0,0,0,0,0,0,147,0,0,0,1,0,0,0,6,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,16,0,0,0,0,0,0, + 27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,142,0,0,0,1,0,0,0, + 6,0,0,0,0,0,0,0,32,16,0,0,0,0,0,0,32,16,0,0,0,0,0,0,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 16,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,153,0,0,0,1,0,0,0,6,0,0,0,0,0,0,0,80,16,0,0,0,0,0,0, + 80,16,0,0,0,0,0,0,120,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 159,0,0,0,1,0,0,0,6,0,0,0,0,0,0,0,200,17,0,0,0,0,0,0,200,17,0,0,0,0,0,0,13,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,165,0,0,0,1,0,0,0,18,0,0,0,0,0,0,0, + 0,32,0,0,0,0,0,0,0,32,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0, + 4,0,0,0,0,0,0,0,173,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,4,32,0,0,0,0,0,0,4,32,0,0,0,0,0,0, + 36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,187,0,0,0,1,0,0,0, + 2,0,0,0,0,0,0,0,40,32,0,0,0,0,0,0,40,32,0,0,0,0,0,0,124,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,197,0,0,0,7,0,0,0,2,0,0,0,0,0,0,0,164,32,0,0,0,0,0,0, + 164,32,0,0,0,0,0,0,32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 211,0,0,0,14,0,0,0,3,0,0,0,0,0,0,0,208,60,0,0,0,0,0,0,208,44,0,0,0,0,0,0,8,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,223,0,0,0,15,0,0,0,3,0,0,0,0,0,0,0, + 216,60,0,0,0,0,0,0,216,44,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0, + 8,0,0,0,0,0,0,0,235,0,0,0,6,0,0,0,3,0,0,0,0,0,0,0,224,60,0,0,0,0,0,0,224,44,0,0,0,0,0,0, + 224,2,0,0,0,0,0,0,6,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,244,0,0,0,1,0,0,0, + 3,0,0,0,0,0,0,0,192,63,0,0,0,0,0,0,192,47,0,0,0,0,0,0,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 8,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,249,0,0,0,1,0,0,0,3,0,0,0,0,0,0,0,232,63,0,0,0,0,0,0, + 232,47,0,0,0,0,0,0,40,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0, + 2,1,0,0,1,0,0,0,3,0,0,0,0,0,0,0,16,64,0,0,0,0,0,0,16,48,0,0,0,0,0,0,16,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,1,0,0,8,0,0,0,3,0,0,0,0,0,0,0, + 32,64,0,0,0,0,0,0,32,48,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,13,1,0,0,1,0,0,0,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,48,0,0,0,0,0,0, + 27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,22,1,0,0,1,0,0,0, + 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,59,48,0,0,0,0,0,0,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,37,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 107,48,0,0,0,0,0,0,60,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 49,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,167,49,0,0,0,0,0,0,184,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,63,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,95,50,0,0,0,0,0,0,139,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,75,1,0,0,1,0,0,0,48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,234,50,0,0,0,0,0,0, + 166,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,86,1,0,0,1,0,0,0, + 48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,144,51,0,0,0,0,0,0,123,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, + 16,52,0,0,0,0,0,0,120,3,0,0,0,0,0,0,34,0,0,0,18,0,0,0,8,0,0,0,0,0,0,0,24,0,0,0,0,0,0,0, + 9,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,136,55,0,0,0,0,0,0,15,2,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,17,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,151,57,0,0,0,0,0,0,102,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, + 0,0,0,0,0,0,0,0,0,0}; +const char* LinuxSubprocessHelperBinaryData::juce_linux_subprocess_helper = (const char*) temp0; + diff --git a/Builds/LinuxMakefile/pre_build/juce_LinuxSubprocessHelperBinaryData.h b/Builds/LinuxMakefile/pre_build/juce_LinuxSubprocessHelperBinaryData.h new file mode 100644 index 0000000..d546600 --- /dev/null +++ b/Builds/LinuxMakefile/pre_build/juce_LinuxSubprocessHelperBinaryData.h @@ -0,0 +1,10 @@ +/* (Auto-generated binary data file). */ + +#pragma once + +namespace LinuxSubprocessHelperBinaryData +{ + extern const char* juce_linux_subprocess_helper; + const int juce_linux_subprocess_helperSize = 17408; +} + diff --git a/JuceLibraryCode/BinaryData.cpp b/JuceLibraryCode/BinaryData.cpp index 83f87fe..1e14756 100644 --- a/JuceLibraryCode/BinaryData.cpp +++ b/JuceLibraryCode/BinaryData.cpp @@ -11,459 +11,471 @@ namespace BinaryData //================== BG.png ================== static const unsigned char temp_binary_data_0[] = -{ 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,2,184,0,0,1,44,8,6,0,0,0,40,223,192,231,0,0,0,9,112,72,89,115,0,0,25,174,0,0,25,174,1,24,70,182,191,0,0,0,25,116,69,88,116,83,111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101, -46,111,114,103,155,238,60,26,0,0,32,0,73,68,65,84,120,156,236,157,205,175,36,201,81,192,35,51,235,187,187,223,124,120,103,237,241,174,191,100,236,21,146,1,35,75,22,8,36,155,3,130,3,226,128,100,33,33,241,191,113,225,130,144,44,228,3,28,108,4,22,7,11,140, -132,13,216,216,96,108,239,14,187,222,157,157,29,118,222,188,238,174,174,47,14,67,244,214,84,69,84,87,118,197,123,93,211,27,63,201,26,111,119,191,168,200,232,136,206,168,136,172,76,115,255,254,253,6,20,69,81,20,69,81,20,229,76,176,167,86,64,81,20,69,81, -20,69,81,36,9,240,255,36,73,2,97,24,158,82,23,69,81,20,69,81,20,69,57,138,162,40,96,187,221,2,64,43,193,13,195,16,146,36,57,153,82,138,162,40,138,162,40,138,50,5,76,112,117,137,130,162,40,138,162,40,138,114,86,104,130,171,40,138,162,40,138,162,156,21, -154,224,42,138,162,40,138,162,40,103,69,112,248,35,126,56,231,32,73,18,48,198,128,115,142,252,140,49,6,172,181,80,215,53,52,205,180,93,202,156,115,34,114,172,125,150,235,55,77,51,89,86,16,4,80,85,149,152,78,117,93,79,146,35,109,239,166,105,38,235,116, -206,246,6,144,247,203,185,249,192,135,41,230,112,172,187,221,14,118,187,221,36,249,138,162,40,202,205,32,146,224,174,86,43,8,130,0,182,219,45,92,93,93,193,122,189,6,0,96,39,155,32,8,32,142,99,216,110,183,80,85,213,164,107,95,92,92,192,122,189,134,178, -44,39,201,137,227,24,172,181,144,231,249,228,100,226,226,226,2,174,174,174,38,143,45,77,83,104,154,6,242,60,159,52,113,59,231,32,203,50,88,175,215,147,117,90,46,151,144,231,57,148,101,57,73,167,48,12,33,12,67,216,110,183,179,177,55,222,152,77,245,1,107, -45,44,151,75,17,157,178,44,131,170,170,96,183,219,77,178,119,16,4,144,36,9,108,54,155,201,58,173,86,43,216,108,54,31,170,152,195,27,132,36,73,96,177,88,128,115,14,46,47,47,39,219,64,81,20,69,185,30,38,37,184,139,197,2,162,40,130,119,223,125,119,159,100, -142,169,236,4,65,0,101,89,138,76,182,214,90,145,4,183,40,10,112,206,137,36,92,206,57,184,186,186,154,172,83,93,215,80,215,181,72,130,91,215,181,72,130,107,140,129,237,118,43,146,224,70,81,4,155,205,102,54,246,46,203,82,44,193,5,0,145,132,171,105,26,40, -203,82,36,193,173,170,74,204,7,36,18,220,23,49,230,46,47,47,225,209,163,71,16,199,49,92,92,92,192,71,62,242,17,120,255,253,247,103,145,232,90,107,193,24,35,82,93,15,195,16,170,170,18,233,212,72,233,36,85,165,151,234,66,97,151,82,66,167,32,8,246,190,55, -5,105,31,152,250,59,143,58,1,76,239,212,72,218,91,178,19,41,233,223,231,234,3,82,246,246,229,168,4,215,57,7,119,238,220,129,119,222,121,7,158,62,125,10,69,81,120,59,47,126,126,170,225,240,239,37,228,72,234,36,45,103,138,172,182,141,230,164,211,28,237, -221,150,39,161,207,92,236,221,149,37,193,57,142,237,144,78,85,85,65,85,85,80,150,37,108,183,91,120,255,253,247,225,222,189,123,176,88,44,224,253,247,223,159,116,237,46,206,57,184,184,184,216,87,148,113,137,4,55,70,236,138,72,220,52,102,89,6,69,81,76, -78,220,113,235,201,169,201,178,49,6,210,52,133,162,40,38,223,160,69,81,180,255,30,167,22,14,226,56,22,209,41,77,211,125,225,96,10,81,20,129,115,14,138,162,152,236,3,139,197,2,118,187,157,72,103,12,0,38,23,106,176,131,34,97,239,246,247,38,213,137,148, -240,1,137,194,1,118,34,167,250,128,49,6,178,44,19,241,1,42,230,240,134,37,142,99,72,146,4,156,115,176,94,175,247,91,124,73,224,157,224,102,89,6,81,20,193,235,175,191,14,155,205,70,116,194,84,20,69,121,17,192,202,122,85,85,240,63,255,243,63,112,231,206, -29,120,233,165,151,224,221,119,223,157,44,59,12,67,88,173,86,240,228,201,19,120,235,173,183,246,19,241,161,234,78,24,134,16,199,49,172,215,235,201,201,77,211,52,34,21,113,169,101,63,198,24,168,170,74,164,43,130,137,187,68,87,100,183,219,137,116,69,170, -170,130,237,118,11,69,81,76,146,19,69,145,216,77,14,0,192,211,167,79,39,251,128,212,82,59,107,45,20,69,33,98,111,252,254,177,56,119,44,24,115,18,221,104,236,178,74,196,156,181,118,114,103,12,171,192,18,191,3,92,204,225,210,47,107,45,4,65,0,105,154,194, -221,187,119,161,40,10,184,186,186,154,116,77,0,207,4,119,185,92,194,173,91,183,224,173,183,222,130,40,138,32,8,62,248,243,221,110,7,155,205,230,185,207,91,107,97,181,90,245,228,224,96,130,32,232,57,87,85,85,144,231,121,47,208,23,139,197,115,215,67,226, -56,222,183,224,187,228,121,222,187,27,8,130,0,22,139,69,239,179,65,16,128,49,6,162,40,234,233,132,213,154,174,3,95,92,92,128,49,166,39,11,29,172,171,83,211,52,176,221,110,123,15,170,68,81,4,105,154,246,228,132,97,8,77,211,64,146,36,61,157,138,162,216, -223,96,180,185,117,235,86,79,142,181,22,194,48,4,107,109,239,243,117,93,147,63,172,105,154,66,20,69,61,89,113,28,239,219,151,93,40,31,112,206,193,114,185,236,125,214,57,7,206,185,253,24,219,224,143,125,55,168,150,203,37,249,224,226,144,189,243,60,135, -60,207,159,123,61,12,67,200,178,172,39,7,125,32,142,99,210,222,212,15,6,229,3,40,131,242,203,166,105,96,179,217,244,236,157,36,9,196,113,220,211,41,138,34,168,235,154,172,52,80,246,54,198,192,197,197,69,79,14,198,28,182,138,218,28,19,115,216,46,238,114, -221,49,183,90,173,246,45,207,54,167,138,185,166,105,96,177,88,236,245,253,196,39,62,1,111,188,241,70,79,238,88,62,242,145,143,192,211,167,79,225,141,55,222,120,46,41,28,51,9,75,87,196,199,94,119,172,156,23,165,74,127,211,114,186,242,36,100,156,171,189, -219,242,230,162,211,28,99,238,69,241,129,166,121,182,108,1,43,206,219,237,22,46,47,47,97,181,90,193,189,123,247,224,242,242,114,210,131,189,163,19,220,32,8,224,206,157,59,240,179,159,253,12,46,47,47,201,68,169,11,102,255,93,176,44,77,37,104,56,224,46, -219,237,150,76,38,219,107,66,169,235,119,193,42,64,23,108,237,108,183,219,209,58,93,93,93,145,58,89,107,225,234,234,138,181,73,151,178,44,73,157,210,52,133,186,174,201,74,3,231,116,148,28,107,237,190,253,65,37,0,220,205,1,85,77,104,154,102,127,55,54, -197,7,218,237,212,177,246,222,108,54,172,189,185,187,122,31,123,199,113,188,175,54,141,213,9,31,168,108,131,58,82,149,52,78,206,110,183,35,125,24,43,133,84,165,129,146,131,149,183,46,146,49,7,0,251,7,13,187,92,119,204,173,215,235,107,141,57,76,108,125, -98,238,233,211,167,0,240,44,246,182,219,45,220,187,119,15,30,62,124,216,251,220,16,248,251,250,214,91,111,193,211,167,79,247,55,52,220,196,194,125,47,248,94,247,253,161,9,234,144,172,46,190,58,225,235,99,117,226,126,231,219,255,27,35,103,72,39,238,61, -95,157,184,247,79,173,211,28,237,52,183,177,73,248,229,208,251,167,140,57,9,157,164,253,155,250,222,80,86,59,185,47,138,2,30,63,126,12,219,237,22,62,246,177,143,65,24,134,71,87,115,71,39,184,31,253,232,71,225,205,55,223,220,175,17,25,155,209,83,147,32, -150,190,177,50,53,6,238,115,40,99,108,9,29,19,134,46,88,25,244,89,43,54,164,83,93,215,163,117,226,90,143,168,203,84,123,99,213,14,215,192,76,209,9,237,55,86,39,206,222,216,154,144,178,183,132,15,96,69,209,71,39,74,14,86,18,37,236,221,94,243,57,53,230, -48,105,156,26,115,232,75,231,24,115,109,57,190,246,46,203,18,222,125,247,93,200,178,12,150,203,229,62,241,61,68,28,199,240,234,171,175,238,43,191,237,238,130,79,103,12,187,34,92,103,236,148,93,17,174,74,79,221,116,175,86,43,239,206,24,213,21,193,181, -125,93,176,43,66,249,202,110,183,235,221,112,13,117,69,194,48,244,234,138,100,89,6,97,24,246,100,73,117,69,156,115,123,189,40,123,251,116,69,240,134,127,108,87,132,243,1,212,197,183,51,214,5,253,200,167,19,57,212,25,139,162,136,244,143,235,142,57,174, -51,134,235,80,175,59,230,174,179,27,205,197,92,219,7,186,116,99,14,255,13,195,16,158,60,121,2,247,238,221,131,229,114,9,111,191,253,118,239,111,15,49,42,193,189,123,247,46,188,243,206,59,98,235,122,20,69,81,206,145,178,44,225,23,191,248,5,188,246,218, -107,163,18,92,99,12,220,191,127,31,126,242,147,159,192,251,239,191,223,251,125,245,169,210,7,65,176,223,153,100,106,87,4,119,202,232,78,132,92,85,153,171,136,99,66,66,117,69,184,167,188,169,206,24,86,127,124,186,34,220,195,72,120,147,199,117,69,40,219, -113,157,49,220,122,207,167,43,194,181,92,37,186,34,97,24,238,183,236,188,174,174,136,175,15,12,117,69,184,27,77,74,14,222,164,175,215,235,209,99,27,234,140,21,69,65,118,41,125,58,145,199,196,220,80,55,250,186,99,206,183,27,45,21,115,105,154,122,199,220, -211,167,79,193,24,3,79,159,62,133,251,247,239,195,106,181,130,203,203,203,158,236,33,70,37,184,105,154,194,207,127,254,115,242,206,83,81,20,69,121,6,86,54,30,62,124,56,106,169,194,199,63,254,113,120,243,205,55,225,242,242,114,244,3,47,67,93,17,76,222, -166,86,196,113,2,147,232,138,96,197,127,138,78,237,177,77,237,138,180,59,62,83,186,34,56,54,159,174,200,80,103,76,162,43,130,15,236,204,201,7,112,185,205,84,123,99,229,86,194,222,109,95,154,83,55,90,42,230,240,58,83,99,206,215,7,174,35,230,202,178,132, -55,223,124,19,62,251,217,207,122,239,50,113,240,168,222,123,247,238,193,163,71,143,38,63,109,168,40,138,242,97,160,174,107,248,223,255,253,95,184,123,247,238,224,231,150,203,37,188,247,222,123,236,218,97,69,81,148,15,59,88,253,127,240,224,1,124,252,227, -31,247,250,219,131,9,238,237,219,183,247,173,179,161,135,30,142,97,78,9,179,228,216,164,100,73,235,52,39,57,146,156,171,79,2,168,47,249,200,154,139,157,112,205,220,102,179,33,119,34,65,110,223,190,13,239,190,251,238,228,237,133,20,69,81,206,25,220,66, -237,233,211,167,228,174,76,28,7,19,92,92,112,141,89,180,196,41,34,184,0,95,98,66,146,216,96,25,0,188,31,44,25,66,106,108,184,207,230,84,112,194,149,168,18,161,156,169,227,227,118,135,152,162,211,84,208,222,18,9,14,181,6,238,24,112,179,110,9,123,75,250, -128,84,204,73,117,134,230,22,115,101,89,194,227,199,143,225,254,253,251,228,251,119,239,222,133,199,143,31,139,233,173,40,138,114,206,148,101,9,15,31,62,244,170,226,14,174,193,13,130,224,185,69,207,83,55,161,70,184,117,26,199,48,101,143,180,54,146,71, -109,118,159,118,60,22,73,123,75,217,73,74,39,159,181,116,135,144,178,183,148,15,224,205,160,4,26,115,227,152,91,204,225,67,18,175,190,250,42,249,254,157,59,119,224,135,63,252,161,120,103,76,234,59,150,172,136,207,141,57,118,51,36,191,55,41,89,18,55,214, -0,243,180,247,57,119,108,37,125,64,74,39,9,95,194,7,12,203,178,220,175,15,62,196,96,5,23,79,148,152,227,143,148,162,40,202,156,41,138,130,220,14,8,223,107,119,198,36,38,0,238,41,229,99,152,122,10,82,91,39,137,206,24,118,69,36,116,146,56,162,21,96,190, -93,17,169,78,164,84,23,74,178,19,41,229,3,146,49,39,213,137,148,26,155,207,54,158,67,72,218,91,170,59,138,157,177,151,94,122,105,212,231,7,43,184,113,28,139,158,11,172,40,138,242,97,96,168,138,130,7,156,104,103,204,143,115,238,138,204,177,51,54,55,31, -192,173,189,36,56,119,31,144,98,110,49,87,85,21,92,94,94,194,103,63,251,217,81,135,233,12,86,112,169,13,172,21,69,81,148,195,52,77,67,238,45,121,247,238,221,125,5,73,81,20,69,25,79,81,20,228,129,17,20,7,31,50,107,131,103,217,79,5,79,90,57,116,204,220, -24,194,48,36,79,97,241,5,79,35,145,210,73,66,142,148,189,141,49,179,179,183,181,118,118,246,150,242,1,73,123,107,204,141,215,105,78,246,54,198,176,203,19,112,211,115,69,81,20,197,15,159,223,78,175,89,42,73,18,145,9,201,57,7,113,28,139,76,146,105,154, -138,76,72,120,34,137,196,36,153,101,153,136,78,81,20,137,76,220,214,90,72,211,84,196,222,120,156,160,148,15,204,201,222,97,24,138,216,219,24,35,102,111,60,194,83,194,222,120,236,226,84,52,230,14,131,49,71,65,29,235,169,40,138,162,28,166,105,154,209,243, -216,244,217,78,81,20,69,57,154,48,12,69,146,115,231,156,88,37,27,143,251,156,74,16,4,98,55,141,82,58,225,113,182,83,145,236,138,68,81,52,59,31,144,42,66,161,189,165,124,64,170,227,51,183,206,216,220,98,78,82,39,41,31,240,181,183,38,184,138,162,40,39, -36,142,99,145,174,136,181,86,172,43,34,89,165,151,90,134,146,36,137,104,50,41,97,111,169,174,136,148,28,231,156,88,18,40,213,133,66,31,152,138,49,70,204,78,82,49,39,217,141,198,238,232,84,36,111,42,165,124,64,234,6,14,127,227,70,127,126,242,21,21,69, -81,20,69,81,20,101,70,104,130,171,40,138,162,40,138,162,156,21,131,125,3,108,9,164,105,10,77,211,64,16,4,96,173,37,75,214,101,89,246,246,58,195,191,239,130,235,132,168,141,150,113,31,191,238,147,114,92,137,27,229,116,91,32,77,211,236,55,62,111,195,149, -184,219,37,125,74,167,178,44,123,219,250,112,173,137,32,8,32,142,99,8,195,176,167,19,110,194,220,253,124,247,179,168,19,183,213,16,183,153,51,245,96,11,238,88,144,36,73,111,12,184,49,120,215,222,220,58,53,148,67,237,109,72,249,0,103,111,124,90,157,58, -41,133,179,247,144,15,248,216,27,219,120,148,28,99,12,121,74,10,103,111,170,109,138,187,40,72,216,27,215,138,73,196,28,250,101,119,12,156,78,156,189,81,206,156,98,206,215,7,14,197,156,181,118,180,15,12,197,156,68,107,86,81,20,69,241,199,171,130,139,147, -145,196,250,30,78,206,117,202,62,36,223,247,218,199,92,227,24,164,229,77,225,148,186,28,243,221,93,183,63,29,35,231,24,89,115,26,7,55,134,83,142,107,174,156,251,248,20,69,81,230,202,96,121,1,143,145,204,243,124,95,193,45,138,130,60,221,130,218,246,166, -105,26,242,140,120,92,220,77,29,115,200,157,125,92,20,5,89,53,12,195,144,61,230,144,146,83,85,21,169,83,211,52,224,156,219,143,117,140,78,121,158,147,19,88,28,199,176,219,237,122,58,113,91,3,85,85,69,110,250,110,173,133,186,174,201,163,0,135,116,234, -226,156,219,143,109,172,189,185,227,21,195,48,132,221,110,71,158,76,66,201,193,227,44,169,215,81,214,88,157,118,187,29,107,111,202,7,56,123,115,58,161,236,169,62,128,21,92,31,31,224,236,237,156,131,178,44,69,98,206,90,43,26,115,212,123,62,62,112,76,204, -13,249,192,156,98,206,90,187,175,66,83,239,165,105,10,89,150,65,211,52,251,39,149,177,122,220,166,40,10,178,34,78,85,233,219,21,99,170,115,128,71,212,182,193,135,109,186,96,7,130,170,114,83,58,225,150,111,148,28,99,12,89,17,199,106,127,87,215,52,77,201, -152,138,162,104,223,37,104,131,39,92,117,109,141,219,254,117,137,162,104,111,43,170,74,223,61,238,24,31,182,233,130,157,200,52,77,71,219,27,175,221,5,245,196,49,182,241,245,1,156,95,187,58,113,246,230,30,220,194,177,81,246,166,186,71,156,15,224,152,168, -131,163,40,123,3,60,219,246,175,11,198,8,101,239,99,124,128,139,57,234,247,150,243,1,201,152,67,59,141,141,57,124,192,173,75,59,230,198,250,0,23,115,67,62,112,157,49,7,64,251,0,250,24,117,13,138,131,253,51,60,138,14,127,220,219,255,27,3,53,137,180,91, -211,99,79,243,57,116,77,159,83,129,168,207,182,199,53,85,167,235,144,51,197,222,237,54,176,132,78,109,127,56,86,39,148,225,115,212,225,117,219,187,174,235,253,242,132,41,178,112,50,151,28,219,220,98,206,71,14,167,211,185,199,220,144,253,218,191,171,248, -239,216,13,204,185,113,162,76,234,204,119,238,28,120,244,121,238,26,99,111,134,56,157,134,236,201,217,152,211,9,199,70,37,18,62,58,181,237,196,233,59,70,78,251,183,226,186,116,242,157,243,80,62,245,125,115,177,49,244,58,101,111,95,31,192,215,40,155,12, -221,128,118,125,160,237,75,99,237,221,190,62,245,249,177,133,177,33,57,67,246,246,245,111,159,152,227,116,194,207,75,232,132,114,36,252,123,200,222,156,78,93,80,151,177,191,243,186,64,76,81,20,229,6,193,10,49,86,174,219,93,145,49,73,117,211,208,85,122, -156,164,168,170,17,254,93,23,106,125,50,192,7,21,113,234,61,10,174,34,142,203,89,184,163,137,41,157,168,110,133,49,6,226,56,102,187,10,148,28,234,89,14,128,103,85,32,172,210,141,189,137,161,236,141,213,82,170,115,192,233,196,217,59,138,162,189,189,199, -232,52,212,21,9,130,192,203,222,84,55,14,224,89,101,151,179,55,197,80,87,164,105,154,201,62,128,21,115,9,123,159,115,204,1,60,179,249,156,98,206,57,7,85,85,137,196,220,208,184,123,159,31,245,41,69,81,20,69,140,110,101,222,183,74,47,85,125,62,244,185, -177,114,134,116,106,235,54,69,39,169,177,73,219,91,98,108,248,158,79,87,228,186,237,237,43,103,72,39,137,239,14,109,35,229,75,115,243,129,246,119,55,22,169,239,238,38,229,72,125,119,99,208,109,194,20,69,81,20,69,81,148,179,194,171,130,75,45,78,62,134, -186,174,71,183,98,110,82,39,223,187,213,235,214,73,202,70,77,211,140,110,197,28,2,229,76,149,213,52,205,232,86,204,88,157,166,130,235,190,164,198,38,161,19,181,85,214,49,224,3,15,146,62,32,161,19,128,95,197,130,99,174,49,167,40,138,162,156,6,175,4,23, -215,105,76,157,0,112,13,154,196,132,68,61,129,125,12,152,108,73,200,218,110,183,34,99,195,9,82,194,222,212,211,243,199,224,179,134,102,8,92,171,51,39,123,75,249,64,211,52,98,58,105,204,141,99,142,49,39,21,43,138,162,40,138,63,94,9,174,212,143,181,84, -165,20,192,111,247,132,33,36,39,162,115,214,233,156,199,118,206,58,105,204,141,227,20,58,97,245,89,226,198,74,170,106,44,117,51,36,213,21,1,144,235,28,72,201,145,236,140,73,221,12,73,235,36,89,56,144,64,210,7,36,98,78,186,51,38,21,115,18,99,3,144,243, -1,201,174,159,143,63,233,67,102,138,162,40,39,68,42,185,193,189,148,165,42,226,115,170,210,99,87,100,78,9,174,100,34,33,213,21,41,138,66,236,134,98,179,217,204,202,7,234,186,22,243,1,201,78,164,148,15,72,250,183,212,82,187,185,197,28,118,163,199,202, -210,4,87,81,20,229,132,72,86,141,37,43,254,115,146,35,41,75,117,122,49,229,72,202,82,157,94,76,57,190,178,116,23,5,69,81,20,69,81,20,229,172,240,74,112,23,139,5,68,81,52,249,124,245,48,12,97,185,92,146,199,213,249,114,113,113,49,250,216,182,33,226,56, -134,44,203,200,35,11,143,209,137,58,142,209,151,44,203,32,142,227,201,246,118,206,193,106,181,18,177,247,114,185,220,31,5,56,133,48,12,97,177,88,204,202,222,73,146,64,154,166,147,117,178,214,194,197,197,133,136,189,207,57,230,162,40,18,139,185,91,183, -110,137,248,64,154,166,144,36,137,72,204,45,151,203,201,114,20,69,81,148,227,240,154,89,240,84,26,101,24,73,27,73,201,154,155,28,73,230,168,147,36,231,250,221,205,77,31,128,121,198,174,162,40,138,226,143,46,81,80,20,69,57,33,203,229,82,180,74,47,85,17, -151,168,210,75,117,69,140,49,162,93,17,137,206,88,16,4,98,157,49,201,174,136,84,103,236,246,237,219,179,234,138,72,118,198,164,99,110,78,62,144,36,137,72,103,204,24,35,214,25,147,140,57,159,206,152,38,184,138,162,40,138,162,40,202,89,161,9,174,162,40, -138,162,40,138,114,86,12,214,158,141,49,96,173,5,107,45,52,77,179,95,131,139,255,221,134,219,72,158,42,147,119,229,118,161,100,113,235,127,219,58,77,145,99,173,245,146,195,141,77,82,39,41,123,227,107,82,246,230,190,59,95,157,240,127,20,212,230,210,215, -109,239,182,157,198,200,225,62,219,246,165,169,246,30,146,117,140,95,74,232,212,150,53,69,78,219,151,198,200,1,184,153,152,147,242,111,78,31,69,81,20,229,250,25,76,112,173,181,144,101,25,44,151,75,104,154,6,162,40,130,48,12,201,147,36,118,187,29,108, -183,219,231,94,51,198,192,114,185,36,229,226,147,248,221,9,163,170,42,200,243,188,119,141,52,77,201,181,32,184,174,131,74,136,242,60,135,60,207,159,123,205,57,7,89,150,245,62,27,4,1,24,99,32,8,130,158,78,101,89,66,158,231,80,85,213,115,175,115,235,92, -162,40,2,128,126,146,134,27,39,119,79,27,10,195,16,146,36,233,201,9,195,16,154,166,33,215,229,20,69,65,110,194,76,217,219,24,179,95,111,212,253,60,110,156,220,213,41,142,227,253,56,186,175,59,231,122,182,0,160,125,192,57,7,139,197,162,247,89,231,28,56, -231,200,68,162,170,42,216,110,183,189,107,164,105,74,174,117,226,236,13,240,108,243,108,60,238,22,9,130,0,210,52,237,125,22,125,0,237,222,166,44,75,242,56,88,206,222,113,28,3,64,127,207,62,206,7,162,40,218,255,77,247,245,185,197,92,146,36,96,173,21,139, -57,231,220,181,198,92,158,231,61,31,56,20,115,212,184,125,99,46,12,67,145,53,117,138,162,40,138,63,131,9,110,93,215,176,94,175,225,234,234,106,255,163,94,20,5,121,42,5,87,21,186,186,186,234,95,52,8,160,174,107,216,108,54,228,36,201,37,42,92,197,101,187, -221,146,9,0,165,83,85,85,164,78,81,20,129,115,14,242,60,39,39,73,74,214,102,179,33,245,177,214,194,122,189,38,147,64,106,108,69,81,144,159,77,211,148,61,211,158,211,137,26,27,38,145,62,246,222,237,118,236,177,159,187,221,14,202,178,28,229,3,117,93,147, -58,225,228,79,37,141,67,246,166,124,192,57,231,101,239,178,44,73,157,48,225,161,142,39,108,154,134,148,197,217,219,24,3,235,245,122,180,189,139,162,96,125,184,44,203,201,49,231,156,131,36,73,68,99,142,58,53,235,20,49,7,224,239,3,55,17,115,171,213,138, -140,33,76,234,241,102,218,90,187,79,242,169,27,208,174,254,248,247,93,240,134,17,255,237,234,78,157,184,228,156,27,172,100,83,137,190,175,78,248,222,88,157,168,107,162,62,148,190,156,28,174,59,128,114,168,98,6,53,54,78,39,212,5,227,125,140,78,67,246, -166,110,244,56,157,94,52,31,192,155,70,42,166,168,56,228,124,0,175,33,229,3,99,99,142,211,9,237,44,225,3,40,103,170,189,81,206,84,31,104,119,197,186,58,161,221,186,58,93,119,204,249,118,198,6,19,92,28,0,78,100,168,136,207,113,144,148,243,98,245,7,101, -141,129,59,15,185,173,227,24,184,128,170,235,26,140,49,251,163,247,198,192,93,83,82,39,9,123,183,229,73,216,187,170,170,209,58,113,99,67,135,247,177,55,247,57,95,95,226,116,170,170,74,196,7,186,177,50,134,49,99,155,26,115,190,126,121,40,230,198,158,9, -126,19,49,39,229,3,146,49,199,221,20,89,107,247,187,11,96,103,12,43,236,221,107,238,118,187,94,69,220,24,67,118,32,176,43,130,215,238,234,72,85,196,177,35,211,5,117,225,170,244,221,138,184,115,110,176,43,66,117,106,176,74,223,125,157,122,226,30,43,226, -73,146,144,73,18,213,133,10,130,128,237,138,212,117,77,78,182,69,81,244,116,226,236,141,223,25,234,208,166,170,170,125,33,160,13,87,213,199,238,10,149,124,80,62,96,173,29,244,1,170,83,83,150,37,236,118,187,158,15,96,71,134,210,105,200,222,93,223,8,130, -96,176,43,66,37,240,69,81,144,99,166,198,134,157,72,46,41,165,138,50,97,24,146,157,72,223,152,227,236,221,78,254,198,250,64,20,69,100,242,118,202,152,75,211,244,168,152,163,124,64,34,230,80,167,46,248,157,141,221,217,65,143,234,85,20,69,185,65,176,123, -181,94,175,161,105,158,61,219,224,219,21,89,175,215,189,215,113,114,161,170,244,92,245,153,171,210,59,231,96,179,217,140,174,136,87,85,69,234,132,75,200,168,9,140,155,204,135,58,99,62,29,8,174,74,15,0,131,93,17,234,53,106,108,152,176,249,216,155,235, -140,161,141,198,118,34,57,31,144,236,140,5,65,224,101,239,178,44,73,157,48,65,242,233,138,80,114,176,122,231,99,111,174,51,118,202,152,163,146,85,0,217,152,179,214,178,157,177,83,196,28,94,119,170,15,56,231,216,239,148,66,19,92,69,81,148,27,228,186,59, -99,18,93,17,156,116,164,58,99,92,27,146,130,146,211,150,49,151,42,61,86,73,37,186,34,248,222,212,177,57,231,102,233,3,248,222,20,123,183,219,226,115,234,140,73,118,235,164,236,141,250,78,141,57,41,31,240,237,252,114,58,181,59,145,99,208,71,124,21,69, -81,20,69,81,148,179,194,171,130,235,115,23,62,4,183,208,249,24,164,228,248,220,21,28,98,110,99,67,89,115,146,3,64,183,130,142,65,210,7,218,255,78,145,51,199,177,73,250,165,4,146,118,146,146,53,199,152,83,20,69,81,252,241,74,112,113,253,196,212,9,160, -174,107,114,253,211,49,80,235,76,142,1,203,249,18,58,81,235,159,142,1,215,7,73,216,91,202,78,248,144,194,84,157,80,198,220,236,61,245,40,65,68,74,39,140,19,9,31,160,214,63,29,3,245,176,210,49,72,198,28,183,78,204,23,233,152,83,20,69,81,78,131,87,130, -59,118,97,239,33,164,42,193,0,192,110,101,229,139,196,132,141,72,233,36,101,239,166,105,196,116,146,146,115,206,62,32,105,111,141,185,113,204,205,222,77,211,144,15,176,80,72,86,141,165,108,42,113,19,11,240,193,26,220,57,117,14,36,187,34,82,118,146,252, -237,153,163,15,72,33,53,182,185,118,198,36,237,45,229,151,115,146,227,219,105,215,135,204,20,69,81,78,8,238,187,60,167,174,136,100,149,94,2,110,91,162,99,224,182,166,242,69,186,43,34,213,137,156,99,103,12,64,102,233,23,181,71,249,49,72,197,220,92,59, -99,18,114,164,99,14,101,78,193,183,51,166,9,174,162,40,202,9,209,42,253,56,230,90,165,151,64,125,224,48,218,25,27,199,28,99,78,186,67,49,54,81,214,93,20,20,69,81,20,69,81,148,179,194,43,193,229,78,224,240,197,57,7,81,20,137,60,208,195,157,196,227,75, -16,4,251,211,100,166,194,157,12,227,11,110,218,61,85,39,107,237,126,243,231,169,72,217,91,210,7,230,102,111,99,140,152,78,24,115,83,117,210,152,27,135,116,204,73,61,180,168,40,138,162,248,225,157,224,114,231,40,123,93,212,218,253,81,121,83,145,74,220, -156,115,98,147,173,148,78,97,24,138,36,18,198,24,177,201,22,191,55,9,31,152,155,189,241,172,108,137,4,87,42,153,148,242,1,233,155,28,141,185,97,208,7,20,69,81,148,211,160,75,20,20,69,81,78,72,146,36,34,157,49,60,54,84,34,209,79,211,84,36,209,15,195,80, -228,102,207,24,3,105,154,138,221,160,73,220,88,57,231,196,58,7,82,62,32,101,111,0,128,44,203,102,215,21,145,246,129,169,104,204,141,35,138,34,49,31,72,146,100,180,28,77,112,21,69,81,78,72,16,4,34,93,17,99,140,200,164,13,0,98,29,54,231,156,72,215,15,0, -196,170,253,104,239,169,160,189,165,58,99,18,114,164,117,146,176,83,16,4,34,137,27,128,156,15,160,28,169,152,147,210,105,78,157,72,0,57,31,144,26,155,181,214,235,70,80,19,92,69,81,20,69,81,20,229,172,208,4,87,81,20,69,81,20,69,57,43,6,107,189,214,90, -200,178,12,150,203,37,52,77,179,127,200,140,106,131,21,69,209,219,128,215,24,3,139,197,130,148,139,101,253,238,126,102,85,85,237,143,131,109,195,173,81,194,7,57,226,56,238,189,183,219,237,96,183,219,61,247,154,115,14,210,52,237,125,22,75,250,206,185, -158,78,101,89,146,27,76,115,107,148,162,40,34,79,220,192,141,170,187,123,203,133,97,72,234,31,134,33,52,77,179,255,183,77,81,20,228,6,211,203,229,178,39,7,31,234,3,232,159,42,131,27,85,119,247,5,228,214,40,97,203,130,218,215,142,178,55,250,80,23,108, -93,90,107,71,251,0,183,70,201,215,222,65,16,64,146,36,61,57,56,222,32,8,70,251,192,98,177,232,181,130,218,15,24,81,246,46,138,162,167,83,20,69,228,67,73,184,118,73,42,230,0,250,155,109,87,85,5,69,81,244,124,224,38,98,206,90,123,214,49,39,181,100,64,81, -20,69,241,99,48,193,197,141,149,241,71,221,57,183,159,12,187,63,242,220,102,199,221,201,14,224,131,137,13,79,148,233,94,147,218,196,23,207,173,239,18,134,33,148,101,73,110,220,76,125,30,39,188,46,184,30,199,71,167,162,40,216,228,166,40,10,50,9,164,116, -194,36,179,11,38,127,212,164,202,109,116,76,201,193,100,146,210,137,59,250,142,219,76,57,8,130,189,189,199,248,0,103,111,156,248,125,236,93,150,37,105,83,73,123,251,234,68,109,132,141,201,164,143,189,57,157,110,42,230,56,31,24,138,57,202,71,124,124,0, -0,188,127,7,168,152,3,120,150,108,207,45,230,164,142,167,84,20,69,81,252,57,152,224,150,101,185,159,92,49,145,160,38,91,234,135,156,59,121,4,147,101,106,98,227,100,113,39,143,112,213,39,78,14,86,208,186,96,37,73,66,167,36,73,216,201,214,39,121,15,130, -96,175,47,103,223,46,212,216,234,186,102,19,46,78,78,89,150,100,34,129,246,230,190,87,234,53,238,52,20,238,134,98,72,39,138,170,170,216,155,28,31,31,192,135,97,184,163,23,199,218,251,208,77,142,143,189,207,57,230,140,49,16,4,129,168,78,18,49,135,54,156, -26,115,220,145,153,206,57,88,46,151,176,90,173,0,224,131,189,142,41,125,242,60,239,85,233,173,181,108,213,152,123,128,170,44,75,242,40,208,44,203,200,42,61,86,183,41,159,203,243,188,151,212,135,97,72,86,233,49,166,134,58,16,221,113,47,151,75,114,12,248, -244,52,117,83,149,231,57,217,21,225,58,53,117,93,179,29,136,60,207,159,187,134,49,102,255,93,181,25,122,192,168,170,42,200,243,188,231,175,105,154,146,182,192,39,241,199,250,128,115,142,236,212,96,87,140,234,116,113,62,176,88,44,216,206,216,98,177,24, -109,111,206,7,208,191,168,14,85,81,20,176,221,110,123,215,88,173,86,236,141,44,5,118,253,186,58,197,113,76,254,13,118,87,168,248,148,140,57,170,59,58,20,115,148,127,115,49,23,4,1,219,29,197,223,214,46,190,49,199,253,14,92,119,204,1,0,92,92,92,244,62, -139,157,177,177,91,48,30,124,28,13,43,41,237,139,251,156,117,205,125,14,95,159,42,103,236,251,135,62,219,30,231,92,116,234,234,118,172,156,182,173,37,116,146,248,238,164,237,45,49,182,174,143,31,43,7,127,152,37,117,58,133,95,222,132,127,75,249,128,175, -79,94,183,78,67,250,224,228,128,19,187,49,230,185,66,66,247,179,148,236,205,102,211,123,29,39,17,106,2,227,170,244,84,82,0,240,108,146,164,38,103,78,167,170,170,72,157,112,210,166,38,48,206,198,212,89,243,184,124,140,74,208,240,250,99,117,194,49,112, -85,122,234,53,74,14,38,133,148,189,241,26,93,184,27,67,107,45,251,93,112,178,41,157,112,25,161,175,15,80,4,65,192,218,219,199,7,48,225,225,124,128,98,187,221,246,94,179,214,238,237,52,214,7,202,178,36,117,149,138,57,188,33,230,124,128,91,202,39,17,115, -156,15,224,205,18,117,227,240,162,196,28,0,176,246,230,10,7,20,211,55,222,83,20,69,81,70,131,21,98,156,92,219,235,178,199,36,213,67,93,17,107,45,187,148,135,130,171,136,215,117,189,79,0,198,80,215,53,57,9,99,69,145,75,52,40,184,14,27,234,196,233,220, -133,155,8,163,40,98,147,27,31,157,0,62,176,147,132,189,49,249,157,226,3,88,133,243,209,233,208,216,198,218,155,243,1,92,207,62,213,7,156,115,98,62,208,238,68,78,141,57,231,156,136,15,180,59,145,99,116,186,238,152,51,198,136,198,28,142,111,138,78,0,31, -116,199,198,160,187,40,40,138,162,156,16,159,170,243,41,228,77,69,66,31,223,170,250,77,112,29,186,76,149,121,76,39,227,186,145,250,238,230,56,182,235,224,92,199,39,21,191,62,50,52,193,85,20,69,81,20,69,81,206,10,175,37,10,212,182,61,199,48,244,224,148, -47,146,58,213,117,61,43,157,198,182,7,15,209,52,244,83,225,199,128,114,36,238,198,231,230,3,216,246,144,24,155,148,189,165,108,196,173,127,58,6,201,152,147,186,171,159,99,204,73,201,82,20,69,81,252,241,78,112,37,240,89,36,124,8,106,49,250,49,72,78,70, -220,34,107,95,164,116,170,235,90,204,78,212,98,244,99,24,187,166,103,12,115,179,119,211,52,98,246,214,152,27,199,220,124,0,99,238,69,109,55,190,168,122,43,202,41,56,215,120,145,26,215,169,236,163,15,153,41,138,162,156,16,172,62,79,157,4,164,171,244,18, -55,68,82,93,17,0,16,239,66,77,69,210,222,220,83,248,167,212,105,187,221,138,232,36,85,204,192,221,10,36,59,62,115,139,57,169,78,164,212,30,220,115,235,140,113,91,78,114,104,130,171,40,138,114,66,180,74,127,24,201,174,136,228,100,43,213,209,154,99,103, -108,110,246,198,4,87,2,141,185,195,204,57,230,198,38,239,250,144,153,162,40,138,162,40,138,114,86,120,37,184,120,156,237,84,140,49,228,169,25,199,96,173,21,211,73,66,14,0,136,141,109,142,58,169,189,199,49,55,157,52,230,198,49,71,157,20,69,81,20,127,188, -126,129,23,139,5,68,81,52,121,2,192,35,230,168,227,1,125,89,46,151,228,145,116,190,68,81,4,105,154,138,76,74,171,213,74,68,167,52,77,247,39,1,77,1,143,6,149,176,247,98,177,128,32,8,196,124,96,78,246,142,227,24,146,36,153,172,19,30,235,40,97,239,44,203, -196,98,142,59,146,211,23,141,185,195,224,81,170,82,201,178,162,40,138,226,135,150,24,20,69,81,78,8,158,29,63,21,60,90,83,66,150,148,28,60,94,85,2,201,177,73,232,116,238,246,150,40,100,0,200,233,36,109,239,57,234,52,39,123,3,204,79,39,180,247,232,235, -78,190,162,162,40,138,114,52,105,154,66,100,200,205,206,0,0,32,0,73,68,65,84,24,134,34,85,250,52,77,69,38,36,201,42,125,28,199,147,39,55,99,12,44,22,11,145,73,50,73,18,17,123,59,231,196,186,80,216,25,155,10,250,128,132,78,82,93,168,56,142,69,186,80,146, -62,144,166,169,88,39,82,202,222,82,62,16,69,145,72,39,210,24,35,230,3,82,191,113,206,57,175,223,56,77,112,21,69,81,20,69,81,148,179,66,19,92,69,81,20,69,81,20,229,172,24,172,135,27,99,32,8,130,125,217,220,90,11,65,16,144,27,255,214,117,221,219,15,14, -255,190,119,209,32,0,231,28,4,65,208,43,163,55,77,67,110,82,204,181,19,80,39,138,99,117,234,94,155,211,41,12,67,242,186,206,57,118,237,74,85,85,61,251,89,107,201,54,0,218,154,218,103,143,123,157,210,9,215,191,112,246,198,99,138,187,99,160,90,28,214,90, -118,220,62,246,14,195,208,219,222,156,15,160,28,9,123,27,99,200,107,251,248,0,174,19,162,236,205,233,196,217,27,245,28,27,115,156,78,40,95,99,238,131,49,80,62,128,118,162,54,129,63,38,230,36,218,123,138,162,40,138,63,7,19,92,92,207,209,52,13,132,97,184, -255,225,238,254,248,23,69,65,254,248,199,113,220,123,13,39,200,56,142,123,19,15,78,106,93,89,237,68,187,251,122,93,215,228,68,66,157,198,99,173,37,117,194,137,63,142,227,222,216,202,178,36,39,60,180,71,23,231,28,57,182,166,105,200,147,65,240,243,220, -216,140,49,164,189,41,157,124,237,141,39,177,116,95,15,130,128,156,184,219,55,59,93,40,123,27,99,72,157,48,33,161,236,205,249,0,38,197,148,172,40,138,70,219,155,243,129,246,120,199,250,0,181,182,12,19,58,206,222,237,127,187,99,232,130,126,57,54,230,56, -123,31,138,57,28,99,247,218,31,198,152,107,154,70,44,230,52,193,85,20,69,57,13,131,9,46,158,100,177,217,108,246,63,250,69,81,144,167,82,80,21,166,166,105,200,51,226,241,71,127,179,217,144,19,18,117,74,197,110,183,35,175,235,156,131,237,118,219,155,84, -57,57,117,93,147,58,69,81,180,151,69,85,147,168,241,109,183,91,178,98,20,4,129,215,216,112,50,167,224,142,2,228,100,81,99,195,132,192,71,167,162,40,200,83,113,172,181,144,231,57,249,30,87,101,164,116,10,130,0,162,40,34,143,131,228,116,202,243,92,196, -222,85,85,145,58,225,205,4,117,82,10,231,3,155,205,134,76,112,173,181,222,246,166,110,16,141,49,80,150,37,121,242,14,37,71,99,110,90,204,225,231,37,98,142,139,33,99,12,132,97,8,81,20,65,211,52,251,155,8,42,169,174,235,186,39,3,255,190,11,222,0,114,55, -123,84,37,155,123,240,195,57,199,190,71,157,222,196,85,245,81,6,245,125,54,77,3,101,89,146,55,141,93,240,166,49,138,34,210,239,168,234,58,222,68,83,99,195,113,141,177,55,167,19,202,167,110,188,143,177,119,20,69,228,141,44,165,19,103,111,148,193,249,0, -101,239,67,62,192,117,161,198,218,59,12,195,125,236,80,49,53,214,7,176,35,194,249,0,101,111,174,139,134,114,164,98,78,194,7,176,168,68,189,231,227,3,40,99,170,15,96,39,146,242,129,99,98,14,101,76,137,57,44,26,140,45,28,28,76,112,113,16,109,7,245,57,195, -153,154,180,177,5,200,181,252,40,184,4,16,117,26,43,135,251,44,38,55,84,187,254,148,58,181,237,63,134,161,107,74,217,27,245,146,240,1,234,7,224,24,157,230,228,3,56,73,249,216,251,144,15,72,216,219,87,167,23,197,222,146,58,117,127,243,198,192,93,147,75, -210,49,89,195,137,191,189,132,168,11,117,131,193,77,182,248,195,79,45,249,224,226,140,155,44,80,159,238,164,199,217,153,91,186,132,135,130,80,58,149,101,73,38,24,212,117,241,166,145,74,88,184,243,233,57,157,48,193,229,110,52,187,239,113,246,198,132,43, -12,67,178,43,194,253,54,80,223,243,208,114,22,234,230,246,144,78,156,15,112,75,145,184,229,104,220,146,38,202,7,134,116,2,248,32,209,109,195,29,45,204,45,253,26,242,1,42,222,134,124,160,125,115,217,134,59,86,246,148,49,231,243,59,112,108,204,249,248, -0,38,165,99,127,7,156,115,80,215,53,107,111,74,167,33,123,143,221,33,98,250,158,20,138,162,40,202,104,154,166,129,60,207,247,157,49,231,220,190,90,78,85,184,186,112,21,113,76,32,168,174,8,254,93,23,42,121,66,89,155,205,134,189,9,232,194,117,69,112,139, -176,60,207,71,87,215,183,219,109,239,53,172,38,81,157,3,78,39,106,2,70,89,85,85,141,174,210,15,117,69,140,49,94,58,13,117,69,176,51,54,198,7,56,123,71,81,4,65,16,120,249,64,158,231,189,215,80,150,207,216,56,157,240,243,92,103,204,167,43,98,173,245,210, -105,168,19,137,221,232,49,246,230,124,0,151,125,113,246,230,124,128,2,191,55,74,95,159,223,129,99,98,142,242,1,76,160,79,17,115,0,180,15,4,65,192,126,167,20,154,224,42,138,162,220,32,221,46,200,49,85,122,46,121,105,203,59,86,14,234,56,244,62,245,121, -46,49,104,143,239,88,157,218,203,28,36,117,154,98,239,118,87,100,170,78,120,141,177,29,8,78,39,105,31,224,186,16,67,159,31,210,105,138,189,219,239,205,197,7,186,157,237,99,229,180,101,73,140,77,194,7,48,230,164,116,146,182,247,24,116,155,48,69,81,20, -69,81,20,229,172,240,170,224,250,172,151,28,2,215,239,140,205,194,15,233,36,33,7,215,3,206,73,39,41,57,0,64,182,190,142,1,43,12,82,54,151,96,110,62,224,179,22,244,16,146,49,39,233,3,146,246,150,96,110,49,135,246,86,20,69,81,78,131,87,130,139,235,39,166, -78,0,237,135,214,166,146,231,185,72,50,129,137,132,132,78,220,122,28,95,48,33,153,170,83,93,211,59,49,28,3,181,142,234,24,230,106,111,128,233,201,59,174,55,147,208,9,215,136,157,115,204,73,216,105,110,49,215,52,13,187,214,78,81,20,69,185,126,188,43,184, -18,72,86,184,164,170,36,82,213,68,0,57,157,36,237,61,55,157,230,104,239,57,234,164,49,55,142,185,218,123,76,162,60,199,170,241,208,214,133,62,84,85,69,110,125,117,172,44,9,230,216,21,145,146,35,29,231,115,250,222,0,100,117,146,140,57,201,162,143,132, -28,169,98,134,164,127,75,198,220,88,244,33,51,69,81,148,19,130,7,81,72,84,233,231,86,17,231,182,166,242,165,105,248,221,33,124,193,202,250,220,58,99,82,29,8,169,68,137,218,87,250,88,157,0,100,236,45,213,65,148,140,57,159,135,176,134,56,231,152,195,157, -67,36,124,128,218,249,130,67,19,92,69,81,148,19,34,89,53,150,90,179,63,199,78,205,220,116,146,94,107,47,129,250,192,205,202,153,163,15,204,209,222,167,138,57,221,69,65,81,20,69,81,20,69,57,43,188,18,220,36,73,216,163,228,124,8,130,0,210,52,29,125,26, -197,16,89,150,145,167,99,248,18,134,33,196,113,44,242,84,247,98,177,16,57,131,62,142,99,17,123,91,107,33,203,50,17,123,167,105,74,158,48,226,75,24,134,144,36,137,136,78,82,246,142,162,104,127,124,227,20,140,49,176,88,44,68,198,38,21,115,206,185,179,142, -185,229,114,41,22,115,18,62,96,173,133,52,77,197,118,137,80,20,69,81,252,240,154,237,184,227,220,124,193,83,105,36,126,252,169,163,237,142,1,143,56,156,147,78,62,103,46,15,129,199,246,73,141,13,101,78,69,98,108,0,243,243,1,73,255,246,57,150,112,8,238, -24,200,99,152,155,189,1,96,118,246,198,152,83,20,69,81,78,131,46,81,80,20,69,57,33,89,150,137,84,233,195,48,20,235,212,172,86,43,145,4,61,138,34,72,146,68,228,166,81,170,74,159,166,169,72,149,222,57,39,214,169,89,44,22,98,157,49,169,78,205,106,181,18, -235,138,72,116,106,172,181,98,62,48,199,152,91,46,151,179,139,57,41,31,72,146,68,44,230,178,44,27,45,71,19,92,69,81,148,19,98,173,21,91,202,32,49,209,162,28,169,42,189,49,70,76,150,4,82,99,51,198,136,201,146,234,102,161,78,18,72,117,69,206,217,191,37, -101,73,202,153,155,78,82,190,228,235,223,154,224,42,138,162,40,138,162,40,103,133,38,184,138,162,40,138,162,40,202,89,49,184,224,195,57,7,203,229,18,46,46,46,160,105,154,253,83,230,73,146,244,246,218,43,138,2,54,155,205,115,175,225,154,25,74,110,16,4, -224,156,235,201,169,235,26,182,219,109,239,180,10,238,201,237,36,73,192,57,71,238,141,150,231,57,228,121,254,252,128,131,0,178,44,235,125,22,31,160,11,195,176,167,83,89,150,228,241,164,171,213,138,44,187,227,250,23,106,239,183,237,118,219,59,194,19,109, -218,37,138,34,104,154,6,226,56,38,237,189,221,110,123,175,95,92,92,244,228,224,184,172,181,61,157,112,243,108,220,136,25,225,118,75,136,227,24,130,32,32,55,201,222,237,118,176,221,110,159,123,13,215,169,117,193,7,232,130,32,232,201,169,170,10,242,60, -239,249,0,183,91,130,175,189,113,157,90,23,28,47,218,189,77,89,150,228,166,215,148,189,141,49,16,199,49,105,111,220,60,187,107,111,92,167,214,37,138,34,168,235,122,116,204,225,186,169,46,237,152,163,124,96,110,49,87,85,21,108,183,219,27,143,57,244,1, -137,152,227,190,83,69,81,20,229,250,25,76,112,113,226,91,175,215,251,215,202,178,236,77,206,248,89,234,181,238,4,12,240,108,178,141,162,136,156,44,184,141,124,169,36,12,224,217,68,66,77,132,0,244,38,197,85,85,145,58,69,81,180,151,69,141,131,26,223,102, -179,33,39,91,231,28,121,10,12,119,226,73,89,150,164,78,248,121,234,76,123,238,20,22,74,14,30,149,185,217,108,70,219,123,183,219,145,71,226,25,99,216,247,124,124,32,8,2,8,195,208,219,7,36,236,205,249,0,126,182,155,160,225,123,148,189,215,235,53,169,147, -49,198,75,167,162,40,216,205,176,125,98,14,191,231,46,115,140,185,48,12,193,57,119,150,49,135,15,69,81,246,83,20,69,81,174,159,193,4,23,207,253,197,243,136,227,56,134,170,170,188,206,39,230,126,224,113,82,29,123,42,5,247,217,186,174,161,170,170,209,19, -73,211,52,236,164,141,85,169,177,167,110,112,9,32,234,52,246,204,100,110,50,15,195,16,234,186,158,108,111,172,148,75,218,123,172,78,156,189,1,158,217,220,231,140,106,206,158,82,246,198,133,240,83,125,0,43,183,120,108,230,20,157,162,40,58,235,152,195, -235,204,197,7,164,99,142,243,179,139,139,11,184,125,251,246,190,51,134,191,173,93,242,60,39,59,99,92,213,216,57,199,118,161,168,42,61,247,228,118,28,199,100,181,31,59,16,221,155,192,48,12,201,78,13,202,166,42,217,216,129,160,186,34,212,131,36,168,19, -215,245,235,222,148,196,113,204,118,106,208,95,186,236,118,187,94,33,192,24,3,183,110,221,234,125,214,24,3,97,24,178,93,40,170,83,147,101,25,68,81,212,147,21,69,209,190,51,214,166,105,26,200,243,188,119,19,24,4,1,219,29,197,174,72,23,188,169,163,186, -34,84,103,12,119,62,160,236,77,117,106,162,40,98,59,53,0,64,118,76,176,235,215,29,247,173,91,183,122,55,178,104,111,206,7,54,155,13,217,137,164,124,15,247,224,158,91,204,249,248,0,23,115,56,143,81,126,134,93,168,238,184,135,98,14,11,100,109,78,21,115, -214,90,72,146,100,116,103,236,100,27,53,74,29,39,56,55,206,117,92,109,62,12,99,84,148,235,162,174,107,184,186,186,130,167,79,159,66,211,52,144,101,25,20,69,225,85,165,127,250,244,105,239,245,32,8,32,138,34,182,83,227,83,17,199,247,184,27,156,46,101,89, -146,58,97,146,148,231,57,169,19,245,91,114,117,117,69,38,55,0,207,58,38,62,93,17,74,255,52,77,247,55,104,212,196,77,233,73,141,13,39,91,31,123,83,73,1,192,179,229,87,212,178,44,212,169,75,85,85,164,78,152,112,115,157,26,74,214,80,23,234,234,234,138,180, -55,245,189,21,69,65,234,132,203,171,118,187,29,105,111,74,167,171,171,43,82,159,44,203,188,58,53,92,23,10,99,142,186,145,229,58,145,47,74,204,97,55,154,139,57,206,222,47,66,204,225,146,199,177,197,21,221,137,92,81,20,229,6,193,74,58,78,174,88,217,168, -170,106,116,87,228,80,247,104,108,69,156,171,230,163,94,99,43,226,156,78,120,40,200,84,157,218,99,155,218,21,241,237,66,1,208,157,3,172,220,114,149,41,31,157,218,62,49,6,206,222,184,69,212,156,124,0,253,122,170,189,177,146,56,39,31,64,191,244,241,1,238, -115,40,71,34,230,240,58,83,99,206,215,7,110,194,222,92,114,77,161,187,40,40,138,162,40,138,162,40,103,133,87,130,203,181,38,142,229,92,91,221,82,118,146,180,247,220,228,72,50,71,157,36,153,155,47,73,49,199,223,146,57,234,164,40,138,162,248,227,181,68, -1,215,208,76,253,225,174,170,138,92,143,115,12,121,158,143,46,87,31,210,137,123,74,250,24,157,36,228,248,148,243,135,192,69,234,18,118,218,237,118,34,118,194,39,213,231,230,3,0,211,19,19,180,183,196,216,164,98,14,237,45,97,39,234,161,144,99,117,162,214, -100,29,131,148,15,72,197,28,183,19,131,162,40,138,114,51,120,37,184,82,91,222,72,254,248,83,91,58,29,195,216,53,38,99,144,210,105,142,246,150,146,227,179,142,234,16,115,179,55,38,184,18,156,179,15,156,115,204,113,15,213,112,159,157,91,5,90,178,11,37, -117,36,170,20,115,181,183,20,82,178,36,110,24,1,230,57,54,105,31,152,147,31,204,113,108,82,190,4,224,103,35,125,200,76,81,20,229,132,204,177,43,34,85,165,151,236,140,73,233,132,123,78,75,216,91,170,115,32,105,111,169,164,68,178,43,34,193,28,59,145,146, -221,232,185,197,92,211,52,228,110,28,199,128,157,49,169,223,184,177,104,130,171,40,138,114,66,164,170,198,146,93,145,185,85,233,177,34,46,129,100,87,68,170,50,53,71,31,152,91,119,244,220,125,96,110,49,7,32,167,147,164,189,125,150,181,233,46,10,138,162, -40,138,162,40,202,89,225,149,224,226,217,241,147,47,106,237,126,127,196,169,132,97,40,166,19,158,0,34,161,147,132,28,231,28,121,194,140,47,198,24,49,123,207,213,7,230,102,111,41,157,164,236,45,233,3,26,115,135,145,180,183,162,40,138,226,143,215,44,149, -36,137,200,68,226,156,131,36,73,68,38,201,52,77,69,38,36,60,186,79,98,66,202,178,76,68,167,56,142,69,236,109,173,133,44,203,68,237,45,225,3,115,179,119,24,134,251,83,96,166,96,140,129,52,77,69,236,45,229,3,65,16,136,233,164,49,119,24,107,45,121,100,165, -162,40,138,114,51,232,18,5,69,81,148,19,18,134,161,72,114,110,173,21,171,100,75,220,232,1,60,187,177,146,170,100,71,81,36,86,237,159,155,189,165,186,34,206,185,179,245,1,201,206,216,185,251,128,198,220,255,127,126,242,21,21,69,81,148,163,137,227,120, -118,93,17,169,42,125,16,4,34,9,128,49,70,172,235,23,69,145,72,2,96,173,157,93,39,210,57,39,150,148,72,117,253,194,48,220,31,31,59,5,233,206,152,100,204,205,201,7,176,19,41,17,115,82,58,73,198,92,28,199,227,63,63,233,106,138,162,40,138,162,40,138,50,51, -52,193,85,20,69,81,20,69,81,206,138,193,190,129,49,6,226,56,134,36,73,160,105,154,125,137,153,42,51,87,85,213,219,235,12,255,190,11,174,19,162,246,144,171,235,26,202,178,236,189,206,173,225,8,130,0,162,40,234,189,215,52,13,84,85,213,219,19,206,90,11, -81,20,245,228,96,73,159,218,140,24,229,116,95,231,218,129,168,83,183,45,195,233,132,107,148,186,132,97,184,63,9,104,172,78,73,146,244,228,224,211,234,113,28,147,246,166,246,78,28,178,55,182,119,186,80,62,192,217,27,199,76,109,72,205,249,0,183,38,12,117, -26,107,111,244,191,46,109,61,167,248,0,62,65,79,217,187,105,26,40,203,178,103,239,33,31,176,214,138,196,28,167,211,49,49,199,249,64,89,150,163,99,14,199,198,197,28,110,88,222,102,200,7,36,98,14,95,147,136,57,238,26,138,162,40,202,245,115,48,193,53,198, -236,39,161,246,127,119,225,54,151,166,62,139,19,54,37,139,59,218,145,187,110,91,191,174,28,106,3,102,78,206,144,172,186,174,201,9,239,144,78,93,184,13,161,135,228,180,237,62,70,214,144,189,185,113,251,124,119,40,71,202,7,184,239,142,98,200,78,156,47, -249,248,0,218,152,243,1,10,42,249,28,138,19,244,37,31,157,230,24,115,210,114,40,31,160,198,199,249,30,119,13,78,14,202,162,94,147,140,57,221,38,76,81,20,229,52,12,38,184,120,44,26,30,215,230,156,131,162,40,200,147,36,168,164,4,143,122,235,130,149,31, -234,216,61,238,56,183,162,40,200,19,58,194,48,132,60,207,201,247,40,57,85,85,145,58,97,21,216,71,39,238,148,143,40,138,32,207,115,114,98,165,228,80,21,61,128,103,147,54,119,252,38,167,19,103,111,107,45,169,19,151,76,114,58,5,65,0,121,158,147,39,147,80, -178,234,186,38,117,10,195,112,255,221,249,216,155,74,24,124,237,205,249,0,146,231,249,104,123,83,167,253,96,5,87,194,7,172,181,80,150,165,72,204,25,99,68,98,14,199,246,34,199,28,167,147,100,204,81,213,108,128,15,182,16,203,178,12,154,166,217,87,165,169, -106,47,254,222,118,117,164,182,32,195,42,125,154,166,100,245,25,143,168,109,195,85,226,195,48,220,111,11,217,6,59,16,93,157,176,67,212,5,247,113,166,110,98,56,191,78,211,148,140,243,48,12,33,77,83,182,3,209,181,53,254,198,116,65,191,163,198,77,217,27, -224,217,3,87,93,240,137,110,236,112,182,193,106,127,215,31,169,46,3,192,51,59,249,216,27,31,112,163,228,224,13,215,88,31,224,30,148,67,157,184,46,84,87,39,236,162,116,193,49,81,215,240,241,1,220,69,65,194,7,176,123,36,21,115,67,157,223,174,15,12,197, -92,211,52,98,49,71,21,229,208,70,99,125,0,253,91,194,222,92,204,113,62,64,197,28,118,95,199,118,198,14,126,10,151,17,224,23,136,85,177,177,71,165,81,85,15,231,220,115,178,198,192,77,46,190,114,56,157,218,114,198,202,226,62,119,29,99,155,98,111,252,161, -240,25,219,144,78,109,127,56,86,39,148,33,165,147,132,189,219,149,250,41,62,128,147,185,244,216,230,18,115,248,158,198,28,175,19,183,220,169,253,55,221,223,213,169,49,213,94,238,65,37,37,20,156,205,134,190,151,161,49,13,93,99,108,167,134,234,114,224, -127,75,141,13,255,149,250,142,167,234,116,232,189,177,58,181,199,118,93,58,29,242,235,33,157,198,250,0,245,217,161,223,85,95,157,218,127,115,157,49,55,52,135,114,58,93,119,204,141,213,73,210,191,15,249,0,55,31,119,225,150,180,113,232,2,49,69,81,148,27, -4,43,196,216,41,8,195,16,118,187,221,232,51,214,155,166,33,59,7,152,24,238,118,187,209,149,108,238,140,248,56,142,97,183,219,141,62,215,158,90,47,13,240,193,50,148,221,110,55,122,226,166,170,244,184,142,219,87,39,174,11,85,150,37,89,165,231,160,236,29, -4,1,56,231,188,236,205,85,245,219,99,27,163,83,93,215,164,78,232,79,84,87,132,211,137,235,138,36,73,34,98,111,76,74,124,124,128,26,27,86,75,37,236,61,215,152,227,58,99,20,67,49,103,173,157,28,115,198,24,177,152,115,206,65,85,85,147,99,142,123,54,131, -67,19,92,69,81,148,27,134,170,220,250,84,38,164,170,207,135,62,55,86,206,144,78,109,221,142,149,211,238,248,76,29,155,180,189,167,202,105,191,231,83,193,189,41,157,164,236,61,245,187,67,219,72,234,52,39,31,104,199,202,88,94,20,31,232,234,53,69,150,143, -12,221,38,76,81,20,69,81,20,69,57,43,188,42,184,212,226,228,99,192,5,202,62,119,42,67,58,73,200,105,223,29,78,69,74,39,159,82,252,16,77,211,140,110,197,28,2,199,54,85,86,211,52,163,219,30,99,117,154,74,85,85,228,194,124,95,112,108,82,246,150,138,57,105, -31,144,208,9,96,94,49,39,37,7,99,78,81,20,69,57,13,94,9,46,174,159,152,58,1,224,26,52,137,137,27,119,120,152,74,89,150,34,201,13,0,192,102,179,17,145,131,9,137,132,189,185,53,89,190,80,59,12,28,3,38,239,18,58,73,217,27,19,110,137,4,119,187,221,138,140, -77,210,7,52,230,198,233,36,105,111,9,157,20,69,81,20,127,188,18,92,137,201,17,192,111,13,197,33,206,89,39,41,57,146,178,206,217,222,146,201,136,218,251,48,115,212,233,20,49,135,85,122,137,27,43,169,170,49,181,157,212,49,72,117,69,0,100,171,244,115,235, -140,73,201,145,236,30,73,221,16,87,85,37,22,231,115,235,66,73,251,128,148,189,37,126,79,36,117,146,246,239,177,232,67,102,138,162,40,39,132,122,90,248,24,240,9,227,185,85,196,1,100,186,34,82,58,225,19,227,83,101,73,38,18,67,251,114,251,32,101,111,0,16, -237,66,1,76,215,169,174,107,177,238,17,198,220,84,89,184,207,173,148,189,207,53,230,164,124,160,170,42,175,46,178,38,184,138,162,40,39,68,170,186,37,217,129,80,157,110,86,214,220,228,0,204,179,51,54,71,59,205,77,167,115,30,155,175,44,221,69,65,81,20, -69,81,20,69,57,43,188,18,220,197,98,1,81,20,77,62,95,61,12,67,88,44,22,228,209,112,190,172,86,43,242,104,56,95,162,40,130,52,77,69,116,186,184,184,32,143,164,243,37,77,83,136,227,120,178,189,157,115,176,92,46,69,116,90,46,151,16,134,161,136,15,100,89, -38,102,239,177,71,247,13,145,36,9,36,73,50,121,108,214,90,49,31,200,178,76,36,230,130,32,208,152,27,129,116,204,77,149,163,40,138,162,28,135,215,204,130,167,210,72,32,37,107,110,250,72,202,146,212,73,34,137,0,144,179,183,164,44,105,157,230,148,148,72, -250,18,158,79,46,33,75,130,115,143,185,57,249,145,162,40,202,135,13,93,162,160,40,138,114,66,150,203,165,88,103,108,185,92,138,220,204,222,186,117,75,164,74,159,36,137,72,149,222,24,35,86,165,95,44,22,34,85,250,32,8,96,181,90,137,232,116,113,113,33,214, -21,145,234,212,220,190,125,91,164,51,150,166,233,236,58,99,210,49,55,39,31,72,146,68,164,59,106,140,129,91,183,110,137,248,128,100,204,249,116,198,52,193,85,20,69,81,20,69,81,206,10,77,112,21,69,81,20,69,81,148,179,226,96,237,153,90,147,198,149,135,169, -237,27,184,207,162,92,234,125,31,57,82,58,181,245,153,162,211,33,57,148,172,99,108,228,171,83,91,222,177,114,164,117,146,242,129,185,233,52,199,177,117,229,77,149,3,240,172,101,72,253,221,139,96,167,67,114,172,181,228,54,73,199,140,77,81,20,69,185,121, -6,19,92,231,28,44,22,11,88,173,86,208,52,13,196,113,12,81,20,145,27,27,23,69,1,155,205,230,185,215,172,181,176,92,46,73,185,65,16,128,115,174,55,137,224,102,206,221,211,42,210,52,37,215,130,36,73,2,206,57,168,170,170,247,94,158,231,189,77,212,131,32, -128,44,203,122,159,13,130,0,172,181,16,4,65,111,108,85,85,193,118,187,237,93,131,90,11,98,140,129,56,142,247,99,233,178,221,110,247,27,141,35,97,24,66,146,36,189,207,70,81,4,77,211,236,255,109,83,20,5,185,49,244,106,181,234,201,177,214,66,20,69,228,164, -141,199,248,118,79,64,74,146,132,92,15,20,199,241,254,123,235,94,123,183,219,245,54,44,71,31,234,226,156,219,255,143,178,119,158,231,61,31,224,214,150,13,217,155,242,129,48,12,33,77,211,222,103,113,188,97,24,246,116,42,203,146,220,248,156,178,55,250, -128,49,166,247,121,60,198,183,107,239,40,138,246,227,232,190,94,215,53,196,113,60,42,230,140,49,164,78,231,28,115,0,195,62,112,202,152,139,162,168,247,158,162,40,138,114,253,12,38,184,117,93,195,122,189,134,171,171,171,253,143,122,81,20,228,177,107,84, -101,163,174,107,184,186,186,234,95,52,8,32,142,99,216,108,54,228,132,196,77,82,92,165,4,39,194,49,58,85,85,69,234,20,199,49,88,107,33,207,115,50,41,161,100,173,215,107,82,31,107,45,172,215,107,50,1,160,198,86,20,5,251,217,186,174,201,227,242,56,157,168, -177,97,165,109,189,94,143,182,119,158,231,189,164,0,217,237,118,228,81,135,62,62,16,134,33,132,97,200,158,150,67,189,214,77,230,16,231,28,107,111,74,167,178,44,73,157,48,225,161,142,168,108,154,134,212,137,179,183,49,6,174,174,174,70,143,173,40,10,242, -8,66,60,154,112,108,204,53,77,243,194,196,92,20,69,16,4,1,233,3,62,49,7,48,236,3,190,49,215,52,13,235,3,62,49,183,92,46,201,163,115,241,55,2,111,238,172,181,207,253,119,247,154,148,254,212,67,45,109,57,221,239,13,117,239,202,231,118,214,192,234,51,117, -29,234,230,22,199,68,233,132,114,40,157,198,142,13,229,115,15,206,248,234,36,101,111,238,26,190,246,198,247,168,235,80,58,141,25,219,156,124,160,105,154,89,217,91,58,230,164,116,146,178,247,144,15,248,196,156,148,15,160,140,169,246,110,119,216,198,48, -152,224,226,133,113,34,195,132,203,231,104,58,106,18,193,74,34,202,26,3,119,170,10,234,53,246,124,226,166,105,200,107,226,107,120,252,226,24,56,221,125,199,198,233,132,114,124,206,205,230,174,217,254,46,199,48,100,111,159,35,65,185,177,97,0,206,201,222, -85,85,129,49,102,178,78,221,88,25,3,119,61,201,152,147,244,1,137,152,67,93,230,228,3,215,17,115,93,172,181,144,101,217,190,170,29,69,17,91,17,167,186,34,214,90,178,43,130,213,112,138,178,44,33,207,243,222,53,146,36,33,255,6,43,216,212,100,68,221,252, -6,65,64,118,69,80,54,53,89,21,69,65,22,20,178,44,35,19,0,78,39,174,11,197,85,233,195,48,132,32,8,200,14,213,110,183,235,29,5,106,140,33,237,109,140,97,159,122,231,186,80,113,28,179,157,49,110,89,12,213,21,225,124,192,57,199,38,80,156,15,164,105,74,126, -63,184,87,185,148,15,80,126,198,117,69,168,177,1,192,190,35,226,227,3,92,103,236,38,98,14,139,65,109,164,98,206,57,199,118,198,184,36,144,139,57,110,167,19,201,152,171,235,154,28,55,21,115,0,180,15,96,103,108,236,206,14,122,84,175,162,40,202,13,130,157, -177,245,122,189,255,81,151,232,138,12,85,233,185,234,51,87,165,183,214,194,102,179,25,93,17,231,186,34,184,84,199,167,43,114,168,51,230,211,21,161,244,207,178,108,176,43,66,189,70,141,13,171,81,62,246,30,234,140,81,9,49,202,234,194,249,192,49,93,145, -110,50,135,56,231,68,124,0,19,30,42,137,241,237,138,24,99,188,125,128,187,17,127,209,99,238,216,110,244,216,238,168,100,204,165,105,10,117,93,195,110,183,155,228,3,65,16,144,55,13,28,154,224,42,138,162,220,32,215,221,25,243,169,136,15,85,233,185,42,55, -247,121,110,98,150,232,138,224,122,118,201,42,253,84,123,27,99,196,186,34,248,158,68,23,202,90,43,210,21,241,29,219,144,189,241,189,41,246,70,159,156,91,103,76,178,91,39,21,115,168,239,212,152,147,250,29,240,237,252,114,58,181,59,145,99,208,109,194,20, -69,81,20,69,81,148,179,194,171,130,75,45,42,62,6,110,241,245,177,178,36,144,210,71,82,150,164,78,99,239,120,110,74,14,128,236,119,39,41,103,170,188,185,250,146,84,252,74,249,192,28,237,36,101,35,148,165,40,138,162,156,6,175,4,23,159,230,159,58,1,112, -107,49,142,129,218,74,232,24,176,156,47,161,19,247,164,186,47,184,70,76,194,222,212,122,156,99,216,237,118,94,109,6,14,252,206,230,100,111,9,63,66,184,221,33,124,153,99,204,81,15,170,28,131,100,204,73,217,219,231,225,178,33,208,222,138,162,40,202,105, -240,78,112,37,192,53,43,18,72,233,36,153,220,72,233,52,118,33,245,33,154,166,17,211,233,156,125,64,237,61,142,57,198,156,84,50,41,237,3,99,146,229,57,86,141,37,171,253,220,129,32,190,72,218,104,110,93,17,169,88,240,89,159,120,8,233,142,173,4,115,27,155, -164,172,185,117,216,80,214,156,198,230,235,223,250,144,153,162,40,202,9,193,29,6,36,186,34,82,201,132,100,103,76,66,78,211,52,162,93,17,169,206,152,84,87,4,59,99,83,145,244,1,201,78,36,128,204,210,47,201,78,228,220,98,78,106,108,190,15,115,113,204,57, -230,198,162,9,174,162,40,202,9,145,170,26,159,123,149,94,59,53,135,57,103,31,144,180,183,198,220,56,230,102,239,166,105,188,150,145,233,46,10,138,162,40,138,162,40,202,89,225,149,224,226,9,48,147,47,250,255,167,81,112,71,22,250,16,199,49,121,10,139,47, -120,178,141,148,78,99,143,146,27,2,237,61,85,39,73,123,227,9,48,83,113,206,205,210,222,18,58,25,99,196,125,96,42,26,115,227,152,99,204,41,138,162,40,254,120,205,8,56,177,77,253,209,118,206,65,20,69,34,19,146,212,196,38,153,112,37,73,50,171,228,198,24, -35,166,19,218,123,78,9,128,212,216,156,115,34,201,13,38,184,146,55,20,18,49,39,21,43,26,115,135,65,31,80,20,69,81,78,131,46,81,80,20,69,57,33,113,28,139,36,213,120,19,35,113,195,144,166,169,72,149,94,178,43,146,166,169,200,77,76,20,69,34,58,89,107,197, -110,246,146,36,17,235,138,72,21,14,164,236,45,233,3,146,133,26,141,185,97,230,28,115,99,229,104,130,171,40,138,114,66,194,48,20,235,138,72,85,196,165,58,108,82,93,17,0,16,27,27,218,123,42,210,75,191,164,116,154,219,178,159,32,8,68,18,55,99,140,152,189, -165,99,78,234,70,96,110,157,49,41,191,148,140,185,48,12,199,127,126,242,21,21,69,81,20,69,81,20,101,70,104,130,171,40,138,162,40,138,162,156,21,131,139,80,172,181,144,166,41,44,22,11,104,154,102,255,192,75,24,134,189,125,200,138,162,232,109,192,107,140, -129,44,203,122,114,219,109,171,238,30,114,85,85,65,81,20,189,189,220,184,53,51,81,20,61,247,111,155,221,110,215,219,199,205,57,7,73,146,244,62,27,4,1,88,107,201,83,119,170,170,218,111,12,221,134,91,159,18,69,17,185,63,30,238,227,215,213,41,12,67,82,255, -40,138,160,105,26,8,130,160,167,83,89,150,228,38,227,139,197,162,39,7,203,250,89,150,245,116,170,235,26,138,162,232,237,83,135,107,102,40,157,140,49,228,94,123,148,15,160,15,117,105,251,0,101,111,202,7,184,117,106,104,167,238,231,57,123,7,65,64,62,0, -132,227,117,206,141,182,119,150,101,189,86,16,182,210,168,83,87,56,123,115,62,128,126,47,17,115,56,62,74,39,106,163,121,141,185,233,49,231,211,78,83,20,69,81,228,24,76,112,49,105,192,141,117,131,32,128,186,174,201,141,118,185,141,119,185,13,126,173,181, -80,150,37,57,217,82,178,240,186,212,235,168,35,165,63,245,26,245,89,156,100,169,177,113,58,85,85,69,110,242,140,58,81,9,23,247,121,74,39,76,230,56,157,40,184,177,5,65,64,218,155,211,137,179,19,142,153,251,46,198,202,193,36,153,178,225,144,189,135,124, -131,178,183,143,15,28,107,111,42,193,29,242,1,31,157,52,230,158,231,69,138,57,201,227,64,21,69,81,20,63,14,38,184,88,37,106,154,6,194,48,220,87,67,198,252,112,55,77,67,30,171,134,231,147,83,85,58,252,187,46,220,164,29,199,49,236,118,187,209,39,101,112, -71,189,25,99,192,57,7,69,81,176,137,90,23,238,148,143,178,44,201,42,29,39,135,155,180,49,185,225,142,131,164,94,163,198,134,213,59,105,123,79,241,1,236,8,80,85,58,95,157,176,226,59,213,222,248,208,193,84,31,176,214,238,43,144,99,237,205,29,105,26,134, -33,91,57,164,248,176,198,156,148,15,96,245,94,34,230,184,239,212,57,7,139,197,2,86,171,213,62,14,130,32,32,63,187,219,237,32,207,243,231,94,179,214,178,85,99,172,138,115,213,231,238,53,210,52,101,171,244,77,211,244,42,239,104,155,238,152,131,32,32,59, -53,216,165,25,234,64,116,191,135,197,98,65,86,233,177,235,66,221,120,80,157,131,40,138,200,78,77,20,69,80,85,21,219,129,232,126,247,198,24,88,46,151,189,207,182,31,122,226,58,16,93,127,76,146,100,176,51,70,249,100,158,231,61,123,59,231,216,78,141,181, -118,176,11,213,245,129,44,203,216,206,88,150,101,228,141,117,158,231,100,87,132,234,212,224,119,143,62,213,166,40,10,200,243,188,247,250,106,181,234,201,65,123,163,14,109,56,31,136,227,152,237,212,92,119,204,85,85,5,121,158,143,142,57,244,85,169,152, -227,186,80,212,145,192,92,204,225,119,54,214,222,67,62,16,69,209,232,152,3,160,125,0,31,236,28,219,25,59,184,79,6,14,174,125,113,159,51,133,185,207,81,114,143,145,51,246,253,67,159,109,235,35,161,147,239,185,203,215,169,19,190,38,253,189,77,213,73,202, -222,190,114,134,116,106,203,155,34,231,58,198,118,211,126,249,34,197,156,148,15,28,35,235,144,47,117,193,201,1,39,118,172,172,83,201,59,151,248,119,39,96,0,216,79,154,84,210,200,141,135,234,124,0,0,123,67,220,52,124,69,156,210,9,224,89,98,66,37,49,156, -78,187,221,142,236,138,132,97,200,142,141,210,9,19,12,74,31,238,166,139,170,186,115,246,198,100,210,71,39,170,131,130,178,184,27,52,31,123,135,97,8,206,57,214,222,148,44,238,186,81,20,137,248,0,222,0,80,73,12,215,21,217,110,183,61,31,192,196,157,179, -55,229,199,156,15,204,49,230,130,32,16,177,55,254,166,76,141,57,0,240,142,185,33,31,240,137,57,0,96,237,205,21,39,40,166,111,4,167,40,138,162,140,166,105,154,253,228,218,52,13,196,113,76,174,19,198,207,82,175,113,159,197,42,61,53,33,81,20,69,65,78,108, -184,4,101,108,69,28,215,150,119,193,53,214,84,215,143,211,105,104,73,19,151,28,80,178,184,137,48,12,195,231,150,222,141,209,137,179,55,38,37,99,237,77,45,105,2,224,215,230,115,178,56,31,64,217,220,114,52,78,39,10,238,89,8,78,214,80,39,18,245,157,226, -3,88,189,243,241,1,206,222,113,28,179,9,238,169,98,14,151,77,105,204,61,131,179,55,46,71,27,131,38,184,138,162,40,55,12,87,189,158,75,247,200,87,159,161,207,14,85,179,125,229,204,177,74,63,116,29,31,157,36,228,72,117,161,164,117,146,238,138,72,233,196, -189,63,86,142,207,251,99,116,146,144,115,140,78,215,61,54,124,93,194,47,125,116,209,109,194,20,69,81,20,69,81,148,179,194,171,130,203,61,12,226,11,150,214,125,50,113,14,238,33,165,99,116,242,189,51,188,110,157,198,62,200,117,8,110,253,211,49,160,156, -169,178,184,150,213,177,58,73,216,27,219,108,83,145,179,0,0,32,0,73,68,65,84,30,115,26,155,148,156,161,135,21,125,57,231,152,227,30,98,243,133,107,105,42,138,162,40,55,131,87,130,203,61,68,224,11,247,116,241,49,80,11,169,143,65,114,50,218,110,183,98, -147,182,4,184,240,91,66,39,41,31,24,251,4,254,24,164,236,45,153,220,204,205,7,52,230,198,33,165,147,100,204,41,138,162,40,254,188,240,107,112,231,56,129,168,78,55,203,28,199,54,71,157,164,152,227,216,94,100,157,176,51,54,117,12,146,85,122,106,43,161, -99,144,234,138,0,128,216,216,230,216,21,145,178,183,100,119,84,74,39,169,98,134,116,39,82,50,230,36,236,36,217,137,228,246,140,247,69,202,7,36,139,117,62,69,136,23,62,193,85,20,69,121,145,153,99,103,108,187,221,138,200,145,238,138,72,32,221,25,147,96, -142,157,177,205,102,35,34,231,156,125,64,99,110,28,167,234,140,233,67,102,138,162,40,138,162,40,202,89,225,149,224,82,123,183,29,139,148,44,73,57,170,211,205,201,145,148,165,246,190,89,89,231,172,211,28,125,64,81,20,69,241,199,43,193,93,44,22,16,199, -241,228,31,238,48,12,97,177,88,144,199,3,250,178,90,173,70,31,219,54,68,20,69,144,166,41,121,92,157,47,23,23,23,228,81,124,190,164,105,42,98,111,231,28,172,86,43,17,123,47,151,75,8,195,80,196,7,178,44,155,149,189,227,56,134,36,73,38,235,100,173,21,179, -119,150,101,98,49,183,92,46,103,21,115,113,28,159,117,204,45,151,75,77,114,21,69,81,78,132,46,81,80,20,69,57,33,214,90,145,68,216,24,35,114,179,0,240,44,65,63,87,157,230,104,239,57,234,36,105,239,57,234,116,174,246,158,163,78,167,178,183,38,184,138,162, -40,39,36,203,50,145,174,72,16,4,98,93,145,229,114,41,214,21,137,227,120,178,78,198,24,88,44,22,34,99,75,211,20,162,40,18,169,210,75,117,34,165,236,29,134,161,88,87,68,170,11,21,199,177,136,189,173,181,98,62,32,29,115,18,118,90,44,22,179,234,68,26,99, -196,186,126,146,49,151,101,217,104,57,154,224,42,138,162,40,138,162,40,103,133,38,184,138,162,40,138,162,40,202,89,49,88,15,55,198,64,16,4,251,178,185,181,22,156,115,100,25,189,174,107,114,63,56,234,97,20,231,220,94,86,183,140,222,52,13,185,73,49,245, -217,182,78,93,154,166,129,186,174,123,155,20,227,152,40,157,218,255,235,142,141,218,20,58,8,2,178,84,142,58,117,223,227,116,226,198,128,50,166,218,27,159,12,151,178,55,215,70,161,116,226,244,15,130,96,239,75,221,107,159,202,222,168,167,164,15,80,246, -246,245,129,166,105,68,98,78,210,7,52,230,62,96,40,230,164,214,194,41,138,162,40,126,28,76,112,241,73,231,166,105,32,12,67,118,98,216,237,118,100,114,147,36,73,239,179,237,36,169,59,129,85,85,5,187,221,174,183,97,117,20,69,228,164,19,134,225,126,18,107, -131,167,158,116,55,116,118,206,145,58,225,100,110,140,233,233,84,150,37,185,185,48,183,182,44,8,2,136,227,152,76,220,168,211,74,56,157,112,108,212,53,184,211,143,40,57,198,152,189,172,177,246,14,130,0,162,40,34,117,194,247,187,72,249,64,89,150,164,172, -40,138,216,196,148,178,119,211,52,228,73,44,156,189,219,55,114,93,89,69,81,144,167,232,36,73,210,75,170,208,222,73,146,140,246,1,28,67,23,169,152,51,198,236,191,207,177,62,16,134,33,153,188,249,198,156,181,246,218,99,46,12,67,209,152,195,27,139,54,199, -196,156,196,154,58,69,81,20,197,159,193,95,223,166,105,96,179,217,192,122,189,222,255,168,151,101,73,30,5,72,157,44,209,52,13,172,215,235,222,235,56,185,108,54,27,114,146,164,100,229,121,78,158,62,98,173,133,205,102,67,86,86,168,35,230,170,170,34,117, -194,228,137,58,211,158,154,204,1,158,157,244,66,85,147,156,115,94,99,43,203,146,212,41,77,83,246,56,72,78,22,37,7,19,2,31,157,138,162,32,79,197,49,198,192,110,183,35,79,38,161,228,212,117,77,234,20,134,33,212,117,13,219,237,118,180,78,219,237,214,203, -222,120,253,46,156,189,113,123,40,42,177,26,242,129,46,88,189,243,181,55,119,34,142,84,204,161,190,99,117,226,190,103,107,45,108,183,91,210,63,184,239,96,40,230,168,155,144,83,197,28,222,148,72,196,220,80,12,225,205,3,38,211,120,35,65,93,179,43,131,171, -48,135,97,184,151,197,249,125,87,62,183,221,27,215,169,3,160,43,217,67,93,17,107,45,89,69,231,58,7,92,69,28,199,70,221,224,84,85,69,222,196,80,159,197,42,61,245,125,82,246,230,116,106,119,161,198,234,52,212,129,192,135,158,168,155,180,177,157,49,73,31, -192,34,4,165,175,175,15,224,223,80,246,30,235,3,40,95,202,7,36,99,206,199,7,110,42,230,40,31,56,38,230,56,31,56,101,204,141,125,240,237,96,130,139,134,69,197,218,255,61,6,106,210,110,255,224,141,61,230,142,59,15,25,245,26,43,135,251,108,93,215,96,140, -33,127,136,79,169,147,132,189,219,242,36,236,141,142,61,213,7,156,115,100,144,28,163,211,169,124,128,27,91,59,86,166,234,36,21,115,190,58,13,217,91,106,108,198,152,89,249,128,212,111,92,91,86,23,76,28,162,40,122,110,249,9,149,220,80,55,24,237,106,124, -27,252,225,143,162,168,119,93,180,113,87,87,110,178,192,9,146,154,172,168,206,129,181,150,212,9,39,71,76,230,219,148,101,73,254,142,80,79,183,183,19,220,174,190,248,247,212,50,20,78,167,170,170,246,246,239,234,212,253,238,143,177,55,142,139,74,0,184, -229,58,152,152,80,62,224,99,111,236,62,80,62,64,249,53,151,156,225,216,186,215,110,154,134,212,9,63,79,233,212,52,205,160,189,187,80,114,218,9,46,181,164,137,179,55,183,100,11,224,122,99,142,155,71,184,152,27,74,222,165,98,142,155,187,135,98,142,243, -1,28,227,24,157,218,137,239,152,152,3,160,125,0,109,55,118,233,151,246,207,20,69,81,110,16,60,79,125,179,217,236,43,184,88,45,31,83,165,175,235,154,236,28,224,132,182,221,110,217,228,189,11,213,21,67,89,92,149,158,146,83,85,21,169,83,211,52,251,174,200, -216,14,203,118,187,237,189,134,147,173,207,216,184,228,9,111,170,198,86,233,177,147,217,5,147,20,95,123,83,9,20,118,50,168,10,171,143,15,224,82,62,170,51,134,127,215,37,207,243,222,107,40,139,235,142,250,216,27,63,79,45,21,226,100,113,246,54,198,120, -217,155,235,162,72,197,28,46,45,147,136,57,252,222,166,198,92,93,215,96,173,21,137,185,32,8,68,124,192,55,230,0,104,31,8,130,128,253,78,41,52,193,85,20,69,185,65,176,210,212,174,58,113,15,213,113,112,19,87,187,195,114,172,28,212,145,171,64,15,125,158, -146,47,209,25,195,74,155,143,28,78,167,174,253,143,213,169,221,21,153,170,19,94,195,167,3,193,217,219,87,167,155,240,1,174,53,238,171,19,190,39,161,147,132,15,180,109,52,23,123,75,233,212,94,82,48,151,152,67,249,99,101,232,35,190,138,162,40,138,162,40, -202,89,225,85,193,245,169,12,12,129,217,252,216,44,252,144,78,18,114,176,210,32,129,164,78,18,246,6,144,211,9,43,12,82,227,147,64,218,7,166,202,242,185,227,29,163,147,84,204,73,250,192,220,98,110,110,191,39,62,235,129,21,69,81,20,121,188,18,92,92,63, -49,117,2,224,214,98,28,67,158,231,34,19,137,239,131,83,135,116,146,72,74,112,125,208,84,157,112,205,159,196,216,184,117,84,190,204,209,222,82,201,59,174,131,148,208,73,99,110,28,82,246,198,53,144,18,62,192,173,109,84,20,69,81,174,31,239,10,174,4,77,67, -111,11,113,12,82,114,164,42,110,0,244,83,152,199,160,246,30,199,220,236,13,32,103,39,245,129,113,204,205,7,124,42,230,115,172,26,227,14,7,83,145,234,138,0,200,125,55,146,157,72,169,239,142,122,184,108,138,78,18,72,233,36,117,19,11,32,167,147,116,204, -205,73,167,246,174,87,83,145,180,183,100,204,141,69,31,50,83,20,69,57,33,146,85,122,169,137,77,170,43,130,55,67,82,21,241,115,237,140,73,118,161,164,150,53,73,117,69,240,230,83,202,7,164,58,145,115,140,57,169,206,152,68,178,60,215,152,243,233,68,106, -130,171,40,138,114,66,164,171,198,18,204,177,74,63,199,174,136,100,85,89,130,57,218,91,74,167,57,218,91,99,110,28,167,178,183,238,162,160,40,138,162,40,138,162,156,21,94,9,110,28,199,228,137,23,190,224,81,189,99,79,163,24,34,203,178,209,199,182,13,17, -134,33,68,81,36,242,84,119,150,101,34,99,139,162,72,196,222,214,90,72,211,84,68,167,36,73,216,227,4,125,192,13,178,207,209,7,140,49,98,62,48,199,152,75,211,84,196,7,194,48,220,31,143,60,149,197,98,49,187,152,75,146,68,108,151,8,69,81,20,197,15,175,25, -129,59,70,206,251,162,3,103,92,251,194,29,51,120,74,157,164,236,132,199,46,78,5,143,237,147,26,155,49,70,36,9,148,72,146,218,58,77,5,143,1,148,26,219,220,252,91,218,7,36,116,146,176,55,128,156,157,164,99,78,81,20,69,57,13,186,68,65,81,20,229,132,164, -105,42,114,211,16,134,161,88,167,102,185,92,138,220,128,70,81,36,82,165,55,198,192,114,185,20,185,249,72,146,68,172,43,34,213,169,201,178,76,228,134,40,12,67,177,78,205,106,181,18,177,119,28,199,34,157,49,107,173,88,167,70,42,230,130,32,208,152,27,65, -146,36,34,62,224,156,131,52,77,71,203,209,4,87,81,20,229,132,72,85,177,81,150,148,28,169,42,189,181,86,76,150,4,206,57,17,89,198,24,209,14,132,4,168,147,4,210,62,32,129,148,78,82,114,36,125,64,50,78,230,102,39,105,123,143,69,19,92,69,81,20,69,81,20,229, -172,208,4,87,81,20,69,81,20,69,57,43,6,251,34,206,57,88,46,151,176,90,173,0,224,131,39,140,227,56,238,125,118,183,219,193,118,187,125,238,53,99,204,254,111,219,224,3,93,206,185,222,134,189,85,85,65,158,231,189,253,215,178,44,35,219,56,184,222,136,218, -251,45,207,243,222,113,153,65,16,64,150,101,189,207,226,67,65,212,53,202,178,36,55,97,94,46,151,100,235,5,237,211,29,27,30,225,218,61,117,41,138,34,72,146,164,39,39,12,67,104,154,6,162,40,234,189,87,20,5,108,183,219,222,53,46,46,46,122,159,53,198,236, -215,191,116,63,143,155,149,119,117,194,53,51,212,216,130,32,32,247,162,163,124,192,57,7,139,197,162,247,89,124,160,43,8,2,210,7,182,219,109,239,26,139,197,130,108,79,12,217,59,207,115,216,237,118,207,189,142,107,21,187,160,15,80,107,225,138,162,32,55, -189,94,173,86,100,235,5,159,160,31,107,239,56,142,201,184,138,162,8,170,170,18,139,57,107,237,232,152,195,117,106,93,112,247,139,169,49,135,173,226,83,196,28,231,3,210,49,71,125,111,138,162,40,202,245,51,152,224,214,117,13,219,237,22,54,155,205,254,53, -60,211,158,250,44,69,251,111,247,23,253,255,164,134,58,41,133,219,200,119,183,219,145,199,113,90,107,201,201,153,211,169,170,42,82,167,40,138,192,57,71,78,96,77,211,176,147,57,5,202,225,174,223,165,44,75,82,39,60,249,131,186,14,119,252,33,37,7,215,246, -112,246,166,244,44,138,130,212,213,24,3,69,81,144,223,5,37,167,174,107,82,167,48,12,33,8,2,111,123,83,201,100,16,4,236,41,48,220,107,148,78,184,48,159,58,45,135,59,133,165,155,96,2,124,176,78,200,215,7,184,24,242,137,185,166,105,200,177,57,231,32,142, -99,175,152,43,138,130,140,171,57,198,28,250,210,88,123,115,58,225,247,76,157,150,227,27,115,101,89,138,109,148,174,40,138,162,248,49,152,224,226,249,245,120,30,113,28,199,207,253,247,33,154,166,97,207,136,15,130,0,202,178,28,125,42,5,55,81,212,117,13, -101,89,142,62,139,158,211,9,43,91,62,103,176,83,114,140,49,80,215,53,84,85,53,122,114,227,142,86,12,195,112,47,107,138,78,65,16,236,237,52,214,222,120,220,31,165,171,132,15,24,99,192,90,203,94,135,130,179,39,218,122,170,189,177,146,56,213,7,218,227,26, -171,19,103,7,223,152,227,116,2,0,111,31,56,20,115,83,125,64,42,230,0,192,219,222,135,98,110,170,78,206,185,125,236,82,239,173,86,43,184,117,235,214,190,90,140,149,250,46,187,221,174,151,64,91,107,201,42,253,152,174,72,215,62,220,83,210,92,103,12,111, -184,187,55,26,97,24,14,118,198,226,56,238,233,132,55,246,221,107,92,92,92,244,110,100,81,6,218,181,171,211,118,187,237,221,4,198,113,76,118,198,162,40,218,127,55,93,157,176,43,210,126,221,24,67,86,233,113,235,61,170,19,137,197,161,174,111,112,187,37, -12,117,198,242,60,239,221,72,7,65,48,216,25,195,78,68,155,178,44,201,206,216,106,181,98,187,34,56,159,181,225,236,29,69,209,96,87,36,73,146,158,78,216,21,233,94,227,214,173,91,61,57,216,21,161,124,128,179,119,146,36,108,103,236,84,49,183,88,44,216,110, -52,231,223,199,196,92,20,69,163,125,96,40,230,184,223,1,159,152,67,31,160,98,174,40,10,216,108,54,163,98,14,247,115,31,219,25,59,217,81,189,18,103,55,207,145,235,24,151,196,153,210,146,72,200,195,74,217,156,252,160,105,26,209,141,249,165,236,52,87,230, -172,219,84,174,115,108,117,93,195,122,189,134,171,171,171,125,12,96,181,156,74,148,40,221,174,174,174,122,175,7,65,0,81,20,245,38,11,252,27,74,214,102,179,33,125,222,24,3,155,205,134,189,201,237,82,150,37,169,211,49,93,145,245,122,77,234,131,239,81,147, -45,37,135,235,66,97,114,91,20,197,168,42,61,103,111,236,138,248,216,155,90,50,213,126,207,167,43,66,233,116,76,103,108,189,94,147,62,96,173,133,171,171,43,182,51,215,133,243,1,76,108,169,174,8,167,19,37,7,151,124,81,55,69,156,156,221,110,71,218,244,148, -49,183,221,110,79,26,115,156,15,80,250,224,123,99,125,128,139,185,52,77,197,98,110,185,92,142,46,104,158,44,193,85,20,69,249,48,130,149,12,156,92,219,29,159,177,21,113,106,210,110,119,143,198,86,159,185,106,62,234,53,182,34,206,233,132,213,36,31,157, -14,141,109,108,7,130,171,210,251,218,155,211,9,0,158,251,254,198,48,100,111,159,14,4,103,111,220,146,235,20,62,192,217,27,171,118,83,237,141,29,159,83,248,192,161,152,147,240,1,148,35,17,115,190,62,192,141,77,202,7,164,98,174,109,239,49,232,46,10,138, -162,40,138,162,40,202,89,225,149,224,206,173,165,172,140,71,191,55,69,125,224,48,106,35,69,81,148,243,192,107,137,2,174,161,153,58,9,212,117,13,187,221,110,116,153,121,8,106,235,166,99,192,114,190,196,4,39,165,211,216,117,38,135,224,214,63,29,3,142,77, -202,7,230,100,111,108,29,73,172,121,166,214,63,29,131,84,204,225,78,12,26,115,195,72,237,122,128,49,167,40,138,162,156,6,175,4,87,42,225,242,89,67,115,8,110,219,32,95,36,183,243,161,182,142,58,6,41,123,227,222,171,18,72,77,218,146,62,48,55,123,99,130, -43,129,164,15,72,125,119,26,115,135,193,152,27,155,188,75,85,142,37,229,72,61,36,41,249,224,166,4,146,85,250,185,125,111,146,178,36,110,24,165,153,171,189,231,164,151,180,62,115,123,88,218,71,150,62,100,166,40,138,114,66,206,189,43,34,85,165,167,118, -6,56,6,124,146,91,194,222,82,118,146,180,183,84,82,34,217,21,145,74,146,164,116,194,110,214,156,98,142,219,199,219,23,169,152,147,236,68,82,187,39,28,67,93,215,94,69,8,77,112,21,69,81,78,136,118,198,14,35,185,228,67,178,74,47,85,229,156,99,103,108,110, -93,168,57,250,128,164,189,165,198,38,217,25,155,155,15,248,222,80,232,46,10,138,162,40,138,162,40,202,89,225,149,224,226,217,241,83,193,163,76,37,214,102,225,62,139,83,177,214,146,39,250,28,131,148,78,146,246,150,210,9,247,216,155,10,218,91,125,96,152, -15,67,204,205,73,167,57,218,91,81,20,69,241,199,235,151,60,77,83,8,195,112,242,143,118,16,4,144,166,169,200,68,146,101,25,121,236,157,47,97,24,238,143,165,155,202,98,177,16,73,148,226,56,134,40,138,38,219,219,90,11,89,150,137,140,45,77,83,145,137,27, -143,220,147,72,0,164,236,141,199,55,78,181,147,164,189,147,36,17,139,57,41,157,164,99,110,78,62,32,29,115,138,162,40,202,105,208,37,10,138,162,40,39,36,12,67,177,174,136,196,205,144,164,78,206,57,177,234,186,212,216,130,32,16,185,25,50,198,168,189,71, -128,246,158,42,75,218,222,18,62,160,49,55,14,201,152,243,25,155,38,184,138,162,40,39,36,142,99,145,9,201,57,39,86,17,207,178,76,100,66,10,195,80,100,146,52,198,136,117,253,36,237,157,36,137,104,103,108,42,146,62,32,213,21,65,31,152,138,180,15,72,117, -34,165,58,191,82,62,16,134,161,72,23,202,24,35,246,59,32,29,115,99,209,4,87,81,20,69,81,20,69,57,43,52,193,85,20,69,81,20,69,81,206,138,193,39,69,140,49,16,69,17,196,113,12,77,211,236,75,250,198,152,222,62,100,212,6,188,248,247,189,139,6,1,4,65,0,81, -20,245,246,17,172,235,122,191,81,113,27,110,125,10,202,161,222,171,170,170,183,39,28,174,153,233,130,37,253,40,138,200,177,81,155,85,115,109,0,212,169,91,218,111,154,134,220,55,15,215,204,80,114,218,127,59,70,167,56,142,123,114,240,105,117,9,123,15,181, -100,40,123,115,62,128,107,160,226,56,22,243,1,202,222,104,167,238,24,40,123,163,158,212,70,233,62,62,128,235,132,40,123,115,62,192,173,81,194,93,43,166,198,156,115,78,212,7,52,230,62,96,40,230,36,30,198,83,20,69,81,252,57,152,224,226,15,117,211,52,96, -173,221,39,186,221,31,121,110,227,93,106,210,182,214,178,91,4,25,99,200,205,179,185,45,156,112,59,30,234,250,148,28,252,60,245,122,123,172,212,251,221,215,185,53,60,220,53,48,113,234,78,182,220,216,78,105,111,110,12,40,43,8,2,50,1,240,149,195,217,144, -218,60,155,219,194,233,144,189,199,126,30,111,222,56,31,160,224,108,202,141,13,147,238,177,58,73,249,0,218,78,34,230,134,226,196,55,230,48,241,30,27,115,232,55,99,175,113,234,152,211,109,194,20,69,81,78,195,96,130,139,39,135,224,17,137,206,57,40,138, -130,60,118,141,250,241,111,154,134,60,35,30,23,27,115,71,211,81,178,118,187,29,57,89,132,97,8,219,237,150,60,189,131,155,128,41,157,176,42,73,29,5,200,37,74,220,41,31,81,20,193,118,187,37,147,52,74,78,89,150,228,103,49,241,160,78,238,224,116,162,198, -134,201,77,158,231,163,117,42,138,130,180,105,16,4,144,231,57,89,201,242,177,55,46,132,167,124,128,27,27,119,210,139,175,189,171,170,34,117,66,168,227,9,125,124,0,111,0,124,236,205,249,128,84,204,97,98,43,17,115,65,16,120,197,28,103,239,40,138,246,118, -186,105,31,184,137,152,43,203,146,180,145,181,22,146,36,129,52,77,161,105,154,253,67,88,84,162,92,150,37,89,165,167,30,180,192,206,88,146,36,61,61,177,178,222,181,51,85,245,70,89,248,96,72,27,188,89,232,234,132,85,253,46,56,54,234,102,5,229,116,95,231, -182,15,12,195,16,146,36,97,59,16,93,91,135,97,72,86,208,177,123,68,221,40,81,246,6,120,246,0,80,23,140,115,78,39,202,199,56,157,80,206,88,123,91,107,201,206,1,118,93,40,95,229,124,128,235,200,161,15,116,187,47,77,211,144,190,29,4,1,219,169,105,23,200, -218,160,156,49,62,128,157,49,9,123,163,157,166,198,156,115,14,194,48,36,143,198,245,141,57,148,35,21,115,248,183,93,157,124,98,142,243,1,46,230,56,31,56,20,115,148,15,80,49,135,246,30,219,25,59,152,224,226,113,132,24,48,248,218,216,10,23,55,153,162,140, -177,71,29,114,147,75,91,167,41,114,234,186,222,79,110,99,101,113,159,147,210,73,202,222,232,184,62,99,27,210,169,237,19,199,234,132,50,230,100,111,244,1,31,89,67,58,73,216,187,29,39,83,236,141,21,73,9,59,225,123,62,199,148,14,253,14,204,201,7,36,99,110, -200,126,212,231,165,160,146,201,23,189,146,60,164,255,177,99,163,236,228,251,247,215,109,215,83,127,111,167,186,62,215,25,157,27,168,147,198,220,225,191,193,247,167,198,156,15,186,64,76,81,20,229,6,193,10,49,118,10,130,32,128,221,110,71,86,14,185,36, -156,234,28,96,245,202,167,34,206,117,106,162,40,34,59,16,220,228,84,85,21,219,209,50,198,120,119,69,168,234,93,24,134,176,219,237,70,235,52,212,21,193,42,221,216,101,40,212,216,218,157,177,177,246,230,116,10,195,112,223,25,235,194,221,248,82,58,213,117, -189,183,147,79,87,132,74,28,226,56,246,246,129,161,155,61,159,174,8,215,25,115,206,137,248,192,185,199,28,250,229,148,152,3,0,209,152,171,170,106,178,15,96,181,151,186,6,133,38,184,138,162,40,55,12,213,25,243,169,248,114,21,113,169,206,193,208,117,124, -117,194,127,167,232,212,238,172,204,165,74,223,94,10,48,167,174,136,164,15,204,169,43,210,126,79,74,39,169,152,147,178,19,119,157,83,232,212,94,230,48,151,206,111,187,19,57,6,221,38,76,81,20,69,81,20,69,57,43,188,42,184,212,130,233,99,104,154,103,139, -166,167,172,197,104,235,36,33,7,199,53,39,157,184,150,143,47,77,211,144,237,184,99,192,214,138,212,248,36,152,155,15,52,77,51,59,31,224,182,184,58,134,185,217,27,96,158,49,71,181,33,21,69,81,148,155,193,43,193,197,245,19,83,39,18,156,68,36,38,18,106, -237,203,49,148,101,57,121,1,52,194,61,169,238,11,38,165,18,9,23,181,30,231,24,164,228,224,58,26,9,59,73,217,91,42,121,151,180,183,84,204,225,154,61,141,185,97,112,77,158,132,15,80,235,205,20,69,81,148,155,193,43,193,149,152,64,0,14,175,251,242,65,170, -10,56,71,157,230,104,239,57,234,52,55,123,3,204,79,167,57,218,123,142,58,73,218,123,172,78,88,125,150,234,28,72,80,20,133,136,45,170,170,18,187,137,145,236,64,204,173,51,38,37,71,178,123,36,165,147,84,183,22,64,78,39,41,27,73,218,91,202,47,177,112,36, -229,3,82,197,140,83,116,198,244,33,51,69,81,148,19,34,85,233,197,19,219,164,42,226,115,90,210,212,52,141,88,149,30,247,82,150,232,68,250,62,24,198,33,217,25,3,144,89,246,179,217,108,102,213,21,145,236,66,73,118,163,53,230,14,35,25,115,62,191,151,7,19, -220,23,125,47,55,69,81,148,83,49,230,247,83,178,106,44,133,234,52,14,41,157,206,121,108,115,212,233,156,199,166,58,125,192,193,93,20,168,147,39,20,69,81,148,97,184,147,146,20,69,81,148,235,103,48,123,173,170,234,185,31,232,44,203,158,59,6,238,88,130, -32,128,197,98,33,146,60,47,151,203,209,199,182,13,17,69,17,164,105,42,162,211,197,197,133,200,196,150,36,9,196,113,60,217,222,206,57,88,46,151,34,58,45,22,11,17,31,8,195,16,178,44,19,179,183,132,15,196,113,204,30,89,232,131,49,6,86,171,149,136,189,179, -44,131,40,138,102,23,115,212,113,140,190,156,115,204,5,65,0,23,23,23,164,157,180,43,166,40,138,114,253,12,206,44,219,237,22,178,44,219,79,28,214,90,145,201,8,143,56,148,248,161,183,214,138,200,145,60,118,113,110,99,67,89,115,146,3,32,55,209,75,127,111, -18,9,238,220,124,201,24,35,230,79,82,62,48,71,59,73,198,92,20,69,236,141,128,38,185,138,162,40,254,24,99,70,23,51,6,103,170,119,223,125,23,94,122,233,37,136,162,72,68,49,69,81,148,15,3,198,24,200,178,140,61,122,181,253,3,189,92,46,69,170,244,97,24,138, -85,233,165,186,34,73,146,136,84,233,141,49,98,85,250,44,203,196,170,244,82,157,154,213,106,37,214,21,145,234,140,221,186,117,75,196,7,210,52,21,233,140,89,107,197,124,64,50,230,150,203,165,88,204,73,248,64,28,199,103,29,115,62,126,57,104,129,166,105, -224,206,157,59,176,92,46,181,226,160,40,138,50,18,231,28,220,189,123,23,222,125,247,221,222,123,187,221,78,100,114,165,152,91,69,124,142,204,113,92,146,58,205,173,51,246,97,96,78,182,154,99,103,76,210,62,65,16,200,84,112,1,158,109,57,241,145,143,124, -68,228,78,78,81,20,229,220,49,198,192,114,185,132,79,127,250,211,240,211,159,254,180,247,254,163,71,143,224,238,221,187,250,155,170,40,138,226,129,49,6,210,52,29,189,199,248,193,4,247,135,63,252,33,124,225,11,95,128,197,98,49,203,187,204,235,146,119, -44,115,172,202,204,209,214,146,235,176,165,152,171,157,230,202,57,143,111,138,94,65,16,192,253,251,247,193,24,67,110,105,115,117,117,5,47,191,252,50,100,89,54,219,241,43,138,162,204,13,231,28,220,190,125,27,222,123,239,189,81,159,63,88,66,120,248,240, -33,220,185,115,7,94,123,237,53,120,253,245,215,97,183,219,145,235,202,118,187,29,108,54,155,231,94,179,214,194,106,181,234,125,214,90,187,47,51,119,247,71,171,170,10,182,219,109,239,26,139,197,130,172,120,196,113,12,206,185,222,68,130,71,101,110,183, -219,231,94,199,167,201,187,4,65,0,198,24,136,162,168,167,83,89,150,176,221,110,123,119,13,23,23,23,228,4,149,36,9,88,107,73,157,182,219,237,126,211,99,4,159,38,239,18,134,33,52,77,3,73,146,244,116,42,138,2,54,155,77,239,245,91,183,110,245,228,88,107, -33,12,67,176,214,246,62,95,215,53,108,183,219,253,102,220,72,154,166,228,218,235,56,142,33,12,67,242,14,138,242,1,220,193,161,139,115,14,156,115,16,4,193,104,31,224,118,130,24,178,119,158,231,144,231,249,115,175,227,14,14,93,208,7,226,56,38,237,77,109, -122,77,249,0,250,17,231,151,155,205,166,103,111,124,122,191,75,20,69,16,199,241,232,152,195,117,83,93,14,197,92,158,231,61,157,124,99,14,224,217,134,245,190,49,135,126,222,134,139,185,213,106,69,174,45,155,75,204,89,107,225,206,157,59,240,229,47,127, -25,190,243,157,239,244,228,183,175,127,231,206,29,184,188,188,100,63,163,40,138,162,60,3,171,183,159,250,212,167,224,91,223,250,214,168,191,25,213,35,251,251,191,255,123,248,173,223,250,45,120,252,248,49,188,245,214,91,189,73,21,128,222,124,183,174,107, -184,186,186,234,189,238,156,131,56,142,201,201,130,59,25,102,187,221,146,201,164,49,6,54,155,13,153,112,81,114,170,170,34,117,138,162,8,172,181,228,137,50,156,78,87,87,87,164,78,214,90,184,186,186,34,39,91,74,78,89,150,164,78,73,146,64,93,215,228,241, -132,220,81,124,148,28,107,45,164,105,10,235,245,122,244,216,168,132,7,63,207,221,228,248,248,64,16,4,16,69,145,151,15,108,54,27,111,123,83,54,226,236,141,139,224,41,31,168,235,122,180,15,224,127,175,215,235,209,62,192,217,20,143,38,228,124,128,250,188, -84,204,109,54,27,246,65,5,42,249,228,116,26,138,57,231,28,121,130,15,167,211,122,189,190,86,31,192,196,150,58,45,231,80,204,225,15,240,43,175,188,2,69,81,192,59,239,188,211,251,44,242,224,193,3,248,220,231,62,7,15,31,62,220,239,78,67,221,128,114,250, -83,223,11,238,0,193,125,103,148,61,185,207,162,141,169,247,41,157,184,110,12,234,51,86,14,119,77,148,79,217,104,138,78,83,236,45,169,19,94,99,170,157,164,125,128,147,229,51,54,180,143,132,127,183,229,77,209,73,218,7,124,236,116,221,246,246,149,195,233, -116,204,216,174,211,222,97,24,194,253,251,247,33,12,195,209,199,245,142,74,112,223,123,239,61,88,175,215,240,197,47,126,17,174,174,174,96,179,217,140,190,0,245,57,108,221,213,117,61,122,45,5,247,57,148,51,86,31,238,44,99,172,12,226,57,206,55,169,19,151, -60,181,229,140,61,9,132,27,27,38,12,99,237,205,233,212,52,141,215,241,132,156,189,141,49,123,57,55,109,111,78,39,172,40,78,213,9,43,137,56,190,49,112,246,70,25,83,125,192,24,35,234,3,26,115,31,80,150,229,190,106,255,137,79,124,2,190,244,165,47,193,215, -191,254,245,193,191,249,209,143,126,4,95,251,218,215,224,205,55,223,132,135,15,31,130,115,142,236,152,80,93,40,107,237,96,87,132,154,68,176,74,223,181,79,154,166,100,87,4,117,225,110,126,187,93,145,32,8,200,138,56,198,20,213,169,193,42,125,247,26,220, -114,56,236,112,80,19,36,213,133,10,195,16,146,36,33,199,86,215,53,249,196,58,118,106,218,215,192,53,213,93,176,51,134,177,213,6,59,99,93,123,39,73,66,94,23,187,34,148,127,83,246,118,206,145,93,17,244,1,170,83,83,150,37,228,121,222,187,6,183,235,66,20, -69,176,88,44,216,206,88,183,43,194,249,0,118,69,168,110,80,81,20,228,241,187,148,189,49,198,56,123,83,69,153,56,142,201,184,138,162,104,95,100,233,114,221,49,151,36,9,219,25,227,150,53,157,42,230,176,163,125,211,49,7,240,188,15,224,14,26,95,250,210,151, -224,95,254,229,95,122,50,56,70,63,229,240,183,127,251,183,240,199,127,252,199,240,107,191,246,107,240,79,255,244,79,240,248,241,227,209,147,137,162,40,202,185,98,173,133,56,142,225,83,159,250,20,252,206,239,252,14,124,251,219,223,134,245,122,125,240, -239,190,247,189,239,193,231,62,247,57,120,242,228,9,92,94,94,146,85,99,42,201,30,234,138,96,149,126,108,37,123,168,43,178,94,175,201,132,203,183,43,130,157,177,177,221,12,202,118,88,1,162,186,34,0,116,34,206,233,132,55,233,156,189,169,215,184,174,72, -146,36,164,189,57,157,168,196,16,199,135,93,145,41,62,128,137,27,149,196,12,249,0,133,115,142,245,1,223,78,36,192,179,196,113,172,15,112,157,72,0,186,51,198,233,180,219,237,200,78,36,192,179,196,138,234,140,93,119,204,113,221,104,107,45,91,60,124,81, -98,174,40,10,246,55,195,39,230,0,158,239,140,69,81,4,247,238,221,131,48,12,225,193,131,7,189,207,114,140,78,112,155,166,129,175,127,253,235,240,167,127,250,167,16,134,33,124,247,187,223,133,135,15,31,66,89,150,98,231,21,43,138,162,188,72,96,37,237,151, -126,233,151,224,43,95,249,10,124,255,251,223,135,55,222,120,99,212,223,254,248,199,63,134,47,126,241,139,112,121,121,9,79,159,62,37,147,18,142,67,157,131,177,114,184,207,225,164,51,182,218,207,125,22,151,117,76,173,210,31,211,245,227,174,215,238,174, -140,173,210,115,58,29,211,21,161,56,166,43,66,93,179,170,42,176,214,138,116,69,124,199,118,200,7,124,186,34,92,146,36,101,111,41,31,192,152,147,210,73,202,222,168,239,212,152,147,252,29,56,214,222,97,24,194,199,62,246,49,248,141,223,248,13,248,230,55, -191,57,234,111,17,175,157,128,243,60,135,63,251,179,63,131,87,95,125,21,126,239,247,126,15,94,123,237,53,184,125,251,246,254,1,38,125,34,88,81,148,115,7,79,210,201,178,12,94,121,229,21,248,205,223,252,77,248,253,223,255,125,248,206,119,190,3,223,255, -254,247,189,100,125,227,27,223,128,95,255,245,95,135,207,125,238,115,98,135,52,40,138,162,188,232,224,3,200,175,188,242,10,124,245,171,95,133,31,253,232,71,163,119,79,64,188,55,98,44,203,18,254,226,47,254,2,190,250,213,175,194,31,253,209,31,193,191,255, -251,191,195,15,126,240,3,120,244,232,17,108,54,155,253,26,31,238,129,12,106,16,18,204,105,99,99,28,247,92,198,134,119,98,82,99,147,144,131,127,63,39,157,218,72,110,133,38,129,132,156,185,249,101,91,206,156,99,14,255,191,115,14,194,48,132,56,142,225,226, -226,2,62,249,201,79,194,151,190,244,37,8,195,16,254,242,47,255,18,30,63,126,236,125,157,205,102,3,127,243,55,127,3,127,240,7,127,0,206,57,248,193,15,126,0,79,159,62,245,170,116,40,138,162,156,19,184,236,235,213,87,95,133,175,124,229,43,240,228,201,19, -248,222,247,190,231,45,231,232,157,198,255,238,239,254,14,254,241,31,255,17,126,247,119,127,23,254,228,79,254,4,222,120,227,13,120,227,141,55,224,157,119,222,129,39,79,158,192,110,183,99,203,218,248,52,157,196,143,56,110,89,53,117,153,4,86,160,199,38, -230,67,68,81,68,174,237,241,5,31,254,152,170,19,46,56,247,105,17,113,72,218,91,202,7,162,40,18,89,42,51,71,123,7,65,192,62,16,229,131,181,22,156,115,234,3,7,160,124,0,191,207,197,98,1,119,239,222,133,143,127,252,227,240,153,207,124,6,140,49,240,237,111, -127,27,254,227,63,254,99,210,53,127,241,139,95,192,55,190,241,13,248,195,63,252,67,184,125,251,54,252,219,191,253,27,60,122,244,104,191,100,65,19,93,69,81,62,12,224,60,117,235,214,45,248,244,167,63,13,191,253,219,191,13,63,255,249,207,225,31,254,225, -31,142,146,55,233,40,157,245,122,13,127,245,87,127,5,81,20,237,219,108,95,254,242,151,247,139,202,185,197,221,138,162,40,47,10,184,95,243,110,183,131,203,203,75,120,251,237,183,225,175,255,250,175,189,30,118,56,196,219,111,191,13,127,254,231,127,14,95, -251,218,215,224,181,215,94,131,127,254,231,127,134,255,254,239,255,134,39,79,158,236,159,198,31,187,107,201,28,43,226,83,101,73,119,124,166,234,131,127,47,37,75,210,222,82,62,128,55,139,115,233,248,72,119,34,37,116,146,150,37,33,7,215,205,78,181,211, -77,249,55,62,204,22,199,49,44,22,11,120,249,229,151,225,87,126,229,87,224,243,159,255,60,124,243,155,223,132,31,255,248,199,71,95,215,220,191,127,191,1,120,182,129,58,181,189,195,209,130,255,127,107,21,173,62,40,138,242,162,130,251,34,83,79,190,95,23, -159,255,252,231,225,43,95,249,10,108,183,91,248,207,255,252,79,120,240,224,1,60,126,252,152,124,42,186,205,185,119,198,112,255,75,137,206,24,247,52,185,15,184,22,91,194,222,146,157,154,185,218,155,123,90,126,44,115,181,183,198,220,97,184,152,195,117, -182,203,229,18,238,223,191,15,159,249,204,103,224,147,159,252,36,252,228,39,63,129,111,125,235,91,71,253,238,110,183,219,253,1,58,215,150,224,42,138,162,40,199,243,203,191,252,203,240,171,191,250,171,112,239,222,61,8,130,0,158,60,121,66,238,99,170,40, -138,242,162,209,78,110,147,36,129,199,143,31,195,127,253,215,127,193,119,191,251,93,118,235,186,49,104,130,171,40,138,242,2,145,101,25,124,244,163,31,133,44,203,200,131,25,20,69,81,94,52,54,155,13,188,247,222,123,240,232,209,35,49,153,237,4,119,210,26, -92,69,81,148,15,3,34,183,141,1,0,0,27,23,73,68,65,84,247,238,221,131,203,203,203,253,9,71,171,213,10,130,32,128,170,170,224,206,157,59,251,207,189,243,206,59,112,231,206,29,120,243,205,55,247,175,125,236,99,31,131,135,15,31,78,170,188,174,215,107,248, -233,79,127,122,252,0,20,69,81,62,100,232,166,139,138,162,40,7,184,123,247,46,124,230,51,159,1,128,103,107,220,62,251,217,207,194,173,91,183,224,234,234,10,222,126,251,109,184,117,235,22,188,253,246,219,144,231,57,56,231,224,165,151,94,2,0,128,139,139, -11,88,46,151,186,172,64,81,20,229,134,209,4,87,81,20,101,4,151,151,151,240,210,75,47,193,43,175,188,178,223,112,188,170,170,253,118,94,248,239,131,7,15,224,163,31,253,40,56,231,224,213,87,95,133,159,253,236,103,167,85,92,81,20,229,67,136,38,184,138,162, -40,35,120,251,237,183,225,222,189,123,16,199,241,224,137,58,77,211,192,131,7,15,224,11,95,248,2,60,122,244,104,244,241,171,138,162,40,138,28,186,6,87,81,20,101,36,175,191,254,58,20,69,1,81,20,13,126,46,207,115,136,227,24,214,235,245,13,105,166,40,138, -162,180,209,10,174,162,40,202,72,174,174,174,70,237,205,248,233,79,127,26,254,245,95,255,21,62,241,137,79,128,181,250,51,171,40,138,114,211,104,5,87,81,20,69,144,151,95,126,25,158,60,121,2,155,205,6,222,122,235,45,120,229,149,87,224,141,55,222,56,181, -90,202,135,132,166,105,96,183,219,237,215,132,75,28,66,160,40,99,193,163,205,131,32,128,52,77,79,186,173,161,38,184,138,162,40,7,184,188,188,124,238,20,158,170,170,224,234,234,10,238,220,185,3,47,191,252,50,20,69,1,175,189,246,26,60,120,240,0,210,52, -133,215,95,127,29,0,0,30,63,126,12,203,229,114,127,2,147,162,92,23,77,211,192,250,255,218,187,251,224,40,202,59,14,224,223,221,189,187,220,37,23,66,222,8,144,200,75,66,17,8,132,150,48,88,80,65,18,10,84,166,101,226,84,71,4,69,94,90,45,148,118,58,67,71, -80,167,128,128,84,68,162,40,160,212,90,108,4,74,65,164,181,165,229,53,54,66,192,12,16,65,170,188,135,0,121,79,200,219,229,94,247,118,251,7,179,55,183,217,189,215,92,238,46,240,251,204,100,90,111,223,158,61,146,223,253,238,217,231,249,61,102,51,218,218, -218,232,119,141,68,133,150,150,22,24,12,6,36,36,36,64,163,9,127,186,73,11,61,16,66,8,33,61,152,32,8,104,106,106,130,205,102,139,116,83,8,81,96,24,6,137,137,137,136,141,141,237,246,107,185,47,244,64,131,195,8,33,132,144,30,74,16,4,52,52,52,80,114,75,162, -150,40,138,184,115,231,14,76,38,83,88,175,75,9,46,33,132,16,210,67,221,185,115,7,14,135,35,210,205,32,196,167,214,214,214,176,126,17,139,170,49,184,162,40,186,126,252,197,48,140,107,150,114,231,227,25,134,1,0,217,44,102,65,16,100,231,103,24,198,245,227, -141,52,254,46,152,193,250,238,215,8,244,60,157,219,231,207,123,36,237,235,207,125,17,66,136,39,82,172,113,143,155,162,40,202,98,12,203,178,138,88,35,29,227,15,233,120,95,237,80,59,159,183,99,131,57,198,253,56,247,88,235,30,135,61,29,223,249,179,5,144, -127,62,133,170,125,238,44,22,139,107,249,104,66,162,157,40,138,104,105,105,65,90,90,90,88,174,23,53,9,110,231,153,159,254,210,104,52,136,141,141,5,195,48,176,217,108,176,217,108,178,4,87,167,211,65,175,215,131,101,89,215,196,16,247,1,248,44,203,194,96, -48,64,171,213,122,12,42,130,32,192,98,177,192,225,112,4,149,224,178,44,139,152,152,24,104,52,26,216,237,118,216,237,246,128,18,92,189,94,239,170,187,217,249,30,61,29,195,178,44,180,90,45,52,26,13,56,142,11,121,169,34,173,86,139,252,252,124,100,102,102, -70,116,150,164,154,119,223,125,55,236,143,66,124,145,126,7,162,237,189,34,68,141,40,138,112,58,157,224,121,30,118,187,29,14,135,3,60,207,187,146,56,41,198,104,52,26,232,116,58,232,116,58,112,28,231,250,253,118,56,28,176,88,44,62,99,57,199,113,174,25, -215,238,199,119,38,8,2,204,102,179,108,209,12,111,177,91,20,69,213,54,112,28,135,184,184,56,213,235,72,9,167,195,225,128,213,106,133,221,110,119,85,32,144,102,134,107,181,90,232,116,58,104,181,90,89,92,21,4,65,245,243,71,171,213,194,96,48,168,198,95, -79,247,36,197,123,127,146,220,104,139,115,132,248,34,253,93,26,12,134,110,191,86,212,76,50,19,4,1,125,251,246,197,163,143,62,26,80,130,203,243,60,62,253,244,83,176,44,139,156,156,28,12,27,54,76,22,96,110,222,188,137,147,39,79,66,171,213,194,102,179,97, -214,172,89,178,228,144,101,89,28,58,116,8,173,173,173,30,147,64,135,195,129,71,30,121,4,233,233,233,65,39,184,167,79,159,198,165,75,151,240,240,195,15,99,224,192,129,126,159,135,101,89,148,151,151,227,242,229,203,0,128,225,195,135,35,39,39,199,235,123, -100,183,219,81,91,91,139,175,191,254,26,181,181,181,136,141,141,117,37,216,161,96,48,24,176,97,195,6,100,102,102,134,228,124,161,54,113,226,68,88,44,150,72,55,67,129,97,24,244,234,213,11,90,173,54,210,77,33,196,35,167,211,233,250,16,210,104,52,24,63, -126,60,38,78,156,136,172,172,44,164,166,166,66,175,215,195,102,179,161,186,186,26,151,47,95,70,73,73,9,202,202,202,0,192,149,60,166,164,164,32,47,47,207,107,156,226,121,30,77,77,77,248,223,255,254,135,43,87,174,64,175,215,195,96,48,64,163,209,40,146, -59,155,205,134,167,159,126,90,246,26,203,178,56,114,228,8,154,155,155,21,177,91,16,4,36,38,38,98,202,148,41,178,54,48,12,131,93,187,118,33,38,38,70,182,191,40,138,224,121,30,102,179,25,90,173,22,51,103,206,196,164,73,147,48,112,224,64,215,130,29,215, -174,93,195,233,211,167,113,228,200,17,84,85,85,33,54,54,214,85,6,137,231,121,140,28,57,18,35,70,140,144,125,254,220,186,117,11,165,165,165,170,127,243,118,187,29,5,5,5,178,69,67,88,150,69,73,73,9,234,234,234,124,118,74,56,157,78,212,212,212,120,221,135, -144,104,20,23,23,135,196,196,196,110,57,183,251,36,179,168,234,193,29,56,112,32,22,46,92,24,208,113,173,173,173,216,179,103,15,24,134,193,152,49,99,48,123,246,108,217,246,195,135,15,163,180,180,212,245,237,124,254,252,249,138,111,239,229,229,229,104, -109,109,245,218,182,201,147,39,99,210,164,73,1,181,205,157,201,100,194,119,223,125,135,71,31,125,20,211,166,77,11,232,216,45,91,182,224,210,165,75,0,128,81,163,70,5,244,30,157,61,123,22,27,54,108,192,141,27,55,92,229,138,186,234,169,167,158,138,218,228, -54,154,137,162,136,246,246,118,36,37,37,69,186,41,132,40,72,189,182,22,139,5,44,203,98,193,130,5,152,51,103,142,106,79,75,124,124,60,82,82,82,144,147,147,131,159,253,236,103,176,90,173,216,189,123,55,118,239,222,13,187,221,142,190,125,251,6,20,167,42, -43,43,241,222,123,239,161,164,164,4,241,241,241,138,36,87,20,69,60,247,220,115,138,78,152,11,23,46,120,92,54,57,53,53,85,209,6,187,221,142,157,59,119,42,246,117,58,157,48,153,76,152,58,117,42,94,122,233,37,196,197,197,41,238,55,45,45,13,19,38,76,192, -175,127,253,107,156,63,127,30,31,124,240,1,190,253,246,91,176,44,11,81,20,145,155,155,139,57,115,230,200,142,59,114,228,8,78,156,56,161,218,62,65,16,48,107,214,44,36,39,39,203,94,191,122,245,42,106,107,107,85,143,233,124,47,132,244,68,225,26,135,27,85, -147,204,130,45,70,237,62,54,44,220,215,14,244,252,93,189,78,160,199,143,25,51,6,69,69,69,152,52,105,82,192,195,63,60,201,206,206,238,242,57,238,87,130,32,132,228,223,128,144,80,146,122,48,77,38,19,70,140,24,129,191,255,253,239,248,249,207,127,238,247, -99,68,189,94,143,185,115,231,226,169,167,158,10,234,250,3,7,14,196,155,111,190,137,37,75,150,192,108,54,43,254,70,60,205,59,240,20,15,189,197,201,206,219,164,33,104,207,60,243,12,94,123,237,53,69,114,171,38,39,39,7,239,190,251,46,250,247,239,239,115, -223,238,66,181,110,73,79,21,174,223,221,168,74,112,131,21,142,137,84,93,189,70,87,198,192,6,50,233,64,13,199,113,88,189,122,53,250,245,235,23,146,95,44,127,62,0,136,103,148,224,146,104,227,116,58,97,54,155,49,115,230,76,108,221,186,53,168,199,135,102, -179,25,251,247,239,239,82,172,155,51,103,14,242,243,243,101,227,82,187,27,207,243,24,49,98,4,150,44,89,18,208,113,197,197,197,168,175,175,143,216,68,94,138,35,164,167,10,180,152,64,176,162,102,136,66,176,164,193,255,221,249,102,73,19,33,186,66,171,213, -6,29,248,165,99,61,37,167,181,181,181,56,115,230,12,226,226,226,144,153,153,137,1,3,6,40,246,209,104,52,88,184,112,33,94,127,253,245,176,141,1,181,88,44,88,181,106,21,102,206,156,137,241,227,199,123,221,247,204,153,51,216,179,103,143,236,53,173,86,139, -140,140,12,140,29,59,22,185,185,185,33,109,219,184,113,227,240,196,19,79,96,245,234,213,232,232,232,80,108,47,40,40,192,131,15,62,136,63,252,225,15,0,128,252,252,124,252,232,71,63,146,237,99,179,217,112,227,198,13,156,60,121,18,23,47,94,12,105,251,8, -9,23,65,16,96,181,90,49,121,242,100,188,244,210,75,65,39,108,123,247,238,133,217,108,246,184,221,225,112,224,192,129,3,232,213,171,23,250,246,237,139,161,67,135,170,14,153,90,188,120,49,74,74,74,100,213,26,186,139,212,115,253,203,95,254,82,245,90,109, -109,109,168,175,175,71,74,74,10,122,247,238,237,122,93,16,4,20,21,21,209,164,81,66,162,88,212,39,184,181,181,181,152,63,127,190,98,82,128,59,105,144,127,119,97,89,22,111,188,241,134,162,220,88,86,86,22,54,110,220,40,219,87,16,4,204,152,49,67,49,86,140, -231,121,143,9,238,190,125,251,240,209,71,31,121,76,60,121,158,247,26,232,175,95,191,142,13,27,54,64,167,211,65,20,69,12,25,50,4,111,188,241,6,226,227,227,101,251,61,242,200,35,174,241,98,225,232,117,224,121,30,71,143,30,245,43,57,173,173,173,197,209, -163,71,241,240,195,15,187,222,59,171,213,138,99,199,142,225,195,15,63,68,126,126,62,214,172,89,19,178,137,114,233,233,233,200,207,207,199,250,245,235,85,19,220,225,195,135,203,146,242,172,172,44,228,229,229,225,216,177,99,174,215,140,70,35,102,206,156, -137,23,95,124,17,187,119,239,70,97,97,33,173,249,78,122,28,158,231,49,96,192,0,172,90,181,202,99,92,168,172,172,68,73,73,9,46,93,186,132,150,150,22,104,52,26,164,165,165,97,204,152,49,152,56,113,34,68,81,196,103,159,125,6,150,101,61,246,44,218,108,54, -108,220,184,17,122,189,30,162,40,34,49,49,17,107,215,174,197,144,33,67,100,251,245,237,219,23,153,153,153,168,170,170,234,246,4,82,20,69,36,36,36,224,251,223,255,190,98,219,230,205,155,241,143,127,252,195,245,55,157,146,146,130,201,147,39,227,201,39, -159,196,233,211,167,81,93,93,77,9,46,33,81,44,234,19,92,105,124,148,32,8,30,131,111,119,39,107,12,195,40,6,244,59,157,78,143,3,165,45,22,75,64,73,164,221,110,135,197,98,241,154,200,250,58,151,123,189,197,203,151,47,99,247,238,221,138,9,22,6,131,1,201, -201,201,104,107,107,243,171,93,145,176,124,249,114,69,141,188,255,252,231,63,248,253,239,127,143,79,62,249,4,207,63,255,124,100,26,134,187,255,230,203,150,45,147,189,198,48,12,230,206,157,139,197,139,23,227,155,111,190,193,225,195,135,35,212,58,66,2, -39,245,222,46,93,186,84,245,203,163,217,108,198,166,77,155,80,92,92,12,64,30,135,46,94,188,136,47,190,248,2,127,250,211,159,48,108,216,48,152,205,102,159,79,169,220,227,84,115,115,51,182,108,217,162,232,36,0,238,126,1,173,170,170,234,202,173,249,45,61, -61,93,17,95,27,26,26,176,99,199,14,24,141,70,215,16,177,59,119,238,96,239,222,189,248,215,191,254,229,177,244,23,33,36,122,244,136,191,80,105,98,142,211,233,148,253,168,21,214,142,22,129,36,221,82,133,135,80,222,227,245,235,215,85,95,15,71,237,185,80, -155,62,125,58,198,140,25,131,47,190,248,34,210,77,81,16,69,17,219,183,111,71,77,77,13,242,242,242,34,221,28,66,2,226,116,58,241,208,67,15,225,7,63,248,129,98,155,197,98,193,111,127,251,91,20,23,23,131,101,89,217,130,14,238,139,30,180,183,183,163,172, -172,44,168,132,175,178,178,82,245,245,112,141,243,119,95,124,199,157,209,104,68,175,94,189,208,209,209,1,135,195,225,218,135,101,89,216,108,54,180,180,180,248,29,227,213,226,186,20,219,9,33,221,39,234,123,112,129,187,189,8,14,135,67,17,80,220,23,80,232, -201,164,130,223,28,199,169,222,163,94,175,247,250,40,76,74,144,165,162,228,118,187,29,9,9,9,170,251,74,245,225,122,154,248,248,120,180,180,180,68,186,25,30,153,76,166,136,214,145,38,36,24,78,167,19,83,167,78,85,221,182,105,211,38,84,84,84,248,245,24, -62,208,100,79,90,136,193,83,34,219,218,218,26,182,201,195,213,213,213,112,58,157,178,251,52,24,12,248,228,147,79,176,114,229,74,148,150,150,194,96,48,184,226,112,32,147,126,5,65,64,71,71,135,106,217,51,90,94,151,144,238,21,245,153,97,108,108,44,166,79, -159,174,218,59,192,178,44,46,92,184,16,213,143,220,253,145,153,153,137,105,211,166,169,6,77,142,227,240,213,87,95,121,173,126,32,138,34,204,102,51,108,54,27,120,158,135,78,167,83,45,215,83,93,93,141,214,214,86,89,97,241,158,160,190,190,30,103,206,156, -81,76,242,138,22,67,135,14,197,224,193,131,113,232,208,161,72,55,133,16,191,73,195,168,212,234,123,87,85,85,225,240,225,195,33,157,144,42,138,162,107,40,150,180,74,90,231,186,177,192,221,164,240,202,149,43,97,171,78,96,179,217,112,224,192,1,252,228,39, -63,145,189,158,146,146,130,247,222,123,15,231,206,157,195,71,31,125,132,19,39,78,32,38,38,6,122,189,222,235,202,151,238,210,211,211,49,109,218,52,143,43,153,121,155,91,66,8,233,154,168,79,112,123,247,238,141,213,171,87,123,220,190,108,217,50,156,61,123, -54,140,45,10,189,241,227,199,123,173,50,240,204,51,207,160,169,169,201,227,246,180,180,52,76,155,54,13,26,141,6,195,134,13,67,94,94,30,82,83,83,21,251,29,56,112,32,234,123,187,79,156,56,225,234,125,118,56,28,184,121,243,38,246,237,219,7,157,78,135,5, -11,22,132,252,122,19,39,78,84,237,213,206,200,200,80,188,198,48,12,242,243,243,93,255,29,19,19,131,33,67,134,160,160,160,0,149,149,149,138,42,16,132,68,51,81,20,145,148,148,164,58,108,233,248,241,227,33,191,158,78,167,195,244,233,211,193,48,12,6,13,26, -132,73,147,38,33,43,43,75,177,223,169,83,167,208,214,214,22,182,88,197,178,44,138,138,138,48,110,220,56,197,248,127,0,24,61,122,52,222,121,231,29,220,190,125,27,155,55,111,198,145,35,71,92,171,67,250,234,221,206,206,206,246,250,249,69,8,233,62,209,157, -237,248,33,90,199,224,134,211,247,190,247,61,159,65,244,214,173,91,216,191,127,127,196,106,54,250,107,221,186,117,174,255,207,113,28,6,14,28,136,41,83,166,96,225,194,133,178,50,61,161,242,202,43,175,120,220,214,121,53,33,142,227,92,101,195,128,187,9, -120,69,69,5,254,246,183,191,97,251,246,237,81,185,60,48,33,222,168,125,17,6,238,198,139,80,139,137,137,241,25,167,44,22,11,254,248,199,63,134,181,58,1,195,48,104,107,107,195,239,126,247,59,172,95,191,30,125,251,246,85,221,47,35,35,3,235,214,173,195,156, -57,115,176,116,233,82,152,76,38,215,82,189,132,144,232,211,227,19,220,251,97,38,107,87,147,210,202,202,74,188,242,202,43,62,203,141,69,131,127,254,243,159,170,189,40,221,101,218,180,105,170,75,125,190,252,242,203,138,94,117,158,231,125,214,243,37,164, -167,96,24,38,160,21,191,186,155,201,100,194,138,21,43,80,93,93,29,246,184,206,48,12,234,235,235,241,194,11,47,224,185,231,158,67,65,65,129,199,54,100,103,103,99,231,206,157,88,178,100,9,110,223,190,77,99,239,9,137,82,61,62,59,236,60,120,255,94,20,236, -61,54,54,54,226,131,15,62,192,162,69,139,208,216,216,120,207,191,79,132,144,192,120,26,250,148,153,153,9,158,231,195,146,228,90,44,22,236,221,187,23,243,230,205,195,133,11,23,34,214,105,33,149,131,220,182,109,27,22,44,88,128,67,135,14,121,156,251,144, -152,152,136,77,155,54,33,38,38,134,150,204,37,36,74,69,125,15,110,67,67,3,150,45,91,230,113,98,84,93,93,93,143,79,220,14,30,60,136,189,123,247,170,142,57,147,234,47,122,187,199,155,55,111,34,45,45,77,49,97,193,110,183,99,207,158,61,112,58,157,52,153, -129,16,34,195,48,12,90,91,91,97,50,153,96,52,26,101,219,30,123,236,49,188,253,246,219,224,121,62,100,157,8,86,171,21,13,13,13,120,224,129,7,100,175,115,28,135,253,251,247,163,174,174,206,99,25,67,79,215,55,26,141,170,73,184,40,138,138,123,242,118,46, -233,28,82,233,179,154,154,26,188,245,214,91,216,177,99,7,102,205,154,133,233,211,167,43,142,73,74,74,194,236,217,179,177,125,251,118,143,73,121,89,89,25,182,109,219,166,58,89,207,110,183,99,227,198,141,30,43,222,16,66,186,38,234,123,112,29,14,7,174,95, -191,142,138,138,10,213,31,139,197,210,227,19,220,230,230,102,143,247,120,253,250,117,159,171,180,221,186,117,11,107,215,174,85,188,222,191,127,127,20,22,22,194,110,183,195,225,112,208,120,101,66,136,140,40,138,40,41,41,81,188,158,148,148,132,39,159,124, -18,102,179,217,103,79,174,84,166,208,23,158,231,241,242,203,47,43,22,200,209,233,116,120,251,237,183,17,23,23,7,187,221,238,241,90,106,61,165,189,123,247,86,189,182,32,8,72,76,76,84,109,131,218,107,22,139,69,86,239,86,74,116,235,234,234,176,113,227,70, -172,89,179,70,181,93,121,121,121,94,223,155,182,182,54,143,177,253,218,181,107,221,186,2,39,33,247,187,168,79,112,37,157,11,140,75,63,161,32,138,162,215,159,72,243,213,6,134,97,240,223,255,254,23,159,125,246,153,98,219,168,81,163,240,234,171,175,162, -163,163,131,130,41,33,68,134,227,56,28,57,114,68,117,219,162,69,139,48,118,236,88,180,183,183,187,74,16,118,94,172,192,225,112,192,98,177,192,98,177,248,245,168,190,178,178,82,117,229,178,148,148,20,20,22,22,130,231,121,213,47,227,82,111,115,103,89,89, -89,176,90,173,178,182,241,60,15,171,213,170,90,161,161,243,2,13,78,167,19,102,179,25,19,38,76,64,123,123,187,44,209,117,239,213,61,120,240,32,190,253,246,91,213,118,251,226,233,179,171,167,119,204,16,18,237,162,126,136,66,56,72,1,209,83,173,93,173,86, -219,173,51,101,165,229,50,213,18,80,134,97,160,209,104,124,150,204,225,56,14,219,182,109,195,131,15,62,136,17,35,70,200,182,253,248,199,63,198,197,139,23,177,103,207,30,24,141,198,176,207,250,253,234,171,175,96,54,155,85,183,229,230,230,98,228,200,145, -97,109,15,33,228,46,134,97,240,205,55,223,224,228,201,147,138,9,148,28,199,161,176,176,16,31,126,248,33,182,111,223,14,135,195,1,173,86,11,150,101,93,189,182,118,187,29,67,134,12,65,110,110,46,14,28,56,224,115,165,68,150,101,113,236,216,49,100,103,103, -227,167,63,253,169,108,219,176,97,195,176,98,197,10,188,250,234,171,48,26,141,178,161,17,210,176,129,244,244,116,217,49,143,63,254,56,182,111,223,142,218,218,90,87,140,228,121,30,105,105,105,120,252,241,199,21,215,175,169,169,113,197,121,105,177,133, -241,227,199,99,221,186,117,56,115,230,12,86,173,90,133,154,154,26,232,245,122,217,249,172,86,43,146,147,147,21,231,107,110,110,166,68,149,144,40,69,9,46,128,62,125,250,120,12,84,26,141,6,141,141,141,174,162,232,221,33,33,33,1,253,250,245,83,253,86,207, -178,44,58,58,58,20,143,245,212,136,162,136,53,107,214,224,253,247,223,71,175,94,189,100,219,126,243,155,223,160,162,162,2,229,229,229,136,141,141,13,203,68,14,150,101,145,145,145,129,107,215,174,225,218,181,107,170,251,196,199,199,99,228,200,145,48,24, -12,200,200,200,8,91,237,75,179,217,140,219,183,111,123,236,117,106,105,105,145,149,9,107,111,111,71,77,77,77,88,218,70,72,56,113,28,135,173,91,183,98,244,232,209,136,141,141,85,108,123,225,133,23,48,123,246,108,28,63,126,28,231,207,159,71,83,83,19,180, -90,45,210,211,211,49,97,194,4,140,30,61,26,14,135,3,199,143,31,135,197,98,241,25,91,56,142,195,251,239,191,143,161,67,135,98,216,176,97,178,109,83,166,76,193,245,235,215,241,231,63,255,217,149,228,2,119,99,201,249,243,231,49,118,236,88,217,254,122,189, -30,69,69,69,216,183,111,159,107,121,242,204,204,76,60,241,196,19,170,201,246,185,115,231,92,237,147,150,203,93,186,116,41,128,187,95,182,247,239,223,143,127,255,251,223,248,244,211,79,113,241,226,69,240,60,143,193,131,7,227,249,231,159,87,45,31,118,227, -198,141,251,162,146,15,33,61,17,37,184,0,214,172,89,227,117,251,236,217,179,189,46,180,208,85,51,102,204,192,140,25,51,60,110,223,186,117,43,246,237,219,231,243,60,12,195,160,169,169,9,43,87,174,196,155,111,190,41,235,169,101,89,22,235,215,175,199,188, -121,243,80,93,93,13,189,94,223,237,129,57,46,46,78,117,216,132,154,188,188,60,228,229,229,117,107,123,220,29,60,120,16,7,15,30,244,184,125,203,150,45,178,255,222,181,107,23,118,237,218,213,221,205,34,36,236,24,134,65,93,93,29,86,174,92,137,215,95,127, -93,245,75,166,209,104,196,244,233,211,85,39,91,1,128,86,171,197,179,207,62,139,205,155,55,251,92,41,145,97,24,8,130,128,215,94,123,77,245,203,248,47,126,241,11,84,84,84,224,203,47,191,68,108,108,172,107,121,220,226,226,98,204,157,59,87,241,4,42,33,33, -1,243,230,205,243,121,159,78,167,19,197,197,197,174,30,104,158,231,241,236,179,207,202,18,87,150,101,125,198,99,119,95,126,249,37,56,142,163,74,10,132,68,33,250,234,233,167,72,142,197,13,100,44,176,180,124,241,199,31,127,172,216,166,215,235,241,206,59, -239,64,175,215,123,157,204,225,11,173,161,222,53,244,72,147,68,27,150,101,113,238,220,57,172,94,189,58,232,5,75,10,10,10,144,156,156,236,87,92,145,190,140,175,93,187,86,117,146,216,170,85,171,48,120,240,96,216,108,54,8,130,224,74,194,63,255,252,243,160, -218,6,0,159,127,254,185,172,234,78,90,90,26,230,206,157,27,244,249,42,42,42,80,92,92,28,177,191,103,138,35,164,39,11,199,239,111,84,37,184,106,61,138,129,12,198,87,219,207,253,181,96,223,80,181,54,120,107,151,183,235,4,211,6,247,107,249,115,77,142,227, -240,215,191,254,21,165,165,165,138,253,250,244,233,131,183,222,122,203,53,33,35,24,87,175,94,13,234,56,114,247,223,137,86,62,34,209,136,101,89,156,58,117,10,191,250,213,175,112,227,198,141,128,143,215,106,181,40,40,40,240,59,254,177,44,139,242,242,114, -20,21,21,41,246,211,233,116,40,44,44,68,124,124,188,107,110,2,203,178,216,182,109,27,202,203,203,3,110,91,121,121,57,182,109,219,230,250,140,97,24,6,205,205,205,40,44,44,84,157,188,230,75,83,83,19,86,175,94,221,45,67,215,252,61,31,197,17,210,83,133,109, -25,238,176,92,197,15,210,100,42,181,215,253,121,148,206,178,172,234,241,210,227,173,174,36,22,106,199,121,106,175,167,253,165,54,6,211,6,105,178,133,175,123,236,124,173,245,235,215,163,186,186,90,177,255,200,145,35,177,98,197,138,128,219,33,217,181,107, -23,218,218,218,130,62,254,126,22,23,23,23,233,38,16,226,17,203,178,168,170,170,194,139,47,190,136,245,235,215,251,61,238,252,214,173,91,216,184,113,35,118,237,218,229,49,78,1,202,216,200,178,44,118,238,220,137,178,178,50,197,190,82,101,5,189,94,239,74, -36,5,65,192,242,229,203,241,241,199,31,195,100,50,249,108,87,71,71,7,254,242,151,191,96,249,242,229,174,158,96,247,107,31,61,122,20,243,231,207,199,142,29,59,252,74,116,5,65,192,209,163,71,177,120,241,98,84,87,87,203,38,193,169,221,179,70,163,241,248, -249,197,113,156,199,121,31,254,36,185,84,219,156,244,84,106,117,161,187,3,211,175,95,63,17,184,59,217,39,146,75,14,138,162,136,180,180,52,140,30,61,90,246,136,203,106,181,162,164,164,196,103,146,43,138,34,134,14,29,138,65,131,6,201,142,175,171,171,195, -249,243,231,93,193,113,234,212,169,1,181,139,97,24,215,228,137,206,18,18,18,48,110,220,56,197,35,185,67,135,14,169,182,87,20,69,140,26,53,202,227,90,231,158,174,127,229,202,21,84,84,84,0,184,91,22,39,43,43,75,118,205,166,166,38,156,61,123,86,17,20,69, -81,68,70,70,6,70,140,24,161,90,118,167,172,172,44,168,222,11,0,72,78,78,198,211,79,63,141,33,67,134,68,93,79,194,162,69,139,252,250,240,11,39,150,101,161,215,235,125,142,79,36,36,90,72,67,163,50,51,51,241,208,67,15,33,35,35,3,169,169,169,136,137,137, -129,197,98,65,67,67,3,174,93,187,134,211,167,79,227,214,173,91,174,142,4,81,20,145,156,156,140,220,220,92,89,220,225,121,30,199,142,29,83,196,70,105,81,134,9,19,38,168,198,169,75,151,46,161,178,178,82,22,223,4,65,128,94,175,199,15,127,248,67,12,31,62, -28,253,251,247,119,45,236,96,50,153,80,93,93,141,239,190,251,14,167,78,157,242,88,33,167,243,125,50,12,131,156,156,28,100,103,103,35,51,51,19,9,9,9,208,233,116,176,90,173,168,173,173,197,213,171,87,81,90,90,138,166,166,38,197,19,60,127,62,127,58,19,4, -1,147,39,79,150,125,216,51,12,131,175,191,254,26,245,245,245,126,37,185,181,181,181,84,254,145,244,56,137,137,137,221,214,217,99,181,90,209,222,222,14,32,138,18,92,192,243,56,87,127,31,217,248,115,124,48,227,78,189,93,95,237,124,129,238,31,72,27,2,125, -143,188,93,143,198,112,17,66,124,233,60,7,192,253,177,188,183,161,83,161,140,141,222,226,155,116,156,123,221,90,233,127,3,141,113,193,222,171,183,246,135,242,243,163,179,142,142,14,52,55,55,251,189,63,33,145,166,209,104,144,150,150,214,109,249,135,123, -130,27,85,85,20,186,122,195,254,28,31,169,241,82,161,186,126,184,175,71,8,185,191,5,187,40,65,56,98,85,168,23,76,232,202,249,194,241,30,117,22,27,27,139,142,142,14,216,237,246,46,157,135,144,112,233,213,171,87,216,242,146,168,25,131,75,8,33,132,16,255, -49,12,131,164,164,36,170,197,75,122,4,163,209,168,168,181,221,157,232,175,130,16,66,8,233,161,52,26,13,250,244,233,19,182,153,233,132,4,35,46,46,14,9,9,9,97,189,38,253,69,16,18,98,12,195,32,61,61,29,70,163,17,60,207,163,182,182,22,38,147,9,131,6,13,146, -149,95,210,106,181,72,78,78,134,86,171,85,124,171,109,108,108,236,214,197,69,8,33,247,14,41,201,109,107,107,67,71,71,71,68,235,182,19,226,78,163,209,160,119,239,222,17,153,227,69,9,46,33,33,54,96,192,0,116,116,116,224,246,237,219,208,104,52,72,77,77, -133,201,100,114,205,242,150,112,28,7,163,209,232,170,43,60,96,192,0,180,182,182,6,93,217,130,16,114,255,98,89,22,189,123,247,134,209,104,132,213,106,133,213,106,117,45,71,76,9,47,9,23,169,36,171,86,171,133,94,175,135,94,175,143,216,92,32,74,112,9,9,33, -150,101,17,23,23,135,202,202,74,0,119,75,35,249,91,75,148,16,66,186,74,163,209,192,104,52,42,190,80,19,114,191,161,49,184,132,132,144,193,96,128,217,108,142,116,51,8,33,132,144,251,26,37,184,132,132,144,32,8,52,163,153,16,66,8,137,48,250,36,38,36,132, -108,54,155,98,194,152,52,254,168,115,242,203,113,28,156,78,103,88,219,71,8,33,132,220,15,40,193,37,36,132,4,65,64,83,83,19,6,13,26,4,142,227,16,27,27,139,236,236,108,48,12,131,250,250,122,215,235,90,173,22,15,60,240,0,26,27,27,35,221,100,66,8,33,228, -158,67,147,204,8,9,177,154,154,26,36,38,38,34,51,51,19,60,207,227,202,149,43,16,69,17,141,141,141,112,58,157,24,60,120,48,68,81,68,85,85,149,107,73,65,0,104,107,107,131,205,102,139,96,203,9,33,132,144,123,3,211,175,95,63,17,0,226,227,227,35,82,167,140, -16,66,8,33,132,144,174,178,90,173,174,142,35,26,162,64,8,33,132,16,66,238,41,148,224,18,66,8,33,132,144,123,138,107,12,174,195,225,136,100,59,8,33,132,16,66,8,9,154,123,46,235,74,112,165,165,253,8,33,132,16,66,8,233,201,104,136,2,33,132,16,66,8,185,167, -252,31,114,133,21,76,228,72,236,4,0,0,0,0,73,69,78,68,174,66,96,130,0,0 }; +{ 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,3,44,0,0,1,94,8,6,0,0,0,103,251,155,126,0,0,0,9,112,72,89,115,0,0,14,195,0,0,14,195,1,199,111,168,100,0,0,0,25,116,69,88,116,83,111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101, +46,111,114,103,155,238,60,26,0,0,32,0,73,68,65,84,120,156,237,221,123,144,221,117,125,63,254,215,57,103,55,155,221,205,61,36,36,155,13,37,132,123,4,41,1,28,46,150,234,32,88,219,105,181,98,152,218,50,181,85,41,195,160,32,181,13,86,160,72,5,65,71,132,212, +90,59,69,4,43,165,83,109,65,40,82,161,141,32,1,185,4,40,36,13,9,133,196,68,72,34,75,178,228,178,57,187,123,110,191,63,242,59,251,77,178,231,108,118,115,219,247,38,143,199,204,206,132,243,185,156,247,249,204,240,126,127,158,159,207,251,146,153,62,125, +122,37,0,0,0,18,148,29,238,2,0,0,0,212,211,80,253,71,38,147,137,92,46,55,156,101,1,0,0,136,82,169,20,149,202,246,142,96,125,129,37,151,203,197,196,137,19,135,173,80,0,0,0,17,17,157,157,157,81,44,22,35,66,151,48,0,0,32,97,2,11,0,0,144,44,129,5,0,0,72, +150,192,2,0,0,36,75,96,1,0,0,146,37,176,0,0,0,201,18,88,0,0,128,100,9,44,0,0,64,178,4,22,0,0,32,89,2,11,0,0,144,44,129,5,0,0,72,150,192,2,0,0,36,75,96,1,0,0,146,37,176,0,0,0,201,18,88,0,0,128,100,9,44,0,0,64,178,4,22,0,0,32,89,2,11,0,0,144,44,129,5,0, +0,72,150,192,2,0,0,36,75,96,1,0,0,146,37,176,0,0,0,201,18,88,0,0,128,100,9,44,0,0,64,178,4,22,0,0,32,89,2,11,0,0,144,44,129,5,0,0,72,150,192,2,0,0,36,75,96,1,0,0,146,37,176,0,0,0,201,18,88,0,0,128,100,9,44,0,0,64,178,4,22,0,0,32,89,2,11,0,0,144,44,129, +5,0,0,72,150,192,2,0,0,36,75,96,1,0,0,146,37,176,0,0,0,201,18,88,0,0,128,100,9,44,0,0,64,178,4,22,0,0,32,89,2,11,0,0,144,44,129,5,0,0,72,150,192,2,0,0,36,75,96,1,0,0,146,37,176,0,0,0,201,18,88,0,0,128,100,9,44,0,0,64,178,4,22,0,0,32,89,2,11,0,0,144,44, +129,5,0,0,72,150,192,2,0,0,36,75,96,1,0,0,146,37,176,0,0,0,201,18,88,0,0,128,100,9,44,0,0,64,178,4,22,0,0,32,89,2,11,0,0,144,44,129,5,0,0,72,150,192,2,0,0,36,75,96,1,0,0,146,37,176,0,0,0,201,18,88,0,0,128,100,9,44,0,0,64,178,4,22,0,0,32,89,2,11,0,0,144, +44,129,5,0,0,72,150,192,2,0,0,36,75,96,1,0,0,146,37,176,0,0,0,201,18,88,0,0,128,100,9,44,0,0,64,178,4,22,0,0,32,89,2,11,0,0,144,44,129,5,0,0,72,150,192,2,0,0,36,75,96,1,0,0,146,37,176,0,0,0,201,18,88,0,0,128,100,9,44,0,0,64,178,4,22,0,0,32,89,2,11,0, +0,144,44,129,5,0,0,72,150,192,2,0,0,36,75,96,1,0,0,146,37,176,0,0,0,201,18,88,0,0,128,100,9,44,0,0,64,178,4,22,0,0,32,89,2,11,0,0,144,44,129,5,0,0,72,150,192,2,0,0,36,75,96,1,0,0,146,37,176,0,0,0,201,18,88,0,0,128,100,9,44,0,0,64,178,4,22,0,0,32,89,2, +11,0,0,144,44,129,5,0,0,72,150,192,2,0,0,36,75,96,1,0,0,146,37,176,0,0,0,201,18,88,0,0,128,100,9,44,0,0,64,178,4,22,0,0,32,89,2,11,0,0,144,44,129,5,0,0,72,150,192,2,0,0,36,75,96,1,0,0,146,37,176,0,0,0,201,18,88,0,0,128,100,9,44,0,0,64,178,4,22,0,0,32, +89,2,11,0,0,144,44,129,5,0,0,72,150,192,2,0,0,36,75,96,1,0,0,146,37,176,0,0,0,201,18,88,0,0,128,100,9,44,0,0,64,178,4,22,0,0,32,89,2,11,0,0,144,44,129,5,0,0,72,150,192,2,0,0,36,75,96,1,0,0,146,37,176,0,0,0,201,18,88,0,0,128,100,9,44,0,0,64,178,4,22,0, +0,32,89,2,11,0,0,144,44,129,5,0,0,72,150,192,2,0,0,36,75,96,1,0,0,146,37,176,0,0,0,201,18,88,0,0,128,100,9,44,0,0,64,178,4,22,0,0,32,89,2,11,0,0,144,44,129,5,0,0,72,150,192,2,0,0,36,75,96,1,0,0,146,37,176,0,0,0,201,18,88,0,0,128,100,9,44,0,0,64,178,4, +22,0,0,32,89,2,11,0,0,144,44,129,5,0,0,72,150,192,2,0,0,36,75,96,1,0,0,146,37,176,0,0,0,201,18,88,0,0,128,100,9,44,0,0,64,178,4,22,0,0,32,89,2,11,0,0,144,44,129,5,0,0,72,150,192,2,0,0,36,75,96,1,0,0,146,37,176,0,0,0,201,18,88,0,0,128,100,9,44,0,0,64, +178,4,22,0,0,32,89,2,11,0,0,144,44,129,5,0,0,72,150,192,2,0,0,36,75,96,1,0,0,146,37,176,0,0,0,201,18,88,0,0,128,100,9,44,0,0,64,178,4,22,0,0,32,89,2,11,0,0,144,44,129,5,0,0,72,150,192,2,0,0,36,75,96,1,0,0,146,37,176,0,0,0,201,18,88,0,0,128,100,9,44,0, +0,64,178,4,22,0,0,32,89,2,11,0,0,144,44,129,5,0,0,72,150,192,2,0,0,36,75,96,1,0,0,146,37,176,0,0,0,201,18,88,0,0,128,100,9,44,0,0,64,178,4,22,0,0,32,89,2,11,0,0,144,44,129,5,0,0,72,150,192,2,0,0,36,75,96,1,0,0,146,37,176,0,0,0,201,18,88,0,0,128,100,9, +44,0,0,64,178,4,22,0,0,32,89,2,11,0,0,144,44,129,5,0,0,72,150,192,2,0,0,36,75,96,1,0,0,146,37,176,0,0,0,201,18,88,0,0,128,100,9,44,0,0,64,178,4,22,0,0,32,89,2,11,0,0,144,44,129,5,0,0,72,150,192,2,0,0,36,75,96,1,0,0,146,37,176,0,0,0,201,18,88,0,0,128, +100,9,44,0,0,64,178,4,22,0,0,32,89,2,11,0,0,144,44,129,5,0,0,72,150,192,2,0,0,36,75,96,1,0,0,146,37,176,0,0,0,201,18,88,0,0,128,100,9,44,0,0,64,178,4,22,0,0,32,89,2,11,0,0,144,44,129,5,0,0,72,150,192,2,0,0,36,75,96,1,0,0,146,37,176,0,0,0,201,18,88,0, +0,128,100,9,44,0,0,64,178,4,22,0,0,32,89,2,11,0,0,144,44,129,5,0,0,72,150,192,2,0,0,36,75,96,1,0,0,146,37,176,0,0,0,201,18,88,0,0,128,100,9,44,0,0,64,178,4,22,0,0,32,89,2,11,0,0,144,44,129,5,0,0,72,150,192,2,0,0,36,75,96,1,0,0,146,37,176,0,0,0,201,18, +88,0,0,128,100,9,44,0,0,64,178,4,22,0,0,32,89,2,11,0,0,144,44,129,5,0,0,72,150,192,2,0,0,36,75,96,1,0,0,146,37,176,0,0,0,201,18,88,0,0,128,100,9,44,0,0,64,178,4,22,0,0,32,89,2,11,0,0,144,44,129,5,0,0,72,150,192,2,0,0,36,75,96,1,0,0,146,37,176,0,0,0,201, +18,88,0,0,128,100,9,44,0,0,64,178,4,22,0,0,32,89,2,11,0,0,144,44,129,5,0,0,72,150,192,2,0,0,36,75,96,1,0,0,146,37,176,0,0,0,201,18,88,0,0,128,100,9,44,0,0,64,178,4,22,0,0,32,89,2,11,0,0,144,44,129,5,0,0,72,150,192,2,0,0,36,75,96,1,0,0,146,37,176,0,0, +0,201,18,88,0,0,128,100,9,44,0,0,64,178,4,22,0,0,32,89,2,11,0,0,144,44,129,5,0,0,72,150,192,2,0,0,36,75,96,1,0,0,146,37,176,0,0,0,201,18,88,0,0,128,100,9,44,0,0,64,178,4,22,0,0,32,89,2,11,0,0,144,172,134,225,46,0,0,195,103,218,180,105,209,219,219,27, +27,55,110,236,251,108,250,244,233,209,211,211,19,197,98,49,166,79,159,222,247,121,165,82,137,85,171,86,197,204,153,51,99,229,202,149,125,159,55,55,55,199,148,41,83,98,205,154,53,7,180,236,0,28,26,188,97,1,56,132,141,25,51,38,102,207,158,29,13,13,219, +159,95,181,180,180,196,145,71,30,25,205,205,205,209,213,213,21,171,87,175,142,76,38,19,27,54,108,136,53,107,214,68,161,80,136,108,54,27,83,166,76,233,59,199,172,89,179,98,211,166,77,195,245,19,0,56,200,9,44,0,135,184,142,142,142,56,226,136,35,34,98,123, +248,232,232,232,136,136,136,82,169,20,221,221,221,81,44,22,163,80,40,68,119,119,119,68,68,252,226,23,191,136,25,51,102,68,46,151,139,137,19,39,70,177,88,20,88,0,216,111,4,22,128,67,92,103,103,103,140,26,53,42,142,60,242,200,216,186,117,107,116,117,117, +13,184,127,177,88,140,117,235,214,69,123,123,123,204,156,57,51,86,173,90,117,128,74,10,192,161,72,96,1,32,86,173,90,21,19,38,76,136,95,254,242,151,131,218,255,87,191,250,85,76,158,60,57,58,59,59,163,80,40,236,231,210,1,112,40,19,88,0,136,158,158,158, +88,178,100,73,148,203,229,65,237,63,110,220,184,232,233,233,137,137,19,39,70,38,147,217,207,165,3,224,80,38,176,0,16,17,219,199,172,12,70,38,147,137,89,179,102,197,107,175,189,22,29,29,29,209,222,222,190,159,75,6,192,161,76,96,1,96,72,102,206,156,25, +111,191,253,118,244,244,244,196,250,245,235,99,252,248,241,209,210,210,50,220,197,2,224,32,101,29,22,128,67,88,119,119,119,191,55,43,133,66,33,50,153,76,76,156,56,177,111,246,176,214,214,214,168,84,42,241,202,43,175,68,107,107,107,44,95,190,60,34,254, +223,218,44,211,166,77,219,105,109,22,0,216,87,50,211,167,79,175,68,68,52,52,52,196,196,137,19,135,187,60,0,0,192,33,174,179,179,51,138,197,98,68,232,18,6,0,0,36,76,96,1,0,0,146,37,176,0,0,0,201,26,17,131,238,203,229,242,160,215,6,216,85,38,147,137,108, +54,27,153,76,38,42,149,74,148,203,229,168,84,42,117,247,137,136,65,239,183,191,202,188,171,29,203,95,253,27,170,93,175,67,245,55,14,246,216,29,255,0,14,21,59,214,187,213,122,125,199,58,184,90,47,86,235,215,93,219,136,253,93,223,214,107,175,34,182,183, +29,217,108,253,231,146,123,219,214,213,186,46,213,115,85,207,81,253,171,117,174,221,149,125,160,107,176,47,218,105,96,228,72,62,176,148,203,229,232,237,237,141,238,238,238,61,10,0,13,13,13,209,220,220,28,13,13,13,81,42,149,98,219,182,109,125,3,120,106, +237,147,201,100,6,189,223,64,101,46,20,10,53,103,223,25,170,108,54,27,77,77,77,209,216,216,24,165,82,105,143,207,185,99,217,43,149,202,160,175,105,181,193,200,229,114,209,208,208,16,13,13,13,145,203,229,132,23,224,160,86,189,33,46,149,74,81,40,20,250, +254,138,197,226,78,245,102,245,134,188,177,177,177,239,111,199,122,178,82,169,68,79,79,79,244,244,244,236,113,125,59,80,232,40,151,203,145,207,231,163,80,40,236,116,243,158,203,229,98,244,232,209,209,216,216,88,247,248,129,218,186,234,177,3,5,134,98, +177,24,189,189,189,209,211,211,19,133,66,33,74,165,82,95,25,178,217,108,52,52,52,196,168,81,163,250,174,203,174,109,71,185,92,142,158,158,158,232,237,237,237,119,77,155,154,154,162,169,169,169,238,247,151,74,165,200,231,243,81,44,22,107,254,238,166,166, +166,186,215,12,24,121,70,68,96,57,226,136,35,226,221,239,126,247,30,7,150,31,255,248,199,125,149,235,133,23,94,216,239,134,191,161,161,33,126,242,147,159,244,61,29,42,22,139,241,209,143,126,180,223,247,237,184,223,64,42,149,74,76,157,58,53,222,243,158, +247,236,147,192,242,234,171,175,198,138,21,43,98,242,228,201,113,246,217,103,239,113,96,121,232,161,135,34,98,251,53,61,242,200,35,227,164,147,78,218,237,53,45,151,203,177,105,211,166,88,189,122,117,223,52,166,205,205,205,209,212,212,180,219,224,6,48, +18,149,203,229,40,22,139,209,211,211,19,249,124,62,90,90,90,226,55,126,227,55,226,189,239,125,111,180,181,181,197,244,233,211,163,165,165,37,122,123,123,99,211,166,77,177,114,229,202,88,190,124,121,60,243,204,51,177,108,217,178,24,53,106,84,52,55,55, +199,168,81,163,162,92,46,199,177,199,30,27,199,31,127,252,110,235,219,98,177,24,155,55,111,142,149,43,87,198,171,175,190,26,185,92,174,175,190,173,222,236,215,58,230,125,239,123,95,140,31,63,190,223,141,251,51,207,60,19,27,55,110,28,240,251,234,181,117, +143,60,242,72,148,74,165,154,223,89,13,26,219,182,109,139,214,214,214,184,232,162,139,226,172,179,206,138,35,143,60,50,154,155,155,251,214,231,89,190,124,121,44,90,180,40,158,122,234,169,136,232,223,118,148,74,165,152,59,119,110,204,152,49,99,167,178, +103,179,217,248,223,255,253,223,88,179,102,77,221,176,85,44,22,227,183,127,251,183,163,177,177,113,167,207,115,185,92,60,246,216,99,209,219,219,91,247,119,3,35,79,242,129,165,82,169,196,9,39,156,16,87,93,117,213,30,159,99,225,194,133,125,79,183,174,184, +226,138,154,21,224,19,79,60,17,91,183,110,141,76,38,19,229,114,57,62,251,217,207,70,67,67,255,203,179,104,209,162,216,178,101,203,128,55,234,149,74,37,142,60,242,200,248,220,231,62,183,199,101,222,209,119,190,243,157,88,190,124,121,180,181,181,237,213, +57,171,13,80,165,82,137,57,115,230,12,249,154,230,243,249,120,240,193,7,227,174,187,238,138,206,206,206,104,109,109,21,90,128,131,70,245,173,74,79,79,79,116,117,117,197,140,25,51,226,178,203,46,139,243,206,59,47,114,185,92,205,99,166,76,153,18,71,31, +125,116,156,127,254,249,17,17,177,118,237,218,184,251,238,187,227,63,254,227,63,250,186,38,157,118,218,105,113,201,37,151,12,169,44,91,182,108,137,251,239,191,63,238,186,235,174,232,234,234,138,150,150,150,126,245,109,245,33,219,199,62,246,177,56,233, +164,147,250,157,227,234,171,175,142,13,27,54,12,248,91,47,191,252,242,24,53,106,84,191,237,79,61,245,84,108,218,180,169,223,231,229,114,57,186,187,187,35,159,207,199,167,62,245,169,248,196,39,62,81,243,248,169,83,167,198,201,39,159,28,243,230,205,139, +174,174,174,248,207,255,252,207,248,238,119,191,27,239,188,243,78,180,180,180,68,54,155,141,74,165,18,231,157,119,94,124,232,67,31,234,119,252,130,5,11,98,245,234,213,117,203,94,169,84,226,147,159,252,100,76,157,58,181,223,246,165,75,151,198,218,181, +107,107,30,11,140,76,135,196,160,251,161,142,253,24,104,191,61,25,63,178,47,236,139,239,221,241,28,123,114,190,230,230,230,152,55,111,94,252,224,7,63,136,179,207,62,59,186,186,186,246,250,13,18,64,10,42,149,74,95,23,169,66,161,16,87,95,125,117,220,119, +223,125,113,193,5,23,212,13,43,181,180,181,181,197,23,190,240,133,248,193,15,126,80,243,70,126,176,198,142,29,27,23,95,124,113,252,219,191,253,91,188,251,221,239,142,124,62,95,243,13,205,222,180,13,67,61,182,218,157,184,82,169,196,183,191,253,237,184, +228,146,75,6,245,27,91,91,91,227,163,31,253,104,220,127,255,253,241,251,191,255,251,251,164,124,41,182,211,192,254,115,72,4,150,193,14,92,60,216,237,171,55,33,173,173,173,113,243,205,55,199,169,167,158,218,215,120,1,140,84,213,176,146,207,231,99,226, +196,137,113,215,93,119,197,133,23,94,56,224,216,145,221,89,182,108,89,223,3,157,189,169,35,39,76,152,16,183,221,118,91,28,115,204,49,117,235,219,122,231,223,215,117,115,117,28,229,45,183,220,18,167,158,122,234,144,143,111,104,104,136,85,171,86,237,213, +117,5,14,77,135,68,173,113,160,103,12,169,14,154,220,87,118,55,232,114,176,246,229,117,104,104,104,136,235,174,187,174,175,31,50,192,72,85,237,230,52,117,234,212,248,254,247,191,31,199,30,123,236,94,159,239,251,223,255,254,62,187,49,111,106,106,138,107, +175,189,182,223,128,255,3,169,58,190,243,252,243,207,143,51,207,60,115,143,206,241,236,179,207,198,43,175,188,162,27,49,48,100,201,143,97,25,72,119,119,119,188,253,246,219,3,86,126,213,240,112,32,43,200,108,54,27,165,82,41,214,174,93,219,239,9,87,165, +82,137,182,182,182,154,13,217,250,245,235,107,222,252,119,119,119,15,24,128,138,197,98,172,95,191,126,183,215,161,161,161,161,223,108,48,187,90,190,124,121,60,240,192,3,209,210,210,18,19,38,76,136,83,79,61,53,78,60,241,196,154,251,30,126,248,225,113, +238,185,231,198,162,69,139,6,60,39,64,170,42,149,74,20,10,133,104,110,110,142,111,126,243,155,49,126,252,248,189,62,231,194,133,11,227,141,55,222,168,57,14,114,71,47,188,240,66,252,215,127,253,87,180,180,180,196,164,73,147,226,140,51,206,136,163,143, +62,186,230,190,179,103,207,142,185,115,231,198,210,165,75,247,233,3,177,193,170,94,167,63,252,195,63,172,187,79,117,160,124,75,75,75,180,183,183,199,172,89,179,118,106,235,238,186,235,174,97,41,59,48,242,141,232,192,242,243,159,255,60,174,191,254,250, +1,167,47,28,142,233,119,51,153,76,252,207,255,252,79,252,201,159,252,73,191,192,178,109,219,182,120,228,145,71,162,165,165,165,223,113,87,94,121,101,188,253,246,219,59,85,240,213,178,15,244,27,86,175,94,29,159,248,196,39,162,185,185,121,192,50,13,230, +90,188,249,230,155,241,227,31,255,184,239,154,222,125,247,221,113,193,5,23,196,231,63,255,249,154,251,159,115,206,57,241,179,159,253,44,42,149,138,167,102,192,136,83,237,10,246,245,175,127,61,218,218,218,234,238,87,169,84,98,241,226,197,241,228,147,79, +198,138,21,43,226,157,119,222,137,66,161,16,147,39,79,142,25,51,102,196,123,223,251,222,56,231,156,115,34,151,203,197,63,255,243,63,15,106,66,146,85,171,86,197,195,15,63,220,55,14,228,187,223,253,110,204,155,55,47,62,253,233,79,215,220,255,156,115,206, +137,151,95,126,121,88,234,219,74,165,18,211,166,77,171,249,246,169,88,44,198,213,87,95,29,47,189,244,82,95,251,85,169,84,98,202,148,41,241,129,15,124,32,62,246,177,143,197,210,165,75,227,255,254,239,255,118,27,226,0,106,25,209,53,199,142,11,83,13,102, +129,171,3,169,86,56,168,84,42,3,118,17,168,190,13,170,181,207,238,186,1,84,143,219,23,141,216,174,11,151,61,244,208,67,113,193,5,23,212,156,133,166,189,189,221,24,22,96,68,170,14,34,127,255,251,223,63,224,152,140,21,43,86,196,237,183,223,30,175,189,246, +90,191,250,121,235,214,173,177,122,245,234,88,180,104,81,28,126,248,225,113,198,25,103,196,155,111,190,57,232,238,96,187,214,183,247,220,115,79,92,112,193,5,113,196,17,71,244,219,183,189,189,125,104,63,112,31,155,62,125,122,205,207,159,123,238,185,120, +250,233,167,163,165,165,101,167,182,111,195,134,13,113,239,189,247,198,67,15,61,20,45,45,45,222,174,0,123,236,160,25,195,178,227,76,96,123,186,26,252,72,86,253,189,251,235,58,44,91,182,172,230,231,251,162,251,4,192,112,168,174,208,126,229,149,87,214, +221,231,169,167,158,138,171,174,186,42,86,174,92,185,211,194,135,187,254,229,114,185,232,232,232,136,135,30,122,104,175,199,174,188,242,202,43,53,63,31,238,250,118,204,152,49,53,63,111,109,109,141,124,62,223,183,176,241,174,171,221,111,221,186,53,222, +122,235,173,61,122,160,118,168,183,237,192,118,35,250,13,75,245,233,88,189,74,112,160,55,22,7,155,66,161,80,247,13,75,181,209,24,234,88,158,234,60,253,197,98,177,238,53,236,234,234,210,21,12,24,145,74,165,82,252,250,175,255,122,205,181,60,34,182,119, +183,189,233,166,155,234,46,160,184,171,189,169,11,83,175,111,179,217,108,188,245,214,91,53,183,157,124,242,201,113,205,53,215,196,141,55,222,24,189,189,189,49,122,244,232,104,104,104,232,183,178,253,80,148,203,229,1,103,69,43,20,10,67,62,39,48,114,141, +232,192,82,93,133,189,94,159,216,134,134,134,104,105,105,137,209,163,71,31,212,161,165,82,169,196,230,205,155,235,94,135,108,54,27,163,71,143,142,214,214,214,221,190,146,175,206,4,83,93,212,171,80,40,68,62,159,143,51,206,56,163,230,254,191,248,197,47, +14,248,164,6,0,251,66,185,92,142,15,124,224,3,117,183,127,235,91,223,234,123,24,180,63,84,235,216,76,38,211,247,239,66,161,16,115,231,206,173,185,255,234,213,171,15,248,172,151,85,153,76,38,214,172,89,19,235,214,173,171,217,53,236,35,31,249,72,156,126, +250,233,241,119,127,247,119,241,147,159,252,36,26,27,27,99,244,232,209,209,216,216,184,71,11,12,23,10,133,120,231,157,119,234,182,89,2,11,28,90,70,116,96,57,253,244,211,227,222,123,239,173,187,61,155,205,198,157,119,222,25,47,191,252,242,1,44,213,129, +55,115,230,204,1,175,67,38,147,137,231,159,127,62,238,190,251,238,221,6,150,114,185,28,91,182,108,137,108,54,27,229,114,57,26,27,27,227,234,171,175,142,95,251,181,95,171,185,255,226,197,139,15,234,48,8,28,188,74,165,82,156,125,246,217,53,183,173,93,187, +54,158,123,238,185,189,90,252,113,119,118,173,111,71,143,30,29,95,250,210,151,98,210,164,73,53,247,95,188,120,241,176,142,3,201,102,179,241,189,239,125,47,230,207,159,95,115,123,123,123,123,124,229,43,95,137,207,124,230,51,113,207,61,247,196,125,247, +221,23,249,124,62,90,90,90,98,212,168,81,67,10,91,23,95,124,113,124,240,131,31,28,112,159,122,215,9,56,248,140,232,192,50,110,220,184,154,3,193,119,221,231,96,239,243,218,212,212,180,219,235,176,110,221,186,65,93,135,19,79,60,49,230,207,159,31,99,198, +140,137,201,147,39,199,41,167,156,82,115,70,179,136,237,3,42,23,45,90,36,176,0,35,210,152,49,99,234,222,244,62,251,236,179,251,125,150,201,185,115,231,198,252,249,243,99,236,216,177,49,101,202,148,56,229,148,83,234,206,122,249,198,27,111,196,139,47,190, +56,172,111,179,179,217,108,252,247,127,255,119,204,153,51,39,126,231,119,126,167,238,126,109,109,109,241,23,127,241,23,113,201,37,151,196,29,119,220,17,255,250,175,255,218,55,117,244,96,223,182,76,155,54,45,166,77,155,182,47,139,15,140,96,35,58,176,12, +198,193,30,86,246,181,246,246,246,248,131,63,248,131,221,238,87,169,84,226,246,219,111,31,176,191,53,64,202,198,141,27,87,119,219,250,245,235,247,251,247,207,158,61,59,102,207,158,189,219,253,138,197,98,220,122,235,173,17,177,119,227,100,246,133,108, +54,27,127,251,183,127,27,17,49,96,104,137,216,62,73,192,159,255,249,159,199,69,23,93,20,243,231,207,143,149,43,87,70,107,107,171,169,141,129,33,59,232,239,52,135,99,29,150,20,237,203,235,80,42,149,226,246,219,111,143,167,159,126,90,88,1,14,74,185,92, +46,202,229,242,176,63,244,42,20,10,113,203,45,183,196,210,165,75,147,168,111,171,109,201,130,5,11,226,154,107,174,169,59,16,127,71,237,237,237,113,231,157,119,198,105,167,157,22,249,124,126,183,211,244,3,236,106,248,107,191,253,108,79,6,251,29,140,246, +213,108,105,75,151,46,141,43,174,184,34,30,126,248,97,115,234,3,35,218,214,173,91,235,110,107,111,111,143,98,177,56,172,129,101,241,226,197,113,217,101,151,197,207,126,246,179,164,234,219,234,12,156,139,23,47,142,79,125,234,83,241,247,127,255,247,241, +246,219,111,15,120,76,83,83,83,124,237,107,95,139,35,142,56,194,128,121,96,200,70,244,123,217,53,107,214,196,227,143,63,62,224,64,190,161,44,224,53,82,189,243,206,59,241,192,3,15,12,56,91,215,154,53,107,6,53,155,87,111,111,111,221,65,166,143,63,254,120, +92,117,213,85,49,126,252,248,253,58,16,21,224,64,216,182,109,91,116,116,116,196,148,41,83,250,109,59,243,204,51,163,84,42,245,77,105,188,63,30,124,13,84,223,222,127,255,253,113,227,141,55,198,184,113,227,162,177,177,113,192,243,212,43,91,117,182,199, +122,42,149,202,94,117,207,202,100,50,209,219,219,27,247,223,127,127,60,248,224,131,113,254,249,231,199,31,253,209,31,197,97,135,29,86,115,255,209,163,71,199,95,253,213,95,197,165,151,94,186,219,223,180,120,241,226,88,190,124,121,205,246,187,82,169,68, +169,84,138,11,47,188,176,238,24,75,224,224,50,162,3,203,235,175,191,30,223,249,206,119,234,14,82,172,86,226,213,41,35,15,86,27,54,108,136,59,238,184,35,154,155,155,235,238,83,93,139,101,119,158,120,226,137,200,229,114,241,155,191,249,155,253,182,157, +123,238,185,113,209,69,23,197,191,255,251,191,71,54,155,245,246,10,24,209,114,185,92,60,249,228,147,241,225,15,127,184,223,182,9,19,38,196,249,231,159,31,143,62,250,104,223,42,237,251,186,190,123,248,225,135,99,214,172,89,113,242,201,39,247,219,246,225, +15,127,56,158,123,238,185,248,233,79,127,58,224,58,90,3,149,169,185,185,185,110,219,87,46,151,163,169,169,105,72,15,244,170,107,197,212,90,56,179,92,46,199,195,15,63,28,143,62,250,104,124,252,227,31,143,143,127,252,227,53,203,118,210,73,39,197,49,199, +28,19,111,188,241,198,128,237,242,147,79,62,25,63,250,209,143,234,6,155,124,62,31,31,252,224,7,5,22,56,68,140,232,87,15,59,86,150,217,108,182,223,223,161,52,126,165,250,123,107,93,135,161,206,219,127,243,205,55,199,27,111,188,81,115,219,231,63,255,249, +190,126,200,165,82,105,95,21,31,224,128,203,102,179,241,211,159,254,180,238,246,43,175,188,50,198,140,25,19,249,124,126,183,221,195,170,79,253,119,92,233,125,119,138,197,98,92,119,221,117,177,113,227,198,154,219,175,191,254,250,56,250,232,163,119,59, +238,163,171,171,171,230,231,109,109,109,81,44,22,251,29,91,45,107,189,5,51,35,182,7,130,29,219,141,234,66,205,93,93,93,53,175,71,181,253,41,149,74,113,231,157,119,198,61,247,220,83,247,220,39,156,112,66,221,109,59,158,79,219,14,84,141,232,192,50,92,42, +149,202,128,127,41,150,105,40,229,202,231,243,241,215,127,253,215,209,211,211,211,111,91,54,155,141,91,110,185,37,166,77,155,22,221,221,221,66,11,48,98,101,50,153,120,229,149,87,98,205,154,53,53,183,79,152,48,33,22,44,88,16,205,205,205,177,101,203,150, +200,231,243,209,219,219,27,197,98,177,47,156,20,139,197,40,20,10,209,211,211,19,93,93,93,177,117,235,214,40,20,10,131,174,115,223,121,231,157,248,155,191,249,155,154,117,105,99,99,99,220,118,219,109,49,110,220,184,232,238,238,238,23,60,170,55,244,91, +182,108,169,121,238,179,206,58,43,182,109,219,214,175,204,213,5,129,79,63,253,244,154,199,149,203,229,157,66,80,117,65,225,238,238,238,184,226,138,43,98,212,168,81,177,101,203,150,232,238,238,238,11,68,59,182,53,229,114,57,30,123,236,177,186,191,121, +244,232,209,131,184,50,0,255,143,192,50,68,189,189,189,145,207,231,235,254,245,244,244,12,203,64,205,158,158,158,232,238,238,30,176,92,131,125,242,151,205,102,227,151,191,252,101,44,88,176,160,230,246,214,214,214,88,176,96,65,52,54,54,70,79,79,143,25, +95,128,17,169,250,164,254,155,223,252,102,221,125,142,59,238,184,184,247,222,123,227,188,243,206,139,77,155,54,197,166,77,155,98,203,150,45,177,117,235,214,190,128,178,105,211,166,216,184,113,99,28,127,252,241,241,217,207,126,182,239,141,200,96,235,219, +165,75,151,198,29,119,220,81,115,251,164,73,147,226,27,223,248,70,84,42,149,154,245,109,54,155,173,251,70,252,196,19,79,140,247,191,255,253,125,101,174,150,119,243,230,205,49,122,244,232,248,227,63,254,227,154,199,173,93,187,118,167,255,174,126,247,239, +253,222,239,197,188,121,243,226,190,251,238,139,11,46,184,32,54,111,222,28,155,55,111,238,107,99,122,122,122,34,159,207,71,87,87,87,204,156,57,179,238,111,238,236,236,244,134,4,24,146,17,61,134,101,184,20,10,133,186,149,109,117,0,99,117,22,149,3,161, +186,74,114,79,79,79,221,114,141,26,53,42,138,197,226,160,7,203,103,179,217,120,228,145,71,226,93,239,122,87,252,214,111,253,86,191,237,51,102,204,136,175,126,245,171,113,249,229,151,71,54,155,141,166,166,38,13,16,48,226,100,179,217,120,241,197,23,227, +241,199,31,143,115,207,61,183,230,62,135,29,118,88,220,120,227,141,241,153,207,124,38,22,46,92,24,47,191,252,114,108,220,184,49,182,109,219,22,109,109,109,49,107,214,172,56,239,188,243,226,152,99,142,137,136,136,71,31,125,52,86,174,92,89,119,124,229, +174,114,185,92,252,240,135,63,140,57,115,230,196,57,231,156,211,111,251,113,199,29,23,55,220,112,67,92,125,245,213,145,205,102,99,212,168,81,125,245,109,54,155,141,37,75,150,212,61,247,77,55,221,20,115,231,206,141,39,158,120,34,58,58,58,98,204,152,49, +113,226,137,39,198,197,23,95,92,119,209,204,23,94,120,161,111,204,76,165,82,233,91,244,241,178,203,46,139,136,136,177,99,199,198,13,55,220,16,159,254,244,167,227,31,255,241,31,99,225,194,133,209,217,217,25,17,219,103,3,59,251,236,179,227,202,43,175,172, +91,166,181,107,215,14,185,171,50,112,104,19,88,134,232,193,7,31,220,237,62,215,94,123,109,60,253,244,211,7,160,52,219,205,154,53,43,158,125,246,217,221,238,247,161,15,125,104,72,93,184,114,185,92,44,88,176,32,102,205,154,21,199,31,127,124,191,237,167, +157,118,90,204,159,63,63,190,242,149,175,68,54,155,141,198,198,70,13,16,48,226,228,114,185,248,250,215,191,30,211,167,79,143,99,143,61,182,238,126,211,166,77,235,27,80,62,144,75,46,185,36,174,188,242,202,33,205,192,149,203,229,226,171,95,253,106,204, +154,53,43,102,204,152,209,111,251,251,222,247,190,248,179,63,251,179,248,135,127,248,135,157,38,61,169,118,107,219,176,97,67,76,158,60,185,230,121,231,205,155,23,243,230,205,27,116,89,158,120,226,137,190,193,248,213,177,43,87,92,113,69,140,29,59,118, +167,253,102,206,156,25,55,220,112,67,124,233,75,95,138,142,142,142,40,22,139,49,117,234,212,1,127,247,250,245,235,227,245,215,95,223,237,44,97,0,59,210,37,108,63,72,117,70,178,161,150,171,250,116,237,203,95,254,114,221,62,210,31,249,200,71,226,194,11, +47,140,109,219,182,13,251,154,5,0,123,162,58,61,239,23,191,248,197,120,243,205,55,247,250,124,239,121,207,123,98,206,156,57,67,122,64,148,201,100,162,167,167,167,238,248,193,136,136,63,253,211,63,141,243,206,59,47,182,109,219,214,215,197,55,147,201,68, +169,84,138,127,249,151,127,217,235,114,71,68,44,91,182,44,94,124,241,197,190,135,79,149,74,37,78,58,233,164,248,221,223,253,221,1,203,62,117,234,212,104,107,107,219,109,72,251,225,15,127,152,212,154,50,192,200,32,176,252,255,14,212,155,129,129,190,39, +197,183,19,153,76,38,58,58,58,226,166,155,110,170,27,70,118,156,57,204,120,22,96,36,202,100,50,177,101,203,150,184,252,242,203,227,231,63,255,249,94,159,239,210,75,47,221,233,220,131,145,205,102,99,205,154,53,113,235,173,183,214,221,231,250,235,175,143, +99,142,57,102,167,65,248,217,108,54,30,124,240,193,120,254,249,231,247,170,204,91,183,110,141,91,110,185,101,167,41,235,179,217,108,76,159,62,125,159,44,246,248,242,203,47,199,131,15,62,120,208,175,141,6,236,123,201,215,26,3,77,95,56,212,169,13,7,27, +22,246,182,50,29,232,248,61,13,44,131,93,71,101,119,229,218,177,17,170,247,61,187,150,35,155,205,198,243,207,63,95,119,154,202,108,54,27,55,223,124,115,204,156,57,211,91,22,96,196,202,100,50,145,207,231,227,250,235,175,143,111,125,235,91,117,223,44,15, +70,46,151,139,150,150,150,1,219,169,90,227,56,114,185,92,44,92,184,48,30,120,224,129,154,199,52,54,54,198,55,190,241,141,152,52,105,210,78,111,89,34,34,190,252,229,47,199,115,207,61,183,71,229,221,176,97,67,124,241,139,95,140,245,235,215,239,84,166,76, +38,19,79,62,249,100,124,242,147,159,220,171,174,206,47,188,240,66,92,123,237,181,59,93,143,189,105,223,7,26,3,35,16,193,193,39,249,255,171,171,99,35,106,201,229,114,131,94,204,43,147,201,12,248,170,122,199,254,192,123,179,242,111,196,246,6,165,86,133, +57,216,50,212,178,47,202,85,61,190,218,255,185,150,122,215,52,155,205,198,63,253,211,63,213,109,12,91,91,91,227,182,219,110,139,137,19,39,238,85,25,1,134,83,181,29,248,209,143,126,20,23,95,124,113,124,239,123,223,139,142,142,142,65,29,91,42,149,226,153, +103,158,137,191,252,203,191,140,249,243,231,71,177,88,220,163,250,54,151,203,197,183,191,253,237,88,177,98,69,205,227,38,77,154,20,183,222,122,235,78,139,38,86,195,214,53,215,92,19,183,223,126,251,160,187,182,229,243,249,184,255,254,251,227,210,75,47, +141,21,43,86,212,108,187,178,217,108,116,116,116,196,117,215,93,23,159,251,220,231,226,177,199,30,139,222,222,222,65,157,127,237,218,181,241,181,175,125,45,190,240,133,47,236,52,49,76,245,33,92,189,107,83,175,29,173,30,59,80,219,111,124,12,28,124,50, +211,167,79,175,68,108,191,153,77,241,102,179,82,169,196,225,135,31,30,71,29,117,84,191,109,157,157,157,177,124,249,242,65,191,101,41,151,203,113,214,89,103,245,251,60,147,201,196,226,197,139,251,94,121,215,219,111,48,50,153,76,188,250,234,171,241,246, +219,111,215,44,87,185,92,142,51,207,60,179,223,182,76,38,19,47,188,240,66,221,190,203,149,74,37,198,143,31,31,115,230,204,217,163,55,24,153,76,38,158,121,230,153,190,169,54,167,77,155,22,179,102,205,234,183,223,198,141,27,99,197,138,21,53,203,94,169, +84,98,236,216,177,241,174,119,189,171,238,119,188,241,198,27,177,102,205,154,36,187,183,1,12,197,142,107,88,205,154,53,43,230,206,157,27,109,109,109,49,105,210,164,152,48,97,66,116,117,117,197,230,205,155,227,205,55,223,140,215,94,123,45,150,44,89,18, +93,93,93,59,189,29,168,84,42,49,115,230,204,104,111,111,239,119,254,183,222,122,43,94,127,253,245,186,245,237,196,137,19,107,78,120,18,177,189,190,93,181,106,85,172,91,183,174,223,241,213,114,159,112,194,9,113,226,137,39,198,81,71,29,21,99,198,140,137, +113,227,198,69,62,159,143,45,91,182,196,250,245,235,99,217,178,101,177,100,119,38,0,241,0,0,2,210,73,68,65,84,201,146,216,182,109,219,160,123,44,84,207,61,122,244,232,56,233,164,147,226,216,99,143,141,246,246,246,24,63,126,124,180,182,182,198,214,173, +91,163,179,179,51,86,173,90,21,75,150,44,137,87,95,125,181,238,185,43,149,74,28,115,204,49,113,216,97,135,245,219,182,122,245,234,88,187,118,109,221,50,149,203,229,56,253,244,211,251,133,147,76,38,19,47,189,244,82,108,219,182,109,183,191,5,72,91,103, +103,103,20,139,197,136,24,1,129,37,98,224,193,226,67,189,49,174,119,174,90,21,254,222,24,168,92,131,45,195,80,142,29,106,153,246,244,154,14,230,251,133,21,224,96,83,173,251,118,87,127,215,187,49,175,103,127,214,183,123,83,230,221,217,87,231,222,155,246, +125,111,218,82,32,125,59,6,150,17,49,173,241,190,172,124,6,123,174,253,89,225,237,205,185,247,85,185,246,244,60,26,2,224,80,180,55,55,247,195,85,223,238,77,153,15,212,185,83,104,15,129,244,37,63,134,5,0,0,56,116,9,44,0,0,64,178,4,22,56,68,52,54,54,90, +176,13,0,24,113,70,196,24,22,96,207,141,25,51,38,142,58,234,168,232,237,237,141,166,166,166,216,188,121,115,172,90,181,42,198,140,25,19,51,102,204,232,55,117,234,41,167,156,18,175,189,246,90,204,158,61,59,34,34,154,154,154,162,88,44,70,169,84,138,66, +161,16,203,150,45,27,142,159,1,0,28,162,4,22,56,136,53,52,52,196,209,71,31,29,203,150,45,139,222,222,222,200,100,50,49,109,218,180,221,46,172,150,207,231,227,165,151,94,138,136,136,163,142,58,42,58,59,59,163,179,179,243,64,20,25,0,96,39,2,11,28,196,218, +218,218,98,221,186,117,125,139,188,85,42,149,88,183,110,221,48,151,10,0,96,240,140,97,129,131,216,216,177,99,99,203,150,45,195,93,12,0,128,61,38,176,192,65,44,151,203,69,169,84,26,238,98,0,0,236,49,129,5,14,98,221,221,221,209,220,220,60,220,197,0,0,216, +99,2,11,28,196,58,58,58,226,240,195,15,223,233,179,230,230,230,104,108,108,140,158,158,158,126,97,38,151,203,69,54,155,245,86,6,0,72,134,192,2,7,177,206,206,206,40,151,203,49,123,246,236,24,51,102,76,76,158,60,57,142,59,238,184,200,229,114,81,40,20,98, +211,166,77,113,244,209,71,199,216,177,99,99,252,248,241,113,220,113,199,197,218,181,107,135,187,216,0,0,125,50,211,167,79,175,68,108,159,254,116,226,196,137,195,93,30,96,63,152,60,121,114,140,31,63,62,138,197,98,252,234,87,191,138,158,158,158,190,109, +19,39,78,140,9,19,38,68,185,92,142,206,206,206,216,188,121,243,78,199,78,152,48,33,186,187,187,163,187,187,251,64,23,27,0,56,68,117,118,118,70,177,88,140,8,129,5,0,0,72,204,142,129,69,151,48,0,0,32,89,2,11,0,0,144,44,129,5,0,0,72,86,67,245,31,165,82, +41,58,59,59,135,179,44,0,0,0,59,45,177,208,23,88,42,149,74,223,192,22,0,0,128,20,232,18,6,0,0,36,235,255,3,245,36,28,5,8,86,192,85,0,0,0,0,73,69,78,68,174,66,96,130,0,0 }; const char* BG_png = (const char*) temp_binary_data_0; +//================== crushslidefg.png ================== +static const unsigned char temp_binary_data_1[] = +{ 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,205,0,0,0,43,8,6,0,0,0,219,161,12,246,0,0,0,9,112,72,89,115,0,0,14,195,0,0,14,195,1,199,111,168,100,0,0,0,25,116,69,88,116,83,111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101, +46,111,114,103,155,238,60,26,0,0,2,52,73,68,65,84,120,156,237,221,77,78,20,65,0,197,241,247,10,56,130,58,213,237,65,132,137,25,78,224,36,106,136,231,48,198,143,165,11,81,113,199,45,212,184,192,3,8,18,52,126,92,99,186,58,114,5,144,231,66,198,140,12,19, +82,11,168,238,228,253,118,61,53,157,188,205,127,211,155,162,36,44,192,182,109,135,146,198,0,214,1,84,0,174,3,88,94,244,130,89,79,29,3,56,148,212,144,220,3,176,83,85,213,87,0,231,198,193,243,162,73,41,13,1,188,6,48,188,196,161,102,157,37,233,39,128,167, +117,93,127,58,123,118,54,154,165,148,210,11,0,79,174,106,156,89,199,109,87,85,245,16,192,239,233,15,179,209,44,53,77,243,142,228,221,34,211,204,58,74,210,135,186,174,55,0,156,0,64,152,30,164,148,94,57,24,179,121,36,239,165,148,54,255,61,75,194,100,50, +89,15,33,236,150,28,102,214,117,36,71,49,198,253,0,128,33,132,205,11,223,48,179,55,0,200,166,105,134,0,14,74,175,49,235,3,73,107,1,192,184,244,16,179,190,32,121,39,144,28,149,30,98,214,35,235,65,210,205,210,43,204,122,164,14,36,175,149,94,97,214,23,36, +7,65,210,74,233,33,102,125,33,105,37,92,252,55,51,155,229,104,204,50,57,26,179,76,142,198,44,147,163,49,203,228,104,204,50,57,26,179,76,142,198,44,147,163,49,203,228,104,204,50,57,26,179,76,142,198,44,147,163,49,203,228,104,204,50,57,26,179,76,142,198, +44,147,163,49,203,228,104,204,50,5,146,71,165,71,152,245,5,201,163,32,233,176,244,16,179,190,144,212,6,146,147,210,67,204,122,164,9,146,246,74,175,48,235,11,73,187,65,210,78,233,33,102,125,33,233,35,37,33,165,244,5,192,90,233,65,102,93,70,242,123,140, +113,53,156,62,60,195,130,75,57,205,12,192,223,62,30,1,80,0,128,24,227,62,128,173,162,147,204,58,76,210,203,24,227,1,240,255,157,155,161,109,219,183,146,238,151,155,102,214,61,36,223,199,24,31,224,236,157,155,0,78,98,140,27,0,158,23,89,102,214,77,219, +179,193,0,243,87,162,3,0,154,166,185,69,114,11,192,237,43,28,103,214,25,36,127,144,124,60,24,12,62,207,157,157,23,205,244,44,165,180,10,96,76,114,116,122,143,205,13,0,203,151,184,213,172,132,99,0,191,72,78,36,237,73,218,169,235,250,27,22,124,28,251,3, +237,141,177,174,40,179,133,154,0,0,0,0,73,69,78,68,174,66,96,130,0,0 }; + +const char* crushslidefg_png = (const char*) temp_binary_data_1; + +//================== panel.png ================== +static const unsigned char temp_binary_data_2[] = +{ 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,1,141,0,0,1,22,8,6,0,0,0,154,6,203,81,0,0,0,9,112,72,89,115,0,0,14,195,0,0,14,195,1,199,111,168,100,0,0,0,25,116,69,88,116,83,111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101, +46,111,114,103,155,238,60,26,0,0,32,0,73,68,65,84,120,156,237,157,233,119,27,231,117,255,191,152,5,251,74,128,0,247,69,162,86,74,148,45,197,118,99,233,23,203,174,157,164,61,73,227,164,125,209,237,180,125,209,190,106,210,191,33,127,83,223,55,201,113,106, +203,114,108,145,20,55,73,164,246,141,20,64,44,196,62,27,126,47,148,153,130,196,51,224,0,154,161,53,196,253,156,195,35,138,3,92,124,0,60,120,46,102,230,153,123,61,11,11,11,45,16,4,65,16,132,5,184,239,91,128,32,8,130,112,15,199,34,105,120,60,30,215,196, +37,87,114,37,87,114,117,202,245,40,16,250,189,35,207,243,8,6,131,224,56,14,173,86,11,138,162,160,213,106,65,211,52,180,90,71,123,196,75,127,3,236,124,92,39,98,58,21,151,92,201,149,92,201,213,236,113,56,142,131,199,227,129,32,8,240,120,60,208,52,13,181, +90,13,170,170,246,21,179,231,164,17,141,70,1,0,229,114,25,185,92,14,178,44,67,211,52,104,154,214,151,128,29,232,137,203,13,131,133,92,201,149,92,201,213,9,87,43,143,201,113,28,68,81,68,32,16,64,36,18,1,240,122,46,239,5,203,73,67,127,128,92,46,135,70, +163,1,85,85,251,206,84,118,195,243,188,237,123,56,30,143,7,30,143,199,246,55,150,92,201,149,92,201,213,9,87,171,52,26,13,212,106,53,20,139,69,4,2,1,36,18,9,120,60,30,203,201,227,208,164,193,243,60,226,241,56,114,185,28,246,246,246,140,195,80,64,239,217, +215,233,93,50,167,190,97,56,225,235,6,87,167,119,247,7,213,85,135,92,201,245,251,72,26,0,140,47,253,178,44,163,86,171,33,26,141,34,149,74,161,84,42,65,81,148,174,247,237,154,52,252,126,63,252,126,63,158,63,127,142,122,189,14,85,85,251,78,20,237,191,31, +60,9,212,254,127,179,236,43,8,230,170,60,207,131,227,56,211,67,100,173,86,139,185,87,164,239,174,177,208,255,174,239,70,178,48,123,61,220,228,42,138,162,233,125,244,99,161,228,106,175,171,155,198,0,185,58,231,170,159,111,0,246,207,129,250,185,97,214, +243,208,247,124,218,111,123,16,43,115,116,251,23,127,89,150,81,44,22,209,108,54,145,201,100,208,104,52,208,108,54,77,239,107,58,187,5,131,65,8,130,128,103,207,158,65,146,164,190,119,165,90,173,214,190,108,173,239,234,153,221,214,108,155,166,105,166,43, +14,244,201,162,91,220,94,31,175,221,181,215,55,166,219,182,183,205,181,219,185,40,114,37,87,114,117,198,245,224,227,30,140,223,235,115,104,167,219,28,107,22,83,85,85,212,106,53,188,120,241,2,163,163,163,224,121,30,181,90,141,121,123,102,210,240,249,124, +240,251,253,120,242,228,9,26,141,134,101,217,110,82,64,103,54,101,253,110,70,183,55,192,235,245,2,64,207,231,88,204,190,121,0,255,247,13,163,159,147,252,221,60,200,213,61,174,250,183,58,114,37,87,187,93,69,81,60,244,54,102,152,205,151,111,114,136,86, +223,187,105,52,26,120,249,242,37,38,38,38,160,40,10,36,73,234,184,109,199,62,153,199,227,193,208,208,16,94,188,120,129,102,179,105,235,177,188,131,187,86,118,97,182,107,105,71,92,187,125,121,158,183,53,158,14,185,218,239,218,190,92,209,78,200,149,92, +157,250,108,189,9,7,19,71,42,149,98,62,239,142,217,54,147,201,96,123,123,27,181,90,205,145,101,180,78,36,13,253,248,160,157,112,28,231,200,27,235,196,0,36,87,231,92,157,248,66,66,174,228,234,84,92,59,158,191,126,29,199,203,151,47,49,50,50,210,177,125, +159,181,40,138,80,85,21,197,98,209,177,132,225,196,222,134,126,2,204,78,156,114,21,4,129,92,93,226,170,127,176,201,149,92,157,112,181,59,166,217,66,163,126,208,52,13,197,98,17,170,170,26,135,210,116,246,189,194,163,163,163,216,217,217,217,183,172,214, +13,56,145,52,120,158,119,228,27,49,185,186,199,213,169,189,34,114,37,87,39,18,28,96,223,145,156,86,235,117,149,143,237,237,109,140,141,141,237,219,102,88,123,60,30,168,170,138,74,165,226,88,194,112,226,208,20,224,204,225,41,167,142,101,58,17,147,92,157, +117,181,27,114,37,87,39,246,182,237,142,215,106,181,80,169,84,160,170,234,190,216,198,234,169,209,209,81,20,139,69,71,247,50,52,77,235,186,222,185,95,234,245,58,100,89,182,53,166,44,203,198,137,33,59,33,87,247,185,186,105,188,186,197,213,137,171,161, +221,230,122,216,69,116,189,98,183,163,190,183,81,40,20,48,58,58,138,23,47,94,0,0,60,122,63,141,51,103,206,96,99,99,3,133,66,225,123,173,35,69,16,4,65,188,29,112,28,135,68,34,129,115,231,206,225,238,221,187,175,255,166,111,212,52,13,245,122,221,85,231, +50,8,130,32,8,231,104,181,90,29,121,129,3,94,31,11,83,20,197,216,197,37,8,130,32,8,189,204,136,44,203,198,121,13,14,0,66,161,208,91,83,177,150,32,8,130,120,187,80,85,21,193,96,16,192,159,147,134,215,235,253,222,202,244,18,4,65,16,111,47,250,194,21,189, +76,11,7,188,94,178,122,20,9,67,111,254,97,247,186,231,201,201,73,163,223,135,93,68,163,81,164,211,105,227,133,178,139,169,169,41,114,37,215,129,118,141,197,98,3,239,234,196,156,37,138,34,68,81,116,228,210,134,86,171,101,84,239,230,218,255,232,52,62,159, +15,225,112,184,107,233,240,126,56,123,246,44,134,134,134,108,141,153,76,38,49,57,57,137,64,32,96,107,220,179,103,207,34,153,76,218,26,211,41,215,51,103,206,184,230,117,117,194,53,149,74,97,98,98,194,145,49,64,174,19,240,251,253,182,198,117,147,235,233, +211,167,17,143,199,109,141,41,138,34,124,62,159,35,215,149,116,156,8,63,42,244,171,43,237,206,132,162,40,218,190,247,162,95,185,236,134,82,7,78,185,122,189,94,215,188,174,78,184,58,53,94,5,65,32,215,1,119,117,98,206,114,170,228,73,199,227,56,26,253,0, +30,143,199,53,19,49,199,113,142,212,135,17,69,145,92,93,226,202,243,60,185,14,248,24,112,147,43,224,92,197,239,125,143,225,248,35,180,63,216,159,179,160,27,222,0,55,125,8,157,116,117,162,184,164,91,92,157,156,48,6,217,213,77,99,192,77,243,128,83,243, +107,199,227,56,26,253,0,110,219,211,24,244,74,156,78,21,128,27,116,87,55,141,1,114,117,143,171,94,39,203,233,243,211,223,203,57,13,187,113,106,176,184,41,193,57,117,220,117,144,93,233,188,150,115,147,27,185,58,151,52,156,222,211,176,188,140,137,85,171, +157,85,163,74,16,4,248,253,126,227,155,159,254,226,240,60,143,68,34,129,112,56,140,96,48,8,73,146,140,129,174,111,111,52,26,120,250,244,41,42,149,74,71,220,203,151,47,35,20,10,117,56,0,192,236,236,44,0,96,120,120,184,227,126,170,170,98,103,103,7,155, +155,155,29,219,134,135,135,113,254,252,121,230,243,157,158,158,70,44,22,67,48,24,196,222,222,94,199,246,74,165,130,205,205,77,230,182,247,222,123,207,184,16,230,32,179,179,179,104,181,90,71,238,122,239,222,61,148,203,229,158,92,103,102,102,160,105,26, +210,233,52,211,117,123,123,27,91,91,91,199,218,53,26,141,34,20,10,217,234,58,59,59,59,208,174,51,51,51,136,68,34,93,93,239,222,189,203,156,7,220,238,170,239,5,176,230,1,189,224,164,44,203,120,245,234,21,30,61,122,212,17,51,22,139,97,108,108,12,170,170, +66,211,52,40,138,2,85,85,161,170,170,177,194,75,143,161,170,170,113,141,133,254,99,86,144,214,227,177,222,87,220,82,210,232,55,115,29,20,233,214,173,234,48,97,253,5,101,61,57,61,38,43,137,29,214,52,222,172,56,99,123,195,247,94,227,118,235,39,236,38,87, +253,125,55,139,105,198,113,114,245,120,204,251,67,247,251,126,233,223,6,7,217,21,48,127,63,187,21,76,117,147,107,183,237,237,71,92,218,223,27,253,247,126,14,49,233,115,139,217,124,125,88,76,171,137,195,82,210,104,15,116,88,80,85,85,81,175,215,247,137, +27,53,75,254,124,188,109,123,123,27,149,74,101,223,73,27,253,205,110,54,155,204,184,247,238,221,51,237,76,117,225,194,5,108,109,109,97,125,125,157,233,110,86,46,185,84,42,97,105,105,201,244,121,100,50,25,172,175,175,35,155,205,118,108,215,123,233,178, +184,115,231,142,105,114,188,120,241,34,238,223,191,143,181,181,181,183,222,117,97,97,161,47,215,98,177,120,44,92,245,111,173,235,235,235,200,229,114,61,185,110,108,108,116,117,237,103,188,30,23,215,86,171,133,84,42,53,16,174,102,19,248,252,252,60,238, +223,191,207,116,5,96,234,90,169,84,240,232,209,35,102,146,25,26,26,130,40,138,168,86,171,144,36,105,223,109,218,111,107,246,60,173,98,239,85,118,127,126,112,179,58,86,250,174,84,179,217,52,125,161,205,168,86,171,166,219,244,68,197,218,245,238,134,94, +136,139,69,189,94,71,179,217,68,185,92,238,57,110,55,87,69,81,80,171,213,92,225,42,203,114,95,174,138,162,152,222,199,109,174,141,70,3,149,74,197,118,215,126,198,235,113,114,117,106,12,188,77,174,172,67,86,237,143,89,171,213,186,222,134,133,62,215,177, +104,63,4,101,119,175,142,118,142,124,245,148,83,221,181,220,210,97,206,77,174,78,117,44,27,116,87,39,78,84,146,171,187,92,157,58,97,237,244,73,112,224,123,72,26,78,60,41,183,76,238,0,185,146,43,185,146,171,115,95,30,143,229,117,26,110,121,99,157,122, +225,201,149,92,201,213,125,19,177,221,28,197,149,219,78,113,228,73,195,109,113,7,253,195,237,4,228,58,216,174,250,74,175,65,119,117,67,76,22,182,159,8,239,70,163,209,64,181,90,181,189,225,211,243,231,207,123,62,161,116,24,123,123,123,240,122,189,144, +36,201,214,184,110,114,125,246,236,89,215,19,143,253,224,54,87,81,20,93,51,6,220,228,42,8,130,233,194,142,126,113,147,235,139,23,47,108,119,213,59,175,30,182,12,248,77,241,44,44,44,180,134,135,135,33,138,34,214,214,214,156,61,235,254,231,235,52,244,139, +78,236,194,239,247,219,190,98,64,175,55,163,95,68,99,23,228,74,174,228,250,218,213,236,66,179,126,25,116,215,110,215,128,189,9,130,32,96,126,126,30,178,44,35,155,205,30,237,158,70,183,139,179,222,132,94,151,239,90,193,169,228,73,174,228,74,174,228,234, +132,171,211,123,24,58,238,61,27,67,16,4,65,28,57,148,52,8,130,32,8,203,80,210,32,8,130,32,44,67,23,247,153,160,95,83,98,55,228,74,174,228,74,174,110,190,34,156,207,100,50,191,13,133,66,224,121,30,217,108,214,209,147,41,147,147,147,56,121,242,164,81,39, +199,46,126,253,235,95,67,150,101,188,124,249,210,182,152,239,189,247,30,126,240,131,31,160,88,44,218,186,148,211,77,174,191,249,205,111,32,73,18,182,183,183,109,139,233,54,215,43,87,174,56,50,6,6,217,245,253,247,223,199,229,203,151,81,40,20,6,214,245, +63,255,243,63,109,119,29,27,27,67,42,149,66,163,209,176,125,85,86,58,157,134,166,105,168,213,106,116,120,138,32,8,130,176,14,37,13,130,32,8,194,50,199,226,156,6,65,16,4,113,52,208,158,6,65,16,4,97,25,74,26,4,65,16,132,101,122,42,35,114,240,208,18,171, +22,11,199,113,70,189,150,246,31,142,227,16,12,6,225,247,251,17,137,68,246,85,143,212,127,84,85,69,165,82,97,158,249,31,26,26,218,215,87,183,157,64,32,128,120,60,190,175,73,123,187,163,222,209,236,32,62,159,15,209,104,148,25,51,145,72,32,26,141,34,149, +74,49,87,148,169,170,138,189,189,189,99,239,154,72,36,6,214,53,30,143,35,22,139,117,117,45,151,203,204,98,118,201,100,210,116,169,102,48,24,60,54,174,122,87,187,94,93,245,49,192,154,67,20,69,65,165,82,25,72,87,253,49,204,198,128,40,138,8,133,66,251,218, +188,234,247,241,249,124,240,122,189,240,251,253,29,219,244,66,134,253,246,31,111,167,107,210,104,79,18,7,39,248,86,171,197,252,96,139,162,136,84,42,5,65,16,32,138,34,68,81,132,32,8,240,122,189,72,165,82,198,224,150,101,25,162,40,130,231,121,8,130,0,158, +231,81,44,22,177,184,184,136,221,221,221,142,184,215,174,93,67,34,145,96,158,19,57,121,242,36,4,65,192,212,212,84,199,54,69,81,176,185,185,137,155,55,111,118,108,203,100,50,248,228,147,79,152,207,125,98,98,2,209,104,20,241,120,156,57,208,114,185,28,190, +254,250,107,102,223,224,255,247,255,254,31,18,137,4,51,238,247,225,186,187,187,139,175,191,254,154,217,147,251,71,63,250,17,226,241,56,51,238,137,19,39,192,243,60,211,85,150,101,108,109,109,49,93,71,70,70,240,241,199,31,187,222,117,114,114,18,225,112, +24,177,88,140,249,1,222,221,221,197,141,27,55,152,99,224,71,63,250,17,98,177,152,169,43,199,113,199,194,117,115,115,19,223,124,243,77,199,182,209,209,81,92,191,126,189,171,107,60,30,63,214,174,31,125,244,145,105,50,58,121,242,36,120,158,199,244,244,116, +71,47,239,102,179,137,173,173,45,124,247,221,119,29,247,75,167,211,184,116,233,18,100,89,134,170,170,70,27,104,89,150,141,100,225,241,120,80,175,215,161,40,138,113,59,253,247,70,163,193,76,26,237,243,234,97,73,165,107,210,56,120,103,253,255,221,78,102, +43,138,130,98,177,104,92,188,162,87,182,229,56,14,178,44,67,146,36,163,44,112,123,83,38,142,227,32,73,146,105,185,224,229,229,101,120,189,94,230,182,169,169,41,172,174,174,98,99,99,131,249,28,74,165,18,243,126,249,124,30,95,126,249,37,115,219,252,252, +60,210,233,52,86,86,86,152,3,194,236,155,0,0,44,45,45,189,117,174,102,253,141,23,23,23,187,186,174,172,172,224,206,157,59,61,185,238,238,238,30,11,215,11,23,46,32,149,74,97,101,101,133,249,69,166,155,235,173,91,183,14,29,3,199,193,181,88,44,246,236,122, +241,226,69,36,147,201,129,112,21,69,209,178,107,123,242,48,27,3,133,66,1,183,111,223,54,246,24,52,77,51,170,134,39,147,73,8,130,128,92,46,135,102,179,105,20,136,213,247,48,244,127,205,176,186,7,98,249,240,84,123,192,110,193,85,85,53,189,8,38,24,12,66, +20,69,236,236,236,152,190,129,102,60,126,252,216,116,91,161,80,192,179,103,207,176,185,185,217,83,204,74,165,98,122,159,120,60,142,86,171,133,7,15,30,96,103,103,103,32,93,139,197,226,192,187,170,170,138,135,15,31,186,98,12,188,77,174,229,114,217,116, +50,77,36,18,80,20,5,15,30,60,192,171,87,175,142,173,235,163,71,143,76,183,229,243,121,60,125,250,180,103,215,90,173,134,90,173,198,220,230,245,122,225,243,249,80,169,84,122,190,120,186,151,67,86,116,34,156,32,8,130,176,12,37,13,130,32,8,194,50,148,52, +8,130,32,8,203,80,210,32,8,130,32,44,115,164,73,67,85,85,72,146,100,123,37,221,189,189,61,72,146,100,107,204,102,179,137,90,173,6,85,85,109,141,75,174,238,113,149,36,9,245,122,221,21,227,213,109,174,181,90,109,160,93,205,174,153,121,19,244,165,181,118, +246,50,103,113,164,165,209,245,11,151,170,213,170,173,147,134,162,40,216,217,217,49,93,85,208,15,250,197,80,197,98,209,214,50,195,110,114,149,101,25,219,219,219,168,215,235,182,197,116,147,171,166,105,216,219,219,67,161,80,176,125,12,12,178,171,147,159, +173,65,118,109,181,90,144,36,201,246,47,230,7,75,163,123,22,22,22,90,195,195,195,16,69,17,107,107,107,142,53,82,39,8,130,32,220,135,32,8,152,159,159,135,44,203,200,102,179,116,78,131,32,8,130,176,14,37,13,130,32,8,194,50,148,52,8,130,32,8,203,80,210, +32,8,130,32,44,115,164,171,167,134,134,134,144,74,165,140,138,139,118,113,253,250,117,163,164,182,93,76,79,79,99,102,102,6,181,90,205,214,101,124,110,114,253,248,227,143,7,222,117,122,122,218,145,49,160,40,202,192,186,206,204,204,96,106,106,138,92,109, +118,141,197,98,136,68,34,144,101,217,209,213,83,71,186,167,17,14,135,145,78,167,77,171,84,246,203,197,139,23,153,53,244,223,132,116,58,141,153,153,25,4,131,65,91,227,186,205,53,149,74,217,26,147,92,221,55,6,156,114,13,4,2,182,198,117,147,171,94,149,216, +78,66,161,16,34,145,136,105,207,25,187,160,195,83,4,65,16,132,101,40,105,16,4,65,16,150,161,164,65,16,4,65,88,134,146,6,65,16,4,97,25,74,26,4,65,16,132,101,14,109,247,218,222,15,220,227,241,24,63,173,86,139,89,116,208,235,245,34,145,72,64,20,69,240,60, +15,81,20,33,8,2,68,81,68,58,157,70,60,30,71,60,30,135,44,203,224,121,30,130,32,128,227,56,240,60,143,114,185,140,213,213,85,20,10,133,142,184,159,125,246,25,98,177,24,179,63,249,153,51,103,32,8,2,78,158,60,217,177,77,150,101,60,126,252,24,139,139,139, +29,219,198,199,199,241,225,135,31,50,159,247,212,212,20,226,241,56,146,201,36,179,21,100,161,80,192,226,226,34,179,111,240,103,159,125,134,120,60,206,140,251,125,185,222,186,117,11,249,124,190,99,219,143,127,252,99,196,98,49,83,87,158,231,49,55,55,199, +116,125,244,232,17,150,150,150,58,182,77,76,76,224,135,63,252,161,235,93,167,167,167,17,139,197,144,74,165,76,93,191,251,238,59,230,120,253,201,79,126,130,104,52,106,234,42,8,194,192,186,206,204,204,32,18,137,152,186,230,243,121,220,186,117,203,245,174, +63,253,233,79,17,137,68,152,113,207,158,61,11,65,16,112,234,212,169,142,86,218,186,235,237,219,183,59,238,151,201,100,112,254,252,121,163,162,173,126,249,130,162,40,198,202,57,158,231,209,104,52,32,203,50,84,85,221,119,91,189,119,248,65,218,231,213,195, +170,228,90,238,17,110,53,160,166,105,70,149,69,142,227,160,40,10,56,142,131,32,8,8,135,195,240,249,124,40,151,203,168,215,235,224,121,30,60,207,131,227,56,120,60,30,212,106,53,211,235,55,242,249,60,26,141,6,51,105,84,171,85,20,139,69,102,111,100,77,211, +76,251,255,54,155,77,211,126,202,209,104,20,28,199,33,151,203,49,251,153,87,42,21,211,117,219,133,66,1,205,102,147,185,237,251,114,61,236,117,237,213,85,85,85,84,42,149,99,237,170,127,73,233,215,213,172,130,105,181,90,69,161,80,56,22,174,102,227,181, +209,104,116,117,5,112,236,93,115,185,156,105,53,235,246,241,122,112,78,85,20,197,212,85,146,36,20,10,5,168,170,10,77,211,160,40,138,241,47,199,113,224,56,14,205,102,19,205,102,19,138,162,64,85,85,227,11,190,254,251,155,114,104,210,56,152,5,15,163,253, +2,43,125,130,215,247,76,60,30,15,84,85,197,163,71,143,80,44,22,59,246,98,244,39,207,98,117,117,21,28,199,62,154,118,249,242,101,108,108,108,96,121,121,153,233,111,22,179,80,40,224,79,127,250,19,115,155,166,105,24,29,29,197,242,242,50,179,161,188,166, +105,166,131,101,101,101,229,88,184,94,185,114,165,47,215,124,62,127,44,92,91,173,22,70,70,70,250,114,189,125,251,118,87,215,59,119,238,28,107,215,110,227,181,213,106,33,147,201,96,105,105,9,217,108,246,216,186,90,153,7,88,123,19,221,92,75,165,18,54,54, +54,140,185,184,253,223,145,145,17,248,253,126,20,10,5,35,177,30,156,191,205,230,240,94,146,73,207,123,26,135,97,118,216,10,128,145,249,244,154,239,189,96,246,205,29,248,191,230,78,189,214,166,87,85,213,244,62,205,102,19,146,36,161,209,104,244,28,247, +56,185,54,155,205,129,117,109,52,26,104,54,155,182,187,234,135,9,6,213,213,169,49,48,8,174,154,166,153,198,213,52,205,56,20,101,119,147,179,118,232,68,56,65,16,4,97,25,74,26,4,65,16,132,101,40,105,16,4,65,16,150,161,164,65,16,4,65,88,198,246,19,225,221, +168,215,235,40,149,74,182,247,33,127,244,232,17,74,165,146,173,49,139,197,34,120,158,239,122,50,171,31,220,228,250,240,225,67,91,75,55,3,238,114,45,149,74,142,141,129,65,118,45,22,139,224,56,206,214,82,227,128,187,92,31,63,126,108,187,107,163,209,128, +166,105,142,182,183,0,0,207,194,194,66,107,120,120,24,162,40,98,109,109,205,246,9,157,32,8,130,112,47,130,32,96,126,126,30,178,44,35,155,205,210,225,41,130,32,8,194,58,148,52,8,130,32,8,203,80,210,32,8,130,32,44,67,73,131,32,8,130,176,204,145,38,13,65, +16,224,245,122,77,235,177,244,75,52,26,181,189,239,184,215,235,69,48,24,180,189,223,46,185,186,199,213,231,243,145,43,185,186,198,85,16,4,8,130,192,44,234,106,39,71,154,52,198,198,198,112,241,226,69,211,210,198,253,242,175,255,250,175,184,112,225,130, +173,49,47,93,186,132,207,62,251,204,246,230,239,110,114,253,183,127,251,55,204,207,207,219,26,211,77,174,11,11,11,248,244,211,79,29,25,3,131,236,122,233,210,37,124,250,233,167,72,38,147,182,198,117,147,235,191,252,203,191,224,252,249,243,182,198,76,167, +211,152,156,156,132,207,231,179,53,238,65,232,240,20,65,16,4,97,25,74,26,4,65,16,132,101,40,105,16,4,65,16,150,161,164,65,16,4,65,88,134,146,6,65,16,4,97,25,203,5,11,15,182,102,53,107,29,200,243,60,124,62,31,60,30,15,60,30,143,209,183,150,227,56,196, +98,49,132,195,97,164,82,41,4,2,1,99,187,30,91,150,101,228,243,121,102,113,176,137,137,9,211,37,106,241,120,28,99,99,99,204,30,190,154,166,161,82,169,32,151,203,117,108,11,133,66,200,100,50,204,152,163,163,163,24,30,30,198,212,212,20,66,161,80,199,246, +102,179,137,92,46,199,44,16,231,38,215,201,201,73,136,162,200,140,27,139,197,48,54,54,198,44,176,56,40,174,233,116,218,177,49,112,28,92,203,229,50,118,119,119,123,118,77,165,82,152,158,158,70,56,28,102,186,102,179,217,190,231,1,55,185,182,23,45,212,231, +83,221,53,159,207,119,220,47,24,12,34,30,143,163,213,106,25,197,9,245,223,67,161,16,68,81,68,56,28,6,207,243,29,183,209,187,170,178,230,109,125,78,183,66,215,164,113,48,81,0,48,38,121,179,62,182,60,207,35,22,139,129,231,121,136,162,8,65,16,32,138,34, +68,81,68,58,157,70,60,30,135,215,235,133,162,40,16,4,1,60,207,131,231,121,112,28,135,74,165,130,229,229,101,230,139,117,241,226,69,196,98,49,230,26,228,177,177,49,52,155,77,68,34,145,142,109,170,170,226,193,131,7,204,15,97,34,145,192,7,31,124,192,124, +238,83,83,83,136,197,98,224,56,142,217,228,189,80,40,224,219,111,191,101,126,8,23,22,22,140,134,244,111,131,107,62,159,239,234,106,182,4,122,108,108,12,141,70,131,185,93,81,20,83,215,161,161,161,129,119,125,231,157,119,152,239,241,113,116,101,77,196, +221,92,167,167,167,17,141,70,193,243,188,169,235,159,254,244,39,230,60,112,92,92,199,199,199,209,108,54,17,139,197,58,250,125,203,178,140,251,247,239,51,99,70,163,81,204,207,207,67,81,20,40,138,2,89,150,141,127,131,193,160,241,92,107,181,218,190,214, +175,250,109,244,4,194,66,159,91,15,75,30,93,147,6,235,206,170,170,118,205,74,170,170,26,229,132,15,238,109,232,125,156,95,188,120,129,114,185,188,239,54,30,143,7,146,36,49,223,24,0,88,94,94,54,205,218,39,78,156,192,234,234,42,214,215,215,59,182,233,223, +220,88,228,243,121,220,184,113,131,185,173,82,169,32,157,78,99,121,121,153,249,1,110,54,155,166,165,141,151,150,150,222,58,87,179,215,117,105,105,201,244,219,251,201,147,39,177,182,182,214,179,235,238,238,238,177,112,45,151,203,72,167,211,184,125,251, +118,207,174,139,139,139,93,93,87,87,87,177,177,177,113,108,93,15,27,175,195,195,195,88,94,94,102,78,226,205,102,211,52,238,113,113,213,231,129,118,215,246,61,13,179,152,165,82,9,171,171,171,251,246,30,244,189,137,100,50,9,175,215,139,221,221,221,125, +101,210,245,219,153,29,29,106,127,108,43,88,62,60,213,30,180,219,3,116,107,210,30,137,68,224,243,249,144,203,229,152,135,103,186,241,226,197,11,211,109,123,123,123,216,222,222,198,163,71,143,122,138,89,171,213,76,239,51,60,60,12,142,227,240,244,233,83, +236,236,236,244,20,215,77,174,207,159,63,55,221,182,183,183,135,151,47,95,146,171,205,174,165,82,201,53,99,160,95,215,106,181,138,106,181,202,220,150,78,167,225,241,120,240,244,233,83,188,122,245,170,167,184,199,201,181,159,241,90,175,215,77,231,215, +64,32,0,85,85,81,173,86,209,104,52,122,138,219,11,116,34,156,32,8,130,176,12,37,13,130,32,8,194,50,148,52,8,130,32,8,203,80,210,32,8,130,32,44,99,249,68,184,29,200,178,140,70,163,1,85,85,109,141,91,40,20,108,63,241,211,104,52,80,169,84,6,222,149,181, +68,243,77,112,155,107,181,90,117,205,24,32,87,247,184,22,139,69,219,199,171,162,40,198,245,25,78,194,103,50,153,223,134,66,33,240,60,143,108,54,11,77,211,28,123,48,85,85,81,171,213,80,171,213,108,125,156,106,181,138,157,157,29,91,223,4,89,150,81,40,20, +80,42,149,108,29,48,228,74,174,131,238,42,73,18,185,58,224,170,95,210,32,73,146,173,137,131,227,56,164,211,105,104,154,134,90,173,6,207,194,194,66,107,120,120,24,162,40,98,109,109,141,121,193,30,65,16,4,49,152,8,130,128,249,249,121,200,178,140,108,54, +75,231,52,8,130,32,8,235,80,210,32,8,130,32,44,67,73,131,32,8,130,176,12,37,13,130,32,8,194,50,71,186,122,106,120,120,24,99,99,99,144,36,137,89,74,184,95,126,246,179,159,65,85,85,20,10,5,219,98,206,205,205,225,212,169,83,182,215,113,113,147,235,207,127, +254,243,129,118,61,117,234,148,99,174,138,162,12,172,235,233,211,167,49,55,55,55,208,174,63,251,217,207,108,119,29,26,26,66,52,26,133,44,203,182,174,244,58,184,122,234,72,247,52,2,129,0,98,177,24,4,193,222,203,67,102,103,103,77,75,145,247,75,34,145,192, +200,200,8,124,62,159,173,113,221,230,106,86,138,188,95,220,228,26,143,199,145,201,100,108,119,157,153,153,177,125,12,184,209,213,172,18,116,191,184,205,213,238,241,234,247,251,17,12,6,193,113,206,78,235,116,120,138,32,8,130,176,12,37,13,130,32,8,194, +50,148,52,8,130,32,8,203,80,210,32,8,130,32,44,67,73,131,32,8,130,176,76,215,101,76,122,163,113,253,247,246,159,86,171,197,172,83,229,243,249,144,74,165,32,8,2,68,81,132,40,138,16,4,1,94,175,23,195,195,195,136,197,98,200,100,50,144,101,25,162,40,130, +231,121,8,130,0,158,231,81,42,149,176,184,184,200,236,113,252,55,127,243,55,72,36,18,251,156,116,46,92,184,128,72,36,130,133,133,133,142,109,138,162,96,107,107,11,95,127,253,117,199,182,169,169,41,124,242,201,39,204,231,62,49,49,129,104,52,138,169,169, +41,102,111,229,221,221,93,124,253,245,215,200,102,179,29,219,126,241,139,95,32,145,72,48,227,126,95,174,55,110,220,96,190,174,159,127,254,57,226,241,184,169,107,56,28,198,165,75,151,152,174,155,155,155,184,121,243,102,199,182,233,233,105,124,252,241, +199,174,119,157,156,156,68,36,18,193,244,244,116,207,174,191,252,229,47,77,87,242,92,188,120,17,145,72,228,88,184,222,187,119,15,223,124,243,77,199,182,153,153,25,92,191,126,221,212,53,28,14,31,123,215,95,253,234,87,166,43,164,46,94,188,136,104,52,138, +119,222,121,199,40,46,168,255,219,108,54,113,255,254,125,124,251,237,183,29,247,27,31,31,199,165,75,151,140,101,181,178,44,27,63,126,191,31,173,86,11,62,159,15,245,122,29,138,162,24,183,211,127,215,123,135,31,164,125,94,61,172,216,97,215,164,161,223, +89,79,18,173,86,107,95,210,96,161,247,168,229,56,14,28,199,25,9,129,227,56,240,60,15,0,120,245,234,21,234,245,186,113,27,253,167,91,255,219,135,15,31,154,246,232,61,125,250,52,158,60,121,130,173,173,45,166,15,107,98,7,94,55,141,191,115,231,14,115,155, +222,168,125,107,107,139,185,150,186,90,173,118,117,53,235,211,252,125,185,154,173,49,127,240,224,1,130,193,160,173,174,229,114,153,92,31,60,64,32,16,56,214,174,138,162,244,229,218,106,181,48,52,52,132,205,205,77,20,139,69,166,171,217,103,203,77,174,247, +239,223,239,234,250,248,241,99,220,191,127,223,120,156,118,87,179,185,174,82,169,224,241,227,199,208,52,13,170,170,26,255,42,138,130,120,60,14,158,231,81,46,151,81,175,215,247,221,70,211,52,40,138,114,104,66,176,82,29,215,210,5,19,237,129,14,11,170,40, +10,74,165,146,241,255,246,12,198,113,28,52,77,195,163,71,143,246,221,166,29,179,139,82,214,215,215,153,123,25,0,240,222,123,239,225,238,221,187,88,92,92,100,186,155,57,23,10,5,102,54,215,239,55,54,54,134,219,183,111,51,19,64,171,213,50,117,93,91,91,59, +22,174,239,191,255,62,238,220,185,131,165,165,165,129,116,5,128,209,209,81,44,47,47,51,63,196,221,92,87,87,87,7,218,53,159,207,155,186,122,60,30,100,50,25,220,190,125,123,224,93,151,151,151,123,114,221,219,219,235,72,112,250,109,53,77,131,207,231,67, +161,80,96,38,178,110,115,119,47,165,212,29,105,194,100,150,100,244,23,67,207,128,189,112,216,237,245,108,219,171,167,217,125,218,179,115,175,113,201,245,120,184,170,170,106,252,216,233,170,79,52,131,236,234,196,24,112,147,107,251,30,66,175,174,102,113, +219,231,87,39,27,49,209,137,112,130,32,8,194,50,148,52,8,130,32,8,203,80,210,32,8,130,32,44,115,164,73,163,219,9,158,55,65,85,85,219,227,234,199,6,237,134,92,221,227,10,56,51,102,157,58,230,236,22,87,167,230,1,114,117,198,245,32,142,156,8,55,163,86,171, +161,80,40,64,150,101,91,227,110,110,110,34,159,207,219,26,51,159,207,163,213,106,217,90,14,25,112,159,171,157,165,155,1,247,185,106,154,70,174,228,234,136,43,107,9,239,155,208,104,52,160,40,138,173,101,209,89,120,22,22,22,90,195,195,195,16,69,17,107, +107,107,61,159,205,39,8,130,32,142,47,130,32,96,126,126,30,178,44,35,155,205,210,57,13,130,32,8,194,58,148,52,8,130,32,8,203,80,210,32,8,130,32,44,67,73,131,32,8,130,176,204,145,38,13,159,207,135,112,56,108,123,143,240,177,177,49,132,195,97,91,99,134, +195,97,36,147,73,136,162,104,107,92,114,37,87,114,37,87,39,92,189,94,47,252,126,255,241,234,17,158,201,100,112,230,204,25,219,95,172,191,253,219,191,197,233,211,167,109,141,121,238,220,57,92,187,118,13,67,67,67,182,198,117,147,235,223,253,221,223,225, +212,169,83,182,198,116,155,235,213,171,87,29,25,3,131,236,122,254,252,121,92,189,122,213,180,125,64,191,184,201,245,87,191,250,21,230,230,230,108,141,153,74,165,48,58,58,10,175,215,107,107,220,131,208,225,41,130,32,8,194,50,148,52,8,130,32,8,203,80,210, +32,8,130,32,44,67,73,131,32,8,130,176,12,37,13,130,32,8,194,50,150,214,190,182,183,44,108,255,157,85,173,84,16,4,99,217,23,207,243,224,121,30,30,143,7,60,207,35,149,74,33,145,72,96,98,98,2,137,68,2,28,199,193,227,241,24,255,74,146,132,237,237,109,102, +171,194,83,167,78,193,239,247,51,253,134,135,135,113,242,228,73,102,33,196,86,171,133,66,161,128,231,207,159,119,108,139,70,163,152,158,158,102,198,156,157,157,69,58,157,70,169,84,66,58,157,238,216,94,175,215,241,226,197,11,212,106,53,87,187,158,62,125, +26,62,159,175,171,43,171,30,89,171,213,66,62,159,199,139,23,47,58,182,197,98,49,76,77,77,185,222,245,196,137,19,72,165,82,216,219,219,51,117,125,254,252,57,115,188,146,107,119,215,100,50,137,82,169,132,76,38,115,108,93,207,156,57,99,186,146,41,157,78, +99,110,110,142,89,92,80,85,85,20,10,5,188,124,249,178,99,91,36,18,65,58,157,54,58,96,234,213,157,85,85,53,122,132,199,98,49,120,189,94,163,146,110,251,109,205,170,65,235,243,186,45,61,194,15,38,12,253,199,44,56,199,113,8,133,66,16,4,97,223,143,40,138, +136,199,227,136,70,163,208,52,13,146,36,129,231,121,8,130,96,36,152,74,165,98,218,223,118,122,122,26,209,104,148,217,115,55,145,72,96,124,124,156,153,196,20,69,193,227,199,143,153,19,113,56,28,54,93,254,58,49,49,129,120,60,142,217,217,89,36,147,201,142, +237,197,98,17,249,124,158,57,185,205,204,204,32,26,141,50,227,190,109,174,250,235,106,230,58,49,49,193,124,175,21,69,1,207,243,204,15,225,113,114,141,197,98,168,213,106,76,215,66,161,128,221,221,221,174,227,245,56,187,202,178,108,234,26,137,68,76,93, +199,199,199,17,141,70,49,59,59,139,84,42,117,172,93,35,145,136,169,235,248,248,120,71,57,243,86,171,5,89,150,241,248,241,99,102,210,8,6,131,152,152,152,48,90,197,170,170,10,89,150,161,40,10,130,193,160,241,124,4,65,48,182,183,255,123,88,73,246,110,115, +187,206,161,73,227,96,128,195,2,42,138,130,98,177,184,111,15,66,255,209,159,224,211,167,79,81,46,151,141,4,208,190,189,90,173,50,227,46,47,47,155,94,96,115,234,212,41,172,173,173,97,109,109,141,233,207,154,128,128,215,101,143,111,220,184,193,220,86,173, +86,145,201,100,176,180,180,132,108,54,219,177,93,146,36,148,203,101,230,125,151,150,150,142,133,235,233,211,167,251,114,221,221,221,61,22,174,181,90,13,233,116,26,139,139,139,200,229,114,76,215,74,165,194,188,239,242,242,178,233,69,172,167,79,159,198, +234,234,42,214,215,215,93,239,106,246,121,237,230,90,175,215,145,74,165,176,180,180,116,172,93,151,150,150,76,93,79,157,58,133,245,245,245,142,241,170,39,17,51,215,98,177,136,181,181,181,142,126,224,154,166,33,157,78,67,20,69,35,137,233,183,209,231,236, +110,9,163,151,62,28,61,93,154,109,37,176,166,105,104,54,155,204,109,213,106,21,193,96,16,197,98,177,231,90,242,172,9,166,61,238,238,238,46,243,91,68,55,26,141,134,233,125,198,199,199,225,243,249,176,189,189,141,157,157,157,129,117,205,229,114,3,237,42, +138,34,118,118,118,122,118,125,245,234,149,233,182,74,165,226,200,24,120,155,92,235,245,58,243,219,55,240,122,175,72,16,4,108,111,111,119,125,236,227,238,154,205,102,123,118,109,54,155,166,243,107,36,18,129,166,105,168,215,235,182,247,255,104,135,78, +132,19,4,65,16,150,161,164,65,16,4,65,88,134,146,6,65,16,4,97,25,74,26,4,65,35,44,95,18,0,0,29,234,73,68,65,84,16,132,101,236,173,81,126,8,146,36,161,86,171,217,222,248,60,155,205,154,174,56,233,151,90,173,134,82,169,100,123,207,116,183,185,154,157,32, +236,23,55,185,214,235,117,236,237,237,185,98,12,184,205,213,45,159,45,167,92,115,185,156,237,227,85,150,101,120,60,30,230,114,126,59,225,51,153,204,111,67,161,16,120,158,71,54,155,117,244,1,101,89,70,165,82,65,163,209,176,245,113,242,249,60,178,217,44, +36,73,178,45,102,189,94,199,238,238,46,246,246,246,200,117,64,93,107,181,154,99,174,185,92,110,160,93,243,249,60,202,229,50,185,218,232,170,40,10,26,141,6,100,89,238,105,9,237,97,112,28,103,92,80,88,171,213,224,89,88,88,104,13,15,15,67,20,69,172,173, +173,217,158,81,9,130,32,8,247,34,8,2,230,231,231,33,203,50,178,217,44,157,211,32,8,130,32,172,67,73,131,32,8,130,176,12,37,13,130,32,8,194,50,148,52,8,130,32,8,203,28,233,234,169,145,145,17,76,78,78,162,217,108,218,186,106,224,239,255,254,239,161,40, +10,179,160,88,191,204,207,207,99,126,126,30,229,114,217,214,165,113,228,234,30,215,11,23,46,224,252,249,243,142,184,202,178,140,221,221,93,219,98,186,205,245,220,185,115,228,106,179,171,222,122,162,217,108,218,122,89,195,193,213,83,71,186,167,225,245, +122,17,12,6,193,243,188,173,113,135,135,135,141,178,192,118,17,12,6,17,139,197,76,171,84,246,139,155,92,211,233,52,2,129,128,173,49,221,228,26,8,4,16,141,70,93,49,6,220,228,74,159,173,215,19,188,221,227,213,235,245,194,235,245,130,227,156,157,214,233, +240,20,65,16,4,97,25,74,26,4,65,16,132,101,40,105,16,4,65,16,150,161,164,65,16,4,65,88,134,146,6,65,16,4,97,153,174,181,167,244,30,222,250,239,250,143,14,171,78,149,223,239,55,122,213,138,162,104,156,209,247,122,189,72,38,147,136,197,98,168,86,171,208, +52,13,162,40,66,16,4,8,130,0,142,227,80,44,22,113,227,198,13,102,91,207,127,248,135,127,64,50,153,220,247,248,58,151,47,95,198,179,103,207,152,237,21,37,73,194,198,198,6,190,248,226,139,142,109,39,79,158,196,95,255,245,95,51,95,152,145,145,17,132,195, +97,188,120,241,130,89,57,243,213,171,87,248,195,31,254,192,108,173,249,143,255,248,143,72,38,147,204,184,111,155,235,63,253,211,63,97,104,104,200,86,215,185,185,57,252,213,95,253,149,235,93,71,71,71,17,10,133,76,93,119,118,118,240,135,63,252,129,249, +152,131,224,218,108,54,177,177,177,129,63,254,241,143,125,185,62,127,254,156,185,140,117,103,103,7,191,255,253,239,153,243,128,155,92,255,249,159,255,25,137,68,130,25,247,202,149,43,120,250,244,41,94,189,122,101,20,23,212,251,121,235,174,95,125,245,85, +199,253,38,39,39,241,193,7,31,64,150,101,227,71,146,36,200,178,12,81,20,161,105,26,138,197,34,106,181,26,100,89,134,162,40,144,101,25,170,170,66,146,36,212,235,117,230,114,92,142,227,246,121,180,115,176,246,84,215,117,100,250,157,61,30,143,241,132,88, +147,118,59,138,162,160,88,44,130,227,56,240,60,111,252,203,243,60,36,73,66,163,209,192,206,206,206,235,245,190,28,183,239,167,209,104,152,54,84,95,92,92,52,93,78,151,78,167,177,186,186,138,205,205,205,142,109,170,170,154,174,133,206,229,114,248,242,203, +47,153,219,206,156,57,131,84,42,133,141,141,13,228,243,249,142,237,213,106,213,180,161,252,226,226,162,233,114,186,239,203,181,92,46,51,239,123,235,214,45,83,215,76,38,51,208,174,103,207,158,69,50,153,236,123,12,248,253,126,83,215,149,149,21,108,109, +109,13,164,235,185,115,231,48,52,52,132,245,245,117,20,10,5,166,107,183,121,192,45,174,183,110,221,50,117,77,167,211,251,92,219,39,106,69,81,152,239,33,0,20,139,69,220,190,125,27,154,166,65,211,52,168,170,106,252,30,143,199,193,243,188,81,118,93,255, +251,193,219,178,48,75,24,44,44,45,62,110,15,116,88,80,69,81,176,183,183,199,220,198,243,60,90,173,22,158,60,121,130,98,177,104,229,161,13,238,220,185,99,186,237,234,213,171,216,220,220,196,173,91,183,122,138,89,42,149,76,239,195,243,60,106,181,26,86, +86,86,152,223,122,187,177,177,177,113,44,92,175,93,187,134,123,247,238,97,113,113,177,167,152,197,98,241,216,184,86,42,149,190,92,215,215,215,77,183,233,99,96,80,93,5,65,192,200,200,8,86,86,86,152,123,5,131,224,250,225,135,31,226,222,189,123,88,90,90, +234,41,102,185,92,54,253,82,213,106,181,224,243,249,80,40,20,208,104,52,122,138,219,75,41,117,58,167,65,16,4,65,88,134,146,6,65,16,4,97,25,74,26,4,65,16,132,101,40,105,16,4,65,16,150,57,210,164,161,159,193,183,179,127,45,0,219,171,58,2,175,87,91,40,138, +66,174,3,236,122,216,138,147,126,145,36,105,224,93,157,24,3,131,238,218,106,181,28,173,82,174,99,111,233,198,67,208,151,166,217,89,22,29,120,189,170,198,206,18,195,0,144,205,102,33,203,178,173,229,144,1,247,185,154,45,253,235,23,183,185,234,107,219,237, +100,125,125,125,224,93,155,205,230,64,187,58,49,94,107,181,26,36,73,98,94,63,103,39,93,47,238,35,8,130,32,6,155,131,23,247,209,57,13,130,32,8,194,50,148,52,8,130,32,8,203,80,210,32,8,130,32,44,67,73,131,32,8,130,176,204,145,38,141,80,40,132,161,161,33, +136,162,104,107,220,83,167,78,153,86,147,236,151,161,161,33,76,76,76,152,22,28,235,23,55,185,158,62,125,122,160,93,147,201,36,185,146,171,107,230,129,64,32,128,112,56,12,158,231,109,141,123,144,35,77,26,201,100,18,179,179,179,8,133,66,182,198,253,233, +79,127,138,217,217,89,91,99,158,60,121,18,87,174,92,65,44,22,179,53,174,219,92,103,102,102,108,141,233,38,215,19,39,78,224,242,229,203,182,187,254,228,39,63,25,104,215,147,39,79,226,242,229,203,136,70,163,182,198,117,155,235,244,244,180,173,49,19,137, +4,244,149,176,78,66,135,167,8,130,32,8,203,80,210,32,8,130,32,44,67,73,131,32,8,130,176,12,37,13,130,32,8,194,50,148,52,8,130,32,8,203,28,90,176,176,189,39,184,254,187,222,51,156,85,81,81,20,69,132,66,33,163,63,184,32,8,198,239,163,163,163,198,50,179, +122,189,110,252,93,255,169,215,235,120,242,228,9,179,151,241,165,75,151,16,12,6,153,61,202,199,198,198,48,63,63,207,92,22,167,170,42,94,189,122,133,135,15,31,118,108,27,26,26,194,217,179,103,153,207,251,212,169,83,72,165,82,80,20,133,217,27,184,82,169, +224,193,131,7,76,215,119,222,121,199,180,159,249,247,229,250,240,225,67,102,155,200,195,92,47,92,184,192,236,203,221,205,53,153,76,226,204,153,51,174,119,61,125,250,52,134,134,134,160,170,106,207,99,224,221,119,223,53,237,103,62,232,174,103,206,156,65, +34,145,128,162,40,204,182,207,131,224,58,62,62,142,139,23,47,34,24,12,118,180,211,86,85,21,59,59,59,120,242,228,73,199,253,226,241,56,38,39,39,161,170,170,81,213,88,175,28,29,143,199,193,113,156,81,16,84,191,141,30,83,85,85,200,178,204,172,216,219,62, +175,30,86,209,183,231,42,183,30,143,135,57,113,183,35,138,162,145,44,4,65,128,32,8,16,69,17,126,191,31,126,191,31,161,80,200,248,187,158,88,218,19,12,139,88,44,134,104,52,202,124,236,64,32,128,88,44,134,100,50,217,177,77,81,20,211,198,239,94,175,151, +121,31,253,241,66,161,144,241,70,28,132,231,121,211,165,109,186,43,139,239,203,213,236,117,141,199,227,136,68,34,204,109,126,191,31,209,104,116,96,93,163,209,40,194,225,112,87,87,65,96,127,132,98,177,152,169,107,32,16,56,246,174,62,159,207,212,53,18, +137,32,28,14,35,145,72,48,223,107,142,227,186,206,3,110,113,141,199,227,8,135,195,135,186,30,76,26,146,36,49,147,16,240,186,120,96,52,26,133,162,40,208,52,13,178,44,27,73,195,231,243,1,120,61,78,244,191,113,28,7,85,85,141,47,250,250,191,111,194,161,73, +227,224,3,28,246,128,170,170,162,88,44,194,227,241,128,227,56,35,201,120,60,30,163,54,253,147,39,79,176,183,183,183,47,1,121,60,30,40,138,98,90,130,120,101,101,197,244,205,57,123,246,44,214,215,215,113,251,246,109,230,118,179,38,235,249,124,30,55,110, +220,96,110,171,215,235,24,25,25,193,226,226,34,179,161,124,183,65,120,251,246,109,215,184,46,47,47,155,186,158,59,119,14,235,235,235,88,89,89,233,201,117,119,119,119,96,92,205,62,220,131,238,154,203,229,76,93,27,141,6,210,233,52,110,221,186,133,108,54, +203,116,61,202,49,224,164,43,43,129,3,175,231,129,181,181,53,172,174,174,118,108,107,181,90,166,174,165,82,9,107,107,107,104,181,90,29,63,233,116,26,162,40,98,119,119,23,245,122,221,248,123,251,145,33,179,126,27,189,36,146,158,246,52,172,4,238,38,86, +175,215,209,104,52,80,46,151,81,42,149,122,121,104,230,46,183,78,163,209,64,177,88,68,46,151,235,41,166,36,73,166,247,41,149,74,8,133,66,216,221,221,237,57,46,185,30,31,215,96,48,104,187,107,189,94,31,120,215,64,32,112,236,93,187,245,203,232,215,85,150, +101,230,97,50,224,117,35,50,253,95,187,123,22,181,67,39,194,9,130,32,8,203,80,210,32,8,130,32,44,67,73,131,32,8,130,176,12,37,13,130,32,8,194,50,61,47,185,125,19,154,205,38,42,149,138,237,125,200,183,183,183,77,87,134,244,75,165,82,65,62,159,135,44,203, +182,198,117,155,171,217,202,144,126,113,147,107,181,90,69,161,80,112,197,24,112,163,171,27,230,1,167,92,119,118,118,108,31,175,250,123,111,182,16,201,46,60,11,11,11,45,189,156,238,218,218,154,237,47,78,59,250,181,25,250,218,98,187,24,26,26,66,173,86, +51,93,166,214,15,126,191,31,130,32,160,209,104,216,250,154,144,171,123,92,3,129,0,120,158,39,87,114,117,133,171,126,221,152,162,40,111,124,45,70,59,130,32,96,126,126,30,178,44,35,155,205,30,109,210,32,8,130,32,220,197,193,164,65,231,52,8,130,32,8,203, +80,210,32,8,130,32,44,67,73,131,32,8,130,176,12,37,13,130,32,8,194,50,124,38,147,249,173,94,202,60,155,205,58,186,92,107,98,98,2,51,51,51,104,52,26,70,157,20,59,248,247,127,255,119,200,178,204,44,212,214,47,239,188,243,14,222,125,247,93,148,74,37,212, +106,53,219,226,186,201,245,63,254,227,63,6,218,245,221,119,223,117,108,12,72,146,52,176,174,151,47,95,198,165,75,151,80,44,22,7,218,213,238,241,58,50,50,130,161,161,33,52,155,77,91,23,52,113,28,135,116,58,13,77,211,80,171,213,142,118,79,131,227,56,136, +162,120,104,105,245,94,9,4,2,166,101,202,251,69,20,69,120,189,94,211,42,149,253,226,54,87,179,114,218,253,226,38,87,189,164,191,27,198,128,219,92,221,242,217,114,202,213,239,247,155,86,235,237,151,110,101,218,109,125,28,199,31,129,32,8,130,56,54,80,210, +32,8,130,32,44,67,73,131,32,8,130,176,12,37,13,130,32,8,194,50,182,23,44,212,219,188,182,255,95,255,87,239,5,174,159,12,61,120,27,189,73,58,107,5,87,183,147,81,60,207,195,235,245,194,239,247,51,183,43,138,194,92,77,208,173,207,183,215,235,53,98,178,226, +234,173,107,221,238,234,243,249,76,23,38,12,186,171,207,231,131,215,235,133,207,231,35,87,7,92,187,141,1,89,150,153,245,147,142,139,171,32,8,166,239,85,55,87,142,227,140,5,31,250,99,234,45,93,245,19,225,130,32,24,39,196,219,111,211,254,239,155,208,53, +105,180,63,225,246,94,223,58,172,39,229,245,122,161,215,178,210,147,131,254,251,240,240,48,98,177,24,70,71,71,161,170,170,177,226,131,231,121,240,60,143,82,169,132,155,55,111,50,91,32,254,226,23,191,64,34,145,96,190,9,23,47,94,68,44,22,195,165,75,151, +58,182,201,178,140,123,247,238,225,127,255,247,127,59,182,77,77,77,225,199,63,254,49,243,185,143,141,141,33,26,141,98,106,106,138,89,57,51,151,203,225,143,127,252,35,115,201,220,231,159,127,142,68,34,193,140,251,182,185,234,175,43,139,11,23,46,32,26, +141,226,157,119,222,97,186,222,189,123,23,95,126,249,101,199,182,233,233,105,124,246,217,103,174,119,29,31,31,71,56,28,198,244,244,180,169,235,23,95,124,193,236,29,253,249,231,159,35,30,143,51,227,234,99,224,56,187,206,204,204,224,211,79,63,237,234,58, +53,53,197,172,244,154,205,102,241,197,23,95,48,231,1,55,185,254,242,151,191,68,44,22,51,117,213,199,107,123,31,239,86,171,133,102,179,137,187,119,239,226,230,205,155,29,247,27,27,27,195,149,43,87,160,40,10,100,89,54,126,36,73,130,207,231,67,171,213,130, +207,231,67,173,86,131,44,203,80,20,5,170,170,66,81,20,72,146,132,122,189,206,252,226,192,113,156,229,196,210,53,105,232,119,110,127,66,135,45,151,85,85,21,197,98,17,28,199,25,153,207,227,241,128,231,121,200,178,140,102,179,137,151,47,95,162,90,173,26, +183,209,165,245,210,233,44,150,150,150,224,243,249,152,219,198,198,198,176,186,186,138,187,119,239,118,108,211,52,205,180,175,112,46,151,99,14,34,0,56,127,254,60,82,169,20,86,87,87,153,189,126,235,245,58,202,229,50,243,190,183,110,221,50,253,6,65,174, +199,203,213,108,188,222,186,117,235,173,27,175,71,233,154,205,102,187,186,38,147,73,172,173,173,153,186,154,149,13,119,147,235,119,223,125,103,234,58,58,58,138,213,213,85,220,187,119,15,192,254,137,90,85,85,83,215,82,169,132,149,149,21,227,168,76,171, +213,50,142,206,12,13,13,65,16,4,228,114,57,35,57,180,90,45,104,154,182,239,246,44,122,217,19,177,116,120,170,61,208,97,65,21,69,49,29,156,62,159,15,28,199,225,249,243,231,166,205,209,205,216,220,220,52,221,246,241,199,31,227,225,195,135,88,93,93,237, +41,102,185,92,54,189,79,32,16,48,50,254,206,206,78,79,113,183,182,182,142,133,235,39,159,124,130,7,15,30,244,236,186,183,183,119,108,92,27,141,70,95,174,135,141,215,65,118,13,6,131,104,52,26,184,115,231,78,207,23,183,29,23,215,235,215,175,247,229,90, +46,151,77,191,84,241,60,15,159,207,135,82,169,212,115,201,245,94,14,91,209,137,112,130,32,8,194,50,148,52,8,130,32,8,203,80,210,32,8,130,32,44,67,73,131,32,8,130,176,204,145,38,13,125,77,179,221,149,116,245,229,101,118,162,47,99,35,215,193,117,213,151, +41,218,237,90,175,215,109,111,171,76,174,238,115,85,85,213,214,152,250,10,41,167,57,210,210,232,192,235,73,163,90,173,218,250,230,138,162,136,151,47,95,154,174,218,234,7,142,227,80,173,86,81,40,20,32,73,146,109,113,221,228,202,243,60,182,183,183,7,222, +53,159,207,219,154,144,120,158,199,139,23,47,76,151,106,246,3,185,186,203,85,16,4,219,93,129,215,243,107,163,209,176,117,30,63,88,26,221,179,176,176,208,210,47,198,91,91,91,179,61,83,19,4,65,16,238,69,16,4,204,207,207,67,150,101,100,179,89,58,167,65, +16,4,65,88,135,146,6,65,16,4,97,25,74,26,4,65,16,132,101,40,105,16,4,65,16,150,57,210,213,83,209,104,20,241,120,220,168,188,104,23,151,47,95,134,170,170,182,174,68,24,25,25,193,200,200,8,154,205,166,173,171,38,200,213,93,174,163,163,163,228,106,179,235, +232,232,40,70,70,70,208,104,52,200,213,70,215,112,56,140,64,32,96,218,94,162,95,14,174,158,58,210,61,141,120,60,142,137,137,9,4,2,1,91,227,94,189,122,21,19,19,19,182,198,156,156,156,196,252,252,60,194,225,176,173,113,221,228,122,237,218,53,140,143,143, +219,26,211,109,174,231,206,157,115,100,12,12,186,235,249,243,231,7,218,245,195,15,63,196,216,216,152,173,49,163,209,168,81,233,214,73,232,240,20,65,16,4,97,25,74,26,4,65,16,132,101,40,105,16,4,65,16,150,161,164,65,16,4,65,88,134,146,6,65,16,4,97,153, +67,79,179,183,247,4,247,120,60,198,143,222,155,246,32,162,40,34,22,139,129,227,56,8,130,0,158,231,141,127,71,71,71,17,139,197,224,247,251,209,104,52,140,30,226,60,207,131,227,56,212,106,53,108,110,110,98,111,111,175,35,238,15,127,248,67,211,21,12,51, +51,51,104,54,155,72,38,147,29,219,52,77,195,243,231,207,113,231,206,157,142,109,233,116,26,151,46,93,98,198,60,121,242,36,134,134,134,224,243,249,152,253,122,203,229,50,54,54,54,80,42,149,58,182,125,248,225,135,8,133,66,111,149,235,250,250,58,243,117, +61,204,181,209,104,32,149,74,13,164,235,220,220,28,18,137,4,124,62,31,179,61,113,55,215,171,87,175,34,24,12,50,227,206,206,206,30,11,87,85,85,241,252,249,115,102,79,238,76,38,131,133,133,5,102,204,83,167,78,33,22,139,153,186,238,237,237,97,99,99,195, +245,174,215,174,93,51,93,41,58,59,59,139,102,179,137,225,225,225,125,127,111,181,90,144,101,25,47,94,188,96,182,139,77,165,82,152,157,157,133,166,105,198,165,11,138,162,64,81,20,68,163,81,112,28,7,77,211,140,30,225,250,109,244,184,102,85,198,219,231, +249,195,90,191,58,187,54,171,141,118,169,246,191,233,63,111,18,199,202,182,94,239,163,255,189,213,106,217,26,215,234,246,94,238,243,38,174,86,94,255,65,117,237,229,113,123,141,235,68,76,167,226,154,197,124,211,247,194,137,184,110,116,109,159,164,173, +188,119,250,109,218,231,207,131,95,238,123,137,215,43,135,38,141,246,39,100,229,131,174,40,10,74,165,146,113,219,131,123,39,178,44,227,201,147,39,40,149,74,251,254,238,241,120,160,105,154,105,67,244,149,149,21,240,60,207,220,182,176,176,128,141,141,13, +220,190,125,155,233,111,86,130,59,159,207,227,230,205,155,204,109,146,36,97,116,116,20,75,75,75,204,134,242,170,170,162,94,175,51,239,123,251,246,109,215,184,46,47,47,119,117,93,95,95,199,202,202,202,64,186,202,178,140,76,38,131,91,183,110,33,155,205, +218,234,106,247,24,120,219,92,119,119,119,77,93,21,69,65,58,157,62,246,174,75,75,75,166,174,23,47,94,52,117,213,251,14,177,40,22,139,88,95,95,55,230,229,86,171,101,252,100,50,25,120,189,94,236,238,238,162,94,175,27,115,107,251,109,205,46,250,59,108,239, +162,157,158,247,52,14,11,174,39,6,22,146,36,65,150,101,212,106,181,158,175,132,236,214,39,161,217,108,162,90,173,50,15,21,117,67,79,112,44,170,213,42,106,181,26,246,246,246,122,142,123,92,92,37,73,26,104,215,74,165,130,72,36,130,114,185,108,251,24,168, +84,42,3,237,26,14,135,29,249,108,185,201,181,159,247,74,81,20,211,184,178,44,131,227,56,200,178,236,104,139,11,58,17,78,16,4,65,88,134,146,6,65,16,4,97,25,74,26,4,65,16,132,101,40,105,16,4,65,16,150,57,178,37,183,192,235,147,63,123,123,123,182,150,69, +7,128,103,207,158,49,215,73,191,9,123,123,123,240,249,124,166,43,46,250,197,109,174,229,114,217,214,152,110,114,45,151,203,240,122,189,228,234,128,171,40,138,182,150,26,7,220,229,250,252,249,243,174,39,202,251,65,146,164,174,43,164,236,194,179,176,176, +208,26,30,30,134,40,138,88,91,91,115,244,172,59,207,243,240,120,60,198,197,38,118,17,8,4,108,95,49,32,138,34,60,30,15,20,69,177,245,77,32,87,114,29,116,87,65,16,192,113,28,185,218,236,202,113,156,113,233,130,157,243,171,32,8,152,159,159,135,44,203,200, +102,179,71,187,167,97,247,30,134,142,217,58,233,55,193,238,111,22,58,228,74,174,131,238,234,212,23,211,65,119,117,122,15,67,135,206,105,16,4,65,16,150,161,164,65,16,4,65,88,134,146,6,65,16,4,97,25,74,26,4,65,16,132,101,248,76,38,243,219,80,40,4,158,231, +145,205,102,29,61,153,50,57,57,137,185,185,57,212,235,117,211,194,132,253,240,155,223,252,6,138,162,224,229,203,151,182,197,124,239,189,247,240,222,123,239,161,88,44,246,92,39,171,27,110,114,253,175,255,250,47,72,146,132,237,237,109,219,98,186,205,245, +7,63,248,129,35,99,64,150,229,129,117,125,255,253,247,113,229,202,21,20,10,133,129,117,253,245,175,127,109,251,120,29,29,29,197,240,240,48,26,141,134,237,171,178,210,233,52,52,77,67,173,86,163,61,13,130,32,8,194,58,148,52,8,130,32,142,9,118,94,159,97, +198,145,39,141,163,120,82,4,65,16,132,51,28,105,210,160,132,65,16,4,225,28,180,167,241,61,198,36,8,130,112,10,55,207,131,61,151,17,57,172,1,185,199,227,129,32,8,29,173,94,61,30,15,2,129,0,188,94,47,66,161,16,52,77,235,232,111,171,170,42,106,181,26,243, +204,127,60,30,55,226,30,196,239,247,35,26,141,118,52,105,215,29,27,141,6,179,56,152,215,235,69,44,22,99,62,207,104,52,138,112,56,140,100,50,201,92,81,38,203,50,170,213,42,179,124,67,34,145,128,32,176,95,218,239,203,181,82,169,48,95,215,195,92,99,177, +24,211,85,211,52,163,83,218,113,117,141,197,98,136,68,34,24,26,26,178,213,53,16,8,152,142,129,65,113,213,199,0,107,14,25,20,87,125,188,30,140,171,183,189,174,213,106,29,247,19,4,1,161,80,104,95,27,87,189,214,148,215,235,133,40,138,240,122,189,251,234, +79,181,183,132,181,99,117,108,215,164,113,112,130,62,216,239,155,85,75,74,20,69,12,13,13,65,16,4,227,71,127,50,201,100,18,177,88,12,241,120,28,138,162,236,187,13,199,113,40,151,203,88,90,90,194,238,238,110,71,220,31,253,232,71,136,199,227,76,175,19,39, +78,64,20,69,76,79,79,119,220,79,81,20,108,109,109,49,123,0,103,50,25,124,242,201,39,204,231,62,49,49,129,72,36,130,120,60,206,28,104,249,124,30,95,127,253,53,179,111,112,187,235,65,102,103,103,33,8,194,145,187,222,184,113,3,185,92,174,99,219,71,31,125, +100,250,129,153,157,157,5,199,113,76,87,89,150,177,181,181,133,111,190,249,166,99,219,200,200,8,62,254,248,227,129,118,189,126,253,58,162,209,104,87,215,153,153,153,99,235,58,58,58,138,235,215,175,51,99,78,78,78,34,28,14,35,145,72,12,172,235,137,19,39, +192,243,252,190,241,170,79,236,146,36,97,107,107,11,183,110,221,234,184,223,240,240,48,46,94,188,8,69,81,160,40,10,36,73,130,162,40,144,101,25,94,175,23,192,235,249,177,94,175,67,81,20,168,170,106,220,86,81,20,52,155,77,102,226,56,108,103,160,157,174, +73,163,253,206,237,77,202,245,223,89,168,170,138,82,169,100,84,92,228,56,206,248,145,101,25,205,102,19,59,59,59,168,86,171,251,110,227,241,120,140,172,205,98,105,105,9,94,175,151,185,167,49,57,57,137,213,213,85,220,185,115,135,249,28,204,74,145,23,10, +5,124,245,213,87,204,109,231,207,159,71,38,147,193,202,202,10,115,64,52,26,13,211,50,204,186,43,139,239,203,213,236,117,93,92,92,60,212,245,238,221,187,76,87,179,254,198,249,124,254,88,184,206,207,207,99,120,120,24,43,43,43,204,47,50,221,92,111,221,186, +53,208,174,187,187,187,166,174,23,46,92,64,42,149,234,234,106,246,217,114,147,235,226,226,34,68,81,52,117,93,95,95,199,157,59,119,246,205,165,250,28,107,54,15,148,74,37,172,173,173,25,123,18,170,170,26,191,39,18,9,240,60,143,124,62,143,70,163,97,252, +93,255,183,125,239,228,32,189,28,218,178,124,120,234,224,19,51,67,85,85,211,10,142,126,191,31,60,207,227,213,171,87,61,247,148,120,242,228,137,233,182,221,221,93,60,125,250,20,155,155,155,61,197,172,84,42,166,247,137,70,163,208,52,13,247,239,223,199, +171,87,175,122,138,251,248,241,227,99,225,154,207,231,7,218,53,22,139,65,81,20,60,120,240,224,173,31,3,110,114,141,199,227,144,101,25,247,239,223,103,238,169,31,23,215,71,143,30,153,110,203,229,114,120,252,248,113,207,174,181,90,141,121,216,10,120,125, +232,202,231,243,161,82,169,160,217,108,246,20,183,23,142,124,245,148,91,78,0,145,43,185,146,43,185,58,229,106,119,207,11,192,57,215,131,28,249,234,41,55,189,88,110,25,44,0,185,146,43,185,186,201,213,137,57,171,253,80,148,147,28,105,210,208,52,205,145, +218,86,78,37,34,183,36,56,114,37,87,55,185,234,243,192,32,187,58,85,227,239,216,237,105,56,53,176,237,110,31,11,56,247,173,197,169,1,232,132,171,19,157,22,201,213,153,9,195,77,174,78,30,242,177,27,58,60,213,201,145,183,123,149,36,201,246,55,183,92,46, +219,126,226,71,146,36,212,106,53,219,39,163,189,189,61,114,37,87,91,171,60,3,228,10,184,203,181,92,46,67,146,36,91,99,170,170,106,244,8,119,146,35,45,141,174,175,65,214,151,131,217,133,44,203,216,221,221,181,181,239,174,166,105,168,84,42,40,149,74,182, +150,25,86,20,5,185,92,206,53,174,217,108,214,214,15,34,185,254,223,24,24,116,215,189,189,189,129,117,149,101,217,246,241,218,106,181,140,235,49,236,220,227,56,88,26,221,179,176,176,208,26,30,30,134,40,138,88,91,91,115,172,145,58,65,16,4,225,62,4,65,192, +252,252,188,145,232,168,52,58,65,16,4,97,25,74,26,4,65,16,132,101,40,105,16,4,65,16,150,161,164,65,16,4,65,88,134,3,176,175,60,185,147,120,189,94,132,195,97,211,114,193,253,50,55,55,103,90,85,182,95,134,134,134,48,49,49,1,191,223,111,107,220,185,185, +57,36,18,9,91,99,58,229,122,234,212,169,129,119,29,31,31,135,207,231,179,53,174,83,99,192,45,174,201,100,146,92,29,152,179,244,178,232,28,103,255,190,128,94,84,22,248,115,210,208,52,13,60,207,219,254,64,7,113,234,73,101,50,25,132,195,97,91,99,6,131,65, +163,135,135,157,140,140,140,32,20,10,217,26,211,73,215,96,48,104,107,76,55,185,134,66,33,196,227,113,211,74,165,253,50,232,174,250,24,24,100,215,116,58,109,187,43,207,243,166,61,135,222,20,142,227,140,203,36,56,0,70,45,118,39,50,84,59,78,93,146,47,203, +178,237,75,133,53,77,99,54,88,122,83,154,205,166,237,23,10,145,43,185,186,209,213,238,121,192,77,174,146,36,217,238,122,88,249,243,126,225,56,14,62,159,207,24,95,28,0,84,171,85,68,34,17,136,162,232,232,97,42,189,254,187,19,131,197,238,139,18,245,230, +37,78,36,56,187,7,11,185,58,231,234,196,120,37,87,114,117,50,105,216,137,199,227,129,215,235,69,36,18,65,181,90,5,240,231,164,161,40,10,34,145,8,130,193,160,227,73,195,137,218,40,178,44,59,150,52,236,142,235,68,25,21,114,117,198,85,239,136,70,174,246, +143,1,167,190,189,187,197,213,137,247,74,175,237,103,39,30,143,7,193,96,16,225,112,216,56,154,99,28,143,18,69,17,145,72,196,209,67,84,78,85,185,117,226,27,134,166,105,174,249,70,236,148,171,19,31,66,183,185,58,245,141,152,92,201,213,13,135,167,56,142, +67,36,18,217,119,14,210,200,16,123,123,123,72,167,211,142,157,72,1,156,171,114,235,196,174,158,219,14,163,144,171,123,146,241,160,187,58,181,183,233,38,87,39,190,228,216,141,199,227,129,32,8,24,30,30,222,215,105,213,72,31,27,27,27,248,224,131,15,240, +224,193,3,228,114,185,190,7,159,222,243,91,255,189,253,239,7,207,238,235,75,125,245,255,183,90,45,52,155,77,230,73,237,88,44,102,100,187,131,73,77,20,69,68,163,81,230,178,184,86,171,101,218,31,217,235,245,34,22,139,49,159,135,207,231,51,92,89,3,81,150, +101,84,171,85,230,201,199,68,34,97,186,58,232,184,184,106,154,134,102,179,121,172,93,245,246,196,122,12,114,61,58,215,74,165,194,156,7,220,236,218,62,167,234,71,118,218,251,157,183,239,41,52,155,77,102,81,83,65,16,224,245,122,247,221,86,255,209,231,69, +158,231,141,199,58,184,231,209,203,188,238,241,120,16,141,70,113,242,228,201,125,61,212,141,103,84,169,84,16,8,4,48,62,62,110,148,153,238,39,113,232,123,19,30,143,103,223,19,1,254,239,219,144,190,183,209,158,48,244,219,155,101,95,253,91,68,123,130,209, +105,54,155,104,52,26,204,210,216,122,229,71,51,87,179,42,147,173,86,11,130,32,160,209,104,48,39,183,110,135,218,36,73,50,125,204,122,189,238,42,87,253,181,101,61,166,217,106,157,227,230,106,182,42,135,92,157,115,53,155,123,220,236,218,126,59,191,223, +143,102,179,9,73,146,58,238,175,207,147,102,62,237,123,148,172,199,54,59,76,213,107,194,240,122,189,152,152,152,128,215,235,221,151,108,247,165,236,229,229,101,92,184,112,1,59,59,59,120,245,234,85,223,203,88,205,142,171,241,60,127,232,178,91,179,191, +215,235,117,211,195,102,62,159,207,152,140,123,137,169,40,138,177,34,224,32,154,166,65,16,4,211,90,250,221,142,29,118,43,123,238,243,249,80,171,213,200,213,37,174,60,207,163,94,175,147,43,185,58,226,106,246,229,209,12,85,85,153,201,191,213,106,25,23, +224,217,113,10,128,231,121,12,13,13,225,226,197,139,88,90,90,218,183,109,95,210,120,250,244,41,46,95,190,140,51,103,206,160,82,169,160,82,169,216,122,220,77,223,187,232,231,100,77,183,251,40,138,98,250,98,190,73,204,195,246,126,204,232,118,123,125,143, +137,92,221,225,170,223,134,92,237,115,213,39,95,114,237,221,85,119,233,182,237,77,19,6,199,113,8,133,66,56,123,246,44,4,65,192,179,103,207,246,111,63,120,135,223,253,238,119,184,124,249,50,230,230,230,16,8,4,108,63,41,110,247,137,58,192,60,251,190,9, +173,150,51,215,148,56,177,130,204,41,87,55,189,174,78,185,58,177,112,195,169,49,224,22,87,167,46,242,117,155,171,221,49,237,72,24,30,143,7,129,64,0,115,115,115,184,124,249,50,126,247,187,223,117,220,166,227,140,82,185,92,198,205,155,55,241,209,71,31, +65,81,20,220,191,127,31,245,122,221,150,55,195,137,132,1,56,215,119,91,255,70,108,39,78,37,34,39,92,221,244,186,186,201,213,77,99,192,9,87,167,18,220,160,187,190,41,28,199,33,16,8,224,228,201,147,184,118,237,26,190,250,234,43,230,194,1,230,50,132,187, +119,239,34,145,72,224,211,79,63,133,32,8,216,218,218,50,142,65,191,109,79,20,0,243,88,163,29,56,177,36,206,169,101,118,228,74,174,110,113,237,231,80,143,21,6,221,181,95,244,149,173,193,96,16,115,115,115,248,232,163,143,176,185,185,137,205,205,77,230, +237,77,171,198,125,253,245,215,80,85,21,159,125,246,25,194,225,48,238,221,187,135,66,161,96,92,29,217,111,242,176,99,23,234,32,78,237,234,185,229,27,49,185,146,43,185,146,171,238,106,21,125,245,170,40,138,72,36,18,56,125,250,52,174,94,189,138,181,181, +53,220,188,121,211,244,126,124,38,147,249,173,217,198,23,47,94,160,209,104,224,211,79,63,69,56,28,54,234,176,232,223,236,251,57,223,225,196,133,131,253,158,92,63,44,38,224,204,33,53,114,117,143,171,83,123,214,228,58,216,174,250,42,167,163,70,191,142, +142,231,121,136,162,136,120,60,142,153,153,25,252,197,95,252,5,222,127,255,125,252,254,247,191,239,88,45,213,17,99,97,97,225,208,87,36,18,137,224,231,63,255,57,18,137,4,214,214,214,112,255,254,125,228,114,57,84,171,85,212,235,117,71,106,179,16,4,65,16, +246,161,239,85,4,2,1,132,195,97,164,82,41,156,56,113,2,23,46,92,64,62,159,199,127,255,247,127,51,207,97,116,196,177,146,52,116,166,166,166,240,151,127,249,151,72,38,147,120,254,252,57,158,63,127,142,157,157,29,148,203,101,87,92,22,79,16,4,49,136,112, +28,103,84,171,205,100,50,152,152,152,192,248,248,56,178,217,44,254,231,127,254,7,79,159,62,181,28,171,167,164,161,19,10,133,240,222,123,239,97,118,118,22,169,84,10,62,159,15,146,36,209,30,7,65,16,196,91,134,190,135,225,245,122,209,108,54,145,203,229, +240,224,193,3,124,251,237,183,166,23,53,118,141,215,79,210,56,8,171,142,10,65,16,4,241,118,32,73,18,202,229,178,45,141,186,108,233,185,41,203,50,242,249,188,29,161,8,130,32,136,183,152,255,15,203,140,132,246,212,69,218,186,0,0,0,0,73,69,78,68,174,66, +96,130,0,0 }; + +const char* panel_png = (const char*) temp_binary_data_2; + +//================== crushslidebg.png ================== +static const unsigned char temp_binary_data_3[] = +{ 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,205,0,0,0,43,8,6,0,0,0,219,161,12,246,0,0,0,9,112,72,89,115,0,0,14,195,0,0,14,195,1,199,111,168,100,0,0,0,25,116,69,88,116,83,111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101, +46,111,114,103,155,238,60,26,0,0,2,52,73,68,65,84,120,156,237,221,77,78,20,65,24,198,241,231,45,224,0,84,103,212,168,7,81,137,129,19,72,162,134,120,14,99,252,88,186,16,21,119,220,66,141,11,60,128,32,33,248,117,13,136,209,48,213,7,0,235,117,129,99,0,135, +64,45,160,186,227,255,183,155,234,233,228,217,252,55,51,139,50,119,215,56,102,102,211,211,211,51,102,54,47,105,78,210,101,73,23,36,77,142,125,1,232,175,61,73,63,37,109,75,90,115,247,149,182,109,55,253,152,56,108,220,121,140,113,198,204,94,74,154,57,211, +169,64,119,125,51,179,199,59,59,59,31,142,62,56,20,141,153,77,52,77,243,204,221,31,157,235,60,160,187,150,83,74,247,221,253,215,232,224,111,52,102,54,17,99,124,35,233,118,173,117,64,71,189,75,41,45,184,123,150,164,48,58,141,49,190,16,193,0,227,220,105, +154,102,113,244,193,220,93,131,193,96,46,231,188,90,115,21,208,117,57,231,217,182,109,215,131,153,89,206,121,241,228,87,128,255,91,8,225,149,29,248,89,121,163,246,32,160,39,110,132,63,255,195,0,56,5,51,187,21,36,205,214,30,2,244,133,187,207,5,73,87,107, +15,1,122,228,74,144,52,168,189,2,232,145,75,65,210,84,237,21,64,143,76,133,147,191,3,224,32,162,1,10,17,13,80,136,104,128,66,68,3,20,34,26,160,16,209,0,133,136,6,40,68,52,64,33,162,1,10,17,13,80,136,104,128,66,68,3,20,34,26,160,16,209,0,133,136,6,40, +68,52,64,33,162,1,10,5,73,187,181,71,0,61,178,27,180,127,47,7,128,211,249,30,36,109,213,94,1,244,200,118,48,179,181,218,43,128,190,112,247,213,224,238,43,181,135,0,125,17,66,120,31,134,195,225,39,73,155,181,199,0,61,240,101,56,28,126,13,146,148,115,126, +34,105,252,141,181,0,36,201,221,253,129,187,123,144,164,182,109,215,205,108,169,246,42,160,171,220,253,121,74,105,67,58,124,231,102,136,49,190,150,116,183,230,56,160,131,222,166,148,238,253,115,231,166,187,231,148,210,130,164,167,213,166,1,221,179,124, +48,24,233,200,149,232,35,77,211,92,147,180,36,233,230,57,142,3,186,228,107,206,249,97,219,182,31,143,62,24,27,141,36,153,153,197,24,175,155,217,188,187,207,106,255,30,155,139,146,38,207,118,43,112,238,246,36,253,144,180,101,102,107,238,190,146,82,250, +236,199,196,241,27,174,237,189,231,45,7,125,192,0,0,0,0,73,69,78,68,174,66,96,130,0,0 }; + +const char* crushslidebg_png = (const char*) temp_binary_data_3; + +//================== dialbg.png ================== +static const unsigned char temp_binary_data_4[] = +{ 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,55,0,0,0,56,8,6,0,0,0,89,141,96,147,0,0,0,9,112,72,89,115,0,0,29,246,0,0,29,246,1,121,191,103,182,0,0,0,25,116,69,88,116,83,111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101, +46,111,114,103,155,238,60,26,0,0,5,25,73,68,65,84,104,129,221,154,95,104,28,85,20,198,191,115,103,137,155,52,25,162,187,217,221,170,193,214,66,26,80,43,210,23,107,149,74,65,233,139,160,104,21,173,15,125,242,197,34,180,15,42,121,17,4,251,40,245,197,191, +79,62,88,181,45,5,69,168,255,138,45,133,74,161,133,170,165,173,169,20,252,83,217,13,201,166,153,153,93,210,228,158,115,124,200,110,221,77,183,201,38,59,147,233,238,15,134,101,239,189,51,243,125,251,221,153,221,157,123,72,85,209,169,36,162,56,40,17,81, +46,151,187,103,102,102,102,200,113,156,245,170,122,59,128,85,0,250,1,92,5,80,82,213,162,170,142,118,117,117,141,230,243,249,63,53,130,79,153,194,58,102,54,155,205,50,243,179,0,182,18,209,22,0,233,37,236,62,174,170,199,1,28,117,28,231,112,161,80,40,132, +161,169,37,115,68,100,82,169,212,83,68,244,10,128,39,17,206,76,176,0,190,87,213,143,39,38,38,190,110,37,209,101,153,35,34,74,167,211,47,2,24,1,112,223,114,79,222,196,121,206,169,234,222,241,241,241,47,150,99,114,201,230,178,217,236,6,17,121,31,192,230, +165,158,172,5,78,24,99,118,21,10,133,95,151,178,147,105,118,32,17,153,76,38,51,34,34,103,176,178,198,0,224,49,17,57,147,78,167,223,36,162,230,53,55,147,156,235,186,169,100,50,249,185,170,62,209,146,196,16,80,213,239,102,103,103,95,154,154,154,42,46,54, +118,81,115,3,3,3,119,2,56,2,96,67,72,250,194,224,2,51,111,43,22,139,127,45,52,104,65,115,217,108,118,157,136,28,3,112,119,200,226,194,224,31,199,113,182,228,243,249,203,55,27,112,83,115,185,92,46,195,204,39,0,12,69,165,46,4,46,19,209,230,177,177,177, +124,163,206,134,23,231,224,224,96,55,51,127,139,91,219,24,0,220,171,170,223,172,93,187,54,217,168,179,161,185,233,233,233,247,0,60,20,169,172,240,216,24,4,193,190,70,29,55,76,203,76,38,179,93,85,15,172,136,172,16,33,162,237,99,99,99,135,234,218,106,205, +165,82,41,215,24,115,30,192,93,43,45,46,4,242,204,60,92,44,22,167,170,13,117,211,146,136,222,70,123,26,3,128,156,227,56,111,213,54,92,79,110,96,96,96,53,128,203,0,26,94,156,109,194,53,85,93,55,62,62,126,5,168,79,238,117,180,183,49,0,184,141,136,246,84, +223,144,170,34,151,203,173,98,230,60,128,222,24,133,133,133,239,56,206,234,124,62,95,50,0,96,173,125,14,157,97,12,0,250,102,102,102,158,1,42,211,210,24,179,35,94,61,225,98,140,121,25,0,104,205,154,53,201,32,8,38,209,254,215,91,45,211,201,100,242,14,51, +57,57,249,40,58,203,24,0,36,131,32,120,216,56,142,179,41,110,37,81,224,56,206,35,134,136,134,227,22,18,17,235,13,128,245,113,171,136,136,97,67,68,185,184,85,68,1,17,229,12,128,190,184,133,68,68,159,1,208,19,183,138,40,80,213,94,163,170,179,113,11,137, +136,107,70,85,253,184,85,68,129,170,250,6,115,171,46,29,135,170,94,53,204,252,71,220,66,162,64,85,47,25,85,189,24,183,144,40,80,213,139,134,153,207,118,218,234,170,170,194,90,251,139,81,213,163,157,104,78,68,142,153,82,169,244,47,51,255,30,183,160,48, +17,145,243,229,114,249,138,1,0,102,62,212,41,233,85,166,228,65,224,255,127,226,159,50,115,71,184,99,102,16,209,126,160,98,110,106,106,234,18,51,31,111,247,244,84,21,204,252,147,231,121,163,64,205,163,61,17,217,203,204,241,41,11,1,102,134,136,188,83,125, +127,221,92,16,4,63,48,243,207,237,154,94,37,181,147,65,16,28,173,182,213,61,78,103,230,215,172,181,220,110,6,43,55,17,177,214,238,169,109,175,51,87,42,149,78,51,243,71,237,54,61,69,4,204,252,65,185,92,62,85,219,126,195,250,92,119,119,247,27,204,124,65, +68,86,78,93,11,136,8,172,181,151,186,186,186,70,230,247,53,92,54,238,235,235,187,223,24,115,42,145,72,244,24,211,116,101,196,138,35,34,152,157,157,157,22,145,77,65,16,156,157,223,223,80,185,239,251,231,68,100,167,181,150,111,213,4,43,137,177,170,238, +104,100,12,88,160,200,198,247,253,131,34,242,170,181,22,183,154,193,138,49,136,200,110,223,247,15,223,108,220,162,117,40,174,235,238,4,240,73,34,145,72,24,99,64,68,33,75,109,158,202,15,226,106,98,187,124,223,255,112,161,241,205,86,16,61,173,170,159,37, +18,137,30,199,113,98,49,88,249,30,3,51,151,0,236,240,60,239,171,197,246,105,186,176,205,117,221,97,85,253,210,113,156,13,198,24,172,84,138,213,180,42,183,251,11,170,250,66,16,4,191,53,179,111,211,183,66,207,243,46,186,174,187,137,153,247,217,57,192,204, +136,234,11,191,154,148,181,22,214,90,43,34,239,246,247,247,111,108,214,24,176,204,122,203,222,222,222,7,136,104,31,17,109,173,77,177,186,45,23,85,189,190,85,211,82,213,31,1,236,246,125,255,220,82,143,215,82,165,172,235,186,155,69,100,132,136,182,153, +57,234,12,206,127,157,111,100,254,107,141,41,81,213,35,198,152,189,158,231,157,92,174,190,80,106,156,123,122,122,6,43,171,179,207,19,209,131,68,100,26,37,73,68,117,211,184,54,41,85,21,85,61,11,224,128,136,236,47,151,203,127,183,170,43,180,2,238,42,174, +235,166,84,245,113,34,218,168,170,67,170,58,68,68,41,204,173,185,187,0,60,0,129,170,78,16,209,40,17,141,170,234,105,34,58,238,121,222,68,152,90,254,3,109,216,240,82,98,186,90,204,0,0,0,0,73,69,78,68,174,66,96,130,0,0 }; + +const char* dialbg_png = (const char*) temp_binary_data_4; + +//================== rotator.png ================== +static const unsigned char temp_binary_data_5[] = +{ 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,5,0,0,0,27,8,6,0,0,0,180,179,69,14,0,0,0,9,112,72,89,115,0,0,14,195,0,0,14,195,1,199,111,168,100,0,0,0,25,116,69,88,116,83,111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101,46, +111,114,103,155,238,60,26,0,0,0,99,73,68,65,84,40,145,237,202,177,9,2,65,20,0,209,153,15,215,135,85,24,219,137,92,105,86,162,28,92,98,33,127,91,16,23,246,155,24,44,98,1,6,78,248,24,91,107,135,49,198,5,56,2,247,136,56,155,153,215,170,58,241,78,189,153, +153,207,170,90,38,236,49,3,64,85,45,193,151,254,248,91,168,246,25,212,30,192,254,49,238,161,174,192,6,60,128,77,93,95,238,212,35,244,30,32,191,139,0,0,0,0,73,69,78,68,174,66,96,130,0,0 }; + +const char* rotator_png = (const char*) temp_binary_data_5; + +//================== hpon.png ================== +static const unsigned char temp_binary_data_6[] = +{ 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,93,0,0,0,29,8,6,0,0,0,200,41,96,175,0,0,0,9,112,72,89,115,0,0,14,195,0,0,14,195,1,199,111,168,100,0,0,0,25,116,69,88,116,83,111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101, +46,111,114,103,155,238,60,26,0,0,3,157,73,68,65,84,104,129,237,154,77,72,43,87,24,134,159,19,199,140,9,106,91,116,227,15,85,12,130,94,127,110,65,200,38,160,85,180,69,112,211,149,16,204,38,11,67,196,168,168,96,184,75,193,208,69,235,206,141,65,65,116,169, +93,136,184,176,21,172,208,141,136,130,136,148,186,43,137,209,133,134,198,16,73,136,153,174,188,224,53,209,153,168,153,246,154,103,55,231,251,206,57,239,188,12,231,135,111,132,162,40,156,159,159,191,75,165,82,63,2,157,64,49,255,3,188,94,239,239,219,219, +219,29,122,235,80,73,20,248,21,24,11,6,131,127,75,161,80,232,107,69,81,254,0,190,212,89,216,231,76,49,240,3,240,109,85,85,213,123,3,240,51,121,195,115,197,87,192,79,6,69,81,190,211,91,201,27,227,123,3,80,170,183,138,55,198,23,146,214,30,241,120,156,68, +34,129,201,100,66,146,158,238,174,40,10,209,104,52,109,76,150,101,140,70,163,86,9,154,185,155,39,22,139,113,123,123,155,54,199,104,52,34,203,50,55,55,55,36,147,73,0,204,102,51,5,5,5,15,114,31,123,39,53,104,54,125,105,105,9,191,223,207,194,194,2,173,173, +173,79,230,71,163,81,186,186,186,210,198,132,16,88,44,22,236,118,59,125,125,125,8,33,180,202,81,133,203,229,194,225,112,96,183,219,57,61,61,77,155,51,48,48,128,219,237,198,229,114,113,112,112,0,128,207,231,195,102,179,165,205,15,135,195,108,109,109,49, +63,63,79,36,18,209,164,71,179,233,217,82,91,91,75,71,199,253,19,94,36,18,97,119,119,151,233,233,105,78,78,78,152,154,154,202,149,28,77,44,47,47,147,74,165,62,62,27,141,70,154,155,155,233,239,239,199,102,179,225,116,58,9,135,195,170,199,203,153,233,245, +245,245,12,15,15,63,104,31,27,27,195,227,241,176,186,186,74,119,119,55,109,109,109,185,146,164,154,185,185,185,180,203,146,195,225,96,100,100,132,161,161,33,102,102,102,84,143,103,120,73,113,217,96,54,155,241,120,60,0,236,236,236,232,43,70,35,43,43,43, +156,157,157,101,92,62,51,161,187,233,0,213,213,213,0,92,93,93,233,172,68,27,138,162,16,8,4,40,45,45,85,117,168,184,227,63,97,250,221,230,86,89,89,169,179,18,109,72,146,132,197,98,225,226,226,226,227,137,71,13,186,155,30,10,133,152,157,157,69,146,36,122, +123,123,245,150,163,26,73,146,24,31,31,167,172,172,140,141,141,13,109,125,95,73,211,3,142,142,142,240,122,189,247,218,194,225,48,199,199,199,36,147,73,38,39,39,169,171,171,123,85,13,163,163,163,25,207,215,53,53,53,25,251,125,186,73,202,178,76,67,67,3, +229,229,229,236,239,239,179,184,184,168,73,71,206,76,191,188,188,100,111,111,239,94,91,113,113,49,237,237,237,216,237,118,90,90,90,94,93,67,83,83,19,138,162,164,141,61,118,73,179,90,173,247,158,19,137,4,129,64,0,191,223,207,250,250,186,166,165,5,114, +104,122,103,103,39,62,159,47,87,211,165,101,112,112,48,227,229,200,233,116,226,118,187,211,198,122,122,122,50,222,100,179,65,247,53,253,45,146,55,93,7,242,166,235,64,222,116,29,200,155,174,3,89,159,94,54,55,55,57,60,60,204,24,183,90,173,52,54,54,102, +59,252,103,77,214,166,175,173,173,61,26,159,152,152,200,155,158,1,17,12,6,211,223,22,50,112,87,57,122,138,162,162,34,10,11,11,63,86,89,36,73,194,100,50,101,45,244,83,180,252,130,241,220,202,209,245,245,245,139,233,134,44,190,116,89,150,145,101,89,117, +190,16,130,146,146,18,173,211,188,40,241,120,156,120,60,254,104,78,34,145,120,240,49,197,98,177,87,209,99,0,180,213,154,242,60,151,127,12,192,182,222,42,222,18,66,136,223,12,66,136,15,128,250,2,95,158,231,16,6,62,24,42,42,42,254,20,66,124,163,40,202, +47,192,203,238,24,121,238,184,22,66,172,1,239,3,129,192,95,255,2,222,175,57,233,3,149,33,25,0,0,0,0,73,69,78,68,174,66,96,130,0,0 }; + +const char* hpon_png = (const char*) temp_binary_data_6; + +//================== lpon.png ================== +static const unsigned char temp_binary_data_7[] = +{ 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,92,0,0,0,29,8,6,0,0,0,39,235,11,145,0,0,0,9,112,72,89,115,0,0,14,195,0,0,14,195,1,199,111,168,100,0,0,0,25,116,69,88,116,83,111,102,116,119,97,114,101,0,119,119,119,46,105,110,107,115,99,97,112,101, +46,111,114,103,155,238,60,26,0,0,3,162,73,68,65,84,104,129,237,154,61,72,43,89,24,134,159,25,51,145,152,184,27,49,77,76,80,176,92,97,93,82,104,17,182,9,198,45,100,27,193,66,59,81,177,182,113,197,42,169,180,216,132,32,65,8,136,93,80,209,236,130,127,133, +172,172,205,162,69,180,51,171,11,54,138,81,73,177,63,26,140,201,228,206,45,196,11,89,147,187,51,89,157,185,92,243,116,243,157,243,205,121,231,205,76,206,153,243,141,160,40,10,78,167,243,43,81,20,103,1,31,96,229,19,103,96,96,128,201,201,73,163,101,168, +229,14,248,85,16,132,31,156,78,231,239,38,151,203,213,42,138,226,111,128,221,104,101,159,41,54,224,123,69,81,190,77,167,211,95,139,138,162,132,168,153,173,7,118,224,71,81,16,132,94,163,149,188,21,4,65,248,78,4,190,48,90,200,91,65,81,148,47,77,90,18,76, +38,19,22,139,133,251,251,123,100,89,86,149,99,179,217,16,4,225,89,188,80,40,144,203,229,180,12,95,21,249,124,158,135,135,7,44,22,11,38,83,249,203,125,210,210,208,208,64,93,93,29,64,197,107,20,69,17,171,181,250,117,133,38,195,123,123,123,9,6,131,4,2,1, +182,182,182,84,229,108,110,110,86,20,120,126,126,78,34,145,96,101,101,133,98,177,168,69,138,106,226,241,56,243,243,243,196,98,49,60,30,79,217,62,137,68,130,80,40,68,36,18,193,235,245,2,16,12,6,217,221,221,45,219,223,110,183,211,211,211,195,248,248,56, +118,187,182,233,79,147,225,213,146,201,100,216,222,222,46,137,217,108,54,186,187,187,153,152,152,160,179,179,147,169,169,41,20,69,209,67,142,38,134,134,134,144,36,233,195,113,62,159,39,149,74,177,182,182,198,254,254,62,11,11,11,56,28,14,213,231,211,197, +240,171,171,43,162,209,232,179,184,36,73,204,204,204,224,243,249,240,251,253,236,236,236,232,33,71,19,99,99,99,216,108,182,103,241,165,165,37,194,225,48,209,104,148,64,32,160,250,124,226,11,106,211,76,161,80,32,18,137,0,224,243,249,140,148,162,153,193, +193,65,90,91,91,217,219,219,211,244,100,26,106,56,64,58,157,70,150,101,205,255,133,159,2,110,183,155,108,54,75,62,159,87,157,99,184,225,237,237,237,152,76,38,174,175,175,141,150,162,137,98,177,200,217,217,25,14,135,131,250,250,122,213,121,134,26,222, +220,220,204,244,244,52,0,235,235,235,70,74,209,132,44,203,204,205,205,113,115,115,67,95,95,159,166,92,93,38,205,182,182,54,102,103,103,75,98,141,141,141,116,116,116,96,181,90,89,92,92,228,232,232,232,85,53,196,98,49,154,154,154,202,182,93,92,92,84,204, +11,6,131,31,214,230,240,184,74,57,57,57,33,147,201,224,241,120,24,29,29,213,164,67,23,195,173,86,43,93,93,93,37,177,92,46,199,225,225,33,171,171,171,28,28,28,188,186,134,211,211,83,68,177,252,3,93,40,20,42,230,37,147,201,146,23,55,73,146,112,187,221, +12,15,15,211,223,223,95,242,99,168,65,23,195,83,169,20,35,35,35,122,12,85,145,112,56,92,241,197,103,121,121,153,80,40,84,182,109,99,99,163,236,178,176,90,12,159,52,223,26,53,195,117,166,102,184,206,212,12,215,153,154,225,58,83,213,42,197,235,245,126, +116,135,236,248,248,152,100,50,89,181,168,207,153,170,12,247,251,253,248,253,254,138,237,241,120,188,102,120,5,132,150,150,22,213,91,93,79,21,159,255,226,169,202,2,143,251,222,138,162,144,205,102,171,87,249,47,180,124,38,241,127,43,62,149,42,86,213,162, +233,14,151,101,153,219,219,91,77,3,220,221,221,105,234,255,210,152,205,102,204,102,243,71,251,72,146,84,82,100,0,84,221,88,213,32,2,255,188,202,153,107,60,67,16,132,191,69,160,124,225,174,198,139,243,238,221,187,95,68,96,26,248,203,104,49,111,128,63, +129,105,241,242,242,242,4,232,4,126,230,241,59,184,26,47,203,173,162,40,63,9,130,240,141,203,229,250,227,61,39,80,54,196,151,180,35,16,0,0,0,0,73,69,78,68,174,66,96,130,0,0 }; + +const char* lpon_png = (const char*) temp_binary_data_7; + const char* getNamedResource (const char* resourceNameUTF8, int& numBytes); const char* getNamedResource (const char* resourceNameUTF8, int& numBytes) @@ -476,7 +488,14 @@ const char* getNamedResource (const char* resourceNameUTF8, int& numBytes) switch (hash) { - case 0x74b53f2f: numBytes = 31662; return BG_png; + case 0x74b53f2f: numBytes = 9041; return BG_png; + case 0xa6fd7901: numBytes = 679; return crushslidefg_png; + case 0xa7a8496e: numBytes = 15977; return panel_png; + case 0xa02a1685: numBytes = 679; return crushslidebg_png; + case 0x9747fa9f: numBytes = 1420; return dialbg_png; + case 0x81341297: numBytes = 214; return rotator_png; + case 0x1bd90ed1: numBytes = 1040; return hpon_png; + case 0xbb5dc24d: numBytes = 1045; return lpon_png; default: break; } @@ -486,12 +505,26 @@ const char* getNamedResource (const char* resourceNameUTF8, int& numBytes) const char* namedResourceList[] = { - "BG_png" + "BG_png", + "crushslidefg_png", + "panel_png", + "crushslidebg_png", + "dialbg_png", + "rotator_png", + "hpon_png", + "lpon_png" }; const char* originalFilenames[] = { - "BG.png" + "BG.png", + "crushslidefg.png", + "panel.png", + "crushslidebg.png", + "dialbg.png", + "rotator.png", + "hpon.png", + "lpon.png" }; const char* getNamedResourceOriginalFilename (const char* resourceNameUTF8); diff --git a/JuceLibraryCode/BinaryData.h b/JuceLibraryCode/BinaryData.h index 720ceeb..8ca3be0 100644 --- a/JuceLibraryCode/BinaryData.h +++ b/JuceLibraryCode/BinaryData.h @@ -9,10 +9,31 @@ namespace BinaryData { extern const char* BG_png; - const int BG_pngSize = 31662; + const int BG_pngSize = 9041; + + extern const char* crushslidefg_png; + const int crushslidefg_pngSize = 679; + + extern const char* panel_png; + const int panel_pngSize = 15977; + + extern const char* crushslidebg_png; + const int crushslidebg_pngSize = 679; + + extern const char* dialbg_png; + const int dialbg_pngSize = 1420; + + extern const char* rotator_png; + const int rotator_pngSize = 214; + + extern const char* hpon_png; + const int hpon_pngSize = 1040; + + extern const char* lpon_png; + const int lpon_pngSize = 1045; // Number of elements in the namedResourceList and originalFileNames arrays. - const int namedResourceListSize = 1; + const int namedResourceListSize = 8; // Points to the start of a list of resource names. extern const char* namedResourceList[]; diff --git a/JuceLibraryCode/JuceLV2Defines.h b/JuceLibraryCode/JuceLV2Defines.h deleted file mode 100644 index 7e1a2c2..0000000 --- a/JuceLibraryCode/JuceLV2Defines.h +++ /dev/null @@ -1,5 +0,0 @@ -#pragma once - -#ifndef JucePlugin_LV2URI - #define JucePlugin_LV2URI "https://www.github.com/esca111/crushFX" -#endif diff --git a/JuceLibraryCode/JucePluginDefines.h b/JuceLibraryCode/JucePluginDefines.h index 5484f75..29b713f 100644 --- a/JuceLibraryCode/JucePluginDefines.h +++ b/JuceLibraryCode/JucePluginDefines.h @@ -32,7 +32,7 @@ #define JucePlugin_Build_Unity 0 #endif #ifndef JucePlugin_Build_LV2 - #define JucePlugin_Build_LV2 1 + #define JucePlugin_Build_LV2 0 #endif #ifndef JucePlugin_Enable_IAA #define JucePlugin_Enable_IAA 0 diff --git a/JuceLibraryCode/include_juce_audio_basics.cpp b/JuceLibraryCode/include_juce_audio_basics.cpp new file mode 100644 index 0000000..e5c3ae9 --- /dev/null +++ b/JuceLibraryCode/include_juce_audio_basics.cpp @@ -0,0 +1,8 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + +*/ + +#include diff --git a/Source/CrushView.cpp b/Source/CrushView.cpp index 17163c8..b285b1c 100644 --- a/Source/CrushView.cpp +++ b/Source/CrushView.cpp @@ -10,42 +10,147 @@ #include #include "CrushView.h" - +#include "BinaryData.h" +#include "OpenGLUtils.h" +#include "juce_opengl/juce_opengl.h" +#include "juce_opengl/opengl/juce_gl.h" //============================================================================== CrushView::CrushView() { - // In your constructor, you should add any child components, and - // initialise any special settings that your component needs. + float startingColour[4] = {128.0f, 255.0f, 255.0f, 255.0f}; + waveform = generateSineWave(CRUSHVIEW_SAMPLECOUNT, 0, startingColour); + distortedWaveform = waveform; + vScale(distortedWaveform, 2, 0.75); + vTransform(distortedWaveform, -1, 0); + for(int i = 0; irelease(); + shaderProgramBackground->release(); + ctx.detach(); } +void CrushView::distortWaveForm(int samplerate){ + Vertex lastVertex; + int lastMultiplier = 0; + for (int i = 0; i>waveform.size(); i++){ + if(floor((float)i/samplerate)>lastMultiplier){ + lastMultiplier = floor((float)i/samplerate); + lastVertex = waveform[i]; + } + distortedWaveform[i] = lastVertex; + } +} + + void CrushView::paint (juce::Graphics& g) { - /* This demo code just fills the component's background and - draws some placeholder text to get you started. - - You should replace everything in this method with your own - drawing code.. - */ - - g.fillAll (getLookAndFeel().findColour (juce::ResizableWindow::backgroundColourId)); // clear the background - - g.setColour (juce::Colours::grey); - g.drawRect (getLocalBounds(), 1); // draw an outline around the component - - g.setColour (juce::Colours::white); - g.setFont (14.0f); - g.drawText ("CrushView", getLocalBounds(), - juce::Justification::centred, true); // draw some placeholder text + ctx.triggerRepaint(); } void CrushView::resized() { - // This method is where you should set the bounds of any child - // components that your component contains.. + +} + +//OPENGL STUFF + +void CrushView::newOpenGLContextCreated(){ + + background = juce::ImageCache::getFromMemory(BinaryData::panel_png, BinaryData::panel_pngSize); + bgTexture.loadImage(background); + + ctx.extensions.glGenBuffers(1, &vboBackground); + ctx.extensions.glGenBuffers(1, &iboBackground); + + ctx.extensions.glGenBuffers(1, &vbo); + ctx.extensions.glGenBuffers(1, &ibo); + + ctx.extensions.glBindBuffer(juce::gl::GL_ARRAY_BUFFER, vboBackground); + ctx.extensions.glBufferData(juce::gl::GL_ARRAY_BUFFER, sizeof(VertexTexture)*backgroundVertices.size(), backgroundVertices.data(), juce::gl::GL_STATIC_DRAW); + + ctx.extensions.glBindBuffer(juce::gl::GL_ELEMENT_ARRAY_BUFFER, iboBackground); + ctx.extensions.glBufferData(juce::gl::GL_ELEMENT_ARRAY_BUFFER, sizeof(unsigned int) * backgroundIndices.size(), backgroundIndices.data(), juce::gl::GL_STATIC_DRAW); + + ctx.extensions.glBindBuffer(juce::gl::GL_ARRAY_BUFFER, vbo); //bind vertex buffer objects + ctx.extensions.glBufferData(juce::gl::GL_ARRAY_BUFFER, sizeof(Vertex)*distortedWaveform.size(), distortedWaveform.data(), juce::gl::GL_STATIC_DRAW); + + ctx.extensions.glBindBuffer(juce::gl::GL_ELEMENT_ARRAY_BUFFER, ibo); + ctx.extensions.glBufferData(juce::gl::GL_ELEMENT_ARRAY_BUFFER, sizeof(unsigned int) * indices.size(), indices.data(), juce::gl::GL_STATIC_DRAW); + + //SHADERS + vertexShader = VERTEXSHADER; + fragmentShader = FRAGSHADER; + vertexShaderBackground = VERTEXSHADERBACKGROUND; + fragmentShaderBackground = FRAGSHADERBACKGROUND; + + //actually render the shaders now + shaderProgramBackground.reset(new juce::OpenGLShaderProgram(ctx)); + shaderProgramBackground->addVertexShader(vertexShaderBackground); + shaderProgramBackground->addFragmentShader(fragmentShaderBackground); + shaderProgramBackground->link(); + shaderProgramBackground->use(); + + shaderProgram.reset(new juce::OpenGLShaderProgram(ctx)); + shaderProgram->addVertexShader(vertexShader); + shaderProgram->addFragmentShader(fragmentShader); + shaderProgram->link(); + shaderProgram->use(); +} + +void CrushView::renderOpenGL(){ + juce::gl::glLineWidth(2.5f); + juce::OpenGLHelpers::clear(juce::Colours::black); + + ctx.extensions.glBindBuffer(juce::gl::GL_ARRAY_BUFFER, vboBackground); + ctx.extensions.glBindBuffer(juce::gl::GL_ELEMENT_ARRAY_BUFFER, iboBackground); + + shaderProgramBackground->use(); + bgTexture.bind(); + + juce::gl::glEnable(juce::gl::GL_BLEND); + juce::gl::glBlendFunc(juce::gl::GL_SRC_ALPHA, juce::gl::GL_ONE_MINUS_SRC_ALPHA); + + ctx.extensions.glVertexAttribPointer(0, 2, juce::gl::GL_FLOAT, juce::gl::GL_FALSE, sizeof(VertexTexture), nullptr); + ctx.extensions.glEnableVertexAttribArray(0); + ctx.extensions.glVertexAttribPointer(1, 4, juce::gl::GL_FLOAT, juce::gl::GL_FALSE, sizeof(VertexTexture), (GLvoid*)(sizeof(float)*2)); + ctx.extensions.glEnableVertexAttribArray(1); + ctx.extensions.glVertexAttribPointer(2, 2, juce::gl::GL_FLOAT, juce::gl::GL_FALSE, sizeof(VertexTexture), (GLvoid*)(sizeof(float)*6)); + ctx.extensions.glEnableVertexAttribArray(2); + + juce::gl::glDrawElements(juce::gl::GL_TRIANGLES, backgroundIndices.size(), juce::gl::GL_UNSIGNED_INT, nullptr); + bgTexture.unbind(); + + ctx.extensions.glBindBuffer(juce::gl::GL_ARRAY_BUFFER, vbo); + ctx.extensions.glBindBuffer(juce::gl::GL_ELEMENT_ARRAY_BUFFER, ibo); + + shaderProgram->use(); + ctx.extensions.glVertexAttribPointer(0, 2, juce::gl::GL_FLOAT, juce::gl::GL_FALSE, sizeof(Vertex), nullptr); + ctx.extensions.glEnableVertexAttribArray(2); + ctx.extensions.glVertexAttribPointer(1, 4, juce::gl::GL_FLOAT, juce::gl::GL_FALSE, sizeof(Vertex), (GLvoid*)(sizeof(float)*2)); + ctx.extensions.glEnableVertexAttribArray(3); + juce::gl::glDrawElements(juce::gl::GL_LINE_STRIP, indices.size(), juce::gl::GL_UNSIGNED_INT, nullptr); +} + +void CrushView::openGLContextClosing(){ } diff --git a/Source/CrushView.h b/Source/CrushView.h index b2cd3ae..7bd2fe8 100644 --- a/Source/CrushView.h +++ b/Source/CrushView.h @@ -10,20 +10,61 @@ #pragma once +#include "juce_gui_basics/juce_gui_basics.h" +#include "juce_opengl/juce_opengl.h" #include - +#include "OpenGLUtils.h" +#include //============================================================================== /* */ -class CrushView : public juce::Component +#define CRUSHVIEW_SAMPLECOUNT 200 + +class CrushView : public juce::Component, public juce::OpenGLRenderer { public: CrushView(); ~CrushView() override; + void newOpenGLContextCreated() override; + void renderOpenGL() override; + void openGLContextClosing() override; + void paint (juce::Graphics&) override; void resized() override; + void distortWaveForm(int sampleRate); + private: JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (CrushView) + juce::OpenGLContext ctx; + juce::OpenGLPixelFormat antialiasing; + + std::vector waveform; + std::vector distortedWaveform; + std::vector indices; + + std::vector backgroundVertices; + std::vector backgroundIndices; + + juce::ComponentListener listener; + + GLuint vbo; + GLuint ibo; + + GLuint vboBackground; + GLuint iboBackground; + + std::string vertexShader; + std::string fragmentShader; + + std::string vertexShaderBackground; + std::string fragmentShaderBackground; + + std::unique_ptr shaderProgram; + std::unique_ptr shaderProgramBackground; + + juce::Image background; + juce::OpenGLTexture bgTexture; + }; diff --git a/Source/FilterView.cpp b/Source/FilterView.cpp index 66df4e5..a6a350c 100644 --- a/Source/FilterView.cpp +++ b/Source/FilterView.cpp @@ -11,41 +11,177 @@ #include #include "FilterView.h" +//============================================================================== +/* + * ============================================================================== + * + * FilterView.cpp + * Created: 16 Jan 2026 5:05:38pm + * Author: esca + * + * ============================================================================== + */ + +#include +#include "FilterView.h" +#include "BinaryData.h" +#include "OpenGLUtils.h" +#include "juce_opengl/juce_opengl.h" +#include "juce_opengl/opengl/juce_gl.h" //============================================================================== FilterView::FilterView() { - // In your constructor, you should add any child components, and - // initialise any special settings that your component needs. + float startingColour[4] = {128.0f, 255.0f, 255.0f, 255.0f}; + waveform = generateSineWave(CRUSHVIEW_SAMPLECOUNT, 0, startingColour); + distortedWaveform = waveform; + vScale(distortedWaveform, 2, 0.75); + vTransform(distortedWaveform, -1, 0); + for(int i = 0; irelease(); + shaderProgramBackground->release(); + ctx.detach(); } +void FilterView::distortWaveForm(int samplerate){ + Vertex lastVertex; + int lastMultiplier = 0; + for (int i = 0; i>waveform.size(); i++){ + if(floor((float)i/samplerate)>lastMultiplier){ + lastMultiplier = floor((float)i/samplerate); + lastVertex = waveform[i]; + } + distortedWaveform[i] = lastVertex; + } +} + + void FilterView::paint (juce::Graphics& g) { - /* This demo code just fills the component's background and - draws some placeholder text to get you started. - - You should replace everything in this method with your own - drawing code.. - */ - - g.fillAll (getLookAndFeel().findColour (juce::ResizableWindow::backgroundColourId)); // clear the background - - g.setColour (juce::Colours::grey); - g.drawRect (getLocalBounds(), 1); // draw an outline around the component - - g.setColour (juce::Colours::white); - g.setFont (14.0f); - g.drawText ("FilterView", getLocalBounds(), - juce::Justification::centred, true); // draw some placeholder text + ctx.triggerRepaint(); } void FilterView::resized() { - // This method is where you should set the bounds of any child - // components that your component contains.. } + +//OPENGL STUFF + +void FilterView::newOpenGLContextCreated(){ + + background = juce::ImageCache::getFromMemory(BinaryData::panel_png, BinaryData::panel_pngSize); + bgTexture.loadImage(background); + + //GENERATE BUFFERS + + ctx.extensions.glGenBuffers(1, &vboBackground); + ctx.extensions.glGenBuffers(1, &iboBackground); + + ctx.extensions.glGenBuffers(1, &vbo); + ctx.extensions.glGenBuffers(1, &ibo); + + + + //BIND BACKGROUND BUFFERS + + ctx.extensions.glBindBuffer(juce::gl::GL_ARRAY_BUFFER, vboBackground); + ctx.extensions.glBufferData(juce::gl::GL_ARRAY_BUFFER, sizeof(VertexTexture)*backgroundVertices.size(), backgroundVertices.data(), juce::gl::GL_STATIC_DRAW); + + ctx.extensions.glBindBuffer(juce::gl::GL_ELEMENT_ARRAY_BUFFER, iboBackground); + ctx.extensions.glBufferData(juce::gl::GL_ELEMENT_ARRAY_BUFFER, sizeof(unsigned int) * backgroundIndices.size(), backgroundIndices.data(), juce::gl::GL_STATIC_DRAW); + + //BIND FFT BUFFERS + + //BIND FILTER BUFFERS + + ctx.extensions.glBindBuffer(juce::gl::GL_ARRAY_BUFFER, vbo); + ctx.extensions.glBufferData(juce::gl::GL_ARRAY_BUFFER, sizeof(Vertex)*filterVertices.size(), filterVertices.data(), juce::gl::GL_STATIC_DRAW); + + ctx.extensions.glBindBuffer(juce::gl::GL_ELEMENT_ARRAY_BUFFER, ibo); + ctx.extensions.glBufferData(juce::gl::GL_ELEMENT_ARRAY_BUFFER, sizeof(unsigned int) * filterIndices.size(), filterIndices.data(), juce::gl::GL_STATIC_DRAW); + + //SHADERS + vertexShader = VERTEXSHADER; + fragmentShader = FRAGSHADER; + vertexShaderBackground = VERTEXSHADERBACKGROUND; + fragmentShaderBackground = FRAGSHADERBACKGROUND; + + //actually render the shaders now + shaderProgramBackground.reset(new juce::OpenGLShaderProgram(ctx)); + shaderProgramBackground->addVertexShader(vertexShaderBackground); + shaderProgramBackground->addFragmentShader(fragmentShaderBackground); + shaderProgramBackground->link(); + shaderProgramBackground->use(); + + shaderProgram.reset(new juce::OpenGLShaderProgram(ctx)); + shaderProgram->addVertexShader(vertexShader); + shaderProgram->addFragmentShader(fragmentShader); + shaderProgram->link(); + shaderProgram->use(); +} + +void FilterView::renderOpenGL(){ + juce::gl::glLineWidth(2.5f); + juce::OpenGLHelpers::clear(juce::Colours::black); + + ctx.extensions.glBindBuffer(juce::gl::GL_ARRAY_BUFFER, vboBackground); + ctx.extensions.glBindBuffer(juce::gl::GL_ELEMENT_ARRAY_BUFFER, iboBackground); + + + //RENDER BACKGROUND + shaderProgramBackground->use(); + bgTexture.bind(); + + juce::gl::glEnable(juce::gl::GL_BLEND); + juce::gl::glBlendFunc(juce::gl::GL_SRC_ALPHA, juce::gl::GL_ONE_MINUS_SRC_ALPHA); + + ctx.extensions.glVertexAttribPointer(0, 2, juce::gl::GL_FLOAT, juce::gl::GL_FALSE, sizeof(VertexTexture), nullptr); + ctx.extensions.glEnableVertexAttribArray(0); + ctx.extensions.glVertexAttribPointer(1, 4, juce::gl::GL_FLOAT, juce::gl::GL_FALSE, sizeof(VertexTexture), (GLvoid*)(sizeof(float)*2)); + ctx.extensions.glEnableVertexAttribArray(1); + ctx.extensions.glVertexAttribPointer(2, 2, juce::gl::GL_FLOAT, juce::gl::GL_FALSE, sizeof(VertexTexture), (GLvoid*)(sizeof(float)*6)); + ctx.extensions.glEnableVertexAttribArray(2); + + juce::gl::glDrawElements(juce::gl::GL_TRIANGLES, backgroundIndices.size(), juce::gl::GL_UNSIGNED_INT, nullptr); + bgTexture.unbind(); + + //RENDER FFT + + //RENDER FILTER + + ctx.extensions.glBindBuffer(juce::gl::GL_ARRAY_BUFFER, vbo); + ctx.extensions.glBindBuffer(juce::gl::GL_ELEMENT_ARRAY_BUFFER, ibo); + + shaderProgram->use(); + ctx.extensions.glVertexAttribPointer(0, 2, juce::gl::GL_FLOAT, juce::gl::GL_FALSE, sizeof(Vertex), nullptr); + ctx.extensions.glEnableVertexAttribArray(2); + ctx.extensions.glVertexAttribPointer(1, 4, juce::gl::GL_FLOAT, juce::gl::GL_FALSE, sizeof(Vertex), (GLvoid*)(sizeof(float)*2)); + ctx.extensions.glEnableVertexAttribArray(3); + juce::gl::glDrawElements(juce::gl::GL_LINE_STRIP, filterIndices.size(), juce::gl::GL_UNSIGNED_INT, nullptr); +} + +void FilterView::openGLContextClosing(){ + +} + diff --git a/Source/FilterView.h b/Source/FilterView.h index 4ed4874..82efa9e 100644 --- a/Source/FilterView.h +++ b/Source/FilterView.h @@ -15,15 +15,91 @@ //============================================================================== /* */ -class FilterView : public juce::Component +/* + * ============================================================================== + * + * CrushView.h + * Created: 16 Jan 2026 5:05:38pm + * Author: esca + * + * ============================================================================== + */ + +#pragma once + +#include "juce_gui_basics/juce_gui_basics.h" +#include "juce_opengl/juce_opengl.h" +#include +#include "OpenGLUtils.h" +#include +//============================================================================== +/* + */ +#define CRUSHVIEW_SAMPLECOUNT 200 + +class FilterView : public juce::Component, public juce::OpenGLRenderer { public: - FilterView(); - ~FilterView() override; + FilterView(); + ~FilterView() override; - void paint (juce::Graphics&) override; - void resized() override; + void renderFilter(); + + void newOpenGLContextCreated() override; + void renderOpenGL() override; + void openGLContextClosing() override; + + void paint (juce::Graphics&) override; + void resized() override; private: - JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (FilterView) + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (FilterView) + + bool isLowPass; + float cutoff; + float mix; + + juce::OpenGLContext ctx; + juce::OpenGLPixelFormat antialiasing; + + std::vector filterVertices; + std::vector filterIndices; + + std::vector filterBackgroundVertices; + std::vector filterBackgroundIndices; + + std::vector fftVertices; + std::vector fftIndices; + + std::vector backgroundVertices; + std::vector backgroundIndices; + + juce::ComponentListener listener; + + GLuint vboFilter; + GLuint iboFilter; + + GLuint vbofft; + GLuint ibofft; + + GLuint vboBackground; + GLuint iboBackground; + + std::string vertexShader; + std::string fragmentShader; + std::string vertexShaderFill; + std::string fragmentShaderFill; + + std::string vertexShaderBackground; + std::string fragmentShaderBackground; + + std::unique_ptr shaderProgram; + std::unique_ptr shaderProgermFilter; + std::unique_ptr shaderProgramBackground; + + juce::Image background; + juce::OpenGLTexture bgTexture; + }; + + diff --git a/Source/OpenGLUtils.cpp b/Source/OpenGLUtils.cpp index 4fc9979..0d74b46 100644 --- a/Source/OpenGLUtils.cpp +++ b/Source/OpenGLUtils.cpp @@ -9,12 +9,14 @@ */ #include "OpenGLUtils.h" -#include #include #include void svCol(Vertex &v, float newColour[4]){ - memcpy(&v.colour, &newColour, 4*sizeof(float)); + v.colour[0] = newColour[0]; + v.colour[1] = newColour[1]; + v.colour[2] = newColour[2]; + v.colour[3] = newColour[3]; } void setColour(std::vector &verticeList, float newColour[4]){ @@ -23,10 +25,17 @@ void setColour(std::vector &verticeList, float newColour[4]){ } } -void vTransform(std::vector &verticeList, int transform[2]){ +void vTransform(std::vector &verticeList, float x, float y){ for(Vertex &v : verticeList){ - v.position[0] = transform[0]; - v.position[1] = transform[1]; + v.position[0] += x; + v.position[1] += y; + } +} + +void vScale(std::vector &verticeList, float x, float y){ + for(Vertex &v : verticeList){ + v.position[0] = v.position[0]*x; + v.position[1] = v.position[1]*y; } } diff --git a/Source/OpenGLUtils.h b/Source/OpenGLUtils.h index 6920e64..51f0408 100644 --- a/Source/OpenGLUtils.h +++ b/Source/OpenGLUtils.h @@ -12,31 +12,81 @@ #include //random shit for convenience +// fragcolour = vec4(colour.xyz, colour.w*pow(10, -(position.x*position.y))); + + #define VERTEXSHADER R"(#version 330 core - in vec2 position; - in vec4 colour; - out vec4 fragcolour; - void main(){ - gl_Position = vec4(position, 1, 1); - fragcolour = colour; - } +in vec2 position; +in vec4 colour; +out vec4 fragcolour; +void main() +{ +gl_Position = vec4(position, 1, 1); +fragcolour = colour; +if(position.x<0){ + fragcolour.a = position.x+1; +} +else{ + fragcolour.a = 1-position.x; +} +} )" #define FRAGSHADER R"(#version 330 core - in vec4 fragcolour; - void main(){ - gl_FragColour = fragcolour; - } -)"; +in vec4 fragcolour; +void main() +{ +gl_FragColor = fragcolour; +} +)" + +#define VERTEXSHADERBACKGROUND R"(#version 330 core +layout (location = 0) in vec3 aPos; +layout (location = 1) in vec3 aColor; +layout (location = 2) in vec2 aTexCoord; + +out vec3 ourColor; +out vec2 TexCoord; + +void main() +{ + gl_Position = vec4(aPos, 1.0); + ourColor = aColor; + TexCoord = aTexCoord; +} +)" + +#define FRAGSHADERBACKGROUND R"(#version 330 core +out vec4 FragColor; + +in vec3 ourColor; +in vec2 TexCoord; + +uniform sampler2D ourTexture; + +void main() +{ + FragColor = texture(ourTexture, TexCoord); +} +)" struct Vertex{ float position[2]; float colour[4]; }; + +struct VertexTexture{ + float position[2]; + float colour[4]; + float texturePosition[2]; +}; + void svCol(Vertex &v, float newColour[4]); void setColour(std::vector &verticeList, float newColour[4]); -void vTransform(std::vector &verticeList, int transform[2]); +void vTransform(std::vector &verticeList, float x, float y); + +void vScale(std::vector & verticeList, float x, float y); std::vector generateSineWave(int numVertices, float angle, float startingColour[4]); diff --git a/Source/PluginEditor.cpp b/Source/PluginEditor.cpp index 2464944..ebf4808 100644 --- a/Source/PluginEditor.cpp +++ b/Source/PluginEditor.cpp @@ -6,17 +6,50 @@ ============================================================================== */ +#include "BinaryData.h" +#include "FilterButtonLook.h" #include "PluginProcessor.h" +#include "juce_gui_basics/juce_gui_basics.h" #include "PluginEditor.h" //============================================================================== CrushFXAudioProcessorEditor::CrushFXAudioProcessorEditor (CrushFXAudioProcessor& p) : AudioProcessorEditor (&p), audioProcessor (p) { - // Make sure that before the constructor has finished, you've set the - // editor's size to whatever you need it to be. + //images bg = juce::ImageCache::getFromMemory(BinaryData::BG_png, BinaryData::BG_pngSize); - setSize (696, 400); + dialLookandFeel.setImage(); + filterButtonLookAndFeel.setImages(); + crushSliderLookAndFeel.setImages(); + + addAndMakeVisible(dial1); + addAndMakeVisible(dial2); + addAndMakeVisible(crushSlider); + addAndMakeVisible(filterButton); + addAndMakeVisible(crushView); + + //styling + dial1.setLookAndFeel(&dialLookandFeel); + dial1.setSliderStyle(juce::Slider::SliderStyle::Rotary); + dial1.setTextBoxStyle(juce::Slider::TextEntryBoxPosition::NoTextBox, true, 0, 0); + + dial2.setLookAndFeel(&dialLookandFeel); + dial2.setSliderStyle(juce::Slider::SliderStyle::Rotary); + dial2.setTextBoxStyle(juce::Slider::TextEntryBoxPosition::NoTextBox, true, 0, 0); + + crushSlider.setLookAndFeel(&crushSliderLookAndFeel); + crushSlider.setRange(juce::Range(0.0, 1.0), 0.0); + crushSlider.setSliderStyle(juce::Slider::SliderStyle::LinearHorizontal); + crushSlider.setTextBoxStyle(juce::Slider::TextEntryBoxPosition::NoTextBox, true, 0, 0); + + filterButton.setLookAndFeel(&filterButtonLookAndFeel); + filterButton.setToggleable(true); + filterButton.setClickingTogglesState(true); + filterButton.setButtonText(""); + + //sizing + setSize (812, 350); + setResizable(false, false); } CrushFXAudioProcessorEditor::~CrushFXAudioProcessorEditor() @@ -26,11 +59,14 @@ CrushFXAudioProcessorEditor::~CrushFXAudioProcessorEditor() //============================================================================== void CrushFXAudioProcessorEditor::paint (juce::Graphics& g) { - g.drawImage(bg, getLocalBounds().toFloat()); + g.drawImageAt(bg, 0,0); } void CrushFXAudioProcessorEditor::resized() { - // This is generally where you'll want to lay out the positions of any - // subcomponents in your editor.. + crushView.setBounds(408, 11, 393, 273); + dial1.setBounds(269, 287, 55, 56); + dial2.setBounds(331, 287, 55, 56); + crushSlider.setBounds(578, 293, 205, 43); + filterButton.setBounds(165, 300, 94, 29); } diff --git a/Source/PluginEditor.h b/Source/PluginEditor.h index 8d35674..ee17e7e 100644 --- a/Source/PluginEditor.h +++ b/Source/PluginEditor.h @@ -9,7 +9,12 @@ #pragma once #include +#include "CrushSliderLook.h" +#include "FilterButtonLook.h" #include "PluginProcessor.h" +#include "juce_gui_basics/juce_gui_basics.h" +#include "DialLook.h" +#include "CrushView.h" //============================================================================== /** */ @@ -22,12 +27,21 @@ public: //============================================================================== void paint (juce::Graphics&) override; void resized() override; +private: + + CrushView crushView; + + DialLook dialLookandFeel; + juce::Slider dial1; + juce::Slider dial2; + + CrushSliderLook crushSliderLookAndFeel; + juce::Slider crushSlider; + + FilterButtonLook filterButtonLookAndFeel; + juce::TextButton filterButton; -private: juce::Image bg; - // This reference is provided as a quick way for your editor to - // access the processor object that created it. CrushFXAudioProcessor& audioProcessor; - JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (CrushFXAudioProcessorEditor) }; diff --git a/assets/BG.png b/assets/BG.png index 59b28a6b1b08607b8fb6bf56c06b6b97a3afae8c..59b81a8258b3ad84a00d8859ee5491abd2dee7f1 100644 GIT binary patch literal 9041 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 I5;OGuF9#TinE(I) diff --git a/assets/panel.png b/assets/panel.png new file mode 100644 index 0000000000000000000000000000000000000000..b38abb83c7a301ade184db1cfe36633f898a557b GIT binary patch literal 15977 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 yK2MfhjHq&$!JTgv{k2}hkqObkvx>x> + + + + + + @@ -17,8 +27,19 @@ + + - + + + + + + + + @@ -41,7 +62,7 @@ - + @@ -61,27 +82,5 @@ - - - - - - - - - - - - - - - - - - - - - -