diff --git a/Builds/MacOSX/Dexed.xcodeproj/project.pbxproj b/Builds/MacOSX/Dexed.xcodeproj/project.pbxproj index bf6fed7..9f4141f 100644 --- a/Builds/MacOSX/Dexed.xcodeproj/project.pbxproj +++ b/Builds/MacOSX/Dexed.xcodeproj/project.pbxproj @@ -103,6 +103,7 @@ 0CB234755B75E0DBC2FFB58E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableCornerComponent.cpp"; path = "../../JuceLibraryCode/modules/juce_gui_basics/layout/juce_ResizableCornerComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; 0DCC7A5AD5AC5D3637FFAAFB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarButton.h"; path = "../../JuceLibraryCode/modules/juce_gui_basics/buttons/juce_ToolbarButton.h"; sourceTree = "SOURCE_ROOT"; }; 0DE1759C594D2719742E928A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ElementComparator.h"; path = "../../JuceLibraryCode/modules/juce_core/containers/juce_ElementComparator.h"; sourceTree = "SOURCE_ROOT"; }; + 0E3FA3D7B11FC7D19CC634BE = {isa = PBXFileReference; lastKnownFileType = image.png; name = about.png; path = ../../Resources/about.png; sourceTree = "SOURCE_ROOT"; }; 0E989C4BC7933A41E9B0019E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyboardFocusTraverser.cpp"; path = "../../JuceLibraryCode/modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.cpp"; sourceTree = "SOURCE_ROOT"; }; 0EA1F582E4E45EB90F02223A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_CoreGraphicsContext.mm"; path = "../../JuceLibraryCode/modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm"; sourceTree = "SOURCE_ROOT"; }; 0EF8098DE092ED5C25105241 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseInactivityDetector.cpp"; path = "../../JuceLibraryCode/modules/juce_gui_basics/mouse/juce_MouseInactivityDetector.cpp"; sourceTree = "SOURCE_ROOT"; }; @@ -876,6 +877,7 @@ FF6607118B29435E76806DFA = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Dexed.component; sourceTree = "BUILT_PRODUCTS_DIR"; }; FF973BD60572C077A148D3AB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WildcardFileFilter.h"; path = "../../JuceLibraryCode/modules/juce_core/files/juce_WildcardFileFilter.h"; sourceTree = "SOURCE_ROOT"; }; F472964B0FFEE5615B72CE3D = {isa = PBXGroup; children = ( + 0E3FA3D7B11FC7D19CC634BE, 15B75D829C40872D542A38B8, ); name = Resources; sourceTree = ""; }; BDC5059F1563FD8DD69AD324 = {isa = PBXGroup; children = ( 3715DFDD7A1B12083F051F5A, diff --git a/Builds/MacOSX/Dexed.xcodeproj/project.xcworkspace/xcuserdata/asb2m10.xcuserdatad/UserInterfaceState.xcuserstate b/Builds/MacOSX/Dexed.xcodeproj/project.xcworkspace/xcuserdata/asb2m10.xcuserdatad/UserInterfaceState.xcuserstate index 5ba0612..3e1947e 100644 Binary files a/Builds/MacOSX/Dexed.xcodeproj/project.xcworkspace/xcuserdata/asb2m10.xcuserdatad/UserInterfaceState.xcuserstate and b/Builds/MacOSX/Dexed.xcodeproj/project.xcworkspace/xcuserdata/asb2m10.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/Builds/VisualStudio2012/Dexed.vcxproj b/Builds/VisualStudio2012/Dexed.vcxproj index be83383..aae6451 100644 --- a/Builds/VisualStudio2012/Dexed.vcxproj +++ b/Builds/VisualStudio2012/Dexed.vcxproj @@ -1552,6 +1552,7 @@ + diff --git a/Builds/VisualStudio2012/Dexed.vcxproj.filters b/Builds/VisualStudio2012/Dexed.vcxproj.filters index 2898036..590f1fd 100644 --- a/Builds/VisualStudio2012/Dexed.vcxproj.filters +++ b/Builds/VisualStudio2012/Dexed.vcxproj.filters @@ -2660,6 +2660,9 @@ + + Dexed\Resources + Dexed\Resources diff --git a/Builds/VisualStudio2013/Dexed.vcxproj b/Builds/VisualStudio2013/Dexed.vcxproj index 12f8cf9..8378a45 100644 --- a/Builds/VisualStudio2013/Dexed.vcxproj +++ b/Builds/VisualStudio2013/Dexed.vcxproj @@ -1551,6 +1551,7 @@ + diff --git a/Builds/VisualStudio2013/Dexed.vcxproj.filters b/Builds/VisualStudio2013/Dexed.vcxproj.filters index 67d84c2..8b74dfe 100644 --- a/Builds/VisualStudio2013/Dexed.vcxproj.filters +++ b/Builds/VisualStudio2013/Dexed.vcxproj.filters @@ -2660,6 +2660,9 @@ + + Dexed\Resources + Dexed\Resources diff --git a/Dexed.jucer b/Dexed.jucer index f431882..ac1768d 100644 --- a/Dexed.jucer +++ b/Dexed.jucer @@ -12,6 +12,7 @@ buildRTAS="0" buildAAX="0" pluginManufacturerEmail="support@yourcompany.com"> + diff --git a/JuceLibraryCode/BinaryData.cpp b/JuceLibraryCode/BinaryData.cpp index 31c36cb..0931f78 100644 --- a/JuceLibraryCode/BinaryData.cpp +++ b/JuceLibraryCode/BinaryData.cpp @@ -7,8 +7,342 @@ namespace BinaryData { -//================== builtin_pgm.zip ================== +//================== about.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,1,44,0,0,1,64,8,6,0,0,0,6,75,65,84,0,0,0,6,98,75,71,68,0,255,0,255,0,255,160,189,167,147,0,0,0,9,112,72,89,115,0,0,46,35,0,0,46,35,1,120,165,63,118,0,0,0,7,116,73,77,69,7,222,3,15,6,21,44,250,195,75,60, +0,0,32,0,73,68,65,84,120,218,236,157,119,88,84,71,247,199,191,72,47,138,32,29,68,68,20,68,65,44,88,98,69,212,68,141,198,88,98,55,134,215,142,177,1,118,20,197,216,53,246,222,19,53,121,45,177,107,68,32,26,192,130,138,29,20,65,20,165,8,34,189,179,243,251, +195,31,251,238,46,187,119,11,187,8,120,62,207,227,243,200,221,123,103,206,204,153,61,59,119,238,61,243,85,27,209,163,29,67,45,195,161,121,75,252,248,179,47,28,154,183,0,65,16,159,151,145,30,238,74,43,171,78,109,236,160,151,209,79,224,63,237,39,236,93, +255,11,114,178,50,105,196,16,68,45,161,78,237,109,26,67,200,197,51,152,61,118,8,110,252,125,145,60,77,16,20,176,170,63,121,57,217,216,185,58,0,187,214,44,71,113,81,17,121,156,32,40,96,85,127,174,95,57,15,255,105,227,145,156,248,134,188,78,16,20,176,170, +63,111,226,95,98,225,228,177,120,114,63,146,60,79,16,20,176,170,63,133,5,249,88,51,127,38,238,69,220,32,239,19,4,5,172,234,79,105,73,9,54,46,153,139,136,144,171,52,2,8,130,2,86,245,135,87,86,134,173,129,139,17,118,237,50,141,2,130,160,128,85,19,96,216, +181,122,57,162,31,222,167,145,64,16,20,176,170,63,101,101,165,216,176,216,151,158,30,18,4,5,172,154,65,94,110,14,214,204,159,73,111,197,19,4,5,172,154,65,106,210,91,236,94,183,130,58,130,32,40,96,213,12,238,133,95,199,63,151,207,83,71,16,4,5,172,154, +193,225,173,235,145,150,146,68,29,65,16,213,16,13,101,22,118,60,84,242,27,228,60,30,15,133,5,249,40,44,200,71,65,126,62,210,83,147,145,250,238,45,82,147,222,33,241,85,28,94,62,123,140,130,252,188,207,222,33,133,5,249,216,185,122,25,150,108,218,77,163, +131,32,106,115,192,226,156,202,213,169,3,61,125,3,232,233,27,0,0,172,109,237,0,129,109,114,24,99,120,155,16,143,231,79,30,226,254,205,127,241,228,222,29,148,20,23,127,150,78,137,126,120,31,183,111,132,160,67,183,158,52,66,8,226,75,12,88,210,80,83,83, +67,195,198,77,208,176,113,19,244,26,48,24,69,133,133,120,124,239,54,110,134,4,225,206,141,16,148,150,150,84,169,61,127,236,217,134,182,95,117,131,134,134,6,141,18,130,168,38,84,219,53,44,109,29,29,180,235,220,29,63,251,175,192,142,83,151,49,120,220,4, +232,234,233,87,89,253,41,239,18,17,114,225,47,26,33,4,65,1,75,62,234,214,51,196,176,159,38,99,211,209,191,208,185,215,55,85,86,239,201,67,123,81,88,88,64,163,132,32,40,96,201,79,189,250,70,152,190,40,16,51,151,174,130,142,174,174,202,235,203,201,250, +136,240,160,43,52,74,8,130,2,150,226,116,236,209,11,203,182,29,128,161,145,177,202,235,186,122,230,191,52,74,8,130,2,86,229,176,181,119,192,210,205,123,81,215,208,72,165,245,188,137,127,137,152,71,81,52,82,8,130,2,86,229,176,108,104,139,185,171,54,66, +83,75,75,197,179,172,19,52,82,8,130,2,86,229,113,104,222,18,99,167,205,86,105,29,119,195,175,211,226,59,65,80,192,82,14,189,191,27,138,86,237,191,82,89,249,37,197,197,120,124,247,54,141,22,130,160,128,165,28,198,207,240,133,134,166,166,202,202,191,23, +126,157,70,11,65,124,102,106,205,107,220,22,214,13,225,209,239,59,4,157,61,169,146,242,239,223,12,3,143,199,67,157,58,149,143,241,41,239,18,241,252,201,67,36,189,78,64,106,210,91,164,190,123,139,156,172,76,20,22,22,160,168,160,0,60,198,131,182,142,46, +116,116,117,161,111,80,23,230,86,54,176,108,104,11,203,134,141,224,232,226,246,41,173,137,248,108,212,6,255,21,23,23,33,250,193,61,196,62,123,130,196,87,113,120,247,250,21,114,115,178,81,144,151,135,146,226,34,104,235,232,66,91,87,23,6,6,117,97,102,101, +3,11,155,134,104,212,164,41,90,180,118,135,137,185,5,5,44,101,208,255,135,49,184,118,238,20,24,99,74,47,59,39,43,19,113,49,79,209,212,217,69,238,107,75,75,75,241,248,238,45,68,132,92,197,211,251,145,248,248,33,93,234,53,5,121,185,40,200,203,197,199,244, +52,188,77,136,23,250,172,190,177,9,90,180,105,135,175,122,246,65,171,246,95,65,93,93,157,162,136,10,169,77,254,123,124,239,14,174,157,59,133,135,119,110,162,136,99,93,182,124,163,130,172,140,15,120,247,38,161,194,228,160,235,215,253,225,209,119,32,140, +76,76,171,212,23,106,35,122,180,83,218,183,155,107,183,134,170,98,243,178,5,184,245,207,53,149,148,61,110,250,28,244,29,50,82,230,243,63,188,79,197,197,19,71,17,22,116,89,101,187,153,26,26,25,163,107,159,254,232,55,108,20,140,26,152,84,248,124,239,250, +95,16,114,241,140,74,234,238,51,104,24,126,154,57,87,101,190,228,241,120,88,187,96,54,30,222,137,80,73,249,61,251,15,194,68,223,69,213,218,127,202,226,102,104,16,78,255,182,31,111,95,197,41,111,61,169,78,29,116,239,59,0,195,126,154,194,105,251,72,15, +119,165,213,169,222,210,206,42,64,89,133,13,29,63,233,179,7,44,19,115,75,132,170,232,11,106,80,207,16,237,101,216,193,33,45,53,25,71,119,109,198,238,53,129,120,241,244,17,138,139,10,85,214,222,162,194,2,188,120,250,8,87,207,156,64,110,78,14,236,28,154, +9,101,1,184,186,119,196,147,123,145,200,72,123,175,244,186,227,98,158,193,196,220,18,118,77,29,85,210,182,63,246,109,199,141,43,23,84,82,118,83,103,23,204,12,88,37,118,118,83,157,252,87,89,18,19,226,177,101,217,2,92,248,243,119,100,103,126,84,170,237, +140,49,36,196,62,199,181,115,167,161,161,169,1,7,103,23,168,169,169,85,56,239,212,225,189,52,195,226,226,231,17,3,144,158,154,162,244,114,45,109,108,177,241,183,83,146,111,29,74,74,112,233,228,49,156,58,180,23,197,197,69,159,165,237,122,6,117,49,118, +218,108,244,232,59,128,127,236,227,135,116,44,154,60,86,166,91,25,185,215,20,52,52,177,116,203,30,56,52,111,169,212,114,111,253,115,13,155,151,45,80,73,31,25,53,48,193,47,187,127,171,48,43,168,174,254,83,148,160,179,39,113,100,251,70,148,150,84,205,78, +39,78,174,173,49,109,225,50,152,154,91,170,108,134,85,43,119,28,109,251,85,119,149,148,155,252,246,13,242,114,115,196,255,146,189,138,195,130,73,99,112,124,207,182,207,54,216,1,32,63,55,7,187,215,46,199,74,223,233,248,152,158,198,255,130,206,9,92,7,13, +13,229,63,69,45,45,45,193,134,197,126,74,13,134,111,226,98,177,115,245,50,149,244,143,134,134,38,230,4,174,171,16,172,170,179,255,228,165,184,184,8,91,2,23,225,192,166,53,85,22,172,0,32,230,81,20,22,76,28,131,103,42,148,205,171,149,1,171,93,151,110,42, +43,59,81,204,26,192,191,87,47,97,241,148,31,43,44,174,126,78,30,223,187,141,133,147,199,225,101,244,19,0,159,94,176,253,207,28,213,204,88,50,51,210,241,235,146,185,40,41,169,252,134,139,57,217,89,88,191,216,87,101,183,97,94,179,231,87,152,13,214,4,255, +201,28,240,242,242,176,102,222,76,220,252,76,170,230,121,57,217,248,197,103,26,66,47,157,163,128,37,251,212,180,13,180,117,84,179,155,67,122,106,178,208,61,252,145,237,27,177,99,213,210,207,250,171,204,21,72,150,205,156,196,87,183,238,209,119,0,190,254, +126,184,74,234,138,125,246,24,7,55,175,173,84,25,101,101,101,216,178,108,129,202,246,212,239,51,104,24,60,250,13,172,177,254,147,30,172,114,241,139,207,84,60,123,112,239,179,218,205,43,43,195,158,117,129,184,248,223,163,74,47,187,214,45,186,3,159,158, +94,220,13,191,174,240,148,154,11,123,199,230,112,114,109,141,178,178,50,236,90,189,12,193,213,124,147,63,30,143,135,200,127,255,65,3,51,115,52,110,234,136,150,109,219,227,249,227,7,72,75,73,86,122,93,9,177,207,81,175,190,17,154,56,181,80,232,250,163, +59,55,35,60,248,111,149,173,175,76,95,188,130,255,30,93,77,245,159,36,74,74,138,177,110,193,28,188,120,250,168,218,216,254,232,238,45,212,81,87,199,179,168,187,52,195,146,70,195,198,77,84,52,195,74,65,105,105,41,54,5,204,195,191,65,151,106,72,111,48, +236,89,23,136,144,11,127,65,67,67,3,51,151,174,66,3,51,213,188,252,119,120,219,6,68,43,176,134,241,111,208,101,92,58,121,76,37,54,53,48,53,199,172,128,213,252,237,174,107,178,255,196,126,202,24,118,173,94,142,103,15,238,86,59,203,79,28,216,69,183,132, +159,59,96,237,223,184,10,119,195,106,94,170,206,222,13,171,112,55,252,58,234,213,55,130,239,138,245,208,210,210,86,201,237,192,175,75,231,203,245,148,54,254,69,52,246,174,87,141,136,173,166,150,22,230,172,88,39,180,119,90,77,247,159,40,23,255,251,59, +34,66,254,198,151,64,173,13,88,54,118,246,42,41,247,225,157,8,252,115,249,92,13,237,21,134,109,43,252,241,38,46,22,118,77,29,49,121,222,18,149,212,146,147,245,17,27,252,253,80,92,36,125,93,40,235,99,6,54,46,246,83,153,66,210,68,223,197,176,111,214,252, +127,191,248,7,119,215,10,255,149,19,251,236,49,142,239,221,142,47,133,90,27,176,12,12,13,65,84,164,168,176,0,235,22,205,65,110,118,22,190,234,217,7,3,70,140,83,73,61,9,177,49,216,187,225,23,206,115,62,221,154,205,199,135,180,84,149,216,208,111,232,40, +116,237,221,151,255,247,221,240,235,56,125,100,95,173,241,95,97,65,62,182,6,46,2,175,172,236,139,25,191,181,86,195,170,42,21,118,20,254,181,168,83,7,46,237,58,192,217,173,29,156,92,220,80,191,129,9,234,26,26,162,78,29,117,100,103,102,224,125,114,18,30, +221,189,133,200,27,161,72,126,251,70,169,183,181,7,54,175,197,12,255,95,48,98,162,55,94,199,189,192,163,200,91,74,111,95,88,208,101,52,114,104,134,111,127,24,35,246,243,35,219,54,168,108,55,215,150,109,220,49,106,202,12,254,223,31,210,222,99,215,154, +229,181,202,127,13,76,205,85,242,240,164,58,83,43,223,116,255,116,171,241,1,83,6,127,83,109,3,149,231,128,193,248,118,248,88,152,89,90,73,61,159,199,227,33,44,232,50,142,239,217,134,204,12,229,189,160,57,43,96,53,58,116,247,68,94,78,54,22,77,253,17,169, +239,222,42,127,128,169,169,97,193,186,109,112,105,219,94,232,120,232,165,115,216,179,46,80,37,253,107,106,97,137,95,118,255,134,186,245,254,55,203,14,156,61,85,105,139,210,213,197,127,95,34,181,246,150,80,87,207,160,90,218,101,98,110,129,165,91,246,194, +107,214,60,153,6,123,249,23,164,219,215,253,241,203,238,195,176,119,116,86,154,45,251,127,93,141,252,188,92,232,215,173,7,159,21,27,84,162,68,196,24,195,230,128,249,72,77,122,39,180,238,114,224,215,213,42,233,95,45,109,29,248,172,88,47,20,172,194,175, +93,81,90,176,170,78,254,163,128,85,155,26,86,13,183,92,177,105,220,4,171,246,252,142,102,45,92,21,186,222,216,196,12,139,55,238,128,141,146,158,128,230,100,101,226,220,177,195,0,128,134,118,246,152,182,64,53,233,48,121,185,57,216,176,216,23,133,5,249, +248,152,158,134,141,254,115,85,166,228,61,101,222,18,52,106,210,140,255,119,97,65,62,142,238,222,82,43,253,71,1,171,22,33,203,19,170,170,164,129,153,5,22,174,221,10,131,122,149,123,24,160,171,167,15,223,21,27,160,103,80,87,41,118,93,62,121,28,25,233, +159,118,114,112,239,234,129,193,227,38,168,164,253,137,175,94,98,199,170,0,252,186,116,158,202,110,139,6,142,252,17,157,60,122,11,29,187,116,242,184,82,94,32,174,174,254,251,210,168,181,139,238,37,213,44,213,98,242,92,127,165,109,118,102,110,101,141, +33,63,78,196,111,219,55,86,62,176,23,23,225,220,177,35,24,63,195,23,192,167,108,133,215,47,95,224,94,196,13,165,247,65,228,191,161,42,235,223,86,237,59,97,248,132,105,21,218,246,247,233,63,107,181,255,84,121,135,226,222,165,7,220,187,122,160,137,147, +51,140,77,204,80,167,78,29,228,229,230,32,245,221,91,188,120,250,16,247,34,254,173,114,9,188,218,59,195,170,70,1,171,67,119,207,10,139,206,149,165,207,160,97,176,176,110,168,148,178,174,95,57,143,130,252,60,0,159,22,201,167,45,92,94,163,182,97,54,183, +182,193,207,2,105,55,229,252,251,247,37,165,236,1,85,221,253,167,108,58,121,244,198,166,163,127,97,86,192,106,116,246,252,26,22,214,13,161,165,173,13,13,77,77,24,26,25,163,89,75,87,124,59,124,44,150,110,222,131,245,135,79,160,67,119,79,10,88,149,94,159, +81,242,102,101,149,186,85,25,245,163,242,167,198,26,26,248,122,176,114,18,153,11,11,242,241,239,213,255,165,169,232,233,235,195,103,197,6,232,234,27,84,123,63,235,232,234,194,103,197,6,232,215,173,87,225,179,160,115,39,191,8,255,41,11,109,29,93,204,92, +186,10,51,150,172,172,176,167,149,36,172,109,237,48,43,96,53,124,127,217,0,253,42,184,205,173,181,1,43,67,5,137,207,138,96,99,103,47,244,166,181,50,233,218,187,175,210,68,100,67,47,158,21,250,219,178,161,45,102,248,255,2,64,173,90,251,121,218,130,101, +104,40,38,171,33,57,241,13,94,191,124,241,197,248,175,178,212,53,52,66,192,214,125,232,216,163,151,66,215,183,253,170,27,86,236,58,172,114,129,138,218,27,176,84,176,37,176,162,183,19,170,66,191,110,61,184,117,232,172,148,178,18,94,62,71,90,170,240,75, +136,110,29,190,194,136,137,211,170,173,143,7,143,253,15,220,187,122,136,253,236,230,63,65,95,148,255,42,131,174,190,1,252,127,221,9,59,135,102,149,42,199,194,186,33,252,127,221,141,186,134,70,20,176,228,69,85,123,42,201,139,189,99,115,149,150,239,218, +174,131,210,202,186,39,38,33,248,187,81,227,21,254,213,85,37,109,58,117,197,208,159,38,75,252,60,234,102,216,23,231,63,197,80,195,172,128,213,74,219,44,192,204,210,10,63,251,175,80,217,204,188,214,6,172,132,216,231,213,194,142,198,77,157,84,90,190,139, +18,7,252,125,9,95,242,201,243,150,192,214,222,161,218,248,214,178,97,35,120,47,90,46,86,240,0,248,244,74,75,252,139,232,47,206,127,138,240,205,144,225,74,15,154,46,109,219,99,240,184,255,168,196,222,90,251,90,195,171,106,18,176,166,13,235,87,99,250,236, +101,204,83,48,198,42,4,2,29,157,79,11,219,139,166,140,67,110,118,214,231,189,125,209,211,135,239,47,27,160,199,241,64,32,46,230,169,210,18,130,107,146,255,20,185,37,29,198,49,75,173,12,223,141,30,143,208,75,103,149,190,137,102,173,156,97,189,79,78,66, +94,78,54,8,249,40,200,203,69,146,136,104,166,224,84,127,230,210,149,74,81,190,174,204,237,203,244,197,129,176,106,216,136,243,172,248,231,209,228,76,153,102,87,35,56,3,127,101,208,210,210,198,160,209,63,209,45,161,44,60,184,29,78,163,177,18,179,44,73, +180,108,211,30,163,167,206,250,108,182,13,243,154,140,54,157,186,74,61,47,229,93,34,57,82,134,224,239,209,239,59,149,214,224,209,255,59,165,239,154,82,43,3,214,125,37,45,184,126,137,164,36,114,111,131,210,111,232,72,116,237,211,191,202,237,114,239,234, +129,193,99,101,91,23,121,159,252,142,28,41,133,38,78,206,104,96,106,166,210,58,52,53,181,208,178,141,187,82,203,172,117,1,43,47,55,167,90,238,109,93,83,16,125,181,65,28,19,124,22,168,252,233,153,32,54,118,246,152,58,127,169,204,231,171,66,68,183,182, +161,236,55,247,37,225,218,190,19,5,44,46,174,95,185,160,178,237,118,191,4,100,249,178,107,105,105,99,78,224,122,161,125,210,85,133,158,65,93,248,172,88,47,215,173,69,126,110,46,57,82,10,118,205,156,170,166,158,74,190,219,85,171,3,22,99,12,65,103,78,208, +104,172,4,178,62,213,105,96,106,134,89,203,214,64,93,93,149,15,154,213,48,195,127,133,220,57,119,69,133,5,228,72,41,88,88,219,84,73,61,245,234,43,247,71,173,86,5,172,155,161,65,180,224,90,73,228,249,178,219,53,117,132,169,133,165,202,108,177,178,109, +132,22,173,221,85,218,134,47,21,99,19,179,42,169,71,217,179,240,58,181,231,139,86,136,99,187,182,208,72,84,66,63,202,202,158,181,129,42,253,129,72,122,147,128,131,91,214,145,83,84,128,182,174,110,149,212,163,86,71,185,111,188,215,154,128,245,215,111, +251,85,166,190,242,37,81,92,36,91,192,58,119,252,48,110,134,6,169,220,158,144,11,127,225,218,249,211,114,93,163,165,173,77,142,148,130,106,111,229,21,251,1,252,98,2,214,195,59,17,56,251,255,91,253,18,149,131,199,227,73,239,239,200,155,248,163,10,181, +240,14,109,94,135,231,79,30,202,124,190,166,150,14,57,82,10,85,149,177,144,161,228,73,68,141,15,88,201,137,111,176,117,133,63,0,70,163,176,10,72,121,151,136,45,203,23,129,177,170,235,239,178,178,82,252,186,100,46,62,200,184,3,135,182,14,205,176,164,145, +147,149,89,101,223,79,10,88,255,207,219,132,120,44,155,53,137,210,112,170,136,130,252,60,108,88,236,139,252,220,156,42,175,59,235,99,6,54,250,251,201,180,147,172,178,159,76,213,70,62,188,175,154,119,213,226,56,50,39,20,161,198,38,63,199,60,138,194,198, +37,243,144,147,245,177,90,219,185,239,92,176,216,221,48,107,26,140,49,236,92,189,12,111,19,226,63,155,13,241,207,159,97,255,198,85,152,58,63,128,243,188,6,102,230,136,127,254,172,86,249,239,23,159,105,120,114,95,121,186,159,207,30,222,71,171,246,95,169, +220,238,7,183,35,190,236,25,22,99,12,23,254,252,13,129,179,167,84,251,96,5,160,214,40,243,254,245,219,126,149,138,72,200,202,141,191,47,226,242,169,227,156,231,40,115,215,203,234,226,63,99,37,167,209,60,139,186,167,114,155,19,19,226,149,254,3,87,163, +2,86,98,66,60,150,205,156,132,163,187,182,200,180,56,92,29,120,159,156,132,154,206,253,155,255,226,196,193,61,213,198,158,223,119,108,226,156,109,152,89,88,213,58,255,153,90,90,43,181,188,151,209,79,149,190,190,36,138,178,20,139,106,92,192,202,72,127, +143,67,91,214,99,254,132,81,120,254,248,65,141,250,178,191,140,126,82,163,131,85,82,226,107,108,171,102,15,53,120,60,30,54,47,91,32,113,87,89,187,166,142,181,206,127,141,148,190,129,226,167,59,21,85,145,154,244,14,255,92,58,247,101,5,172,248,231,207, +176,119,195,74,204,28,57,8,127,255,245,167,210,54,101,171,234,217,73,77,37,63,47,23,235,23,249,240,37,192,170,19,185,217,89,88,191,216,23,133,98,222,106,255,20,176,212,106,149,255,148,25,132,249,183,215,87,47,170,108,43,241,131,155,215,160,172,172,180, +118,7,44,30,143,135,216,103,143,113,242,208,30,248,121,141,192,162,41,63,34,228,194,95,42,147,53,175,10,222,189,126,85,35,211,133,24,99,216,246,139,63,146,19,95,87,91,27,223,196,197,98,207,218,192,10,199,117,116,245,96,221,200,174,86,249,207,212,194, +74,233,139,255,165,37,37,216,246,203,18,148,41,121,34,112,249,212,113,60,188,115,83,37,253,160,222,210,206,42,64,89,133,13,29,63,137,187,131,74,75,81,88,80,128,252,188,28,164,165,166,32,33,54,6,209,15,239,35,236,234,101,156,59,126,4,71,182,111,68,208, +153,19,136,126,120,95,41,2,152,138,210,161,187,39,92,218,117,80,218,237,64,105,73,137,76,27,207,41,202,214,192,197,8,190,240,23,74,75,75,97,106,110,1,45,237,202,191,56,121,226,224,238,10,210,95,213,145,183,9,241,208,212,210,130,147,139,155,208,241,228, +183,111,106,157,255,226,159,71,227,221,235,87,74,173,251,195,251,84,168,169,169,193,217,173,173,210,102,164,187,215,44,87,217,123,122,106,35,122,180,163,55,46,5,168,111,108,130,181,7,142,35,225,229,11,172,244,245,86,206,175,130,186,6,54,29,253,75,37, +154,109,225,193,127,99,219,138,197,255,155,50,171,171,195,165,109,7,116,234,217,27,237,58,119,87,72,220,242,206,141,80,252,186,116,110,13,242,154,26,230,175,217,36,244,152,254,241,189,59,181,206,127,161,151,206,97,207,186,64,149,244,224,36,63,127,120, +244,27,88,169,50,34,255,13,197,150,229,139,84,122,71,164,212,25,86,109,96,78,224,58,52,108,220,4,13,76,205,112,229,212,31,40,45,169,124,231,51,198,67,114,226,27,116,246,252,90,162,210,139,34,188,142,123,129,141,254,126,40,45,45,21,186,149,75,125,151, +136,187,97,215,113,241,191,71,241,50,230,41,120,60,6,83,11,43,153,68,59,19,19,226,177,118,254,44,148,149,42,127,253,65,67,67,19,218,186,122,40,45,81,254,126,101,247,110,134,161,125,183,158,168,91,207,16,0,106,165,255,76,205,45,112,241,196,49,149,140, +251,123,17,55,160,174,161,1,39,23,55,185,219,88,90,82,130,83,71,246,225,192,166,181,224,241,84,187,206,76,1,75,128,111,135,143,65,175,129,67,248,191,116,41,73,111,149,38,23,150,242,46,17,26,154,154,112,114,109,173,148,242,222,39,39,97,165,175,55,114, +178,178,56,191,104,41,111,223,32,242,223,80,92,58,113,20,241,207,163,193,24,131,153,165,21,52,52,53,43,156,159,151,147,141,21,115,166,34,235,99,134,74,250,119,130,207,66,120,244,27,136,240,107,87,148,94,118,105,73,49,158,220,187,131,46,125,250,67,83, +75,171,86,250,47,41,241,13,146,19,19,84,54,254,159,70,221,197,179,7,247,208,200,193,17,245,141,27,72,61,159,199,227,225,110,216,63,216,178,124,33,110,95,15,174,146,239,40,5,172,255,199,209,197,13,211,230,7,160,142,186,58,255,152,177,169,41,66,46,252, +165,180,58,158,69,221,69,3,51,139,74,63,241,121,19,23,139,192,217,83,241,241,131,236,18,74,60,30,15,201,137,175,113,231,70,8,46,157,56,198,151,65,51,181,180,130,134,134,38,120,60,30,54,46,241,83,218,27,226,162,244,254,110,40,6,143,253,15,44,172,27,66, +83,75,27,79,238,221,81,122,29,57,89,153,120,247,250,21,58,121,244,134,154,154,90,173,244,159,170,73,79,77,70,240,249,211,120,254,248,1,138,10,11,160,174,161,1,45,109,29,168,107,104,160,168,176,0,233,239,83,240,252,241,67,4,95,248,11,251,214,255,130,144, +139,103,170,116,189,153,214,176,0,88,55,106,140,128,45,123,97,240,255,183,19,130,44,154,242,163,210,191,196,35,38,122,227,187,81,227,21,186,246,234,153,19,56,186,115,179,76,57,117,178,160,165,173,131,214,29,59,227,245,203,23,42,123,26,230,228,226,134, +69,27,119,66,67,227,127,153,96,91,2,23,225,102,200,85,149,212,55,228,199,137,252,7,64,181,221,127,95,26,95,252,12,203,200,196,20,75,54,237,150,56,5,174,87,223,72,233,251,62,61,185,31,137,39,247,35,97,223,172,57,12,101,152,122,51,198,240,224,118,56,182, +173,88,140,208,139,103,149,250,24,186,172,172,20,239,94,191,66,174,138,18,200,141,77,205,176,104,195,246,10,250,119,110,29,58,35,234,118,56,178,50,62,40,189,206,232,135,247,209,200,161,25,172,109,237,106,189,255,190,52,190,232,25,150,158,65,93,44,221, +188,71,170,12,187,191,247,79,120,249,76,21,111,60,127,122,156,220,201,163,23,28,156,93,96,108,98,10,61,131,186,40,200,207,67,246,199,12,188,137,127,137,23,79,30,226,246,141,16,165,43,232,86,5,26,154,154,88,182,117,31,236,29,157,197,126,158,150,146,132, +133,147,85,163,38,173,163,171,139,192,29,135,96,99,103,79,254,163,128,85,11,102,86,13,76,48,127,237,86,169,193,10,248,180,51,196,178,153,147,104,180,200,201,212,249,1,232,246,53,183,134,225,211,168,187,88,233,235,173,146,220,80,115,107,27,252,178,243, +48,18,95,197,145,255,232,150,176,230,98,217,176,17,252,55,237,150,42,121,94,142,137,185,37,62,126,72,199,171,23,49,52,98,100,228,155,33,35,240,221,168,31,165,158,103,102,105,5,61,3,3,149,188,25,157,151,147,141,215,113,177,24,56,106,60,50,51,62,144,255, +40,96,213,60,28,154,183,196,226,13,59,96,212,192,84,174,235,156,221,218,32,34,228,234,103,217,188,174,166,225,236,214,14,222,139,150,163,78,29,217,50,191,154,58,187,32,45,37,9,175,227,98,149,110,75,234,187,183,40,45,41,193,15,255,153,66,254,171,5,212, +249,146,26,251,205,224,225,88,178,121,55,234,26,214,151,251,90,93,61,125,76,95,20,88,101,155,247,215,84,76,204,45,48,43,96,21,212,5,94,15,145,133,255,204,81,157,154,244,185,227,135,241,224,118,68,173,242,159,134,166,38,86,236,60,140,206,158,95,87,107, +59,103,5,172,166,128,37,47,117,13,235,99,238,170,95,241,227,207,190,208,212,212,82,184,156,102,45,93,49,201,111,49,69,37,9,104,105,105,195,103,197,6,133,126,16,202,213,164,235,213,55,82,137,109,187,86,47,131,150,142,78,45,241,159,26,126,94,252,11,154, +56,57,195,107,246,2,152,41,121,175,44,101,241,245,247,195,209,161,187,39,5,44,121,104,221,177,11,214,236,59,134,214,29,187,40,165,188,110,95,247,199,224,113,19,40,58,137,97,242,188,37,149,146,38,111,96,106,134,217,203,214,8,189,188,171,44,138,139,139, +176,97,177,15,90,119,236,92,227,253,247,159,217,243,208,190,155,7,0,64,79,95,31,51,3,86,65,75,171,122,9,111,216,59,58,99,244,212,25,74,47,183,214,174,97,89,219,218,193,123,225,50,12,249,113,34,116,245,244,149,90,118,139,214,237,80,86,86,134,152,71,81, +20,165,254,159,111,135,143,69,255,97,163,148,112,75,105,137,122,134,245,17,117,43,92,233,54,230,231,229,34,46,38,26,19,125,63,169,254,212,60,255,169,97,194,156,133,232,53,112,176,208,81,163,6,166,104,104,223,4,55,67,130,170,133,149,230,86,54,88,188,113, +59,244,244,63,37,110,159,58,188,151,2,150,36,12,234,25,98,228,196,233,152,52,119,137,204,79,1,21,161,101,27,119,104,235,232,226,241,189,219,95,124,176,114,105,219,1,83,230,45,145,121,145,93,26,77,156,156,145,145,254,94,105,121,128,130,164,165,36,161, +32,47,23,163,167,204,172,81,254,211,210,210,198,140,37,43,209,181,79,95,177,159,91,217,218,161,94,253,250,120,112,59,252,179,218,89,223,216,4,75,54,237,70,3,83,115,254,49,10,88,18,102,84,63,120,77,193,212,249,1,112,114,117,83,218,151,135,11,199,150,173, +208,168,73,83,60,184,115,83,37,59,16,212,4,204,44,173,177,112,221,86,232,40,89,250,220,213,189,35,158,220,139,68,134,140,90,132,242,240,50,250,41,76,45,173,208,103,208,176,26,225,63,51,75,107,204,91,187,25,45,219,184,75,9,244,45,80,223,184,129,74,102, +167,178,221,210,155,99,225,250,109,176,108,104,43,116,92,153,1,171,70,191,56,170,174,174,1,215,246,29,241,245,160,97,85,34,89,36,137,212,164,119,216,178,124,1,226,159,71,87,187,62,178,176,110,168,178,28,65,109,29,93,44,223,126,64,166,151,111,21,225,227, +135,116,44,156,52,22,153,25,233,74,47,91,67,83,19,1,91,246,161,137,147,115,181,246,95,151,222,125,241,211,204,185,21,82,155,184,8,191,118,5,187,214,46,87,202,214,58,178,98,231,224,136,185,171,126,133,145,73,197,215,133,70,122,184,127,185,1,75,75,75,27, +173,218,119,66,251,238,61,209,166,83,87,185,28,169,74,202,202,202,112,237,220,41,252,247,192,174,106,241,174,143,133,117,67,124,63,246,63,56,190,103,155,74,190,240,192,167,71,214,202,126,10,36,74,236,179,199,88,62,115,178,74,54,133,51,50,49,197,202,221, +191,161,190,113,131,106,233,191,159,102,206,133,171,123,71,133,174,79,136,125,142,95,151,206,195,251,228,119,42,183,181,107,239,126,240,154,61,15,58,186,122,98,63,255,162,2,86,189,250,70,112,104,222,18,14,206,45,209,212,185,37,154,58,187,66,91,71,167, +218,218,155,157,249,17,103,142,30,68,200,133,51,40,18,35,144,160,242,105,185,153,5,6,141,30,143,46,125,250,97,165,143,55,98,159,61,86,73,61,131,70,255,132,225,19,166,85,73,155,66,47,157,197,158,117,43,84,82,118,179,150,173,224,191,113,39,127,127,176, +234,226,191,30,253,190,19,218,221,66,17,242,114,115,240,199,222,237,184,118,238,52,84,161,122,84,175,190,17,38,248,44,132,123,151,30,156,231,213,248,128,85,71,93,29,90,90,218,208,214,209,129,150,182,14,180,117,116,160,95,183,30,76,204,45,96,106,110,9, +83,11,75,152,152,91,194,210,182,17,76,205,45,107,228,237,106,94,78,54,130,206,157,66,232,197,179,85,240,43,247,41,9,183,215,192,193,104,223,173,39,212,213,213,177,247,255,247,42,82,5,110,29,58,195,111,229,198,42,89,39,44,231,224,230,181,184,122,230,132, +74,202,238,249,237,247,152,232,179,176,90,249,79,153,188,122,17,131,227,123,182,41,237,1,131,158,65,93,244,29,58,18,253,134,142,148,233,14,71,169,1,139,169,106,183,120,130,79,252,139,104,220,254,39,24,15,238,68,32,49,254,165,82,54,232,215,210,210,70, +115,183,54,112,107,255,21,220,187,245,68,3,37,43,3,19,181,207,127,175,227,94,224,202,169,63,17,25,246,15,242,20,216,78,200,161,121,75,116,234,217,7,61,250,14,248,108,75,49,20,176,170,152,194,130,124,188,140,126,138,132,216,24,164,38,189,67,90,74,50,210, +83,147,145,159,155,131,162,162,34,20,23,22,162,180,180,4,26,26,154,208,212,210,130,158,65,93,212,171,95,31,198,166,230,176,176,182,129,85,195,70,176,119,116,134,77,227,38,149,190,101,32,190,76,255,149,149,149,225,249,147,135,136,121,120,31,111,226,95, +226,221,235,87,200,201,202,68,126,94,46,202,74,75,161,171,167,15,61,131,186,48,54,53,67,35,135,102,176,111,230,4,103,183,182,48,85,162,162,54,5,44,130,32,106,61,117,168,11,8,130,160,128,69,16,4,65,1,139,32,8,10,88,4,65,16,20,176,8,130,32,40,96,17,4,65, +1,139,32,8,130,2,22,65,16,4,5,44,130,32,40,96,17,4,65,80,192,34,8,130,160,128,69,16,4,5,44,130,32,8,10,88,4,65,16,20,176,8,130,160,128,69,16,4,65,1,139,32,8,130,2,22,65,16,20,176,8,130,32,40,96,17,4,65,80,192,34,8,130,2,22,65,16,4,5,44,130,32,8,10,88, +4,65,80,192,34,8,130,160,128,69,16,4,65,1,139,32,8,10,88,4,65,16,20,176,8,130,160,128,69,16,4,65,1,139,32,8,130,2,22,65,16,20,176,8,130,32,40,96,17,4,65,80,192,34,8,130,2,22,65,16,68,181,68,61,32,32,32,128,235,132,51,103,206,224,204,153,51,8,11,11,67, +88,88,24,30,61,122,132,132,132,4,36,36,36,160,89,179,102,252,243,120,60,30,210,210,210,160,175,175,175,52,227,162,163,163,49,126,252,120,20,22,22,162,77,155,54,159,173,147,148,221,182,164,164,36,172,93,187,22,61,123,246,172,210,118,68,71,71,227,183,223, +126,67,167,78,157,170,93,121,39,78,156,168,48,166,228,225,193,131,7,88,189,122,53,246,236,217,131,208,208,80,212,169,83,7,77,155,54,229,127,190,118,237,90,220,186,117,11,169,169,169,112,112,112,128,186,186,58,10,10,10,176,125,251,118,116,236,216,81,106, +249,217,217,217,88,177,98,5,118,237,218,133,252,252,124,184,185,185,81,244,168,142,51,172,236,236,108,164,167,167,35,48,48,16,9,9,9,200,200,200,192,237,219,183,17,21,21,37,116,222,193,131,7,209,180,105,83,240,120,60,165,25,231,239,239,15,55,55,55,184, +186,186,2,0,194,195,195,193,24,171,242,78,82,118,219,50,50,50,112,226,196,137,42,111,199,187,119,239,112,233,210,165,106,85,94,185,79,197,141,41,89,217,191,127,63,58,119,238,12,30,143,135,111,191,253,22,13,27,54,132,183,183,55,198,142,29,203,63,103,225, +194,133,40,45,45,197,137,19,39,208,161,67,7,228,231,231,35,47,47,15,82,126,175,249,12,29,58,20,111,223,190,197,160,65,131,176,126,253,122,236,218,181,139,162,199,231,128,201,136,185,185,57,75,76,76,100,140,49,230,227,227,195,2,3,3,133,62,207,202,202, +98,17,17,17,76,153,116,238,220,153,133,134,134,242,255,86,87,87,103,5,5,5,172,170,81,118,219,30,63,126,204,28,29,29,171,188,29,65,65,65,204,211,211,179,90,149,87,238,83,113,99,74,22,94,190,124,201,116,117,117,43,248,39,55,55,151,221,187,119,79,236,216, +105,219,182,45,187,114,229,10,75,75,75,99,134,134,134,82,235,200,203,203,99,51,102,204,96,60,30,143,49,198,88,68,68,4,235,208,161,3,35,170,30,133,215,176,98,98,98,208,163,71,15,216,219,219,35,50,50,18,9,9,9,216,182,109,27,255,86,161,101,203,150,112,116, +116,68,120,120,120,133,219,8,209,207,246,238,221,11,123,123,123,216,219,219,99,207,158,61,0,0,63,63,63,68,69,69,225,167,159,126,66,96,96,32,134,14,29,138,178,178,50,180,109,219,22,59,118,236,192,31,127,252,1,0,248,231,159,127,112,251,246,109,0,192,209, +163,71,113,232,208,33,254,255,27,53,106,132,150,45,91,98,255,254,253,24,55,110,28,0,224,249,243,231,24,50,100,8,70,141,26,133,233,211,167,3,0,182,111,223,142,198,141,27,163,73,147,38,56,124,248,112,133,182,202,218,54,69,202,230,58,71,82,27,196,217,32, +169,140,253,251,247,195,214,214,22,174,174,174,120,246,236,153,216,250,119,236,216,129,77,155,54,1,0,110,220,184,1,111,111,111,236,216,177,3,190,190,190,232,221,187,55,28,28,28,112,243,230,77,169,229,137,179,65,92,159,8,206,90,202,125,90,92,92,92,97, +76,201,210,127,167,79,159,198,215,95,127,93,225,182,84,95,95,191,194,50,66,89,89,25,194,195,195,241,238,221,59,56,58,58,138,237,139,37,75,150,240,199,80,84,84,20,6,14,28,8,61,61,61,108,222,188,25,106,106,106,0,128,247,239,223,195,208,208,144,102,59,53, +105,134,213,185,115,103,150,159,159,207,2,2,2,216,216,177,99,217,205,155,55,249,191,58,43,86,172,96,211,166,77,99,241,241,241,44,47,47,79,168,28,209,207,174,94,189,202,156,156,156,216,147,39,79,88,116,116,52,115,118,118,102,87,174,92,97,153,153,153,172, +125,251,246,236,212,169,83,44,43,43,139,165,167,167,51,117,117,117,150,144,144,192,210,210,210,88,155,54,109,88,89,89,25,27,50,100,8,27,51,102,12,43,43,43,99,109,218,180,97,25,25,25,236,197,139,23,183,15,48,19,0,0,32,0,73,68,65,84,172,94,189,122,236, +159,127,254,97,57,57,57,204,203,203,139,117,238,220,153,49,198,88,84,84,20,211,214,214,102,193,193,193,44,47,47,143,5,7,7,51,103,103,103,22,27,27,203,158,62,125,202,236,236,236,132,126,153,25,99,50,183,77,214,178,5,103,88,146,206,225,106,131,168,13,146, +202,120,244,232,17,51,50,50,98,145,145,145,44,55,55,151,141,25,51,70,236,140,104,233,210,165,108,222,188,121,140,49,198,206,159,63,207,250,247,239,207,150,46,93,202,58,118,236,200,10,11,11,217,154,53,107,216,168,81,163,56,203,147,100,131,104,159,8,34, +232,83,113,99,74,22,223,44,92,184,144,77,157,58,85,232,216,193,131,7,89,135,14,29,88,135,14,29,216,130,5,11,248,51,44,59,59,59,214,171,87,47,254,172,93,220,12,235,209,163,71,172,81,163,70,172,184,184,152,13,30,60,152,237,222,189,91,232,243,232,232,104, +102,99,99,195,194,195,195,105,186,83,147,102,88,125,250,244,129,174,174,46,28,29,29,145,159,159,47,244,217,132,9,19,144,152,152,136,145,35,71,34,57,57,153,243,179,160,160,32,120,121,121,161,69,139,22,112,114,114,194,132,9,19,16,28,28,12,67,67,67,104, +106,106,194,216,216,24,245,234,213,67,131,6,13,0,0,230,230,230,48,49,49,65,247,238,221,241,235,175,191,226,221,187,119,120,246,236,25,118,236,216,1,79,79,79,24,25,25,225,246,237,219,232,212,169,19,186,119,239,14,3,3,3,248,250,250,10,217,96,111,111,143, +158,61,123,66,79,79,15,55,110,220,64,126,126,62,198,140,25,3,47,47,47,152,155,155,227,249,243,231,18,219,205,213,54,69,202,150,116,14,87,27,68,109,224,42,163,103,207,158,104,215,174,29,244,245,245,49,99,198,12,185,124,220,187,119,111,104,107,107,195, +214,214,22,69,69,69,156,229,113,181,85,176,79,4,17,244,169,184,49,37,75,255,181,107,215,14,33,33,33,40,41,41,225,31,243,244,244,196,250,245,235,81,175,94,61,161,53,207,232,232,104,4,5,5,161,71,143,30,18,219,236,226,226,130,86,173,90,193,207,207,15,119, +239,222,197,248,241,227,249,159,189,126,253,26,125,251,246,197,214,173,91,241,213,87,95,209,108,167,58,46,186,75,188,176,142,228,75,141,140,140,112,236,216,49,140,25,51,6,107,215,174,229,252,172,117,235,214,56,123,246,44,114,115,115,145,155,155,139,211, +167,79,163,117,235,214,82,235,247,245,245,197,226,197,139,49,117,234,84,76,152,48,1,243,231,207,199,156,57,115,0,0,142,142,142,184,119,239,30,146,146,146,0,0,103,207,158,149,104,187,179,179,51,154,55,111,142,176,176,48,68,68,68,96,222,188,121,24,62,124, +184,66,109,83,164,108,73,231,112,181,65,212,6,73,101,56,57,57,33,34,34,2,41,41,41,252,219,39,113,152,153,153,33,54,54,22,0,240,244,233,83,152,153,153,137,245,49,87,121,92,109,229,26,43,92,99,74,150,254,27,56,112,32,12,13,13,49,110,220,56,124,252,248, +17,0,208,176,97,67,188,123,247,14,15,30,60,192,228,201,147,165,214,91,90,90,138,210,210,82,126,112,91,188,120,49,54,111,222,12,95,95,95,104,105,105,1,0,82,82,82,208,187,119,111,44,95,190,28,131,6,13,226,95,155,146,146,194,95,158,32,170,113,192,226,226, +220,185,115,112,116,116,196,202,149,43,241,253,247,223,115,126,54,98,196,8,180,109,219,22,150,150,150,176,180,180,68,171,86,173,48,114,228,72,169,117,88,89,89,193,215,215,23,195,135,15,199,216,177,99,241,243,207,63,195,194,194,2,0,224,238,238,14,47,47, +47,56,57,57,193,213,213,21,9,9,9,18,203,25,54,108,24,44,45,45,97,107,107,11,27,27,27,28,57,114,4,69,69,69,10,181,77,145,178,37,157,195,213,6,81,27,36,149,209,165,75,23,12,27,54,12,77,155,54,133,179,179,51,114,115,115,197,218,57,122,244,104,196,199,199, +195,198,198,6,219,182,109,131,143,143,143,216,243,184,202,147,183,31,101,65,150,50,213,213,213,113,241,226,69,228,229,229,193,204,204,12,77,155,54,133,185,185,57,124,125,125,113,242,228,73,216,217,217,113,214,145,149,149,5,77,77,77,104,106,106,226,232, +209,163,252,241,51,110,220,56,76,156,56,17,0,240,241,227,71,244,233,211,7,177,177,177,24,55,110,28,212,212,212,208,171,87,47,0,64,80,80,16,166,76,153,34,52,195,35,84,135,26,83,209,123,2,249,249,249,40,43,43,67,221,186,117,101,250,44,47,47,15,101,101, +101,168,87,175,158,60,235,111,252,133,80,30,143,87,225,23,58,43,43,11,234,234,234,48,48,48,144,90,86,118,118,54,74,74,74,248,183,41,138,182,77,209,178,37,157,35,169,13,226,108,144,84,70,102,102,38,52,53,53,57,223,35,99,140,33,53,53,21,166,166,166,80, +87,87,231,108,15,87,121,242,244,163,172,200,90,102,74,74,10,226,227,227,97,96,96,0,103,103,103,104,104,104,40,92,103,105,105,169,204,215,23,21,21,65,91,91,155,162,73,77,14,88,4,65,16,53,226,150,144,32,8,130,2,22,65,16,20,176,8,130,32,40,96,17,4,65,80, +192,34,8,130,2,22,65,16,4,5,44,130,32,8,10,88,4,65,80,192,34,8,130,160,128,69,16,4,65,1,139,32,8,10,88,4,65,16,20,176,8,130,32,40,96,17,4,65,1,139,32,8,226,115,35,243,14,103,65,65,65,248,227,143,63,144,146,146,2,59,59,59,252,244,211,79,104,215,174,29, +245,32,65,16,85,134,84,229,103,0,240,246,246,198,203,151,47,225,235,235,139,73,147,38,161,113,227,198,88,185,114,37,146,146,146,196,170,230,114,169,228,102,101,101,193,223,223,31,59,119,238,68,81,81,145,208,103,31,62,124,192,158,61,123,240,226,197,11, +180,106,213,74,168,204,55,111,222,96,225,194,133,56,124,248,48,10,11,11,43,124,174,234,250,5,201,202,202,66,82,82,18,140,140,140,42,124,38,78,97,88,149,72,83,145,150,166,136,172,40,226,148,154,85,161,254,77,16,114,221,18,238,217,179,7,86,86,86,8,12,12, +196,246,237,219,49,98,196,8,28,61,122,20,199,142,29,195,221,187,119,113,253,250,245,10,215,112,169,228,14,25,50,4,47,94,188,128,135,135,7,252,252,252,240,219,111,191,241,63,75,76,76,196,195,135,15,177,114,229,202,10,101,14,24,48,0,117,235,214,197,212, +169,83,241,203,47,191,112,110,252,175,138,250,5,191,148,35,71,142,196,155,55,111,196,126,46,78,97,88,149,112,169,72,203,162,136,44,47,92,74,205,170,80,255,38,8,33,164,233,128,245,232,209,131,21,23,23,51,47,47,47,118,238,220,57,198,24,99,123,246,236,97, +55,111,222,100,137,137,137,236,135,31,126,144,89,37,247,214,173,91,204,206,206,142,149,150,150,50,198,24,59,113,226,4,107,222,188,185,84,85,100,30,143,199,110,222,188,201,74,74,74,24,99,140,45,88,176,128,205,156,57,83,110,149,94,69,235,23,196,199,199, +135,233,235,235,11,41,82,139,83,50,22,84,24,86,37,146,236,149,85,17,89,153,74,205,170,80,255,38,8,185,116,9,213,213,213,161,169,169,137,135,15,31,98,192,128,1,0,128,137,19,39,162,99,199,142,176,177,177,193,135,15,31,132,206,231,82,201,125,240,224,1,60, +61,61,249,183,73,253,251,247,71,76,76,12,10,10,10,56,109,80,83,83,67,199,142,29,161,161,161,129,141,27,55,226,207,63,255,228,171,32,139,162,138,250,203,57,114,228,8,222,190,125,139,111,190,249,134,243,60,113,10,195,178,170,56,243,120,60,44,92,184,16, +54,54,54,176,179,179,195,157,59,119,56,175,151,132,172,138,200,146,202,21,167,6,45,77,169,89,80,33,27,144,95,9,154,32,42,125,75,88,90,90,10,224,147,22,94,70,70,6,128,79,218,117,225,225,225,40,42,42,226,84,22,137,137,137,193,244,233,211,177,116,233,82, +0,159,212,86,4,85,94,116,116,116,160,174,174,46,81,126,74,28,175,95,191,134,186,186,58,63,32,113,161,204,250,111,221,186,133,109,219,182,225,192,129,3,82,207,109,217,178,37,2,2,2,112,252,248,113,216,217,217,33,54,54,22,211,166,77,195,145,35,71,112,235, +214,45,68,68,68,32,62,62,158,31,88,186,119,239,142,43,87,174,160,117,235,214,216,185,115,39,255,156,11,23,46,160,65,131,6,156,215,75,34,51,51,19,150,150,150,66,199,14,29,58,132,142,29,59,162,99,199,142,88,184,112,33,103,185,239,223,191,231,235,15,102, +103,103,227,245,235,215,216,189,123,55,212,213,213,113,233,210,37,104,105,105,33,33,33,1,151,47,95,198,143,63,254,136,173,91,183,34,63,63,31,113,113,113,0,128,144,144,16,236,216,177,3,65,65,65,56,127,254,60,2,2,2,112,255,254,125,20,20,20,224,226,197, +139,152,48,97,130,88,93,71,130,168,84,192,114,114,114,66,120,120,56,252,253,253,49,108,216,48,248,251,251,99,210,164,73,176,176,176,192,145,35,71,208,183,111,95,137,129,69,84,37,183,81,163,70,124,193,78,0,72,72,72,128,150,150,22,76,77,77,101,54,120,243, +230,205,240,243,243,195,252,249,243,1,0,39,79,158,132,137,137,9,76,76,76,112,242,228,73,149,212,255,246,237,91,12,30,60,24,131,6,13,194,185,115,231,240,246,237,91,177,107,119,229,136,42,12,203,163,226,252,207,63,255,96,198,140,25,176,181,181,69,203,150, +45,209,164,73,19,169,74,214,226,144,69,17,89,222,114,165,41,53,11,162,136,18,52,65,84,58,96,45,95,190,28,243,231,207,135,190,190,62,206,156,57,131,97,195,134,33,56,56,24,207,158,61,195,137,19,39,48,117,234,212,10,215,72,82,201,253,230,155,111,112,243, +230,77,68,70,70,2,0,86,175,94,45,147,104,106,82,82,18,220,221,221,249,202,190,197,197,197,252,39,81,3,6,12,64,76,76,12,98,98,98,248,183,172,202,174,63,60,60,28,227,198,141,67,118,118,54,30,60,120,128,204,204,76,169,51,28,65,228,81,113,110,209,162,5,78, +158,60,137,178,178,50,188,127,255,30,175,95,191,150,170,100,45,14,89,20,145,185,202,149,164,6,45,52,120,56,20,157,149,161,4,77,16,114,47,186,51,198,88,114,114,50,27,61,122,52,235,221,187,55,27,53,106,20,235,209,163,7,155,62,125,58,203,205,205,173,112, +110,70,70,6,115,113,113,97,0,248,255,60,61,61,249,159,31,58,116,136,233,232,232,48,115,115,115,230,228,228,196,146,146,146,100,90,68,158,63,127,62,179,183,183,103,253,250,245,99,246,246,246,236,217,179,103,98,109,85,85,253,130,12,25,50,68,166,69,119, +65,230,206,157,203,234,214,173,203,92,92,92,216,228,201,147,89,231,206,157,249,11,255,86,86,86,204,210,210,146,93,190,124,153,229,229,229,177,254,253,251,51,3,3,3,166,175,175,207,254,253,247,95,206,235,185,236,77,75,75,99,3,6,12,96,26,26,26,204,193,193, +129,153,153,153,49,27,27,27,118,253,250,117,169,118,101,102,102,50,55,55,55,102,109,109,205,108,108,108,216,147,39,79,36,46,186,31,63,126,156,13,25,50,132,221,188,121,147,255,128,131,199,227,49,47,47,47,102,105,105,201,44,45,45,217,160,65,131,88,126, +126,62,139,138,138,98,45,90,180,160,213,99,66,33,228,18,82,45,46,46,70,102,102,38,140,141,141,43,165,170,155,156,156,140,196,196,68,180,110,221,26,154,154,154,50,95,151,146,146,130,148,148,20,56,57,57,65,71,71,167,202,235,175,44,242,168,56,127,248,240, +1,122,122,122,208,213,213,149,122,189,44,253,198,165,136,44,169,92,121,212,160,37,161,10,37,104,226,203,133,148,159,9,130,168,61,107,88,4,65,16,20,176,8,130,32,106,67,192,42,43,43,195,134,13,27,100,62,94,219,168,141,237,252,82,124,71,124,230,128,117, +226,196,9,92,188,120,177,74,141,58,119,238,28,172,173,173,101,62,46,8,143,199,195,251,247,239,21,110,71,74,74,10,252,253,253,63,171,83,100,105,167,188,118,103,103,103,195,223,223,31,63,252,240,3,255,173,115,89,249,240,225,3,54,109,218,132,35,71,142,84, +248,44,43,43,11,126,126,126,248,254,251,239,57,203,149,212,166,232,232,104,108,220,184,81,165,253,89,21,117,16,213,36,96,137,75,114,5,254,151,4,43,250,127,101,112,242,228,73,12,25,50,68,230,227,130,136,38,224,114,37,235,138,35,51,51,83,98,50,113,85,33, +75,59,229,181,155,43,33,92,26,92,73,225,92,201,228,178,180,233,221,187,119,184,116,233,146,74,251,179,42,234,32,170,6,133,223,77,232,222,189,59,114,115,115,161,163,163,35,244,255,202,242,232,209,35,56,57,57,85,120,221,64,210,113,81,134,13,27,6,103,103, +103,254,203,137,229,182,213,20,100,109,167,60,228,231,231,163,121,243,230,216,180,105,19,212,212,212,208,184,113,99,204,158,61,27,83,166,76,145,233,122,55,55,55,248,248,248,96,232,208,161,21,126,204,226,226,226,240,242,229,75,168,171,171,195,202,202, +10,75,150,44,169,176,27,132,42,218,68,208,12,75,34,162,73,174,130,73,176,3,7,14,228,255,255,241,227,199,24,52,104,16,230,207,159,15,83,83,83,120,120,120,240,183,97,17,77,242,45,191,125,19,101,247,238,221,152,52,105,146,212,227,91,182,108,129,181,181, +53,220,220,220,176,117,235,86,120,123,123,3,128,80,2,174,180,100,93,113,9,190,229,248,250,250,194,204,204,12,30,30,30,72,72,72,16,123,235,41,46,73,121,239,222,189,176,183,183,135,189,189,61,246,236,217,3,0,248,239,127,255,11,47,47,47,116,234,212,9,14, +14,14,56,115,230,12,90,182,108,137,118,237,218,33,61,61,157,179,157,178,38,77,115,217,205,149,16,46,143,109,162,200,154,76,46,218,166,253,251,247,195,214,214,22,174,174,174,120,246,236,153,208,185,226,18,166,51,51,51,209,163,71,15,68,70,70,226,246,237, +219,240,244,244,68,78,78,142,196,243,165,213,65,212,96,164,189,89,234,227,227,195,58,119,238,204,242,243,243,89,64,64,0,27,59,118,44,75,79,79,103,234,234,234,44,33,33,65,232,255,81,81,81,76,79,79,143,5,7,7,179,130,130,2,54,117,234,84,246,205,55,223,48, +198,24,91,177,98,5,155,54,109,26,139,143,143,103,121,121,121,236,216,177,99,204,204,204,140,21,23,23,243,235,74,79,79,103,147,38,77,170,96,131,232,241,187,119,239,50,99,99,99,118,231,206,29,150,157,157,205,198,143,31,207,250,247,239,207,24,99,66,111, +91,11,218,38,174,29,75,151,46,101,243,230,205,99,140,49,118,254,252,121,214,191,127,127,22,29,29,205,116,116,116,88,72,72,8,43,46,46,102,62,62,62,172,123,247,238,21,108,218,182,109,27,243,240,240,96,175,95,191,102,143,31,63,102,47,95,190,100,87,175,94, +101,78,78,78,236,201,147,39,44,58,58,154,57,59,59,179,43,87,174,176,157,59,119,50,23,23,23,150,155,155,203,70,142,28,201,186,116,233,194,10,10,10,88,175,94,189,216,225,195,135,37,182,243,197,139,23,172,94,189,122,236,159,127,254,97,57,57,57,204,203,203, +139,255,38,186,104,127,202,106,119,116,116,52,179,177,177,97,225,225,225,140,49,38,179,109,226,222,168,95,189,122,53,155,53,107,150,208,54,64,26,26,26,236,253,251,247,18,219,244,232,209,35,102,100,100,196,34,35,35,89,110,110,46,27,51,102,12,63,19,33, +56,56,152,57,59,59,179,216,216,88,246,244,233,83,102,103,103,199,223,10,231,242,229,203,204,206,206,142,217,217,217,177,224,224,96,206,243,185,234,32,106,249,246,50,64,197,36,87,193,36,88,209,132,216,78,157,58,161,103,207,158,208,209,209,129,159,159, +31,110,222,188,9,160,98,146,111,183,110,221,176,102,205,26,161,219,132,189,123,247,98,194,132,9,21,234,23,61,126,231,206,29,244,237,219,23,238,238,238,168,91,183,174,208,204,72,16,121,146,117,5,105,219,182,45,60,60,60,160,169,169,9,95,95,95,68,68,68, +84,88,163,19,151,164,28,20,20,4,47,47,47,180,104,209,2,78,78,78,152,48,97,2,130,131,131,249,253,162,175,175,15,123,123,123,120,120,120,64,71,71,7,214,214,214,40,46,46,150,216,78,121,146,166,101,177,91,92,66,184,172,182,137,67,150,100,114,113,109,234, +217,179,39,218,181,107,7,125,125,125,204,152,49,131,255,25,87,194,116,159,62,125,96,104,104,136,6,13,26,192,195,195,131,243,124,174,58,136,47,224,150,80,158,100,213,251,247,239,243,111,3,79,159,62,141,22,45,90,0,168,152,228,91,167,78,29,161,20,145,210, +210,82,220,187,119,15,238,238,238,66,229,137,59,222,162,69,11,220,184,113,3,105,105,105,0,128,51,103,206,64,145,118,72,74,240,125,244,232,17,94,188,120,193,95,44,110,222,188,57,212,212,212,144,146,146,194,223,233,84,92,146,114,235,214,173,113,246,236, +89,228,230,230,34,55,55,23,167,79,159,70,235,214,173,1,64,104,59,28,113,253,41,174,157,242,36,77,115,217,13,72,78,8,151,197,54,73,72,75,38,23,215,38,39,39,39,68,68,68,240,183,174,57,125,250,52,255,51,174,132,233,229,203,151,195,218,218,26,245,235,215, +199,170,85,171,56,207,231,170,131,248,66,23,221,37,97,98,98,130,57,115,230,224,225,195,135,200,207,207,231,191,74,112,238,220,57,204,156,57,19,140,49,28,56,112,0,193,193,193,152,49,99,6,134,15,31,14,77,77,77,156,62,125,26,223,127,255,125,133,242,196, +29,239,214,173,27,134,14,29,10,7,7,7,52,106,212,8,238,238,238,50,237,143,37,202,232,209,163,177,119,239,94,216,216,216,64,77,77,13,87,174,92,1,0,88,88,88,96,221,186,117,8,10,10,66,126,126,62,206,159,63,15,224,147,16,199,207,63,255,140,33,67,134,96,238, +220,185,248,225,135,31,80,191,126,125,48,198,112,229,202,21,140,24,49,2,183,110,221,226,239,67,245,227,143,63,98,228,200,145,50,61,145,19,215,78,119,119,119,120,121,121,193,201,201,9,118,118,118,66,179,34,209,254,228,178,251,227,199,143,232,211,167,15, +98,99,99,49,110,220,56,140,27,55,14,158,158,158,184,118,237,90,165,124,93,191,126,125,108,220,184,17,221,186,117,131,161,161,33,140,140,140,16,18,18,194,217,166,46,93,186,96,216,176,97,104,218,180,41,26,54,108,8,79,79,79,161,7,38,127,255,253,55,108,109, +109,1,0,29,58,116,192,55,223,124,131,27,55,110,224,247,223,127,71,100,100,36,74,75,75,209,190,125,123,116,234,212,73,226,249,92,117,16,181,124,13,75,30,4,51,241,147,147,147,249,91,17,11,110,95,156,157,157,205,255,91,112,253,106,232,208,161,66,127,75, +59,126,224,192,1,22,27,27,203,114,115,115,217,250,245,235,133,214,82,228,129,199,227,137,181,149,49,198,82,83,83,249,219,50,151,83,88,88,88,97,125,45,63,63,191,194,54,196,89,89,89,114,217,33,169,157,229,59,39,228,228,228,136,221,14,90,176,63,185,236, +86,37,73,73,73,236,246,237,219,21,236,231,106,211,199,143,31,197,238,246,81,190,213,114,122,122,186,204,245,75,58,159,171,14,162,102,162,161,170,64,104,97,97,81,225,152,232,134,109,229,235,87,247,239,223,71,139,22,45,42,60,246,150,116,28,248,244,50,99, +159,62,125,208,166,77,27,60,127,254,28,87,175,94,85,200,78,53,53,53,177,182,150,223,50,138,162,173,173,45,118,157,76,16,121,85,99,184,218,9,128,255,68,79,90,127,114,217,173,74,44,45,45,43,236,110,42,173,77,245,235,215,151,88,94,189,122,245,228,170,95, +210,249,92,117,16,53,19,165,238,214,144,155,155,139,39,79,158,136,149,254,226,226,216,177,99,232,217,179,103,133,192,33,233,120,57,137,137,137,72,78,78,70,171,86,173,42,4,146,154,132,180,118,82,155,8,66,5,1,139,32,8,66,149,208,110,13,4,65,80,192,34,8, +130,160,128,69,16,4,5,44,130,32,8,10,88,4,65,16,20,176,8,130,160,128,69,16,4,65,1,139,32,8,130,2,22,65,16,20,176,8,130,32,40,96,17,4,65,80,192,34,8,130,2,22,65,16,4,5,44,130,32,8,165,6,172,148,148,20,172,94,189,26,107,215,174,197,254,253,251,249,123, +134,3,159,246,65,63,122,244,168,208,185,91,182,108,129,170,118,172,145,164,234,44,15,85,173,236,92,29,85,135,149,209,143,138,80,25,21,113,85,218,28,29,29,141,254,253,251,99,255,254,253,159,205,39,138,140,19,174,62,81,229,184,99,140,33,53,53,181,122,6, +172,183,111,223,226,215,95,127,69,90,90,26,66,67,67,209,165,75,23,204,158,61,27,0,208,184,113,99,248,251,251,227,246,237,219,0,128,57,115,230,32,59,59,91,161,253,213,101,65,84,213,89,17,170,90,217,185,58,170,14,43,163,31,229,65,94,245,237,170,182,217, +223,223,31,110,110,110,112,117,117,253,108,62,81,100,156,112,245,137,42,199,221,254,253,251,209,184,113,99,148,148,148,40,60,22,20,69,166,45,146,45,45,45,177,110,221,58,0,64,70,70,6,186,116,233,130,35,71,142,96,220,184,113,216,180,105,19,166,77,155,134, +53,107,214,224,254,253,251,56,116,232,144,202,156,42,170,234,76,212,140,126,84,134,250,182,42,109,78,73,73,193,244,233,211,43,40,54,145,31,37,215,219,164,73,19,133,148,188,43,171,18,47,119,75,141,141,141,177,120,241,98,190,202,238,192,129,3,97,101,101, +133,65,131,6,97,251,246,237,208,210,210,18,123,157,56,133,222,29,59,118,192,215,215,23,189,123,247,134,131,131,3,95,195,80,22,85,103,73,215,74,82,2,22,69,146,178,179,60,74,203,149,85,29,22,167,18,45,169,93,229,72,83,106,22,167,102,45,106,187,96,63,74, +82,176,22,189,189,16,188,254,210,165,75,24,62,124,56,255,151,210,219,219,27,23,47,94,20,107,187,52,245,109,73,253,200,101,179,183,183,55,90,182,108,201,255,183,122,245,106,137,229,60,127,254,28,67,134,12,193,168,81,163,48,125,250,244,10,109,243,243,243, +67,84,84,20,126,250,233,39,4,6,6,74,244,139,180,114,184,198,142,36,159,74,26,39,226,234,18,103,147,96,159,200,58,238,158,63,127,46,81,157,93,214,122,223,190,125,139,237,219,183,115,126,183,197,141,43,209,177,160,232,253,40,39,145,145,145,172,85,171,86, +66,199,110,220,184,33,116,108,217,178,101,76,79,79,143,165,164,164,136,45,67,146,66,239,210,165,75,89,199,142,29,89,97,97,33,91,179,102,13,27,53,106,148,204,170,206,226,174,229,82,14,22,84,62,150,164,144,44,143,210,114,101,85,135,37,169,68,139,107,151, +32,210,148,154,197,169,89,139,218,46,216,143,226,20,172,69,17,189,158,199,227,49,79,79,79,182,125,251,118,246,242,229,75,102,109,109,205,10,11,11,197,218,46,77,125,91,82,63,114,217,92,80,80,192,114,114,114,88,88,88,24,115,117,117,101,185,185,185,18,203, +137,138,138,98,218,218,218,44,56,56,152,229,229,229,137,85,36,106,223,190,61,59,117,234,20,203,202,202,146,232,23,105,229,112,141,29,113,253,194,53,78,68,235,146,100,147,96,159,200,58,238,184,212,217,101,173,87,48,38,72,234,119,113,227,74,112,44,168, +84,249,89,148,211,167,79,163,125,251,246,0,128,55,111,222,96,251,246,237,24,61,122,52,252,252,252,196,158,207,165,232,219,187,119,111,104,107,107,195,214,214,22,69,69,69,50,171,58,139,187,150,171,30,65,36,41,36,203,163,180,92,89,213,97,46,149,104,209, +118,137,34,175,82,179,56,149,232,114,196,41,88,159,60,121,18,38,38,38,48,49,49,193,201,147,39,43,92,175,166,166,134,253,251,247,99,197,138,21,240,241,241,129,183,183,55,95,4,68,212,118,105,234,219,146,250,145,203,230,242,219,9,111,111,111,252,254,251, +239,208,215,215,231,244,189,189,189,61,122,246,236,9,61,61,189,10,109,51,52,52,132,166,166,38,140,141,141,81,175,94,61,78,191,112,149,195,53,118,196,245,139,180,113,34,88,23,151,77,229,200,163,118,45,73,157,93,145,122,37,245,187,184,113,37,58,22,84,122, +75,88,84,84,132,132,132,4,44,88,176,0,191,253,246,27,22,45,90,4,0,152,57,115,38,252,252,252,176,101,203,22,132,135,135,35,44,44,172,194,181,92,138,190,162,247,223,242,168,58,139,94,203,85,143,32,146,20,146,229,81,90,174,172,234,48,151,74,180,180,53,9, +46,165,102,113,106,214,226,84,162,5,251,91,84,193,122,192,128,1,136,137,137,65,76,76,12,6,12,24,32,246,250,70,141,26,97,209,162,69,8,9,9,193,212,169,83,37,218,163,168,207,184,108,6,128,201,147,39,99,234,212,169,112,113,113,145,107,140,137,182,77,81,191, +136,150,195,53,118,196,181,91,218,56,17,60,159,203,38,89,203,19,68,146,58,187,34,245,74,234,119,113,227,170,74,158,18,2,192,195,135,15,161,171,171,11,119,119,119,196,197,197,33,34,34,2,141,26,53,194,165,75,151,16,27,27,139,89,179,102,65,71,71,135,191, +0,95,90,90,90,97,145,206,210,210,18,182,182,182,176,177,177,193,145,35,71,196,206,28,0,97,85,103,87,87,87,254,47,186,172,139,129,178,212,83,174,144,108,103,103,135,229,203,151,243,239,205,5,149,150,93,93,93,133,214,182,206,157,59,7,71,71,71,172,92,185, +18,223,127,255,189,196,186,4,85,135,157,157,157,37,46,54,143,24,49,2,109,219,182,229,107,250,181,106,213,74,72,230,93,81,70,143,30,141,248,248,120,216,216,216,96,219,182,109,240,241,241,169,96,187,32,115,231,206,69,102,102,38,234,215,175,15,123,123,123, +36,38,38,66,91,91,155,63,123,208,214,214,150,120,125,106,106,42,38,78,156,88,41,253,63,73,253,200,101,243,190,125,251,112,236,216,49,4,6,6,194,198,198,6,61,122,244,144,217,247,162,109,83,212,47,162,229,112,141,29,113,200,58,78,100,181,73,158,242,202, +213,217,155,54,109,138,141,27,55,10,173,71,201,91,175,164,126,23,55,174,148,245,78,69,149,33,171,162,111,101,85,157,101,173,71,146,66,178,60,74,203,149,85,29,86,68,37,90,17,53,107,73,42,209,92,10,214,92,109,207,203,203,99,22,22,22,236,205,155,55,42,27, +27,210,108,86,134,106,180,178,253,34,105,236,72,66,30,117,106,89,108,146,86,158,52,117,118,89,234,21,183,174,45,169,223,165,141,171,106,163,252,44,14,89,21,125,43,171,234,44,107,61,146,20,146,229,81,90,174,172,234,176,188,42,209,178,32,78,205,90,146, +74,116,57,226,20,172,185,174,223,183,111,31,122,247,238,141,134,13,27,170,108,108,72,179,185,50,190,87,149,95,36,141,29,73,200,51,59,149,197,38,121,202,147,85,228,86,150,122,37,245,187,180,113,37,247,216,174,174,66,170,181,69,213,185,182,18,21,21,5,43, +43,171,74,45,160,18,85,143,162,234,236,130,228,228,228,224,217,179,103,232,208,161,67,149,219,79,202,207,4,65,212,24,232,149,113,130,32,106,79,192,138,139,139,195,234,213,171,249,255,246,239,223,47,148,116,153,148,148,164,180,100,226,218,146,152,252, +226,197,11,204,157,59,23,67,134,12,193,180,105,211,16,17,17,161,212,54,214,214,196,86,130,168,116,192,138,142,142,198,222,189,123,145,158,158,142,244,244,116,100,102,102,10,37,93,102,100,100,8,37,19,87,38,185,177,54,36,38,255,249,231,159,104,215,174, +29,10,11,11,209,175,95,63,24,26,26,162,127,255,254,88,181,106,149,210,218,88,91,19,91,9,66,26,50,61,37,108,222,188,57,214,175,95,207,255,59,59,59,91,98,210,101,101,147,27,107,50,111,222,188,193,132,9,19,112,229,202,21,116,238,220,153,127,124,242,228, +201,104,211,166,13,58,117,234,36,243,147,153,207,197,231,76,108,37,136,74,207,176,128,79,111,76,79,159,62,29,211,167,79,199,202,149,43,43,36,93,150,35,154,220,168,72,50,42,80,115,19,147,79,159,62,141,94,189,122,9,5,43,0,176,179,179,195,228,201,147,133, +246,14,19,215,198,204,204,76,244,232,209,3,145,145,145,184,125,251,54,60,61,61,145,147,147,35,179,221,53,62,177,149,32,100,88,179,224,228,252,249,243,172,121,243,230,108,235,214,173,108,235,214,173,236,216,177,99,66,73,151,143,31,63,102,142,142,142,252, +151,196,202,147,27,21,73,70,173,233,137,201,75,151,46,101,83,166,76,17,219,143,155,54,109,98,67,135,14,229,108,35,99,140,93,190,124,153,217,217,217,49,59,59,59,22,28,28,252,69,37,182,18,132,82,94,28,181,181,181,21,154,13,221,186,117,75,236,121,130,201, +141,7,15,30,228,39,69,150,31,123,254,252,57,154,55,111,206,79,176,20,71,121,98,114,249,44,196,214,214,182,66,98,114,249,103,19,39,78,4,240,41,185,119,226,196,137,24,57,114,36,142,30,61,42,148,144,41,88,119,94,94,30,63,65,20,0,102,204,152,129,5,11,22, +84,176,65,48,233,179,188,252,224,224,96,232,233,233,9,37,177,138,110,197,210,166,77,27,204,157,59,23,197,197,197,21,182,217,185,124,249,50,186,117,235,198,217,70,53,53,53,244,233,211,7,134,134,134,208,208,208,224,159,35,152,216,202,101,55,240,191,196, +86,224,211,214,41,130,185,95,130,253,46,169,141,63,252,240,3,255,124,73,253,40,152,216,42,10,189,151,69,124,246,91,66,69,144,39,225,89,144,154,156,152,252,237,183,223,194,200,200,8,99,199,142,69,70,70,6,0,160,184,184,24,115,231,206,197,211,167,79,249, +73,194,146,218,8,0,203,151,47,135,181,181,53,234,215,175,207,95,168,255,82,18,91,9,226,179,5,44,121,18,158,5,169,201,137,201,117,234,212,193,197,139,23,81,82,82,2,115,115,115,56,56,56,192,200,200,8,55,110,220,64,104,104,40,140,140,140,56,219,248,247, +223,127,227,247,223,127,199,239,191,255,142,227,199,143,99,239,222,189,252,109,169,191,136,196,86,130,144,130,202,223,116,207,206,206,70,73,73,137,220,57,69,239,223,191,135,177,177,49,52,52,132,239,90,179,178,178,160,174,174,14,3,3,3,161,227,249,249, +249,40,43,43,67,221,186,117,165,214,157,153,153,9,77,77,77,169,57,82,121,121,121,40,43,43,83,40,63,45,57,57,25,175,94,189,130,185,185,57,154,52,105,34,87,27,37,33,205,238,7,15,30,96,204,152,49,120,242,228,9,82,82,82,96,106,106,10,117,117,117,185,218, +120,247,238,93,76,152,48,1,15,30,60,144,218,143,31,62,124,128,158,158,30,116,117,117,233,155,68,84,9,42,79,126,86,52,25,181,166,39,38,151,207,92,20,105,163,36,106,123,98,43,65,124,246,25,22,81,117,212,244,196,86,130,160,128,69,16,68,173,129,146,159,9, +130,160,128,69,16,4,65,1,139,32,8,10,88,4,65,16,20,176,8,130,32,40,96,17,4,65,1,139,32,8,130,2,22,65,16,4,5,44,130,32,40,96,17,4,65,80,192,34,8,130,160,128,69,16,4,5,44,130,32,8,10,88,4,65,16,74,15,88,49,49,49,152,60,121,50,198,140,25,131,115,231,206, +85,27,227,197,169,82,151,19,25,25,41,116,238,179,103,207,80,80,80,64,30,151,147,202,170,124,11,94,175,40,202,82,4,191,117,235,22,174,95,191,94,37,253,86,85,227,47,37,37,5,171,87,175,198,218,181,107,177,127,255,126,190,86,192,23,27,176,138,139,139,225, +225,225,1,83,83,83,116,237,218,21,75,151,46,229,11,65,124,110,196,169,82,3,192,199,143,31,49,121,242,100,161,115,183,108,217,130,176,176,48,138,64,114,194,165,242,205,69,185,10,180,224,245,138,162,44,69,240,107,215,174,225,252,249,243,42,239,179,170, +28,127,111,223,190,197,175,191,254,138,180,180,52,254,254,255,179,103,207,174,189,3,82,154,14,88,114,114,50,211,213,213,101,233,233,233,213,78,163,236,252,249,243,172,127,255,254,21,142,159,58,117,138,1,96,55,110,220,96,140,49,150,149,149,197,244,245, +245,217,220,185,115,73,216,77,78,178,178,178,88,68,68,68,5,13,74,105,168,171,171,179,130,130,2,161,235,21,37,58,58,90,230,122,185,8,12,12,100,62,62,62,42,239,179,170,28,127,130,58,146,140,49,246,225,195,7,214,188,121,115,118,248,240,225,90,57,30,165, +206,176,44,44,44,48,101,202,20,56,59,59,99,205,154,53,200,207,207,7,0,92,186,116,9,195,135,15,71,249,134,165,222,222,222,184,120,241,162,88,117,100,121,21,137,197,169,13,123,123,123,163,101,203,150,252,127,171,87,175,6,80,81,149,26,0,130,131,131,225, +238,238,206,87,140,57,124,248,48,154,53,107,134,224,224,224,10,237,83,134,90,114,249,47,168,181,181,53,220,220,220,176,117,235,86,120,123,123,75,44,67,146,130,245,127,255,251,95,120,121,121,161,83,167,78,112,112,112,192,153,51,103,208,178,101,75,180, +107,215,14,233,233,233,21,110,181,68,213,151,37,217,39,173,92,174,62,144,164,242,205,213,14,65,21,232,23,47,94,8,93,175,136,162,118,57,226,212,178,37,141,67,89,144,164,14,46,169,93,178,218,41,203,248,147,84,135,232,120,145,228,103,73,24,27,27,99,241, +226,197,252,246,136,107,163,168,82,186,42,191,159,85,62,195,42,39,52,52,148,245,238,221,155,181,106,213,138,101,103,103,51,30,143,199,60,61,61,217,246,237,219,217,203,151,47,153,181,181,53,43,44,44,20,171,142,44,143,34,177,36,181,225,130,130,2,150,147, +147,195,194,194,194,152,171,171,43,203,205,205,21,171,74,205,24,99,142,142,142,44,42,42,138,153,153,153,177,164,164,36,214,188,121,115,22,17,17,193,204,204,204,88,70,70,134,210,213,146,239,222,189,203,140,141,141,217,157,59,119,88,118,118,54,27,63,126, +60,127,230,39,90,6,151,130,245,206,157,59,153,139,139,11,203,205,205,101,35,71,142,100,93,186,116,97,5,5,5,172,87,175,94,21,126,49,197,169,47,75,178,79,90,185,92,125,32,73,229,155,171,29,130,42,208,130,215,43,170,168,205,165,150,45,105,28,74,155,97,73, +26,103,92,237,146,102,103,57,210,198,31,87,29,162,227,69,156,159,185,102,88,140,49,118,227,198,13,214,170,85,43,137,109,20,85,74,87,213,247,243,179,41,63,151,150,150,162,71,143,30,232,222,189,59,122,245,234,133,35,71,142,192,219,219,27,251,247,239,71, +167,78,157,112,245,234,85,120,123,123,67,91,91,27,0,196,170,35,203,170,72,44,73,109,184,77,155,54,200,205,205,133,183,183,55,126,255,253,119,190,218,139,168,42,245,219,183,111,145,159,159,15,55,55,55,140,25,51,6,99,199,142,133,158,158,30,58,117,234,132, +110,221,186,33,36,36,4,67,134,12,17,106,95,101,213,146,27,55,110,140,190,125,251,194,221,221,157,255,107,19,16,16,32,182,12,46,5,235,114,91,244,245,245,97,111,111,15,7,7,7,232,232,232,192,218,218,26,197,197,197,66,54,139,83,95,222,189,123,183,88,251, +236,237,237,165,150,203,213,7,226,90,36,126,204,0,0,25,220,73,68,65,84,224,106,135,160,2,120,114,114,50,255,26,69,21,181,1,110,181,108,73,227,144,11,73,227,172,172,172,140,211,63,162,118,158,60,121,18,83,166,76,1,0,236,218,181,11,29,59,118,148,58,254, +10,10,10,56,235,16,28,47,92,42,219,146,56,125,250,52,218,183,111,47,177,141,162,74,233,170,252,126,86,249,162,251,153,51,103,224,238,238,142,236,236,108,48,198,160,173,173,205,87,41,110,212,168,17,22,45,90,132,144,144,16,190,170,49,32,94,29,89,86,69, +98,46,197,232,201,147,39,99,234,212,169,112,113,113,145,104,111,112,112,48,60,61,61,1,0,211,166,77,67,104,104,40,63,160,121,122,122,138,189,45,172,172,90,114,139,22,45,112,227,198,13,164,165,165,241,251,76,168,147,5,202,224,82,176,6,192,239,91,73,253, +88,142,56,245,101,46,53,103,105,229,114,245,129,56,164,181,67,28,138,42,106,3,220,106,217,146,198,161,40,217,217,217,124,153,56,73,227,76,90,187,68,237,28,48,96,0,98,98,98,16,19,19,131,1,3,6,200,52,254,228,169,67,86,149,237,162,162,34,36,36,36,96,193, +130,5,248,237,183,223,176,104,209,34,137,109,20,85,74,175,202,239,167,202,3,214,128,1,3,224,226,226,130,134,13,27,194,198,198,6,105,105,105,252,251,109,0,72,77,77,197,196,137,19,165,106,230,201,170,72,44,73,109,120,223,190,125,56,118,236,24,2,3,3,97, +99,99,131,30,61,122,72,12,88,229,191,6,77,154,52,193,216,177,99,49,98,196,8,254,128,185,118,237,154,194,182,73,82,75,238,214,173,27,134,14,29,10,7,7,7,184,186,186,34,57,57,89,40,64,8,194,165,96,45,15,226,212,151,21,85,172,150,167,15,42,211,142,202,216, +39,73,45,91,150,113,88,30,24,15,28,56,128,65,131,6,113,142,51,121,219,165,173,173,13,19,19,19,152,152,152,64,91,91,91,166,241,39,79,29,178,168,108,63,124,248,16,186,186,186,112,119,119,71,92,92,28,34,34,34,208,168,81,35,137,109,20,85,74,175,202,239,103, +149,173,97,197,199,199,179,168,168,40,86,90,90,202,63,150,151,151,199,44,44,44,216,155,55,111,56,175,141,138,138,98,45,90,180,224,63,117,20,44,131,235,233,148,50,158,76,22,20,20,40,221,182,220,220,92,150,149,149,37,116,236,192,129,3,44,54,54,150,229, +230,230,178,245,235,215,179,89,179,102,113,150,145,153,153,201,114,114,114,42,221,190,244,244,116,150,159,159,47,213,62,101,247,65,101,218,33,175,125,130,164,166,166,178,146,146,18,161,99,210,198,97,97,97,33,187,125,251,54,75,77,77,149,121,156,41,203, +63,92,227,79,158,58,196,249,89,158,39,189,162,109,204,203,203,99,217,217,217,159,253,251,169,146,53,44,0,104,220,184,113,133,99,251,246,237,67,239,222,189,209,176,97,67,153,3,164,172,138,196,138,42,70,139,162,163,163,163,116,219,196,221,159,127,248,240, +1,125,250,244,65,155,54,109,240,252,249,115,92,189,122,149,179,12,73,10,214,242,34,78,125,185,50,235,7,178,246,65,101,218,81,25,251,196,169,101,75,27,135,218,218,218,104,223,190,189,92,227,76,89,254,225,26,127,242,212,81,25,149,109,113,109,20,167,148, +254,57,190,159,242,82,41,33,213,168,168,40,88,89,89,193,220,220,156,243,60,101,40,18,171,10,101,218,150,152,152,136,228,228,100,180,106,213,74,166,133,223,218,216,7,159,3,89,199,33,81,243,253,79,202,207,4,65,212,24,40,249,153,32,8,10,88,4,65,16,20,176, +8,130,160,128,69,16,4,65,1,139,32,8,130,2,22,65,16,20,176,8,130,32,40,96,17,4,65,80,192,34,8,130,2,22,65,16,4,5,44,130,32,8,10,88,4,65,80,192,34,8,130,160,128,69,16,4,33,15,234,1,130,106,9,28,188,120,241,2,107,214,172,193,174,93,187,112,253,250,117,24, +25,25,73,220,48,141,199,227,33,45,45,77,234,70,109,178,158,39,142,164,164,36,172,93,187,150,191,29,173,50,56,113,226,4,18,18,18,208,172,89,179,42,115,64,116,116,52,198,143,31,143,194,194,66,180,105,211,70,169,118,165,164,164,96,219,182,109,136,136,136, +64,76,76,12,12,12,12,248,27,193,61,125,250,20,65,65,65,112,117,117,229,159,123,224,192,1,180,111,223,94,226,246,206,181,17,174,62,82,5,5,5,5,216,176,97,3,30,62,124,8,109,109,109,185,55,76,84,21,113,113,113,216,179,103,15,194,194,194,16,22,22,198,23,150, +168,12,17,17,17,184,122,245,106,165,203,145,123,134,245,231,159,127,162,93,187,118,40,44,44,68,191,126,253,96,104,104,136,254,253,251,99,213,170,85,98,207,151,85,237,183,50,170,192,242,168,16,75,163,92,165,248,246,237,219,136,138,138,170,210,129,226, +239,239,15,55,55,55,126,224,80,166,93,92,170,192,141,27,55,134,191,191,63,110,223,190,13,0,152,51,103,14,178,179,179,191,168,96,37,173,143,84,65,94,94,30,150,47,95,142,156,156,28,124,255,253,247,21,246,166,255,92,72,82,81,175,12,47,94,188,64,104,104, +168,114,13,149,182,135,242,235,215,175,153,129,129,1,11,11,11,19,58,254,234,213,43,102,100,100,196,66,67,67,57,213,130,101,85,21,150,23,121,84,136,101,85,41,246,241,241,97,129,129,129,85,186,71,117,231,206,157,197,246,161,50,236,146,166,10,124,246,236, +89,214,166,77,27,22,20,20,196,28,29,29,89,81,81,209,23,167,108,93,213,202,201,105,105,105,204,208,208,144,49,198,216,190,125,251,216,192,129,3,171,181,138,122,101,56,120,240,32,27,61,122,116,213,42,63,159,62,125,26,189,122,245,66,231,206,157,133,142, +219,217,217,97,242,228,201,56,122,244,104,5,117,88,81,181,96,73,170,200,130,231,73,82,213,149,164,144,203,5,151,114,239,166,77,155,0,124,210,87,243,246,246,22,82,41,46,46,46,70,76,76,12,122,244,232,1,123,123,123,68,70,70,2,16,175,86,44,218,102,81,53, +93,81,196,149,225,231,231,135,168,168,40,252,244,211,79,8,12,12,20,58,95,22,187,36,41,23,75,66,84,21,120,224,192,129,176,178,178,194,160,65,131,176,125,251,118,104,105,105,85,184,166,38,41,99,75,243,129,44,51,121,209,62,146,100,203,146,37,75,112,232, +208,33,0,159,182,104,30,56,112,160,204,62,41,41,41,193,230,205,155,177,99,199,14,44,92,184,144,127,92,220,181,226,190,23,226,218,89,25,69,237,114,68,85,212,229,241,13,87,93,60,30,15,19,38,76,224,75,138,169,116,134,181,116,233,82,54,101,202,20,177,159, +109,218,180,137,13,29,58,180,130,58,172,160,218,47,151,42,178,224,121,226,84,117,185,20,114,37,205,176,164,41,247,206,155,55,79,232,23,69,80,165,216,199,199,135,117,238,220,153,229,231,231,179,128,128,0,54,118,236,88,137,106,197,162,109,22,85,211,21, +68,82,25,153,153,153,172,125,251,246,236,212,169,83,21,84,100,164,217,37,73,129,87,86,85,224,114,150,45,91,198,244,244,244,88,74,74,138,68,69,157,154,162,140,205,229,131,99,199,142,49,51,51,51,86,92,92,44,115,31,113,217,242,232,209,35,214,168,81,35,86, +92,92,204,6,15,30,204,118,239,222,45,147,79,210,210,210,152,182,182,54,155,61,123,54,235,208,161,3,27,49,98,4,43,45,45,149,120,173,184,239,133,104,59,21,85,212,22,157,97,137,170,168,203,227,27,113,117,29,60,120,144,141,26,53,138,121,121,121,177,239,191, +255,94,46,53,38,133,103,88,109,218,180,65,104,104,104,5,229,97,0,184,124,249,50,95,8,179,92,29,86,84,141,227,206,157,59,124,85,228,186,117,235,242,127,89,197,33,168,170,91,84,84,36,164,46,108,96,96,0,95,95,95,169,1,88,222,107,4,85,138,1,160,79,159,62, +208,213,213,133,163,163,35,242,243,243,133,212,138,157,156,156,248,106,197,162,109,158,48,97,2,18,19,19,49,114,228,72,33,181,99,0,18,203,48,52,52,132,166,166,38,140,141,141,43,168,144,72,179,75,80,129,215,203,203,139,175,192,43,203,140,185,92,65,230, +205,155,55,216,190,125,59,70,143,30,13,63,63,63,137,215,148,171,2,235,232,232,192,207,207,79,232,215,83,176,15,36,181,83,218,24,16,44,67,154,255,4,21,172,61,60,60,132,20,172,185,124,208,173,91,55,172,89,179,6,154,154,154,50,247,17,151,45,46,46,46,104, +213,170,21,252,252,252,112,247,238,93,140,31,63,94,102,159,232,232,232,96,227,198,141,136,136,136,64,116,116,52,66,66,66,56,175,21,253,94,136,182,147,107,140,138,94,203,69,185,138,250,244,233,211,249,122,145,242,248,70,92,93,247,239,223,199,209,163,71, +177,109,219,54,168,171,171,171,126,209,253,219,111,191,133,145,145,17,198,142,29,139,140,140,12,0,64,113,113,49,230,206,157,139,167,79,159,242,149,118,37,41,247,74,83,69,22,50,70,164,12,69,212,133,185,174,49,51,51,67,108,108,44,127,250,43,78,50,74,212, +6,89,213,138,197,169,233,202,82,134,204,142,18,177,139,75,129,87,20,113,170,192,0,48,115,230,76,248,249,249,97,203,150,45,8,15,15,71,88,88,152,216,235,107,138,50,54,151,15,234,212,169,3,13,13,201,170,118,226,250,72,154,45,139,23,47,198,230,205,155,225, +235,235,11,45,45,45,185,124,2,0,145,145,145,120,251,246,45,108,108,108,56,175,149,214,78,121,21,181,47,92,184,128,194,194,66,185,199,157,188,170,216,0,208,182,109,91,204,159,63,31,99,198,140,65,105,105,169,234,3,86,157,58,117,112,241,226,69,148,148,148, +192,220,220,28,14,14,14,48,50,50,194,141,27,55,16,26,26,10,35,35,35,206,235,229,81,69,22,69,17,117,97,174,107,70,143,30,141,248,248,120,216,216,216,96,219,182,109,240,241,241,145,90,158,172,106,197,226,212,116,229,45,67,30,36,41,240,138,34,73,21,248, +210,165,75,136,141,141,197,172,89,179,160,163,163,131,77,155,54,97,218,180,105,98,7,85,77,81,198,230,242,65,112,112,48,102,204,152,129,146,146,18,153,251,72,154,45,238,238,238,24,55,110,28,38,78,156,40,151,79,178,179,179,209,160,65,3,76,155,54,13,123, +247,238,69,243,230,205,101,190,86,92,59,229,25,95,113,113,113,24,48,96,0,238,223,191,47,247,152,83,212,55,75,151,46,69,253,250,245,149,242,244,85,46,153,175,228,228,100,188,122,245,10,230,230,230,104,210,164,137,204,149,28,60,120,16,93,187,118,133,165, +165,37,118,237,218,197,127,148,44,43,89,89,89,80,87,87,135,129,129,65,165,175,97,140,33,53,53,21,166,166,166,114,77,81,243,242,242,80,86,86,198,41,32,153,159,159,143,178,178,50,212,173,91,87,225,50,228,37,59,59,27,37,37,37,42,123,119,232,193,131,7,24, +51,102,12,158,60,121,130,148,148,20,153,250,77,92,59,229,29,3,138,248,92,154,15,74,74,74,100,186,37,148,199,150,210,210,210,10,51,183,202,248,68,214,107,197,181,83,150,241,181,102,205,26,92,184,112,1,255,254,251,175,194,99,66,81,223,40,3,13,121,78,46, +143,224,242,34,175,42,178,40,138,168,240,74,186,70,77,77,77,161,151,245,100,121,185,85,146,154,174,60,101,200,75,85,42,240,214,4,101,108,46,31,40,18,172,164,217,34,238,54,179,50,62,145,245,90,113,237,148,101,124,69,71,71,99,222,188,121,149,26,7,202,82, +197,86,249,12,171,50,212,84,85,228,47,29,82,198,38,170,19,164,252,76,16,68,141,129,146,159,9,130,168,49,200,188,134,245,232,209,35,28,58,116,8,175,95,191,134,185,185,57,190,251,238,59,124,253,245,215,42,51,44,41,41,9,59,119,238,68,96,96,32,78,156,56, +1,61,61,61,244,239,223,95,225,242,206,156,57,131,152,152,24,161,181,130,41,83,166,32,61,61,93,236,235,13,213,177,79,164,173,77,92,190,124,25,115,230,204,81,184,140,91,183,110,161,168,168,8,221,187,119,151,251,218,242,119,138,254,243,159,255,136,253,60, +37,37,5,135,14,29,66,157,58,117,208,160,65,3,116,237,218,85,161,36,115,105,245,168,178,223,196,249,59,59,59,91,234,216,228,241,120,50,141,51,101,244,145,50,198,129,184,62,150,165,13,170,248,142,41,52,195,218,183,111,31,190,250,234,43,148,150,150,162, +95,191,126,176,178,178,194,209,163,71,85,250,5,20,76,110,86,70,82,114,118,118,54,210,211,211,17,24,24,136,132,132,4,100,100,100,84,42,249,250,115,244,9,23,239,222,189,195,165,75,151,42,85,198,181,107,215,112,254,252,121,133,174,149,150,232,170,172,36, +99,101,39,212,202,218,111,146,252,45,203,216,148,117,156,41,163,143,148,49,14,196,245,177,44,109,80,246,119,76,161,25,214,243,231,207,49,99,198,12,132,132,132,40,101,225,245,115,81,158,243,244,251,239,191,99,241,226,197,176,177,177,65,118,118,54,156, +157,157,37,190,244,90,219,251,164,170,177,180,180,196,186,117,235,248,63,72,93,186,116,193,145,35,71,100,202,15,253,156,112,249,91,150,236,139,97,195,134,201,60,206,170,107,31,201,210,6,101,126,199,20,158,97,157,56,113,2,223,126,251,173,196,47,166,164, +100,72,209,196,73,73,201,162,178,38,55,203,154,148,44,15,130,201,215,210,18,107,229,233,19,89,19,81,229,73,46,21,119,238,254,253,251,97,107,107,11,87,87,87,60,123,246,140,95,255,165,75,151,48,124,248,112,148,63,79,241,246,246,198,197,139,23,229,238,31, +73,182,240,120,60,44,92,184,16,54,54,54,176,179,179,195,157,59,119,132,110,29,100,73,116,21,77,50,22,151,248,43,79,61,202,232,55,69,191,3,162,99,147,107,51,0,105,9,218,92,125,36,105,188,75,106,143,184,100,127,89,147,169,69,251,88,116,67,3,85,127,199, +20,14,88,153,153,153,252,124,54,81,98,99,99,49,109,218,52,28,57,114,4,183,110,221,66,68,68,4,226,227,227,1,124,218,168,236,226,197,139,252,6,15,27,54,12,1,1,1,40,41,41,193,138,21,43,240,237,183,223,114,94,47,174,225,151,47,95,198,143,63,254,136,173,91, +183,34,40,40,8,27,55,110,196,249,243,231,113,233,210,37,108,222,188,25,127,255,253,183,92,157,153,159,159,143,184,184,56,254,175,217,221,187,119,113,237,218,53,180,111,223,30,27,54,108,192,221,187,119,97,100,100,84,97,138,205,213,39,146,236,122,255,254, +61,194,195,195,113,225,194,5,76,154,52,9,219,182,109,171,208,71,242,244,231,227,199,143,225,231,231,135,211,167,79,227,230,205,155,252,32,14,0,125,251,246,197,135,15,31,176,115,231,78,196,197,197,225,236,217,179,232,213,171,151,92,125,195,101,203,206, +157,59,249,199,46,92,248,191,246,206,63,166,170,242,143,227,111,134,36,210,47,210,105,132,144,226,212,5,66,109,4,169,83,66,32,71,206,31,181,208,165,78,91,179,17,40,191,204,139,109,228,162,82,87,54,91,91,86,210,31,96,169,232,63,50,106,245,205,0,39,234, +52,178,233,4,25,27,141,41,166,98,2,97,92,47,151,162,139,222,231,251,7,187,103,231,158,123,206,115,159,231,220,3,34,125,94,27,27,28,46,207,121,206,231,60,207,195,61,112,94,231,253,63,229,38,71,198,24,178,179,179,241,215,95,127,9,89,4,209,209,209,184,117, +235,22,234,235,235,177,119,239,94,28,59,118,12,63,252,240,3,222,127,255,125,92,184,112,65,120,63,86,213,205,204,28,208,27,155,218,125,170,199,89,117,117,53,82,83,83,81,83,83,35,164,103,121,106,100,52,174,120,199,211,221,221,141,206,206,78,229,114,237, +234,213,171,186,227,80,175,79,218,26,171,143,97,36,230,152,233,5,43,49,49,17,245,245,245,186,74,131,63,25,82,45,78,234,201,162,50,162,178,140,148,108,22,158,88,43,90,19,89,17,85,70,46,213,190,54,61,61,29,73,73,73,120,240,193,7,81,88,88,168,188,46,40, +40,8,21,21,21,216,185,115,39,108,54,27,242,242,242,164,239,123,226,245,229,228,201,147,40,44,44,196,147,79,62,137,248,248,120,197,122,144,21,93,61,146,177,145,248,43,186,31,171,234,102,102,14,232,141,77,237,62,213,240,4,109,94,141,140,198,149,153,227, +241,39,83,155,57,151,86,207,49,211,11,214,170,85,171,16,26,26,138,245,235,215,43,111,219,220,110,55,126,249,229,23,105,25,82,43,139,202,200,205,50,82,178,140,220,169,134,39,214,138,214,68,86,68,53,43,151,62,245,212,83,104,104,104,80,126,131,86,87,87, +123,189,118,218,180,105,216,182,109,27,234,235,235,21,65,221,95,109,28,14,135,114,23,51,175,47,115,230,204,65,85,85,21,238,222,189,139,238,238,110,92,189,122,21,128,152,232,170,39,25,27,137,191,162,251,177,178,110,122,245,225,157,111,145,243,170,134, +39,104,243,106,100,52,174,120,199,99,36,251,139,72,227,254,206,229,112,207,49,211,11,86,72,72,8,234,234,234,224,114,185,16,17,17,129,152,152,24,132,135,135,99,231,206,157,210,50,164,86,22,13,68,116,53,18,62,3,145,59,69,225,213,36,16,209,89,166,30,11, +23,46,196,170,85,171,48,107,214,44,196,197,197,193,233,116,250,188,166,171,171,11,217,217,217,8,15,15,7,96,44,190,122,6,255,190,125,251,240,242,203,47,251,237,203,219,111,191,13,187,221,142,240,240,112,204,152,49,3,215,175,95,87,190,199,19,93,141,36, +99,35,241,87,116,63,86,213,205,168,62,188,243,45,11,79,208,230,213,200,104,92,241,142,71,84,246,55,234,147,209,185,28,137,57,102,136,204,195,179,110,222,188,201,26,26,26,216,165,75,151,188,182,219,237,118,214,215,215,39,212,198,224,224,160,207,54,153, +159,215,226,116,58,189,30,126,183,107,215,46,182,112,225,194,17,123,180,172,81,77,180,253,146,65,166,30,189,189,189,204,233,116,250,108,239,239,239,103,17,17,17,236,218,181,107,126,107,51,48,48,192,126,253,245,87,214,213,213,37,213,151,158,158,30,246, +247,223,127,91,86,203,219,183,111,179,158,158,30,211,251,9,180,110,34,99,199,232,124,203,208,223,223,207,28,14,135,37,227,221,223,56,112,187,221,236,230,205,155,126,31,158,39,211,167,145,158,99,106,198,156,154,243,250,235,175,99,229,202,149,88,182,108, +217,127,250,22,130,61,123,246,224,252,249,243,56,112,224,0,213,134,198,206,152,169,19,185,132,99,148,198,198,70,68,70,70,114,255,187,69,16,247,27,180,96,17,4,113,223,64,242,51,65,16,99,111,193,106,106,106,194,230,205,155,241,202,43,175,32,55,55,55,96, +95,201,106,186,187,187,81,81,81,225,181,173,182,182,22,77,77,77,112,187,221,232,238,238,190,103,125,251,237,183,223,144,147,147,131,117,235,214,225,251,239,191,183,164,205,35,71,142,152,186,123,221,136,142,142,14,28,60,120,16,192,144,132,251,238,187, +239,142,120,157,154,155,155,177,101,203,22,100,101,101,97,211,166,77,168,173,173,21,58,78,209,243,107,245,56,56,123,246,44,78,157,58,53,226,117,250,227,143,63,252,158,159,150,150,22,220,184,113,195,103,251,161,67,135,148,219,67,100,104,109,109,197,210, +165,75,125,230,216,168,92,176,42,42,42,176,96,193,2,184,221,110,44,91,182,12,209,209,209,200,203,203,195,250,245,235,135,181,115,158,228,99,237,231,70,39,81,251,200,221,111,191,253,22,103,207,158,245,17,48,253,181,101,37,46,151,11,105,105,105,152,60, +121,50,82,82,82,240,222,123,239,41,247,11,5,210,15,171,83,170,127,255,253,119,229,89,237,118,187,221,178,84,109,81,134,83,46,246,212,217,106,17,55,16,89,60,16,68,82,207,59,58,58,144,158,158,174,220,159,229,161,172,172,76,185,55,75,6,94,66,249,72,226, +87,126,190,124,249,50,10,10,10,112,252,248,113,204,159,63,95,217,190,121,243,102,161,88,169,64,72,77,77,133,211,233,68,104,104,168,215,231,178,104,197,205,64,218,50,51,184,110,223,190,141,183,222,122,11,147,38,77,66,78,78,142,238,241,253,151,25,110,185, +216,83,103,25,9,121,44,208,209,209,129,140,140,12,156,60,121,18,147,39,79,14,168,173,206,206,78,228,231,231,35,57,57,121,116,191,195,170,174,174,70,102,102,166,215,98,5,12,61,63,58,49,49,209,235,173,166,136,124,170,39,163,234,137,175,234,228,227,21,43, +86,120,165,32,243,222,101,229,230,230,42,31,158,7,237,171,5,76,109,162,178,81,191,121,2,177,76,226,114,68,68,4,114,115,115,17,23,23,135,143,63,254,88,81,55,180,253,208,107,147,151,186,236,185,212,212,10,225,102,146,121,141,40,46,46,198,148,41,83,144, +150,150,166,220,140,169,39,202,138,38,22,243,46,111,135,75,46,86,215,185,173,173,205,75,224,181,178,86,70,117,200,203,203,67,124,124,188,242,177,107,215,46,225,57,32,59,214,180,204,159,63,31,107,214,172,193,11,47,188,160,68,244,105,47,15,69,230,172,54, +161,92,68,98,182,186,182,10,254,110,212,122,231,157,119,216,198,141,27,189,182,125,253,245,215,108,238,220,185,108,238,220,185,172,164,164,132,155,8,171,77,143,213,126,109,148,120,171,78,62,86,127,110,68,99,99,35,139,140,140,100,101,101,101,202,71,74, +74,10,43,43,43,243,74,152,86,183,197,235,183,219,237,102,25,25,25,236,203,47,191,100,151,46,93,98,83,167,78,101,3,3,3,66,233,190,122,156,56,113,130,45,94,188,152,61,243,204,51,204,225,112,120,245,195,168,77,94,234,178,94,26,180,108,50,175,154,211,167, +79,43,53,106,109,109,101,161,161,161,172,190,190,158,185,92,46,102,179,217,88,106,106,42,99,140,249,164,14,203,36,22,27,97,179,217,88,126,126,190,225,247,180,199,201,75,26,215,246,79,93,103,245,235,2,169,149,135,29,59,118,48,155,205,198,24,99,134,117, +248,231,159,127,88,95,95,31,59,115,230,12,123,250,233,167,153,211,233,20,158,3,70,219,141,82,207,213,252,244,211,79,44,35,35,131,49,198,88,105,105,41,75,76,76,100,189,189,189,108,193,130,5,236,216,177,99,82,115,86,155,80,238,47,129,219,138,218,154,78, +126,78,74,74,242,17,63,51,50,50,240,201,39,159,224,145,71,30,1,99,76,74,62,213,126,109,36,190,170,147,143,181,41,200,70,60,246,216,99,94,239,176,226,226,226,124,94,163,110,139,215,111,35,129,216,76,226,242,157,59,119,176,104,209,34,212,214,214,98,210, +164,73,56,112,224,128,87,63,120,109,242,82,151,181,210,173,153,100,94,35,158,125,246,89,164,165,165,33,36,36,4,197,197,197,104,104,104,0,99,204,71,148,149,73,44,54,98,56,229,98,163,177,99,101,173,0,24,214,193,115,185,159,151,151,135,202,202,74,37,217, +70,100,14,152,77,247,214,242,193,7,31,32,51,51,19,47,190,248,162,162,238,200,204,89,189,132,114,158,196,108,117,109,165,46,9,87,172,88,129,71,31,125,20,175,189,246,26,122,123,123,1,12,61,242,226,198,141,27,104,106,106,66,78,78,142,180,4,173,254,90,54, +45,23,48,47,94,106,241,215,111,61,129,152,215,95,189,126,125,247,221,119,72,78,78,134,195,225,0,99,12,227,199,143,247,9,17,229,181,41,154,186,44,114,60,50,127,187,105,110,110,70,91,91,27,0,160,170,170,10,177,177,177,8,10,10,242,17,101,101,18,139,141, +106,52,210,114,177,85,181,82,203,226,188,58,228,228,228,96,227,198,141,72,72,72,144,154,3,162,115,67,100,62,124,248,225,135,72,73,73,193,197,139,23,45,57,126,158,196,108,166,109,209,57,237,247,172,4,7,7,227,199,31,127,68,127,127,63,166,76,153,130,89, +179,102,225,241,199,31,71,113,113,49,170,170,170,48,125,250,244,128,36,102,153,196,91,207,63,1,172,18,47,69,250,173,21,136,141,250,107,212,175,229,203,151,35,33,33,1,209,209,209,136,138,138,194,159,127,254,233,243,144,66,94,13,68,83,151,69,143,71,148, +136,136,8,236,222,189,27,211,167,79,199,246,237,219,149,7,198,105,69,89,153,243,55,26,228,98,43,106,165,39,139,27,213,161,188,188,28,135,15,31,198,142,29,59,16,21,21,133,69,139,22,9,207,1,145,218,202,204,135,221,187,119,163,168,168,200,242,177,18,104, +109,165,230,180,172,232,251,243,207,63,179,139,23,47,90,46,49,27,137,175,35,33,94,26,245,91,79,32,54,234,175,191,126,181,183,183,179,198,198,70,174,132,170,109,179,177,177,145,205,153,51,71,169,189,63,129,213,138,243,160,165,171,171,203,231,92,235,137, +178,34,231,111,52,202,197,102,106,197,147,197,69,199,177,204,28,224,181,105,102,62,168,229,105,43,199,138,217,218,202,28,195,56,217,223,186,188,244,223,64,18,97,69,19,111,173,72,174,21,237,119,121,121,57,22,47,94,140,232,232,104,191,253,245,215,175,152, +152,152,128,106,32,147,86,109,101,50,175,94,218,137,94,234,176,200,249,19,57,119,254,198,152,8,254,18,184,3,173,213,248,241,227,241,220,115,207,5,52,142,101,126,150,215,166,153,249,160,110,111,56,83,156,69,219,150,57,6,114,9,57,220,107,129,216,202,212, +101,130,24,11,208,130,69,16,196,125,3,201,207,4,65,140,189,5,203,10,249,185,181,181,21,159,126,250,169,238,247,100,196,212,154,154,26,31,191,172,189,189,29,29,29,29,94,219,206,157,59,135,186,186,58,175,182,213,226,104,67,67,131,143,204,121,175,69,105, +130,32,2,92,176,172,146,159,121,169,180,50,98,234,191,255,254,235,115,51,218,23,95,124,225,147,155,86,84,84,132,59,119,238,120,181,173,22,71,205,38,220,18,4,113,111,24,53,242,179,140,152,186,124,249,114,108,217,178,5,45,45,45,136,143,143,135,211,233, +68,101,101,37,130,130,130,80,90,90,138,176,176,48,156,63,127,30,61,61,61,88,178,100,9,250,250,250,132,219,254,175,9,178,4,49,166,222,97,137,202,207,178,169,180,60,129,149,151,248,11,12,221,41,187,105,211,38,236,217,179,7,0,176,127,255,126,100,102,102, +226,249,231,159,87,158,97,254,217,103,159,33,63,63,31,65,65,65,126,83,107,121,9,183,129,200,167,4,65,140,240,59,44,187,221,142,39,158,120,194,107,219,55,223,124,131,175,190,250,10,0,144,158,158,142,180,180,52,37,149,54,56,56,24,89,89,89,152,54,109,26, +34,35,35,177,117,235,86,212,213,213,33,54,54,22,185,185,185,74,27,158,116,220,163,71,143,98,222,188,121,104,110,110,86,18,98,213,137,191,14,135,3,19,38,76,240,233,215,27,111,188,129,217,179,103,227,163,143,62,194,231,159,127,142,202,202,74,12,12,12,224, +205,55,223,196,75,47,189,132,154,154,26,236,221,187,23,0,184,169,181,158,132,219,222,222,94,216,108,54,156,59,119,78,121,173,58,145,216,229,114,97,233,210,165,72,72,72,240,90,168,9,130,24,69,11,86,82,82,18,74,74,74,48,56,56,136,144,144,16,0,67,242,243, +204,153,51,177,125,251,118,48,198,188,82,105,1,40,169,180,179,103,207,86,82,105,1,160,176,176,16,37,37,37,74,219,30,193,82,139,58,241,215,136,240,240,112,172,92,185,18,107,215,174,197,196,137,19,149,125,76,152,48,1,171,87,175,198,218,181,107,241,240, +195,15,251,45,192,133,11,23,112,229,202,21,180,183,183,251,36,220,170,229,83,0,138,124,74,11,22,65,140,210,75,66,17,249,217,76,42,173,231,210,78,15,163,196,95,45,5,5,5,168,171,171,83,252,40,96,232,111,107,167,79,159,70,65,65,129,80,1,120,9,183,102,196, +108,130,32,238,225,130,37,34,63,155,73,165,229,193,75,252,85,19,27,27,139,13,27,54,32,43,43,75,217,246,234,171,175,98,195,134,13,152,57,115,166,112,17,140,18,110,101,197,108,130,32,134,23,169,59,221,59,59,59,209,222,222,142,135,30,122,8,113,113,113,24, +55,206,251,138,178,191,191,31,119,239,222,245,113,159,236,118,59,66,66,66,148,103,1,137,114,235,214,45,132,133,133,233,254,13,203,131,250,82,213,131,203,229,194,3,15,60,96,89,145,28,14,7,6,7,7,149,103,43,17,4,113,31,44,88,4,65,16,163,250,146,144,32,8, +130,22,44,130,32,8,90,176,8,130,160,5,139,32,8,130,22,44,130,32,8,90,176,8,130,160,5,139,32,8,130,22,44,130,32,8,90,176,8,130,160,5,139,32,8,98,68,249,63,213,171,5,229,205,200,49,236,0,0,0,0,73,69,78,68,174,66,96,130,0,0 }; + +const char* about_png = (const char*) temp_binary_data_0; + +//================== builtin_pgm.zip ================== +static const unsigned char temp_binary_data_1[] = { 80,75,3,4,20,0,0,0,8,0,235,124,51,68,91,179,46,131,152,9,0,0,8,16,0,0,12,0,28,0,68,101,120,101,100,95,48,49,46,115,121,120,85,84,9,0,3,249,55,220,82,77,94,228,82,117,120,11,0,1,4,245,1,0,0,4,20,0,0,0,93,151,219,87,26,217,18,135,139,238,6,26,108,185,5, 161,81,130,45,87,229,38,23,81,80,146,128,8,104,64,32,92,4,21,21,168,100,77,178,214,76,226,36,153,153,117,230,101,254,229,243,118,94,79,237,110,64,152,78,92,43,249,252,85,213,174,221,181,107,87,255,183,2,38,5,140,165,4,38,16,212,39,15,244,15,115,41,141, 201,23,32,192,230,58,0,176,18,136,175,42,60,4,50,171,138,218,126,26,113,188,4,28,32,61,25,122,118,173,1,66,105,185,55,253,143,82,254,101,250,229,107,242,178,105,86,112,208,129,52,147,138,125,39,52,175,204,94,28,223,65,134,128,44,220,9,144,126,111,86, @@ -1255,7 +1589,7 @@ static const unsigned char temp_binary_data_0[] = 227,193,80,81,117,120,11,0,1,4,245,1,0,0,4,20,0,0,0,80,75,1,2,30,3,20,0,0,0,8,0,198,139,121,66,196,112,97,144,143,10,0,0,8,16,0,0,16,0,24,0,0,0,0,0,0,0,0,0,192,129,57,69,1,0,83,121,110,112,114,101,122,70,77,95,51,50,46,115,121,120,85,84,5,0,3,227,193, 80,81,117,120,11,0,1,4,245,1,0,0,4,20,0,0,0,80,75,5,6,0,0,0,0,33,0,33,0,18,11,0,0,18,80,1,0,0,0,0,0 }; -const char* builtin_pgm_zip = (const char*) temp_binary_data_0; +const char* builtin_pgm_zip = (const char*) temp_binary_data_1; const char* getNamedResource (const char*, int&) throw(); @@ -1268,6 +1602,7 @@ const char* getNamedResource (const char* resourceNameUTF8, int& numBytes) throw switch (hash) { + case 0xb02b7677: numBytes = 23143; return about_png; case 0x796d1c9c: numBytes = 88890; return builtin_pgm_zip; default: break; } @@ -1278,6 +1613,7 @@ const char* getNamedResource (const char* resourceNameUTF8, int& numBytes) throw const char* namedResourceList[] = { + "about_png", "builtin_pgm_zip" }; diff --git a/JuceLibraryCode/BinaryData.h b/JuceLibraryCode/BinaryData.h index 5fdbaec..0cd8bd2 100644 --- a/JuceLibraryCode/BinaryData.h +++ b/JuceLibraryCode/BinaryData.h @@ -9,6 +9,9 @@ namespace BinaryData { + extern const char* about_png; + const int about_pngSize = 23143; + extern const char* builtin_pgm_zip; const int builtin_pgm_zipSize = 88890; @@ -16,7 +19,7 @@ namespace BinaryData extern const char* namedResourceList[]; // Number of elements in the namedResourceList array. - const int namedResourceListSize = 1; + const int namedResourceListSize = 2; // If you provide the name of one of the binary resource variables above, this function will // return the corresponding data and its size (or a null pointer if the name isn't found). diff --git a/README.md b/README.md index 35b84ac..8fd81d3 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Dexed - FM Synth Plugin +Dexed - FM Plugin Synth ======================= Dexed is a multi platform, multi format plugin synth that is closely modeled on the Yamaha DX7. @@ -27,6 +27,7 @@ Changelog #### Version 0.4.0 (current sprint) * Modulation wheel support * Now using the [Obxd](https://obxd.wordpress.com) 4-pole lowpass filter implementation +* Pitchbend range / step Binary downloads ---------------- @@ -59,7 +60,8 @@ Credits & thanks ---------------- * DX Synth engine : Raph Levien and the [msfa](https://code.google.com/p/music-synthesizer-for-android) team * LP Filter : Filatov Vadim (2DaT); taken from the excellent [Obxd](https://obxd.wordpress.com) project -* Original DX7 compilation : Jean-Marc Desprez (author of [SynprezFM](http://www.synprez.com/SynprezFM)) and to all the all crew who made these historic DX programs: Dave Benson, Frank Carvalho, Tim Conrardy, Jack Deckard, Chris Dodunski, Tim Garrett, Hitaye, Stephan Ibsen, Christian Jezreel, Narfman, Godric Wilkie +* DX7 program compilation : Jean-Marc Desprez (author of [SynprezFM](http://www.synprez.com/SynprezFM)) +* DX7 programs : Dave Benson, Frank Carvalho, Tim Conrardy, Jack Deckard, Chris Dodunski, Tim Garrett, Hitaye, Stephan Ibsen, Christian Jezreel, Narfman, Godric Wilkie * markusthegeek direct implication for this project TODO - Dexed diff --git a/Resources/about.png b/Resources/about.png new file mode 100644 index 0000000..dbf9e43 Binary files /dev/null and b/Resources/about.png differ diff --git a/Source/DXComponents.cpp b/Source/DXComponents.cpp index 7215515..7602b35 100644 --- a/Source/DXComponents.cpp +++ b/Source/DXComponents.cpp @@ -2,6 +2,10 @@ * * Copyright (c) 2014 Pascal Gauthier. * + * DX7 Envelope Tables from legasynth-0.4.1 / DX7 Patch Editor + * Copyright (C) 2002 Juan Linietsky + * Copyright (C) 2006 Mark-André Hopf + * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of @@ -130,77 +134,6 @@ void AlgoDisplay::drawOp(Graphics &g, int x, int y, int num) { } } -EnvDisplay::EnvDisplay() { - pvalues = (char *) &TMP_LEVEL_PTR; -} -/* -void EnvDisplay::paint(Graphics &g) { - g.setColour(Colours::black.withAlpha(0.5f)); - g.fillRoundedRectangle (0.0f, 0.0f, (float) getWidth(), (float) getHeight(), 1.0f); - - - char *levels = pvalues + 4; - char *rates = pvalues; - - float dist[4]; - float total = 0; - - int old = levels[3]; - - for(int i=0;i<4;i++) { - int nw = levels[i]; - dist[i] = ((float)abs(nw - old)) / rates[i] == 0 ? 1 : rates[i]; - total += dist[i]; - old = nw; - } - - if ( total < 1 ) { - dist[0] = dist[1] = dist[2] = dist[3] = 1; - total = 4; - } - - // TODO : this is WIP - float ratio = 96 / total; - - int oldx = 0; - int oldy = 32 - ((float)levels[3] / 3.125); - Path p; - - p.startNewSubPath(0, 32); - g.setColour(Colours::white); - - int i; - for(i=0;i<4;i++) { - int newx = dist[i] * ratio + oldx; - int newy = 32 - ((float)levels[i] / 3.125); - - p.lineTo(newx, newy); - if ( vPos == i ) { - g.fillEllipse(oldx-2, oldy-2, 4, 4); - } - - oldx = newx; - oldy = newy; - } - p.lineTo(96,32); - p.lineTo(0, 32); - - if ( vPos == i ) { - g.fillEllipse(oldx-2, oldy-2, 4, 4); - } - - g.setColour(Colour(0xFF0FC00F).withAlpha(0.3f)); - g.fillPath(p); - - g.setColour(Colour(0xFFFFFFFF)); - String len; - len << ((int) total) << " / "; - len << ((int) vPos); - g.drawText(len, 5, 1, 72, 14, Justification::left, true); -} -*/ - - static float EG_rate_rise_duration[128] = { 38.00000 ,34.96000 ,31.92000 ,28.88000 ,25.84000 , 22.80000 ,20.64000 ,18.48000 ,16.32000 ,14.16000 , @@ -318,7 +251,7 @@ static float EG_rate_rise_percent[128] = { 1.00000 ,1.00000 ,1.00000 }; -double getDuration(int p_rate, int p_level_l, int p_level_r) { +static double getDuration(int p_rate, int p_level_l, int p_level_r) { float *duration_table=(p_level_r>p_level_l) ? EG_rate_rise_duration : EG_rate_decay_duration; double duration=duration_table[p_rate]; @@ -327,6 +260,10 @@ double getDuration(int p_rate, int p_level_l, int p_level_r) { return duration; } +EnvDisplay::EnvDisplay() { + pvalues = (char *) &TMP_LEVEL_PTR; +} + void EnvDisplay::paint(Graphics &g) { g.setColour(Colours::black.withAlpha(0.5f)); g.fillRoundedRectangle (0.0f, 0.0f, (float) getWidth(), (float) getHeight(), 1.0f); @@ -419,8 +356,6 @@ void EnvDisplay::paint(Graphics &g) { g.drawText(len, 5, 1, 72, 14, Justification::left, true); } - - PitchEnvDisplay::PitchEnvDisplay() { pvalues = (char *) &TMP_LEVEL_PTR; vPos = 0; @@ -478,9 +413,7 @@ void PitchEnvDisplay::paint(Graphics &g) { } } - void VuMeter::paint(Graphics &g) { - // taken from the drawLevelMeter ; float width = getWidth(); float height = getHeight(); diff --git a/Source/PluginEditor.cpp b/Source/PluginEditor.cpp index c828757..84fa972 100644 --- a/Source/PluginEditor.cpp +++ b/Source/PluginEditor.cpp @@ -27,6 +27,31 @@ using namespace ::std; +class AboutBox : public DialogWindow { +public: + Image about_png; + + AboutBox(Component *parent) : DialogWindow("About", Colour(0xFF000000), true) { + setUsingNativeTitleBar(false); + setAlwaysOnTop(true); + about_png = ImageCache::getFromMemory(BinaryData::about_png, BinaryData::about_pngSize); + setSize( about_png.getWidth(), about_png.getHeight()); + centreAroundComponent (parent, getWidth(), getHeight()); + } + + void closeButtonPressed() { + setVisible (false); + } + + void paint(Graphics &g) { + g.drawImage (about_png, 0, 0, about_png.getWidth(), about_png.getHeight(), + 0, 0, about_png.getWidth(), about_png.getHeight()); + g.setColour(Colour(0xFF000000)); + String ver("Version 0.4 ; built date " __DATE__ ); + g.drawSingleLineText(ver, 9, 118); + } +}; + //============================================================================== DexedAudioProcessorEditor::DexedAudioProcessorEditor (DexedAudioProcessor* ownerFilter) : AudioProcessorEditor (ownerFilter), @@ -223,9 +248,11 @@ void DexedAudioProcessorEditor::buttonClicked(Button *buttonThatWasClicked) { } if (buttonThatWasClicked == aboutButton) { - AlertWindow::showMessageBoxAsync(AlertWindow::NoIcon, "DEXED - DX Emulator 0.4", "https://github.com/asb2m10/dexed\n" + /*AlertWindow::showMessageBoxAsync(AlertWindow::NoIcon, "DEXED - DX Emulator 0.4", "https://github.com/asb2m10/dexed\n" "(c) 2013-2014 Pascal Gauthier\nUnder the GPL v2\n\n" - "Based on Music Synthesizer for Android\nhttps://code.google.com/p/music-synthesizer-for-android"); + "Based on Music Synthesizer for Android\nhttps://code.google.com/p/music-synthesizer-for-android");*/ + AboutBox about(this); + about.runModalLoop(); return; }