Browse Source

Added lost FRTrackBarEdit

GLScene 2 years ago
parent
commit
4d1acc63e7
100 changed files with 13297 additions and 1828 deletions
  1. 5 1
      AdvDemos/ActorMS3D/fActorMS3dC.cpp
  2. 18 18
      AdvDemos/ActorMS3D/fActorMS3dC.dfm
  3. 1 1
      AdvDemos/ActorMS3D/fActorMS3dC.h
  4. 1 0
      AdvDemos/ActorMS3D/fActorms3dD.dfm
  5. 3 1
      AdvDemos/ActorMS3D/fActorms3dD.pas
  6. 39 51
      AdvDemos/AdvDemos.groupproj
  7. 26 25
      AdvDemos/Christmas/fChrismasC.cpp
  8. 26 27
      AdvDemos/Christmas/fChrismasC.dfm
  9. 17 17
      AdvDemos/Christmas/fChrismasC.h
  10. 575 575
      AdvDemos/Christmas/fChrismasD.dfm
  11. 19 31
      AdvDemos/Christmas/fChrismasD.pas
  12. 2 2
      AdvDemos/Earth/EarthC.cbproj
  13. 10 0
      AdvDemos/Earth/fEarthC.cpp
  14. 6913 0
      AdvDemos/Earth/fEarthC.dfm
  15. 29 0
      AdvDemos/Earth/fEarthC.h
  16. 16 18
      AdvDemos/Earth/fEarthD.dfm
  17. 23 23
      AdvDemos/Earth/fEarthD.pas
  18. BIN
      Asset/Button/GLS.ico
  19. BIN
      Asset/Button/GLS_1.ico
  20. BIN
      Asset/Button/github-mark-white.png
  21. BIN
      Asset/Button/github-mark.png
  22. BIN
      Asset/Map/earth.jpg
  23. BIN
      Asset/Map/earthclouds.jpg
  24. BIN
      Asset/Map/earthnight.jpg
  25. BIN
      Asset/Model/lumpy.3ds
  26. BIN
      Asset/Model/spiral.3ds
  27. BIN
      Asset/Model/spiraltorus.3ds
  28. BIN
      Asset/Model/spring.3ds
  29. BIN
      Asset/Model/thing.3ds
  30. 17 0
      Asset/Shader/Fur_fp.glsl
  31. 12 0
      Asset/Shader/Fur_vp.glsl
  32. 32 0
      Asset/Shader/Mandelbrot.frag
  33. 7 0
      Asset/Shader/Mandelbrot.vert
  34. BIN
      Asset/Texture/colormap.jpg
  35. BIN
      Asset/Texture/cur.bmp
  36. BIN
      Asset/Texture/grass.jpg
  37. BIN
      Asset/Texture/hot_metal.bmp
  38. BIN
      Asset/Texture/rainbow.bmp
  39. BIN
      Asset/Texture/rock.jpg
  40. BIN
      Asset/Texture/rose.bmp
  41. BIN
      Asset/Texture/sand.jpg
  42. BIN
      Asset/Texture/skull.bmp
  43. BIN
      Asset/Texture/tp.tga
  44. 13 0
      Demos/glslshaders/FurShader/FurShaderD.dpr
  45. 966 0
      Demos/glslshaders/FurShader/FurShaderD.dproj
  46. 105 0
      Demos/glslshaders/FurShader/fFurShaderD.dfm
  47. 274 0
      Demos/glslshaders/FurShader/fFurShaderD.pas
  48. 14 0
      Demos/glslshaders/MandelbrotGLSL/GLSL_Mandelbrot.dpr
  49. 1331 0
      Demos/glslshaders/MandelbrotGLSL/GLSL_Mandelbrot.dproj
  50. 32 0
      Demos/glslshaders/MandelbrotGLSL/Shaders/Mandelbrot.frag
  51. 7 0
      Demos/glslshaders/MandelbrotGLSL/Shaders/Mandelbrot.vert
  52. BIN
      Demos/glslshaders/MandelbrotGLSL/Textures/colormap.jpg
  53. BIN
      Demos/glslshaders/MandelbrotGLSL/Textures/hot_metal.bmp
  54. BIN
      Demos/glslshaders/MandelbrotGLSL/Textures/rainbow.bmp
  55. 94 0
      Demos/glslshaders/MandelbrotGLSL/Unit1.dfm
  56. 200 0
      Demos/glslshaders/MandelbrotGLSL/Unit1.pas
  57. 1 1
      Demos/glslshaders/aGLSLShaders.htm
  58. 13 0
      Demos/interface/cursorcross/CrossCursor.dpr
  59. 136 0
      Demos/interface/cursorcross/CrossCursor.dproj
  60. 78 0
      Demos/interface/cursorcross/fCrossCursor.dfm
  61. 93 0
      Demos/interface/cursorcross/fCrossCursor.pas
  62. BIN
      Demos/interface/cursorcross/tp.tga
  63. 18 0
      Demos/specialsFX/PFXCursor/PfxCursor.dpr
  64. 1046 0
      Demos/specialsFX/PFXCursor/PfxCursor.dproj
  65. 319 0
      Demos/specialsFX/PFXCursor/fPfxCursor.dfm
  66. 173 0
      Demos/specialsFX/PFXCursor/fPfxCursor.pas
  67. 16 15
      Packages/GLScene_DT.dpk
  68. 19 3
      Packages/GLScene_DT.dproj
  69. 0 1
      Packages/GLScene_RT.dpk
  70. 0 1
      Packages/GLScene_RT.dproj
  71. 0 77
      Packages/GR32_RT.dpk
  72. 0 155
      Source/FLibMaterialPicker.dfm
  73. 0 141
      Source/FLibMaterialPicker.pas
  74. 0 2
      Source/FRColorEditor.dfm
  75. 8 0
      Source/FRColorEditor.pas
  76. 24 22
      Source/FRFaceEditor.dfm
  77. 5 67
      Source/FRFaceEditor.pas
  78. 13 11
      Source/FRMaterialPreview.dfm
  79. 11 12
      Source/FRMaterialPreview.pas
  80. 7 8
      Source/FRTextureEdit.dfm
  81. 4 4
      Source/FmLibMaterialPicker.dfm
  82. 1 2
      Source/FmLibMaterialPicker.pas
  83. 2 10
      Source/FmMaterialEditor.dfm
  84. 2 0
      Source/FmMaterialEditor.pas
  85. 0 357
      Source/GLS.FileGLB.pas
  86. 34 11
      Source/GLS.FileGLTF.pas
  87. 1 1
      Source/GLS.FileSTL.pas
  88. 0 1
      Source/GLS.ObjectManager.pas
  89. 1 0
      Source/GLS.SceneRegister.pas
  90. 0 1
      external/#external.txt
  91. 0 75
      external/GR32/CleanGR32.bat
  92. 415 24
      external/GR32/Examples/Drawing/AntiAliasing/AntiAliasing.dproj
  93. 5 5
      external/GR32/Examples/Drawing/ArrowHead/ArrowHead.dproj
  94. 5 5
      external/GR32/Examples/Drawing/Blurs/Blurs.dproj
  95. 5 5
      external/GR32/Examples/Drawing/Curves/Curves.dproj
  96. 0 2
      external/GR32/Examples/Drawing/GammaBlur/GammaBlur.dpr
  97. 5 5
      external/GR32/Examples/Drawing/GammaBlur/GammaBlur.dproj
  98. 5 5
      external/GR32/Examples/Drawing/GammaCorrection/GammaCorrection.dproj
  99. 5 5
      external/GR32/Examples/Drawing/GradFills/GradFills.dproj
  100. 0 4
      external/GR32/Examples/Drawing/GradFills/MainUnit.pas

+ 5 - 1
AdvDemos/ActorMS3D/fActorMS3dC.cpp

@@ -145,6 +145,7 @@ void _fastcall TForm1::LoadTexture(String AName, String ext)
 	img->LoadFromStream(strm);
 }
 
+// ---------------------------------------------------------------------------
 void __fastcall TForm1::FormCreate(TObject* Sender)
 {
 	TFileName Path = GetCurrentAssetPath();
@@ -163,9 +164,12 @@ void __fastcall TForm1::FormCreate(TObject* Sender)
 	SetCurrentDir(Path + "//skin//");
 	Actor1->Material->LibMaterialName = MatLib->Materials->Items[4]->Name;  //"Woman4_skin";
 
+	// Loading map for the earth
+	SetCurrentDir(Path + "//map");
+	Globus->Material->Texture->Image->LoadFromFile("earth.jpg");
+
 	// Loading other textures as assets directly to objects
 	SetCurrentDir(Path + "//texture//");
-	Globus->Material->Texture->Image->LoadFromFile("Earth.jpg");
 	GLPlane1->Material->Texture->Image->LoadFromFile("floor_parquet.jpg");
 
 

+ 18 - 18
AdvDemos/ActorMS3D/fActorMS3dC.dfm

@@ -126,17 +126,17 @@ object Form1: TForm1
       DepthOfView = 20.000000000000000000
       FocalLength = 70.000000000000000000
       Position.Coordinates = {0000A0400000A0400000A0400000803F}
-      object Light2: TGLLightSource
-        Ambient.Color = {6666663F6666663F6666663F0000803F}
-        ConstAttenuation = 0.600000023841857900
-        Diffuse.Color = {CDCC4C3FCDCC4C3FCDCC4C3F0000803F}
-        Specular.Color = {0000803F0000803F0000803F0000803F}
-        SpotCutOff = 80.000000000000000000
-        SpotDirection.Coordinates = {00000000000000000000803F00000000}
-        SpotExponent = 1.000000000000000000
-        object Globus: TGLSphere
-          Material.Texture.Disabled = False
-          Radius = 0.500000000000000000
+      object Globus: TGLSphere
+        Material.Texture.Disabled = False
+        Radius = 0.500000000000000000
+        object Light2: TGLLightSource
+          Ambient.Color = {6666663F6666663F6666663F0000803F}
+          ConstAttenuation = 0.600000023841857900
+          Diffuse.Color = {CDCC4C3FCDCC4C3FCDCC4C3F0000803F}
+          Specular.Color = {0000803F0000803F0000803F0000803F}
+          SpotCutOff = 80.000000000000000000
+          SpotDirection.Coordinates = {00000000000000000000803F00000000}
+          SpotExponent = 1.000000000000000000
         end
       end
     end
@@ -147,13 +147,18 @@ object Form1: TForm1
       MaterialLibrary = MatLib
       ClearOptions = [coDepthBufferClear, coUseBufferBackground]
       Camera = GLCamera2
-      RootObject = Root
+      RootObject = dcRoot
       EnabledRenderBuffers = []
       BeforeRender = GLFrameBufferBeforeRender
       AfterRender = GLFrameBufferAfterRender
     end
-    object Root: TGLDummyCube
+    object dcRoot: TGLDummyCube
       CubeSize = 1.000000000000000000
+      object GLDirectOpenGL1: TGLDirectOpenGL
+        UseBuildList = False
+        OnRender = GLDirectOpenGL1Render
+        Blend = False
+      end
       object GLLightSource1: TGLLightSource
         Ambient.Color = {CDCC0C3FCDCC0C3FCDCC0C3F0000803F}
         ConstAttenuation = 1.000000000000000000
@@ -161,11 +166,6 @@ object Form1: TForm1
         Shining = False
         SpotCutOff = 80.000000000000000000
       end
-      object GLDirectOpenGL1: TGLDirectOpenGL
-        UseBuildList = False
-        OnRender = GLDirectOpenGL1Render
-        Blend = False
-      end
       object Actor1: TGLActor
         Material.BackProperties.Ambient.Color = {8D8C0C3FCDCC4C3E8180003D0000803F}
         Material.BackProperties.Diffuse.Color = {EBEAEA3ED5D4543E8180003C0000803F}

+ 1 - 1
AdvDemos/ActorMS3D/fActorMS3dC.h

@@ -53,7 +53,7 @@ __published:	// IDE-managed Components
 	TGLLightSource *Light2;
 	TGLSphere *Globus;
 	TGLFBORenderer *GLFrameBuffer;
-	TGLDummyCube *Root;
+	TGLDummyCube *dcRoot;
 	TGLLightSource *GLLightSource1;
 	TGLDirectOpenGL *GLDirectOpenGL1;
 	TGLActor *Actor1;

+ 1 - 0
AdvDemos/ActorMS3D/fActorms3dD.dfm

@@ -232,6 +232,7 @@ object FormActorms3d: TFormActorms3d
       item
         Name = 'floor_parquet'
         Tag = 0
+        Material.BackProperties.Emission.Color = {CFCE4E3F00000000000000000000803F}
         Material.Texture.ImageClassName = 'TGLBlankImage'
         Material.Texture.Image.ColorFormat = 6408
         Material.Texture.Disabled = False

+ 3 - 1
AdvDemos/ActorMS3D/fActorms3dD.pas

@@ -152,9 +152,11 @@ begin
   // Actor1.Material.LibMaterialName :=  'Woman4_skin';
   Actor1.Material.Texture.Image.LoadFromFile('Woman_skin.jpg');
 
+	// Loading map for the earth
+	SetCurrentDir(Path + '\map');
+ 	Globus.Material.Texture.Image.LoadFromFile('earth.jpg');
 	// Loading other textures as assets directly to objects
 	SetCurrentDir(Path + '\texture');
-	Globus.Material.Texture.Image.LoadFromFile('Earth.jpg');
 	GLPlane1.Material.Texture.Image.LoadFromFile('floor_parquet.jpg');
   // Loading a lightspot image
   MatLib.AddTextureMaterial('Lightspot','Flare1.bmp');

+ 39 - 51
AdvDemos/AdvDemos.groupproj

@@ -9,12 +9,6 @@
         <Projects Include="ActorMS3D\ActorMS3dC.cbproj">
             <Dependencies/>
         </Projects>
-        <Projects Include="Archipelago\Splitter\SplitterD.dproj">
-            <Dependencies/>
-        </Projects>
-        <Projects Include="Archipelago\Splitter\SplitterC.cbproj">
-            <Dependencies/>
-        </Projects>
         <Projects Include="Archipelago\ArchipelagoD.dproj">
             <Dependencies/>
         </Projects>
@@ -27,6 +21,12 @@
         <Projects Include="Christmas\ChristmasC.cbproj">
             <Dependencies/>
         </Projects>
+        <Projects Include="Earth\EarthD.dproj">
+            <Dependencies/>
+        </Projects>
+        <Projects Include="Earth\EarthC.cbproj">
+            <Dependencies/>
+        </Projects>
         <Projects Include="Forest\ForestD.dproj">
             <Dependencies/>
         </Projects>
@@ -39,6 +39,9 @@
         <Projects Include="IntensityMesh\IntensityMeshC.cbproj">
             <Dependencies/>
         </Projects>
+        <Projects Include="KosmoScene\KosmoScene.dproj">
+            <Dependencies/>
+        </Projects>
         <Projects Include="PanoramViewer\PanoViewerD.dproj">
             <Dependencies/>
         </Projects>
@@ -54,12 +57,6 @@
         <Projects Include="Quake3Demo\Q3DemoC.cbproj">
             <Dependencies/>
         </Projects>
-        <Projects Include="Earth\EarthD.dproj">
-            <Dependencies/>
-        </Projects>
-        <Projects Include="Earth\EarthC.cbproj">
-            <Dependencies/>
-        </Projects>
     </ItemGroup>
     <ProjectExtensions>
         <Borland.Personality>Default.Personality.12</Borland.Personality>
@@ -86,24 +83,6 @@
     <Target Name="ActorMS3dC:Make">
         <MSBuild Projects="ActorMS3D\ActorMS3dC.cbproj" Targets="Make"/>
     </Target>
-    <Target Name="SplitterD">
-        <MSBuild Projects="Archipelago\Splitter\SplitterD.dproj"/>
-    </Target>
-    <Target Name="SplitterD:Clean">
-        <MSBuild Projects="Archipelago\Splitter\SplitterD.dproj" Targets="Clean"/>
-    </Target>
-    <Target Name="SplitterD:Make">
-        <MSBuild Projects="Archipelago\Splitter\SplitterD.dproj" Targets="Make"/>
-    </Target>
-    <Target Name="SplitterC">
-        <MSBuild Projects="Archipelago\Splitter\SplitterC.cbproj"/>
-    </Target>
-    <Target Name="SplitterC:Clean">
-        <MSBuild Projects="Archipelago\Splitter\SplitterC.cbproj" Targets="Clean"/>
-    </Target>
-    <Target Name="SplitterC:Make">
-        <MSBuild Projects="Archipelago\Splitter\SplitterC.cbproj" Targets="Make"/>
-    </Target>
     <Target Name="ArchipelagoD">
         <MSBuild Projects="Archipelago\ArchipelagoD.dproj"/>
     </Target>
@@ -140,6 +119,24 @@
     <Target Name="ChristmasC:Make">
         <MSBuild Projects="Christmas\ChristmasC.cbproj" Targets="Make"/>
     </Target>
+    <Target Name="EarthD">
+        <MSBuild Projects="Earth\EarthD.dproj"/>
+    </Target>
+    <Target Name="EarthD:Clean">
+        <MSBuild Projects="Earth\EarthD.dproj" Targets="Clean"/>
+    </Target>
+    <Target Name="EarthD:Make">
+        <MSBuild Projects="Earth\EarthD.dproj" Targets="Make"/>
+    </Target>
+    <Target Name="EarthC">
+        <MSBuild Projects="Earth\EarthC.cbproj"/>
+    </Target>
+    <Target Name="EarthC:Clean">
+        <MSBuild Projects="Earth\EarthC.cbproj" Targets="Clean"/>
+    </Target>
+    <Target Name="EarthC:Make">
+        <MSBuild Projects="Earth\EarthC.cbproj" Targets="Make"/>
+    </Target>
     <Target Name="ForestD">
         <MSBuild Projects="Forest\ForestD.dproj"/>
     </Target>
@@ -176,6 +173,15 @@
     <Target Name="IntensityMeshC:Make">
         <MSBuild Projects="IntensityMesh\IntensityMeshC.cbproj" Targets="Make"/>
     </Target>
+    <Target Name="KosmoScene">
+        <MSBuild Projects="KosmoScene\KosmoScene.dproj"/>
+    </Target>
+    <Target Name="KosmoScene:Clean">
+        <MSBuild Projects="KosmoScene\KosmoScene.dproj" Targets="Clean"/>
+    </Target>
+    <Target Name="KosmoScene:Make">
+        <MSBuild Projects="KosmoScene\KosmoScene.dproj" Targets="Make"/>
+    </Target>
     <Target Name="PanoViewerD">
         <MSBuild Projects="PanoramViewer\PanoViewerD.dproj"/>
     </Target>
@@ -221,32 +227,14 @@
     <Target Name="Q3DemoC:Make">
         <MSBuild Projects="Quake3Demo\Q3DemoC.cbproj" Targets="Make"/>
     </Target>
-    <Target Name="EarthD">
-        <MSBuild Projects="Earth\EarthD.dproj"/>
-    </Target>
-    <Target Name="EarthD:Clean">
-        <MSBuild Projects="Earth\EarthD.dproj" Targets="Clean"/>
-    </Target>
-    <Target Name="EarthD:Make">
-        <MSBuild Projects="Earth\EarthD.dproj" Targets="Make"/>
-    </Target>
-    <Target Name="EarthC">
-        <MSBuild Projects="Earth\EarthC.cbproj"/>
-    </Target>
-    <Target Name="EarthC:Clean">
-        <MSBuild Projects="Earth\EarthC.cbproj" Targets="Clean"/>
-    </Target>
-    <Target Name="EarthC:Make">
-        <MSBuild Projects="Earth\EarthC.cbproj" Targets="Make"/>
-    </Target>
     <Target Name="Build">
-        <CallTarget Targets="Actorms3dD;ActorMS3dC;SplitterD;SplitterC;ArchipelagoD;ArchipelagoC;ChristmasD;ChristmasC;ForestD;GLSViewerD;IntensityMeshD;IntensityMeshC;PanoViewerD;PanoViewerC;TtbD;Q3DemoD;Q3DemoC;EarthD;EarthC"/>
+        <CallTarget Targets="Actorms3dD;ActorMS3dC;ArchipelagoD;ArchipelagoC;ChristmasD;ChristmasC;EarthD;EarthC;ForestD;GLSViewerD;IntensityMeshD;IntensityMeshC;KosmoScene;PanoViewerD;PanoViewerC;TtbD;Q3DemoD;Q3DemoC"/>
     </Target>
     <Target Name="Clean">
-        <CallTarget Targets="Actorms3dD:Clean;ActorMS3dC:Clean;SplitterD:Clean;SplitterC:Clean;ArchipelagoD:Clean;ArchipelagoC:Clean;ChristmasD:Clean;ChristmasC:Clean;ForestD:Clean;GLSViewerD:Clean;IntensityMeshD:Clean;IntensityMeshC:Clean;PanoViewerD:Clean;PanoViewerC:Clean;TtbD:Clean;Q3DemoD:Clean;Q3DemoC:Clean;EarthD:Clean;EarthC:Clean"/>
+        <CallTarget Targets="Actorms3dD:Clean;ActorMS3dC:Clean;ArchipelagoD:Clean;ArchipelagoC:Clean;ChristmasD:Clean;ChristmasC:Clean;EarthD:Clean;EarthC:Clean;ForestD:Clean;GLSViewerD:Clean;IntensityMeshD:Clean;IntensityMeshC:Clean;KosmoScene:Clean;PanoViewerD:Clean;PanoViewerC:Clean;TtbD:Clean;Q3DemoD:Clean;Q3DemoC:Clean"/>
     </Target>
     <Target Name="Make">
-        <CallTarget Targets="Actorms3dD:Make;ActorMS3dC:Make;SplitterD:Make;SplitterC:Make;ArchipelagoD:Make;ArchipelagoC:Make;ChristmasD:Make;ChristmasC:Make;ForestD:Make;GLSViewerD:Make;IntensityMeshD:Make;IntensityMeshC:Make;PanoViewerD:Make;PanoViewerC:Make;TtbD:Make;Q3DemoD:Make;Q3DemoC:Make;EarthD:Make;EarthC:Make"/>
+        <CallTarget Targets="Actorms3dD:Make;ActorMS3dC:Make;ArchipelagoD:Make;ArchipelagoC:Make;ChristmasD:Make;ChristmasC:Make;EarthD:Make;EarthC:Make;ForestD:Make;GLSViewerD:Make;IntensityMeshD:Make;IntensityMeshC:Make;KosmoScene:Make;PanoViewerD:Make;PanoViewerC:Make;TtbD:Make;Q3DemoD:Make;Q3DemoC:Make"/>
     </Target>
     <Import Project="$(BDS)\Bin\CodeGear.Group.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Group.Targets')"/>
 </Project>

+ 26 - 25
AdvDemos/Christmas/fChrismasC.cpp

@@ -48,10 +48,10 @@ void __fastcall TForm1::FormCreate(TObject* Sender)
 	Randomize();
 
 	SetCurrentDir(Path + "\\model");
-	FFFirTree->LoadFromFile("firtree.3ds");
-	FFFirePlace->LoadFromFile("fireplace.3ds");
+	ffFirTree->LoadFromFile("firtree.3ds");
+	ffFirePlace->LoadFromFile("fireplace.3ds");
 	fireLight = 0.5;
-	FTYear->Text = "";
+	ftYear->Text = "";
 
 	// Set current dir for audio files
 	SetCurrentDir(Path + "\\audio");
@@ -100,17 +100,18 @@ void __fastcall TForm1::TimerTimer(TObject* Sender)
 	// t = EncodeDate(y+1, 01, 01) - Now(); //Happy New Year!
 	if (TheChristmas) {
 		t = EncodeDate(y, 12, 25) - Now();
-        FTCongratulations->Text = "Merry Christmas!";
+		ftCongratulations->Text = "Merry Christmas!";
     } else {
         t = EncodeDate(y + 1, 01, 01) - Now();
-        FTCongratulations->Text = "Happy New Year!";
-        FTYear->Text = IntToStr(y + 1);
-    }
+		ftCongratulations->Text = "Happy New Year!";
+		ftYear->Text = IntToStr(y + 1);
+	}
+	if ((double)t < 0)
+		ftCountDown->Text = "Merry Christmas!";
 
-    if ((double)t < 0)
-        FTCountDown->Text = "Merry Christmas!";
-    if (((double)t < 1) && ((double)t > -1))
-        DCGifts->Visible = true;
+	// t = 0; // true Christmas or New Year event
+	if (((double)t < 1) && ((double)t > -1))
+		dcGifts->Visible = true;
     if ((double)t >= 2) {
         buf = IntToStr(Floor((double)t)) + " days, ";
         i = (Int)(Frac((double)t) * 24);
@@ -118,30 +119,30 @@ void __fastcall TForm1::TimerTimer(TObject* Sender)
             buf = buf + IntToStr(i) + " hours...";
         else
             buf = buf + IntToStr(i) + " hour...";
-        FTCountDown->Text = buf;
+		ftCountDown->Text = buf;
     } else {
         t = (double)t * 24;
         if ((double)t > 1) {
-            buf = IntToStr((int)t) + " hours, ";
+			buf = IntToStr((int)t) + " hours, ";
             i = RoundInt(Frac((double)t) * 60);
             if (i > 1)
                 buf = buf + IntToStr(i) + " minutes...";
             else
-                buf = buf + IntToStr(i) + " minute...";
-            FTCountDown->Text = buf;
-        } else {
-            t = (double)t * 60;
-            i = RoundInt(((double)t - Floor(t)) * 60);
-            FTCountDown->Text =
-                IntToStr((int)t) + " minutes, " + IntToStr(i) + " seconds...";
-        }
-    }
+				buf = buf + IntToStr(i) + " minute...";
+			ftCountDown->Text = buf;
+		} else {
+			t = (double)t * 60;
+			i = RoundInt(((double)t - Floor(t)) * 60);
+			ftCountDown->Text =
+				IntToStr((int)t) + " minutes, " + IntToStr(i) + " seconds...";
+		}
+	}
 }
 
 // ---------------------------------------------------------------------------
 
 void __fastcall TForm1::CadencerProgress(
-    TObject* Sender, const double deltaTime, const double newTime)
+	TObject* Sender, const double deltaTime, const double newTime)
 {
     fireLight = ClampValue(fireLight + Random() * 0.4 - 0.2, 0, 1);
     LSFire->Diffuse->Color =
@@ -149,7 +150,7 @@ void __fastcall TForm1::CadencerProgress(
     LSFire->Position->Y = fireLight * 0.1;
 
     if (inPreview)
-        HUDSprite->Visible = false;
+		HUDSprite->Visible = false;
     if (Visible) {
         HUDSprite->Material->FrontProperties->Diffuse->Alpha =
             HUDSprite->Material->FrontProperties->Diffuse->Alpha -
@@ -157,7 +158,7 @@ void __fastcall TForm1::CadencerProgress(
         if (HUDSprite->Material->FrontProperties->Diffuse->Alpha < 0.01)
             HUDSprite->Visible = false;
     }
-    DCFirTree->Turn(deltaTime);
+	dcFirTree->Turn(deltaTime);
     Viewer->Invalidate();
 }
 

+ 26 - 27
AdvDemos/Christmas/fChrismasC.dfm

@@ -67,16 +67,16 @@ object Form1: TForm1
     object Camera: TGLCamera
       DepthOfView = 100.000000000000000000
       FocalLength = 50.000000000000000000
-      TargetObject = DCFire
+      TargetObject = dcCameraTarget
       Position.Coordinates = {0000C0400000803F0000E0400000803F}
     end
-    object DCFirTree: TGLDummyCube
+    object dcFirTree: TGLDummyCube
       Position.Coordinates = {000000000000B0C0000000000000803F}
       Scale.Coordinates = {0000A0400000A0400000A04000000000}
       CubeSize = 1.000000000000000000
-      object DCTree: TGLDummyCube
+      object dcTree: TGLDummyCube
         CubeSize = 1.000000000000000000
-        object FFFirTree: TGLFreeForm
+        object ffFirTree: TGLFreeForm
           Material.BackProperties.Ambient.Color = {000000000000003E000000000000803F}
           Material.BackProperties.Diffuse.Color = {000000000000003E000000000000803F}
           Material.FrontProperties.Ambient.Color = {000000000000003E000000000000803F}
@@ -85,12 +85,12 @@ object Form1: TForm1
           Direction.Coordinates = {000000000000803F0000000000000000}
           Up.Coordinates = {0000803F000000000000008000000000}
         end
-        object POFirTree2: TGLProxyObject
-          MasterObject = FFFirTree
+        object poFirTree2: TGLProxyObject
+          MasterObject = ffFirTree
           Direction.Coordinates = {0000003F00000000D7B35D3F00000000}
         end
-        object POFirTree3: TGLProxyObject
-          MasterObject = FFFirTree
+        object poFirTree3: TGLProxyObject
+          MasterObject = ffFirTree
           Direction.Coordinates = {D8B35D3F00000000FFFFFF3E00000000}
         end
         object GLCube3: TGLCube
@@ -108,7 +108,7 @@ object Form1: TForm1
           CubeSize = {0000003F0AD7A33CCDCCCC3D}
         end
       end
-      object DCDecoWhite: TGLDummyCube
+      object dcDecoWhite: TGLDummyCube
         CubeSize = 1.000000000000000000
         object POWhiteBall1: TGLProxyObject
           MasterObject = SPWhiteBall
@@ -123,7 +123,7 @@ object Form1: TForm1
           Position.Coordinates = {CDCCCCBD9A99993E9A99993E0000803F}
         end
       end
-      object DCDecoGold: TGLDummyCube
+      object dcDecoGold: TGLDummyCube
         CubeSize = 1.000000000000000000
         object POGoldBall1: TGLProxyObject
           MasterObject = SPGoldBall
@@ -138,7 +138,7 @@ object Form1: TForm1
           Position.Coordinates = {CDCCCC3D6666A63FCDCCCCBD0000803F}
         end
       end
-      object DCLensFlares: TGLDummyCube
+      object dcLensFlares: TGLDummyCube
         CubeSize = 1.000000000000000000
         object GLLensFlare1: TGLLensFlare
           Seed = 1534
@@ -189,11 +189,11 @@ object Form1: TForm1
         end
       end
     end
-    object DCCameraTarget: TGLDummyCube
+    object dcCameraTarget: TGLDummyCube
       Position.Coordinates = {00008040000000C0000000C00000803F}
       CubeSize = 1.000000000000000000
     end
-    object FFFirePlace: TGLFreeForm
+    object ffFirePlace: TGLFreeForm
       Position.Coordinates = {0000C040000080C00000C0C00000803F}
       Scale.Coordinates = {9A99993E9A99993E9A99993E00000000}
       MaterialLibrary = MaterialLibrary
@@ -336,7 +336,7 @@ object Form1: TForm1
         end
       end
     end
-    object DCGifts: TGLDummyCube
+    object dcGifts: TGLDummyCube
       Visible = False
       CubeSize = 1.000000000000000000
       object GLCube1: TGLCube
@@ -558,7 +558,7 @@ object Form1: TForm1
         CubeSize = {000040403333333F0000803F}
       end
     end
-    object DCBalls: TGLDummyCube
+    object dcBalls: TGLDummyCube
       Visible = False
       CubeSize = 1.000000000000000000
       object SPWhiteBall: TGLSphere
@@ -576,7 +576,7 @@ object Form1: TForm1
         Stacks = 9
       end
     end
-    object LSRoom: TGLLightSource
+    object LightSourceRoom: TGLLightSource
       Ambient.Color = {0000803F0000803F0000803F0000803F}
       ConstAttenuation = 1.000000000000000000
       LinearAttenuation = 0.003000000026077032
@@ -592,7 +592,7 @@ object Form1: TForm1
       Up.Coordinates = {0000000000000000000080BF00000000}
       Height = 16.000000000000000000
       Width = 20.000000000000000000
-      ShadowingObject = DCTree
+      ShadowingObject = dcTree
       ShadowedLight = LSFire
       ShadowColor.Color = {0000000000000000000000009A99993E}
     end
@@ -605,7 +605,7 @@ object Form1: TForm1
       Elements = [feGlow]
       Position.Coordinates = {0000C040000080C0000040C00000803F}
     end
-    object FTCongratulations: TGLFlatText
+    object ftCongratulations: TGLFlatText
       Position.Coordinates = {666686407B142E3E000040C00000803F}
       Scale.Coordinates = {0AD7A33C0AD7A33C0AD7A33C00000000}
       BitmapFont = WindowsBitmapFont
@@ -615,7 +615,7 @@ object Form1: TForm1
       ModulateColor.Color = {295C4F3F8FC2353F1F856B3E0000803F}
       Options = []
     end
-    object FTYear: TGLFlatText
+    object ftYear: TGLFlatText
       Position.Coordinates = {CDCCAC40CDCC8CBF000040C00000803F}
       Scale.Coordinates = {0AD7A33C0AD7A33C0AD7A33C00000000}
       BitmapFont = WindowsBitmapFont
@@ -625,7 +625,7 @@ object Form1: TForm1
       ModulateColor.Color = {295C4F3F8FC2353F1F856B3E0000803F}
       Options = []
     end
-    object FTCountDown: TGLFlatText
+    object ftCountDown: TGLFlatText
       Position.Coordinates = {CDCC8C409A99D9BF000040C00000803F}
       Scale.Coordinates = {8FC2753C8FC2753C8FC2753C00000000}
       BitmapFont = WindowsBitmapFont
@@ -5424,17 +5424,16 @@ object Form1: TForm1
     FireDir.Coordinates = {000000009A99993E0000000000000000}
     InitialDir.Coordinates = {00000000CDCC4C3E0000000000000000}
     Cadencer = Cadencer
-    MaxParticles = 128
-    ParticleSize = 0.150000005960464500
+    ParticleSize = 0.200000002980232200
     InnerColor.Color = {0000803FF8FEFE3E000000000000803F}
-    FireDensity = 0.600000023841857900
-    FireEvaporation = 0.860000014305114700
-    ParticleLife = 2
+    FireDensity = 1.000000000000000000
+    FireEvaporation = 1.000000000000000000
+    ParticleLife = 5
     FireBurst = 1.000000000000000000
-    FireRadius = 0.100000001490116100
+    FireRadius = 0.800000011920929000
     Disabled = False
     Paused = False
-    ParticleInterval = 0.039999999105930330
+    ParticleInterval = 0.009999999776482582
     UseInterval = True
     Reference = CYLog
     Left = 24

+ 17 - 17
AdvDemos/Christmas/fChrismasC.h

@@ -47,43 +47,43 @@ class TForm1 : public TForm
     TGLSceneViewer* Viewer;
     TGLSMBASS* GLSMBASS;
     TGLScene* Scene;
-    TGLFreeForm* FFFirePlace;
+	TGLFreeForm *ffFirePlace;
     TGLDummyCube* DCFire;
     TGLLightSource* LSFire;
     TGLDummyCube* DCFireSource;
     TGLCylinder* CYLog;
-    TGLDummyCube* DCFirTree;
-    TGLDummyCube* DCTree;
-    TGLFreeForm* FFFirTree;
-    TGLProxyObject* POFirTree2;
-    TGLProxyObject* POFirTree3;
-    TGLCube* GLCube3;
+	TGLDummyCube *dcFirTree;
+	TGLDummyCube *dcTree;
+	TGLFreeForm *ffFirTree;
+	TGLProxyObject *poFirTree2;
+	TGLProxyObject *poFirTree3;
+	TGLCube *GLCube3;
     TGLCube* GLCube4;
-    TGLDummyCube* DCDecoWhite;
+	TGLDummyCube *dcDecoWhite;
     TGLProxyObject* POWhiteBall1;
     TGLProxyObject* POWhiteBall2;
     TGLProxyObject* POWhiteBall3;
-    TGLDummyCube* DCDecoGold;
+	TGLDummyCube *dcDecoGold;
     TGLProxyObject* POGoldBall1;
     TGLProxyObject* POGoldBall2;
     TGLProxyObject* POGoldBall3;
-    TGLDummyCube* DCLensFlares;
+	TGLDummyCube *dcLensFlares;
     TGLLensFlare* GLLensFlare1;
     TGLLensFlare* GLLensFlare2;
     TGLLensFlare* GLLensFlare3;
     TGLLensFlare* GLLensFlare4;
     TGLLensFlare* GLLensFlare5;
     TGLLensFlare* GLLensFlare6;
-    TGLDummyCube* DCGifts;
+	TGLDummyCube *dcGifts;
     TGLCube* GLCube1;
     TGLCube* GLCube2;
     TGLShadowPlane* ShadowPlane;
-    TGLFlatText* FTCountDown;
+	TGLFlatText *ftCountDown;
     TGLLensFlare* LSFireLens;
-    TGLLightSource* LSRoom;
-    TGLDummyCube* DCCameraTarget;
+	TGLLightSource *LightSourceRoom;
+	TGLDummyCube *dcCameraTarget;
     TGLParticleFXRenderer* ParticleFXRenderer;
-    TGLDummyCube* DCBalls;
+	TGLDummyCube *dcBalls;
     TGLSphere* SPWhiteBall;
     TGLSphere* SPGoldBall;
     TGLHUDSprite* HUDSprite;
@@ -96,8 +96,8 @@ class TForm1 : public TForm
     TGLPolygonPFXManager* PFXTree;
     TGLWindowsBitmapFont* WindowsBitmapFont;
     TGLScreenSaver* ScreenSaver;
-    TGLFlatText* FTCongratulations;
-    TGLFlatText* FTYear;
+	TGLFlatText *ftCongratulations;
+	TGLFlatText *ftYear;
     TGLFireFXManager* GLFireFXManager1;
     //	TScreenSaver *ScreenSaver;
     void __fastcall FormCreate(TObject* Sender);

File diff suppressed because it is too large
+ 575 - 575
AdvDemos/Christmas/fChrismasD.dfm


+ 19 - 31
AdvDemos/Christmas/fChrismasD.pas

@@ -51,20 +51,20 @@ type
     Scene: TGLScene;
     Viewer: TGLSceneViewer;
     Camera: TGLCamera;
-    DCFirTree: TGLDummyCube;
+    dcFirTree: TGLDummyCube;
     FFFirTree: TGLFreeForm;
     LSRoom: TGLLightSource;
     POFirTree2: TGLProxyObject;
     POFirTree3: TGLProxyObject;
     Cadencer: TGLCadencer;
-    DCCameraTarget: TGLDummyCube;
+    dcCameraTarget: TGLDummyCube;
     FFFirePlace: TGLFreeForm;
     MaterialLibrary: TGLMaterialLibrary;
     LSFire: TGLLightSource;
     PFXFire: TGLPolygonPFXManager;
-    DCFireSource: TGLDummyCube;
+    dcFireSource: TGLDummyCube;
     ParticleFXRenderer: TGLParticleFXRenderer;
-    CYLog: TGLCylinder;
+    cyLog: TGLCylinder;
     DCLensFlares: TGLDummyCube;
     LensFlare1: TGLLensFlare;
     LensFlare2: TGLLensFlare;
@@ -73,7 +73,7 @@ type
     SMBASS: TGLSMBASS;
     SoundLibrary: TGLSoundLibrary;
     DCDecoWhite: TGLDummyCube;
-    DCBalls: TGLDummyCube;
+    dcBalls: TGLDummyCube;
     SPWhiteBall: TGLSphere;
     POWhiteBall1: TGLProxyObject;
     SPGoldBall: TGLSphere;
@@ -89,21 +89,20 @@ type
     PFXTree: TGLPolygonPFXManager;
     WindowsBitmapFont: TGLWindowsBitmapFont;
     Cube1: TGLCube;
-    DCGifts: TGLDummyCube;
+    dcGifts: TGLDummyCube;
     Cube2: TGLCube;
     ShadowPlane: TGLShadowPlane;
     DCTree: TGLDummyCube;
     Cube3: TGLCube;
     Cube4: TGLCube;
-    DCFire: TGLDummyCube;
+    dcFire: TGLDummyCube;
     ScreenSaver: TGLScreenSaver;
     Timer: TTimer;
     HUDSprite: TGLHUDSprite;
-    FTCountDown: TGLFlatText;
-    FTYear: TGLFlatText;
-    FTCongratulations: TGLFlatText;
+    ftCountDown: TGLFlatText;
+    ftYear: TGLFlatText;
+    ftCongratulations: TGLFlatText;
     FireFXManager: TGLFireFXManager;
-    MaterialLibraryCM: TGLMaterialLibrary;
     procedure FormCreate(Sender: TObject);
     procedure CadencerProgress(Sender: TObject;
       const deltaTime, newTime: Double);
@@ -126,7 +125,6 @@ type
     FireLight: Single;
     inPreview, inSaver: Boolean;
     bStream: Cardinal;
-    function LoadCubemap(Matname, Filename: string): TGLLibMaterial;
   end;
 
 var
@@ -136,13 +134,6 @@ implementation
 
 {$R *.dfm}
 
-function TMain.LoadCubemap(Matname, Filename: string): TGLLibMaterial;
-begin
-  Result := MaterialLibraryCM.AddTextureMaterial(Matname, Filename);
-  Result.Material.Texture.Disabled := False;
-  Result.Material.Texture.TextureMode := tmDecal;
-end;
-
 procedure TMain.FormCreate(Sender: TObject);
 begin
   Path := GetCurrentAssetPath();
@@ -150,11 +141,8 @@ begin
   Randomize;
   // Load static models
   SetCurrentDir(Path + '\model');
-  FFFirTree.LoadFromFile('firtree.3ds');
-  FFFirePlace.LoadFromFile('fireplace.3ds');
-
-  // Loading cubemaps from .dds files to TGLComposite image
-  //... LoadCubemap(); // not implemented
+  ffFirTree.LoadFromFile('firtree.3ds');
+  ffFirePlace.LoadFromFile('fireplace.3ds');
 
   FireLight := 0.5;
   FTYear.Text := '';
@@ -258,16 +246,16 @@ begin
   if TheChristmas then
   begin
     t := EncodeDate(Y, 12, 25) - Now();
-    FTCongratulations.Text := 'Merry Christmas!';
+    ftCongratulations.Text := 'Merry Christmas!';
   end
   else
   begin
     t := EncodeDate(Y + 1, 01, 01) - Now();
-    FTCongratulations.Text := 'Happy New Year!';
-    FTYear.Text := IntToStr(Y + 1);
+    ftCongratulations.Text := 'Happy New Year!';
+    ftYear.Text := IntToStr(Y + 1);
   end;
   if (t < 1) and (t > -1) then
-    DCGifts.Visible := True;
+    dcGifts.Visible := True;
   if t >= 2 then
   begin
     buf := IntToStr(Trunc(t)) + ' days, ';
@@ -276,7 +264,7 @@ begin
       buf := buf + IntToStr(i) + ' hours...'
     else
       buf := buf + IntToStr(i) + ' hour...';
-    FTCountDown.Text := buf;
+    ftCountDown.Text := buf;
   end
   else
   begin
@@ -289,12 +277,12 @@ begin
         buf := buf + IntToStr(i) + ' minutes...'
       else
         buf := buf + IntToStr(i) + ' minute...';
-      FTCountDown.Text := buf;
+      ftCountDown.Text := buf;
     end
     else
     begin
       t := t * 60;
-      FTCountDown.Text := IntToStr(Trunc(t)) + ' minutes, ' +
+      ftCountDown.Text := IntToStr(Trunc(t)) + ' minutes, ' +
         IntToStr(Round(Frac(t) * 60)) + ' seconds...';
     end;
   end;

+ 2 - 2
AdvDemos/Earth/EarthC.cbproj

@@ -58,7 +58,7 @@
         <ILINK_TranslatedLibraryPath>$(BDSLIB)\$(PLATFORM)\release\$(LANGDIR);$(ILINK_TranslatedLibraryPath)</ILINK_TranslatedLibraryPath>
         <ProjectType>CppVCLApplication</ProjectType>
         <DCC_Namespace>System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace)</DCC_Namespace>
-        <AllPackageLibs>rtl.lib;vcl.lib</AllPackageLibs>
+        <AllPackageLibs>rtl.lib;vcl.lib;GLScene_RT.lib;xmlrtl.lib;vclimg.lib</AllPackageLibs>
         <_TCHARMapping>wchar_t</_TCHARMapping>
         <Multithreaded>true</Multithreaded>
         <Icon_MainIcon>$(BDS)\bin\cbuilder_PROJECTICON.ico</Icon_MainIcon>
@@ -108,7 +108,7 @@
         <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
         <AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode>
         <BCC_UseClassicCompiler>false</BCC_UseClassicCompiler>
-        <LinkPackageImports>rtl.bpi;vcl.bpi</LinkPackageImports>
+        <LinkPackageImports>rtl.bpi;vcl.bpi;GLScene_RT.bpi;xmlrtl.bpi;vclimg.bpi</LinkPackageImports>
         <ILINK_LibraryPath>$(BDSLIB)\$(PLATFORM)$(CC_SUFFIX)\debug;$(ILINK_LibraryPath)</ILINK_LibraryPath>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_2)'!=''">

+ 10 - 0
AdvDemos/Earth/fEarthC.cpp

@@ -6,6 +6,16 @@
 #include "fEarthC.h"
 //---------------------------------------------------------------------------
 #pragma package(smart_init)
+#pragma link "GLS.BaseClasses"
+#pragma link "GLS.Cadencer"
+#pragma link "GLS.Coordinates"
+#pragma link "GLS.LensFlare"
+#pragma link "GLS.Material"
+#pragma link "GLS.Objects"
+#pragma link "GLS.Scene"
+#pragma link "GLS.SceneViewer"
+#pragma link "GLS.SkyDome"
+#pragma link "GLSL.TextureShaders"
 #pragma resource "*.dfm"
 TForm3 *Form3;
 //---------------------------------------------------------------------------

+ 6913 - 0
AdvDemos/Earth/fEarthC.dfm

@@ -11,4 +11,6917 @@ object Form3: TForm3
   Font.Name = 'Segoe UI'
   Font.Style = []
   TextHeight = 15
+  object GLSceneViewer: TGLSceneViewer
+    Left = 0
+    Top = 0
+    Width = 673
+    Height = 503
+    Camera = Camera
+    Buffer.BackgroundColor = clBlack
+    FieldOfView = 144.709152221679700000
+    PenAsTouch = False
+    Align = alClient
+    TabOrder = 0
+  end
+  object Scene: TGLScene
+    ObjectsSorting = osNone
+    Left = 20
+    Top = 20
+    object SkyDome: TGLSkyDome
+      Bands = <
+        item
+          StartColor.Color = {0000803F0000803F0000803F0000803F}
+          StopAngle = 15.000000000000000000
+        end
+        item
+          StartAngle = 15.000000000000000000
+          StopAngle = 90.000000000000000000
+          StopColor.Color = {938C0C3E938C0C3E938E0E3F0000803F}
+          Stacks = 4
+        end>
+      Stars = <>
+      object ConstellationLines: TGLLines
+        Direction.Coordinates = {0000803F000000000000008000000000}
+        Scale.Coordinates = {00A00C4600A00C4600A00C4600000000}
+        Up.Coordinates = {00000000000000000000803F00000000}
+        Visible = False
+        AntiAliased = True
+        LineColor.Color = {E3A51B3FE3A51B3F0000803F00000000}
+        LineWidth = 2.000000000000000000
+        Nodes = <>
+        NodesAspect = lnaInvisible
+        SplineMode = lsmSegments
+        Options = []
+      end
+      object ConstellationBorders: TGLLines
+        Nodes = <>
+        Options = []
+      end
+    end
+    object dcEarth: TGLDummyCube
+      ObjectsSorting = osNone
+      CubeSize = 1.000000000000000000
+      object Camera: TGLCamera
+        DepthOfView = 16000.000000000000000000
+        FocalLength = 80.000000000000000000
+        NearPlaneBias = 0.100000001490116100
+        TargetObject = dcEarth
+        CameraStyle = csInfinitePerspective
+        Position.Coordinates = {000000400000003F0000803F0000803F}
+        Direction.Coordinates = {0000803F000000000000008000000000}
+        Up.Coordinates = {00000000000000000000803F00000000}
+      end
+      object CameraController: TGLCamera
+        DepthOfView = 100.000000000000000000
+        FocalLength = 50.000000000000000000
+        TargetObject = dcEarth
+        Position.Coordinates = {000000400000003F0000803F0000803F}
+        Direction.Coordinates = {0000803F000000000000008000000000}
+        Up.Coordinates = {00000000000000000000803F00000000}
+      end
+      object dcMoon: TGLDummyCube
+        Up.Coordinates = {FC9D7FB10000803F0000000000000000}
+        CubeSize = 1.000000000000000000
+        object SphereMoon: TGLSphere
+          Material.MaterialLibrary = MatLib
+          Material.LibMaterialName = 'moon'
+          Direction.Coordinates = {DAD031BE000000005B1C7CBF00000000}
+          Position.Coordinates = {CDCCECC100000000000000000000803F}
+          Scale.Coordinates = {713D8A3E713D8A3E713D8A3E00000000}
+          TurnAngle = -170.000000000000000000
+          Radius = 0.500000000000000000
+          Slices = 32
+          Stacks = 32
+        end
+      end
+      object SphereEarth: TGLSphere
+        Material.MaterialLibrary = MatLib
+        Material.LibMaterialName = 'earthDay'
+        Direction.Coordinates = {000000000000803F0000000000000000}
+        TurnAngle = -150.000000000000000000
+        Up.Coordinates = {00000000000000800000803F00000000}
+        Radius = 0.500000000000000000
+        Slices = 32
+        Stacks = 32
+      end
+      object DirectOpenGL: TGLDirectOpenGL
+        UseBuildList = False
+        Blend = False
+      end
+    end
+    object LightSourceSun: TGLLightSource
+      ConstAttenuation = 1.000000000000000000
+      Position.Coordinates = {00D0044600D00446000000000000803F}
+      Specular.Color = {0000803F0000803F0000803F0000803F}
+      SpotCutOff = 180.000000000000000000
+      object GLLensFlare1: TGLLensFlare
+        Seed = 1465
+        FlareIsNotOccluded = True
+      end
+    end
+  end
+  object Cadencer: TGLCadencer
+    Scene = Scene
+    MaxDeltaTime = 0.050000000000000000
+    Left = 28
+    Top = 115
+  end
+  object Timer1: TTimer
+    Left = 435
+    Top = 28
+  end
+  object MatLib: TGLMaterialLibrary
+    Materials = <
+      item
+        Name = 'earthDay'
+        Tag = 0
+        Material.FrontProperties.Diffuse.Color = {0000803F0000803F0000803F0000803F}
+        Material.Texture.Image.Picture.Data = {
+          0A544A504547496D616765B29F0100FFD8FFE000104A46494600010101004800
+          480000FFDB0043000302020302020303030304030304050805050404050A0707
+          06080C0A0C0C0B0A0B0B0D0E12100D0E110E0B0B1016101113141515150C0F17
+          1816141812141514FFDB00430103040405040509050509140D0B0D1414141414
+          1414141414141414141414141414141414141414141414141414141414141414
+          14141414141414141414141414FFC00011080200040003012200021101031101
+          FFC4001E0000010403010101000000000000000000000203040501060708090A
+          FFC40049100002010303020403050605020601000B0102030004110512210631
+          07134151226171081432819109152342A1B152C1D1E1F016622433728292F143
+          1753A2182534A31944C263FFC4001C0100020301010101000000000000000000
+          000102030405060708FFC4003D11000103030203060406020102060300000100
+          021103042112310541511322617181910614A1B13242C1D1E1F015F123335216
+          246272A2D2348292FFDA000C03010002110311003F00FAA74514508451451421
+          1451450845145142114514508451451421145145084514514211451450845145
+          1421145145084514514211451450845145142114514508451451421145145084
+          5145142114514508451451421145145084514514211451450845145142114514
+          5084514514211451450845145142114514508451451421145145084514514211
+          4514508451451421145145084514514211451450845145142114514508451451
+          4211451450845145142114514508451451421145145084514514211451450845
+          1451421145145084514514211451450845145142114514508451451421145145
+          0845145142114514508451451421145145084514514211451450845145142114
+          5145084514514211451450845145142114514508451451421145145084514514
+          2114514508451451421145145084514514211451450845145142114525A4442A
+          19954B1C2827193EC29542114542BFD62D34C745B991A3DFD8F96C57F50302AA
+          C7887D321A5126BB6307940331B89D62001CF20B632383C8A10B61A2AA1B57B9
+          BC3149A42586A5684AEF956F70403EA02A303C723919AA9EB9BCEA3BBD148E8C
+          974E9AF44804CD712FC4B19EE63C02BBFDB7714C042DB6A05DEBDA6D8473C973
+          A85B4090712B49328F2F8CFC5CF1C73CD708B7D46DBA3DA493C494D4E78A42B1
+          4573A9DE2324DB482461522040201DA472031E6A1AF51787BACDDDFDCE8BADF5
+          75B59BCF8B9B61A5DF5DD89947C39498C4C6DC0C8E209635F5C1C9CCBB80E5C9
+          495DF4753E9EF6EB3C524D730B36D0F6B6D2CC0FCFE053C7CFB555FF00D7F0CA
+          939B5D175BBA689F66C360D6FBF9C654CC5011F9D793BABBC4DF107C36D4A3BB
+          D4B4DD22EBA77EF664B1B9D32E9E1945A7999F2D94BEF0FB59177B8DBBB04A12
+          76D5D68FE3D6A4BAACEB24D2EA4255373147AC5C49148A1497551F145182ABBB
+          9DAB9DB9249C66B3528B646ACFAFEC980E3C97A5F56EB97D2A5B546E9ED66549
+          5DD65962B432ADB851C1611EF66DC781B15BD49C0EF6F6BA95D5FDA473DBDAA8
+          DCD865B932C040F7C3460FEA07D6BC83D0FF006C2D42E6F6EAEB52671A444FB0
+          BA5E432CA32D90C222AB95C10080C76E325BE215DD6C7ABE4F12F4286EE45EA4
+          D074EDA265B9B68D6DFCE041C10CAE5C8C1F6C1E3D7149B5693CC34FDD3208DD
+          74C41A9CB0E59AD2D65CFE00AD328FCF299FD29B921D59416FBFD8AA81925ACD
+          F8FF00FAB5CA13C5EE87E959CC31EA1AD6A4D680C72CD1D9BC81581E43B84049
+          E79E49F7ADB740F1623EA9795348D0AFEF8C6AAE70F0A651B90C37B8C823D47B
+          8AB3C944195636BD508D24A9275674F4CC0F0B147B4AFBE7FF00107FCA9C8B5A
+          D67646206D235790F2CD05C181547BF790F6C522FAFF00ABE44B95B7D3348B04
+          0479775777CF2055CFC4CD1AC633C670378E7D6B5DD77ACFA2F498E7835CEB6E
+          984D4D60CC51DEDCC44212BF88C724ACE4120F01871800E464B0444942DBD759
+          D505A4C64B6D212F1412908D51CA376C6E7F2723D7F94E38EF518754EAD06A17
+          D0DCF4D5CCB69114FBBDE69F750CEB383C1CA1647420F7E08C60E7D0691A1DF7
+          4DF59E817165A4EA961AF34ABBDACB47C7DD4F1FF97BFCB731A31EE723B9C639
+          15BA58F4B3EA161047A9432E98D6D2030C3A5EB577E5EC18DA091E564600F848
+          23EB934E1B1294F252ECFAD74D7B5B7935071A1DCCF21896C75296249F7EE2A0
+          615D812DB4900139156BFBC6027E1677EC3F871B3639C7A0A50B723287CB689B
+          25C32E4B703E7F5A5ADAC29F86245E7770A073EFF5A861496A9A9F8AFD3DA475
+          DDA747DD4B729ADDD59B5FC518B59190C2AE10B6E031C3100FB6413C734887C5
+          BE9E9EFEEAC37DEC17D6E09682F2C66B60D8246164955636EDC61B9E2B72D839
+          E073C1F9D0CA18608C8F634E5BD10B48D47C4E934E00CBD2DAE842DB44D1DBAD
+          CC6391DFEECD2B8C8CE3E03C8C71906B57B5FB4569BADF524BD3DA4DB86D601D
+          915B5E936D248464BB2C528491D5402495535D7C2819C01CF7AC2C6ABF8540E4
+          9E07A9E4D4816F3092D1F51D5FAE6EADA33A45969313953BA4BB599D770EC368
+          2879E7D7EB8A7ECEF7AD676B6FBC59595B45265246540D246738DC57CDC6DF50
+          4331E79515B9D14B57826AB62B6D48090C9788C58F0AB185DA3E44E7FA8355DA
+          E6AFFF004FD94B3EA3AC59E9906F0AB717B751C4A376001964001CF0073F9F6A
+          D8E8A8CA168967AF4776AC2DFAC65D472D82FA75A477223C8E06E8E3207FEEF9
+          76F5C5BE91D4362D7170FD71A8DF5B97C8865D16266418FC23CB8D49FD0D6F65
+          430C1008F9D35776905F5BBDBDCC31DC40E30F14A819587B1078352D485C0BC4
+          0F172EFC34B9B6175E2768760D70FB22B6EB3D1E5B4F34E0EE08D188CB1EC700
+          1E33DFBD6EFD45E276B9D1BD0771D4BAA699A34F6B636C2E2EEE06A7259A2A85
+          26472B343FC3518CFC4C78E49E39DEAD7A774DD3A365B1D3ED6CFD8430845CFC
+          C2E335A5F5CF857A6757452FFD4963A8759D9C858368F25D88EC8A10311B5B6E
+          58A550541CC9BDB24F38C013D4C312124782DE3C74B78DDD3536ADA0EA9A6DC3
+          5B63EF76F67A943766DF39C1668D8E01DAD82719DA7DAB72D27A9B4DD6E2592C
+          EE0C8AD23C58789E360E87E20430047A77C64104641AD12E756D2FA3742B3D22
+          C347B6E99D310344F6491AC296D1052CDB1510A31C03C02A30739ED557D25AF5
+          EDEE8DD353694F169F0EAE1A386D2E4466281141F88AAC7BDDD480B8DCA87B6F
+          FC390B4192DD944381C2EBCD730A2176951507258B000544B5EA0D2EF6EBEED6
+          DA959DC5CE33E4C53AB3E3DF00E7D2B4F8FC35D6B5648E4EA4EB9D5AEEE2397C
+          C58F42FF00F855B01FE1DA8CD230FF00D7237CB14F699E05F40699ABC7AB2F4A
+          E9F7BAC46E648F54D4E337D791B139CACF397917900F0D50868DCA92DEA8A2B8
+          BF8A9F6C8F087C16D6EE347EB4EAB7D135180A0785F4BBC933B8654AB242CAC3
+          E6A480410790450C63EA186093E08240DD768A2B86E85F6E2F01FA8EFCD958F8
+          9FA0B5CFF082A4D3187CC321C2042E00639EE064AE46715D6E5EB0D061944726
+          B7A7472152E11AEE304A8EE719ED4DD49ECC39A47A241C0EC55BD15AD6BBE26F
+          4774C598BCD67AB343D26D0B88C5C5F6A30C31972090BB9980C900F1F2AD5EFF
+          00ED3BE11E9F6B3DC49E25F4ACB1C31BCAFF0077D62DE52028C9E15CF38EC3B9
+          F4CD029BDDB029C81CD74DA2BC23A8FED87F08A368974FE99EADBE6672ADE65B
+          DB42140206726739C8C9F4ED838CF1E63BEFB7A78E9E29789929D23AB8741E95
+          7B724D8D9456D6D3416706CDCBE7178DA4618C1672001BB3850703A74F85DCBC
+          12E1A40EAB3BAE698C032BEC5515E0BD3ADFED53A8E996B7BA678CD67AC59C40
+          FDF2E749E9BB1B9646E0E3CB721980F886554676F63DEB58D597ED1BA9F54E9D
+          A6C7F6861A6DCCE8541B9E9D8EDA253C140C235932CC5981DD8236E318C1ACFF
+          002AC060D56FFF002FFEA98AC4890C3F4FDD7D1BA2BC2DA7F80BF6857D5A387A
+          8FC6EEAD9BCC89C0D534548D208A404B026D4C40C80A0DBDFF0011FCAAB7ABE3
+          3D1FA2470F527DA33AF6C350FBD88E09EE6E134F89CB86112C8B0472B93BF01B
+          951EB81C51F2AD986BC1F207F652152792F7DD15F3EED3C3BE95D6F4FD53A82E
+          FED93D5D7E448E5A1D0FA99CF956E1B0B1985097DCA08DCC146793B4578B3C6D
+          D36DF4FEA0BFE9EE9EF1AFAE75EB0F3C6DB7D62DEF2D608CEEE0666954BB0C80
+          0F96092C3039157D2B0154E9D71FFEA52352330BEEBD264916246776088A32CC
+          C7000F735F9B8EB997A9F4FD57EE7A8EB7A9DE49600817725D4B2AA0EE155B1C
+          7A0E095C8C82462A9B55EB3D7B51B5FB94BD55ACDFD8C6C3CB82E2EA4318F721
+          0B9C7E99ADE382930454FA7F2AAF98EA17E8C26F1A3C3EB669966EBBE9A89A1C
+          8903EB16E0A63BEECBF1F9D6937BF6D2F022C2FF00EE7378B3D2866DC5498B53
+          8E48C11DF2EA4A8EFEF5F9E595125BC0D705F6B105997E26EFC9C12327F314D2
+          5B072DB495C1C80D8C1ABC70464C1794BE63130BF457A27DADBC1DEA2BE6B3D3
+          FC42D1A7B80015532941264123CB2C007C8070149CFA542D57ED95E0EE89D496
+          FA15FF005A5B5A5FCFB8289EDE6440412305CA019E0FAFA57E7A5ECE0C7C21F3
+          DDF7118CFB0F953D0CB04291AB5BAB80E19C6E237019C8073C67FE76E67FE129
+          8DDE5405D4EC17E8B3FF00DE63C2D2B2B275DE853A4681F36F7F14ACDCE30111
+          8B93C8E36D6E1A575CE85ACD9D9DD5AEA5134379FF00F2C64CC6D2F04FC2AC01
+          3C03E9E86BF3D7D1FE21F41E88248755F0FA2BCC9CC77F05F4A278CEDC6423B3
+          46413E8CA71BB8E4035BB74FF8E1E15E8905E13E1DDC6A7752C9BC49AADE34C8
+          70DB81D88F1856CB3F3C8E0103249195FC2230D27D87EEAC1713BAFBBDAD75D7
+          4EF4E12357D6EC3490064B5F5C2C0B8C13F89881D813DFB5474F137A3A595624
+          EACD0DE5604AA2EA5096201C1C0DDE8462BE06EB7E2CF416A9A91BC1D37AC096
+          70E26367A9359242303CB1126E93214EE6219B272064724ECBD29E387853A4EC
+          8E4E873118DFCC5B9BA8D6EE42DC8DA4923232EED93F10E39CE4981E1240993E
+          C3F75215C12BEE9A7881D2F2C8513A934877037155BF889038E71BBFEE5FD47B
+          D5CDB5DC17902CF6F3473C2C32248D83291F515F25BC39FB537823A8A8BFD435
+          D7E87BD59176C175A6DCDCEE8C1EC7C9565046DE30704310573966F497875F6C
+          7F08B5EB09AD74EEBC9F55D4D4C48DB2E174D6B9917F9E3FBDC96EA571C98CA9
+          5182082BC573EA58D46723ECAD6D4079AF685BEB7A75DDC8B682FED66B821888
+          A39959F0A70DC039E0F07DAA6D720D03AE743D67467B9D2B5CBEEA43688A5D6D
+          6F228E527CA0C15D6DD51012067FC3961E9C0E35D5BFB447A03C12D3E7D3757E
+          99EAFB99ACA42A765ED9EA2E777C79698DE163CB118E7180BC6303336DEA3CC3
+          049522E0375EC4A2BE74EA7FB69FA0E28A46D3FC3DEA1B971F856EAE6087773E
+          EA5F15CF3AA3F6D76B73220E9DF0C6C2CC894EE7D53527B8DD1F1B4008A9B5BB
+          E4E48ED5A9BC36E9DF93EA143B56755F5668AF08781BFB51ACBC66D6D3438BA5
+          74DD2B5A9E3536D6BA86B6F02CD26D25D164FBBBA705782E533B860120E3D55D
+          31E256BDAD75049A6DE746C96C91443CEBBB0D5AD6F228E52A182901D5D41072
+          0B2293C71CD66AB6D56898A823D429B5ED7642E8B4543B3D356D25693CFB89E4
+          650A4CD3330FAEDFC20FD00A995954D14568FE2475FEB3D0CD692587485CF51D
+          8C88ED71736FA8DADB7DDF6E3036CF221724648DB9FC27E59F3C7427DBE3A07C
+          4ED48477FD49A57458323C0B637FAEA2CB3261B2FBD176270383E6673DB00E4E
+          865BD4A8D2E6890140BDA0C15EBFA2BC9FD47F695E9BD026B8FDDBE2974DCBE6
+          8580DC41AE7DF16D812A03052641C33A7F10AE09241CF616BD07F6C3E8AEBBD6
+          23E98D3663A9DE244647BABCD563B65B85048DD1F9850CB92BCED5DB839CF700
+          750A8D13063C8A03DA79AF4DD15E7F8FC511D37D73A5E91FBCBF74FDEC80747B
+          FD585D09497015967FE395CAF021013272437073D961EA268AE1E3D4208ED238
+          E1F364BA59F7409C8006E60B9CE7D07A738C8CD313B294ABBA2B5393C52E9A87
+          584D2A5BE9A1BE78BCE48E5B29D048BBF67C2C536B1CFA024E39EDCD6C763A9D
+          9EA91799657705DC7FE38240E3F507E46A29A934514508451451421145145084
+          5145142114514508451451421145145084514514211451450845145142114514
+          50845145142114514508451451421145145084514547FDE16BE7343F7988CAA4
+          068C38DC09EDC77A10A451494916419539A55084514514211451450845145142
+          11451450845145142114515A478C3E25A7853D117BD426DADAF9AD76FF00E16E
+          2F45AF99938C2B95605BD8639A44C0946E9DEB1F17FA47A124B98758D62386EE
+          DE213496B0A3CD3053DBE1404827D01EF915CB2DFED8367D41AFA697D39D11D4
+          BA896709F799ECC4080E4F70CC36AFC2DF13118DA73DAB915EFED1EFBE472C69
+          E1BC4C8EBB24FBD6ADB924439CAFFE47CFD723BD59DC7DB6BC38EB9D2CD8F52F
+          8746EA152B37DDE7F22E2DFCCCFBB853C73CED39F6AC26EA9BBF0BC0F4FDD5E2
+          9B86ED5D42C7ED21ADB6ACB26B5D37174AF4D2CAD0BEADAB5C24664DB9DCD1A1
+          705F9C0C26F23E79E362D3BC6BE8EEB0BCBBB6B2EA848AD0617EFB7F3DBC5017
+          27E111A390EE78F6C0C73CD709B8EB7F067C6ED5A292FDBA8BA66E904712CD08
+          32DAAC63F0C2005711A7078DAAB5B7F50F80D65D5763667A43C46D1E58EC0793
+          3DD5C62791495E137452AA22E15B0BB33F8BE23E93654796EAA643BFBE0122D6
+          CC3B0BB24DD3B1DAD80D527D77EF1651A8371258D9990CCA1B9F86327B8CE76A
+          F1DFD29DF0F7C5EE95EBB9EEB4FD12E9D64B33B3CAB84F28BFCD413938F50704
+          7A8AE39D11F63AD7FA62EDA493C53D5AD6D662CF7163A2A496B1CAE57018E666
+          04F6C92BC8E3E967D51F660E80D32E23B9D67ABB58D3A5BACA2CF35F451B3B05
+          1960C538385C7A0E47AE333D758810DF72A3A59D5760D6AF2EEE5CDDD85D697A
+          9E911A83736D331DC983F89244CE3D7861E9DC735A5EBBD33E1EF59D924E6E0D
+          9CA8DBCFDDD033BE3B845951B8C919640393C9E4D56786D63E15F4CC1368DD37
+          D4F7126A3AB4F1C2D766E9CDE4857948C3ED1B57B9C0C03B8F7CD74BD5FA2343
+          9B4C7173001224250DF794925C11B48272CADB9B03D4127157B61EDEF8FD540C
+          B4E173CF0FFA3FA17A33A9AEAEBA6E3D5ADEF4A8F3E08A40E8F93C0651938241
+          38E00C1EDC546EB2F07BA5BAC6ECEB3A3586A369A8C7BFCBBEB6B99A18ED64EE
+          7306E523381C28C720F620D504DE307851A2EA1A848B79AC5C5D45218665BBB7
+          721E46CE06C95728A300E55428047B814FC5E2F78651E95671BEB57B67FBC2FC
+          B69C1A4266B890B8042047CBE19946D4F8C0C2F60404D652A9FF001B003E0112
+          E6E4ADA3A434AD6F41D3E0D3B52D525D7F4D57586E2DC580BA232C58ABB3CBBB
+          033C9318E31F2AA7F11F46D1746B3B38BA562D2B475BCB8F3661A8A5DFDDAE4E
+          0AF96A90CF100D9E08704119041ADAEDBAD74CD36D60BFCCF12A950F2B4696DE
+          78E40055E4CB03CE320919EE3922875BEACD76FBA86DBFE90B1B4BA85D8CD7DF
+          BC6E17CC8E3607F03465D400707E23D8E32BC108164E8E7D252CC4F25AE75B0B
+          6B2D0F7E87D2F71A5EBF736B1403587B0925591F1E57950A912376738E55B6F6
+          271CE831FD9F35ED2BA32F059E9FA1C3753C91F9F2CFA65FCB70D8C9D8ABE592
+          41620E54718E49C71BF5CEBDD5DD31D556D68DA6E857DA05DCBB5EE74BD524D9
+          650E325A75D84B331C8088ACA703257BD723F1F7ED81AA7839AFC715AF43C1D5
+          56BE586B682F7AA845733AE14931D97C6CC07C409C1E547602A5D80A950307E2
+          E425BFA94C3A1A4F2F555BA6FD9BFAE25D7C6A9A859DFEB778A50C2D2DB3DAC1
+          13643212ADCB2E7702B81807923BD7AC6D7C518869EC9772E87E7DBA9496DE1D
+          43CB97CC400C81627407E1041C67B1EF5E54F097EDA5E23753DEC92EB5E0869D
+          A374F48C1639EF6E24B7914FC5BFF05BBF9A47070234C73DF3503C7EF14FAA3C
+          4E6D4AC3A03C14D37AF74D8ED1AD584B3C0C81E58CABBB5A05F38ED2C06772E0
+          A67E75A2DACC53796C8F76E3D8AAEA3F5093F62BA278B5FB40FC08F0F23B8B1D
+          57A96E7ABEF1EE09FDDFD3514771E52819C3CA19538390417DC08EC40C9F2AF5
+          CFED82D42CA49ED3C39F0F74ED2AC4AEC5BCD667926B961EFB632A10F3DB730C
+          E4D78BFAFBC00F10FC3D9E697AA3A1F58E9D81B7C88D73632A43B4649DAEC0E5
+          47BE4D680D63B321815279CB0AF6543865B1123BDEB8FA2E71AE460E17AB7C35
+          FB78F575F6BB6FA775CDCE93AEE937B70E6E2FBA83498AF9A02E46C932023111
+          9C1E49FC3F4AF717857E2CF873D7BA9D859F485E7865A8DF7F105D9D4B427F34
+          95E11A3F8808D3B9CB13B87EA7E387DD31FCDF0D63CA0EDB55B3C77345C707A3
+          58EA680D3E410CB9737132BF425E19F89BA8D8EA375A6757756786D1DB20DF65
+          6DA0DD9B6996107692D0C92BE00620641182718CD6CB3FDA4BC26B5BC8AD67F1
+          33A4A0B8963F35125D6ED9772E719197F7AFCE3345B31939F5C1ED4EA2237CF3
+          EA3D2B28E06D3BBFE814FE688E4BF4C5A0F5A74F754A6FD135DD37584FF1585E
+          4738F4FF00093EE3F5AB9AFCC869D793E9D7226B59E4B7950EE592390AB03F22
+          3B57B53ECE9FB4A7C45F0BF49B7D1B538EC7A974585C73AA190DC818E556453C
+          65B9CB2B6327BD66AFC12A31BAA93B5786C86DE3661E217D9BA2B49F07FC5EE9
+          CF1AFA2ACFA93A6EFA2BAB794059E057064B5971F147201D987CFB820F635BB5
+          79B20B4C15D004112114514524D1451450845145142114514D5C5CC76913492B
+          0445192C7B0FF98A3746C8B89D6DA22EFB881E8AA493F90AD51FAC1EF257DBA4
+          5ECD04520521530C3E21F160F071F518C1C64902AB75FF001EBA27A7FEF293EB
+          76AD3DB02D2C2255575031CE091FE25FFE43DEB9AEA5F6D6F0F26BD9F4569A70
+          F28F284BE595462572400E031E33D81C60E706AC0D2370AA2E9D8AE11D7FE337
+          5C47E30CD71D39A9DFE9493DE2D8C22EB4B8D1123F31801333F97E5AFF001373
+          16C81856C3100D6BBE2BFDB1BA83C17874FE90E8E5924EA496E2682F2E4C297F
+          3349E7B7984487230A58900A8EF9008C93ABF5BFDA3FA5E7D56E34D8FCFB369A
+          E8C57B646F239A63073831C6194C6C70A485E79249FC42B94FDADBC66D4347B2
+          5D0217B9859922325A6B8A59FC854DB6CD165B7B6D018873C6D651EE0F4AC689
+          AB500225BFDF055BDDA5B9C15D8BC4DFDA89AE743786369A4D9DC47AAF88D748
+          C6F2E82C12DB590C95C288C2847FE60ADE66303764119F2C74DFED1FF1D7A735
+          0D4EFED3AA819B506579D2FA1FBDA6E04E36094B797F88F085460018E2B80753
+          6BB6BAD5CA4D05A084905A51E5C71A973FE058D576A8C0C0C9E73D81C553C08A
+          1817E7E55EAE8D8D0608D232B13AABBAAF595B7ED4BF1F63D6D752B9D734EBC0
+          AA556D64B2F2E000E33948D97278EE49C64D729F17FED3FD6DE36DA5A5BEB70E
+          956696E8D113A6D9F946543D83B3162D839C1CE46E23B572B1796D1B00B6A4FB
+          B139A627BDDCC7692ABE83B5696DADBD33A9AD13E0AAED2A3B0A4456BB541395
+          39E7E9FF00334A3E48040919B9C907D6A03DD3B0C02DF5A447919C826B56B1B0
+          0ABECC9C92A5B08F076E09F6A606771C6062923278E40F9D2546DCF391ED5125
+          4C36025FDE9E36386031F2AB7D0FAAAEB4A9629A39DA39227F323C37E16C6370
+          F9FCEA8D957938A6980351D64291A6D7882BD81E1DFDB9356D0F4BFDDB63247D
+          31772C461FBEB5E5DC96D18F70033C81C8C2EE3BB181D8715DB3C2FF001D3C35
+          9EEB4E93ABB5CEA6E9A8EE86D3A85A88E4D3E5CBB8C0752D2E77023FF2F04283
+          9C62BE69A1DA735322BA2319C30F9D732AD85BDC7E211E4AC05F4FF095F57BC4
+          4FB71F4EE93D13776DD37AE24F242CC2DED75BB86B9F3200FB55DD0B26F66024
+          1B14B15F858956E17C9DD23F6BC8AD1B52B3EA2B4BAD7AC2F1764BF797571286
+          23766323E1FE66C093BED00E057967EF09FC871EF9A3793D8E4D594F865B3185
+          9121566B3C99D97A03C6CF18FA5FA8967B3E9BD1A0D22F6E30350D522BE925FD
+          E20EEDC5542858B25509CA86EC01C0C9F3FC97371302BE7CBB0B9765672416F7
+          FA91807E9465CF023E7E752ADB4CB8950B6001F2ADD46DDB4DA18CD82ADD5A32
+          E29536B17F3E9F15A3343E44590A1604DD8FAE33F9D4216D2CF23BB397763B8B
+          3B724FCC9AB0FB9B4608CB13F25CE29A68648B1B91CE7B1C56814C054F6B3B15
+          1A3D3E6693731E48DA48E78A93FBBADE239124CC33901947F6E69BF37F10DA73
+          F3F4A6640E1495909C53868E48EFB8EF0A7FEEBB4238B876F96DA61EC2354E24
+          63EF95E054348AE261B83385F73C558E99A74CEE4493B953C10A0F140876CD50
+          334C497A8B0E9C645CA9DC3B7B11525B437862F31D915077F8F91566DA4CAB36
+          626F323230776722A9EF15EDE53BA274079EC6A5A034490A0CAAEA861AE4D8B3
+          421B04301C673486B2254920ED1DB1DA9B5BC2491B09FCEBB0F83DF674D73C50
+          783509EE60D23405942DC5CB92D228F5F84600E3FC6CBC64E7838C55EE685BB3
+          5D530B631950980B8D35993818207CCF35B0F49F879D49D6178969D39A2EA7AE
+          5DCA182DBE956725CC8C00CB602293C0209F60735EF89BC56FB367D936DAD6DB
+          A7BC3DB2EBBEBDB38C4725EDECC2E00955882ECCCCE91B679FE18F61DB9AE75E
+          217ED47F187A9E31074CBE9FD076BB7694D2EDA395CE3D9E4438FC867E758A95
+          CD4B9EF50A5DDEA4C0563BB9873979FF004AFB3A78CB732CB069BE1E75D49201
+          B6458344BC040ED86C271D80E7DBE55D0BA67F675F8D3D416F2DDEB1A2D8F43D
+          8A60B5E7565FA5927D71F13FA73F0FF7AD07A8FED25E2CF56B1FDEFE25755DE2
+          E31E53EB13AA7FF10C17FA5737D4EFAE751B96B8BBB89AF2E18E5A6B890BB1FA
+          93C9AD669D723703D09FD42836A37C56F1E31781C7C1BD6EDB4ABAEB4E91EADB
+          9990BBBF49EA4D7B1C18FE591B628563E8393C7A57389EDBC87233BBD88A7D62
+          79C848D09918E02A8EE7E429CBCD2EE34F9163BCB79EDA42376D990A923DC035
+          6B40680C71977F79224CCF248B2BE9B4DBA82EAD2796D6EE1759239E1728F1B8
+          390CAC39041C1047B5753E9DFB4DF8ADA2594F6D63E27F57D9C533F98CB0EB97
+          232D8C139DF9CF02B953468EC04608C7001F5AC0DC0E14006A7A5A4F7802A065
+          C306174FBDFB48F8B972C0C9E28F59CA01DC3CDEA0BB619FA192AAEE7C71F11A
+          F9DA4BAEBBEA5919B9C9D5AE31FA6FC56ADA569B7BACCE2DED2DE4BA936EE2B0
+          A96207B9C56D90F85DD4BA958B5C9B311F96CAAB01508CC7B7C200C0E00249C6
+          79EE7BE7A956D68BA1EE6B7CE026C6D470800954BABF5A7507544090EB1AFEA9
+          AADBA3F9823BDBB9260ADC8DC03B6338279F99A8B08B5BA526FA5B81B4623744
+          0EDDBB1C91C0E3DF8ADF740F0C2E76B0BFD1EE11811BB74B110C3D71860476F7
+          F5FD7A85B74DD845A5697690E8FA7C51D8EFF29DEC6333B166DC4C9211BA4C1E
+          DB89DA38180715C5BCF886C6CBB80EA3FF00A60FEAB452B1AD5B3B79CAA1F036
+          5F0AAC644BCEA1F09BAAFADC44D187BC8755686DA3604967DB1C4368395F8599
+          B8CFBE47BB3C0DF1D3C09B1EA6B787A7FC1DD37A5E78C8921D5354473750CA54
+          31459E4898803E520504F1DC9AF3374C7506AFA4590D3ACF591A4E95E6799259
+          407CB88938C931A601C8033EE2AC758D6F4FBF91659AE60B8991BFFF0006D442
+          7030061CF2318E3BD791BAF8869579D34CFF00FD15D9A562E66EE1ECBE9DF4F7
+          DA27A3B57BFB7D39AEE0B3BC90B9311B98596145FE6760F800E38C67D3D4E2B5
+          AEBCF1BFC1BB7D77EF5AC75679DA8E879F2B4E82E67441280C032A2E1198862A
+          189C10719C66BE67C9A85BC524B25AA5D461C1452F7049653DF71007E9DBFCE6
+          3BEA524527DDEF20F35500C7DE07C69CE54B13DF818033F4E2B86EE23ABF0B23
+          CCCAD42DE3774FA2F566A7F6EDBEBFBB98683A25BE8D1404F96355BFB9B8370B
+          F2542147CB9FCF19CD874BFDB4B57BBB5965D67A66D6D6C182C32496AF21BAB8
+          397219489159541C9E338DFC019E7C70354BDB0B6756B7B5696550773289597E
+          5BF008F9ED38F99EF51E1EB5D5F47B662DADDD5A488DF0490CA540EF8E437CF1
+          DBD6B332F2B6ADC291A2D8D97D49D1BED37D266C61F363D49E67412BC705ACD3
+          F900E701D987B0078C8E4734DCFF006C6F0AED779B8D7E58513219CD9CAC060E
+          3B282793C76F435F2A7A93C48D6ED2268755D62F7509701FEEB3169E42090030
+          8DFB0E40CF6EFCF0711F4CEBED66EEF34DB5BDD06E6EB48492385E685A085C44
+          49DDF1346C78CFE23BBE84631D215ABEEE681E78FB90A8D0DE457DABE90EBBE9
+          EEBED3DAFBA7359B3D66D5085792D250FB18A860180E54E181C1E6AFABCB1F66
+          CEAFF05BC1DF0FB7DA6BBA3E8779A83B1BA12EAEF772CDE512A0E5E288FBF091
+          85E78CF7AEAD69F6A2F0A2F14B275D692800CE6790C5C7FEF02B4B6B30804B87
+          BAAB495D468A81A36BBA7F50E9B6BA8E997915ED8DD26F82785B2B2AFBA9F51F
+          3A7355D52D744D32EB50BE985BD9DAC6D34D337644519663F2001357A8A97457
+          2AD1BED53E126B924E9075F68B0989B69379722D837CD4C9B770FA7FA56D1D39
+          E2E743757EA0D61A1759681ACDF29C1B6B0D4E19A4FF00E2AC4FA5403DAED8A7
+          042DB68A28A9A4B0CC154B120003249F4AAEB0EA4D2354BC9ECECB55B2BCBBB7
+          389A082E11E48CFF00DCA0E47E75AFF54F871A4F5C74E751F4F5FDBDFD8D8EAF
+          207BA9EDEECABCE70A3284312A308A0A90077E0F26BCE7A5FECF9E8FE84D5DFA
+          83FEA1D6F548ACC79B6BA70921B779650D954694E010D8DB83B739EFE954BDCF
+          04696C8F34C4735EB68351B4B9B896DE1BA8659E2FFCC89240593EA01C8A915E
+          4AF11F59F05BC4F9B48D3BABAF7A87A5AFF4F66D9B6C6EACC5BB9043279A9179
+          7818EE72A7B83EB5DCFC26F05BA7BC27B59FF70DFEB17B15D22E0EA3A9C9728A
+          A3246C42760EE4E40CFCE86D4D67BB11E685BFCD218A26758DA5206422632DF2
+          19207EA6B28C5D158A94240255B191F238AE6DAAF83DAAC93C13E8DE24F5668F
+          2418091C93C37909519E19668D8B1E7BB3135B174674B6BBD3DE61D67ACB50EA
+          92C30A2EECED6054F98F26253FA93530E33042216CEB22B970AC18A1DAC01FC2
+          700E0FE441FCE9545153491451450845145142114514508451451421795A6FB6
+          7750F4BE9373D41D65E1C43A3F4CDBC6D34B7965D456B712A26EDABB6362865C
+          B103E0F53C035F39BED37F6FEEB9F1CBAA6E0697A9DD74B74C59CCE34FB7D16E
+          E7B4B9963E76B4EC1CA96EC4E00C761DB279FF00507496BB65791DFE953DB5E4
+          F1DA3DACB950E1C3160C5525DE10107B29C039C050715A1F53F47A683A469B7C
+          408CCA9E5DD5BB655A19413CF3F8830E432E40EC79EFEAF84B787132CAC1EE3B
+          4E0FB7EAB9574FAE305847F7AAE89D35F6CDEB1E93B6B88A69B57EA18278C46F
+          69AD7526A1716CE39CABC5E680CA78C8F51C7009CB1E267DB5BC40F13BA761D1
+          6EAD342D1B4E8D361874AD3BCB0DDB9C166018F39200241C1CD7129A48D998A8
+          0CAA3F17A1F6A4C114B719211F61FF0008AF47F294756A0DCAC82BBF4E55AD9F
+          5E756DAD9F936DD4BAB5BDB1CFF0A1BE9510F18E55580ED5D97C35FB74F8B3E1
+          2F4F4BA3F4FEA36E892127EF5A8446EA65276F3B9C9DC015E0386037371CD70D
+          82C618EF22B7B9B93044ECBBD9909D8A7B9C7735D1347F0DF46D4E75F2FA921B
+          C8C67747045B5C8FCC923F3158EFEE2CED1937431FFB491EE047B952A46AD43F
+          F1FDE17A2749FDAD7E32E95D2D6BA5258E89A86A913297D5B5081A4926007C4B
+          B1191793EBEDFAD739F13BEDB5F685F16E7F36E3AAB51D0AD25845BFDC740DD6
+          5030072490A771624724B76E381C51A574EE93A7C205A5BA889072638F38F993
+          8E6A6C76D6D272A082C71978EBE7B53E24A14DC4DBDB0F33FB725D86DB388EF3
+          D6AFA6F8EDE396897B6B7F67D5BA8DA5C83931D9DF3DBA365403BD10AA608033
+          8C73F1673935E8CE9AFDAB5E34F4E74CC169A8F42E85AE5C5AC6233A84AD3AC9
+          2E3382C039DC718E477EFDCD71A9B498DB3B9550F7E53B8FD2A0FEEFB6009696
+          31CE3E2CF7AC3FF889D53FEAD169F423F5568B78FC24AF4F74CFED84EA87B5B2
+          9F59F0E74F99A579A2923B2BC3100C154C672CCC5572583165E3D324115B4693
+          FB5F5F5A898D978557D7771042CF730457C9C3060372360929F10CFC3C647BE4
+          7916D562B64291DD46CAD9CA8604E7FE7A53324D672CA3CF685D90646E51F0FE
+          A3E5560E376CE3DEB6FF00E47F653EC1D1F8FE8BD29D4DFB5EF5E96E74610F46
+          374DDB09D5AF1C8174F3C6194308F7140303771CE4E06E1CD6EFA87ED95E84D2
+          6D634B7E92D735EBAD84C92848ECA356F600C921233EBC704715E29177A10573
+          3E9B6D33B0F8D84689BBFC27F09CE39FF6AACBFD2BA735207CDD3ADA5041FF00
+          CBB7C11FA639FF006F6AD838CF0E301F4081E067F6FBAA7B1AA261C17AFA1FDB
+          56D249013E11FF000CBFF100D7F90993F87FF0FC9C63F43EFC74EE84FDB03E14
+          EBD76D6FD4DA06BFD24BFCB72D1A5E423FF5796778FC90FE55F35EEFA0BA52FE
+          3F2ED64934E9C7A966033F46CFF95544DE17C5A7C725D35F2DE5BC4BB8A26118
+          FAE7B9F4AE93788F02AAC27BCD3D333FA8F72B296DD30F2217D59EAAFDAD9E07
+          E8F6DBF479B57EA09832EE8A3B0920F8493920B819200CE38EE39EF8D2E7FDB3
+          BE1CACACB0F42F534CA19543B3DBA6473B8E37FA1C63DF3CE3B57CCB8BA534B9
+          BCB912364DC41649890A7E631DFBD5D45A0E9B1E0450C65140188C6DC91EB9EF
+          CD627711E14D034B1CEF3C2B1A2B3C4885F56BA23F682F43FDA0FA2FA8AD743E
+          AD87C20EA0B5855A3BFEA8FBBB2AFC477F96AEFB243B01C724824128C061BC0D
+          D61E36F55F54750EBBA55E7596ADE265BE977921B592E2EE3923656663E64663
+          93610110125538C8190381CBECDB4ED22CE7B75D3E1FBBC808923EEAF9F43EF5
+          1F4ED03A76682E6D1E21691CE36B37C2EC1776701B6E47D4E78E2AA6713E1EF6
+          D4654A67492207873C883E92AE14EB0820E56F10F8C7D28B6BE64DF7D0CA079A
+          AB0A0311E72086752C7D3E1CFD6A16A5F6A6D274EBD96CBA6F4183F764D0C317
+          EF1BE8CFEF15932ACEE9B99E18D7395FC25B1FCC33C4DE9EE88E8FB011AAC16F
+          34462F2D9CC8559C1186CB020F3F9550F50F837D20D7772B692DD5AE143A7933
+          2C91E4E72BCAEEC0F99AA2D6B703A6F32C7799CFD8EEB4385D16CC85BBC1D7D0
+          F50EDB9B8D62C998B038BCD563E3239E4B1F6C7E55B858F5FD89D3A4D2E3EACD
+          09527912696DDF5789A12541098881FC4016C1249E4F6C9279374069B77D170B
+          5A5B6B36FF0075625BCBBDD2125DBF30EB22B7E59150B50F19F528B53365ABC1
+          FBCF4C546114965A7CF13A1CF6612376C67B13CFAFBF32A59D2AD55C2CC9701D
+          0907FF00937E92AD6562D6FF00C98F6FD0AF48E9DE26EBB26813E90FD53797BA
+          4DC491CCB6A972C110A82176107E1E0FBFB7CB17F0F8F9AEDD68575D2D7A2EF5
+          F824963974F79A7324F6CC3860839DCACBBB2831CE0E78C1F2A2F8B66E4A8834
+          3D5A509820FDD71C0F6CB63DBF5F7A8EDD7B75AECA1E0B27B25EDE55CC923487
+          FEE2A0600FFDC3BD66F90E20E0ED40E90332460797F09BAE68B46375EA4F0C3E
+          D0973E0DF88CDD4D6FA57DF5442D6975633C4A92BA123281CF28DB9060F6EE0D
+          7B83A6BAFF00A07ED5FD2891CB3FEEBD450AF9296DA943F7D80B0562C9825948
+          E01DC839538C8C13F2262D5357B6848921FBFC614E632FE537E5CB0C1FF9DEB3
+          69D75A9E897E97034479DD016486ED44D01E3D4607F4208AE970FB5AF1D8374B
+          DB3BEA18F4398F4582B5D31BDF7483E47EFB7D57D2AEAEFB206A9A86B57375D3
+          7D613757BC72F93A827525C937AAC17201982E1F82A390BC7A9E71E52F1E3C24
+          D7BC358EC746B2920D23A96F2E0EDB2BE8C1B6C08D98DC42DC82CAC762E5473C
+          F201AA593EDD5E2E4BA3E97A2470C565A1DA69A34EFB9DA596C889DBB1260D20
+          672EA30C32D8DC01DA31CF37EB0EBABBBBD11AEEF6DE59AEACE27905D47223CB
+          0B6C03967218E428181DF0077C5742A59B2C6BB6A012F76C41900EC2448E7E09
+          52BA15DA5A3007510B7FD5FAF3AAC6930D8E9BA841637D6D08125CDF09675925
+          192659232CC8CFCB0DDB0F72700FC435CFB3A78A1D63E35F8F1D2FD31D7FD51A
+          91B5B9BEF32E340FBBC76F65748A0332491AB20219015DB800FC3C9C60F37E8B
+          D57ABB594B83AB836D6ACFBA39C8488AA153850A33BBB83CF3C773CD76AF0C3C
+          4BD4BA435EB09DAEEDA3D321558A74B4D1EC65967883330004B1E1DF2C7E2660
+          C471BD46088DADE0B1A8FA35F4B89FCC2304F8C2D0FA66A80E6481D17ABB5FF1
+          A3A67A045B746DCE89A859369E82227491686DC3632CCBE5CA32A5B391E52907
+          23039AF1EF8A461BEF14F57EB0E9A9DEEA0D652282EA1BC4849899481BD1A4DE
+          48E3240098CF071DB7FF001A7C47E9DFB455ACEBD6B6FA47878B6B702F6DF5DD
+          32D05CB5B30E152588B626563B54905319C9C85DB523A8BABBC3F8FECFFE1BF4
+          CF406AD73AADF41E7CD7BA8DEDB44B2A06624A3388F732B3BB955DC36800119C
+          05C4DB76B5AEBCA354F7A5A41073CF7273CB6856EB248A6E6ED94748F883D31A
+          6695F73BD875157742924DFC392207FC4B0E0AAFD067EB5A56B63A7F58EB096F
+          AC754D68EA2F8F267D3ED5ED6500290A018991980EE0E71F238AD37AB353B68B
+          486B9960B9BA9631B64FB9C5187DBCF2060EEEE73C03DB9E05736F0FBC479A08
+          96CFA975445E9133C9E54310885FA3640C071FC555C31623CC5048EFEF2E1BC3
+          ABD70FAB6F508230411F6DD15EBB0435CD5EDAF0BFC4DD06DFA5F52E9DD534CB
+          EEB386F80F345DEA17109D8061BE20CEFCE39C3A8E7381E9C63C53FB2AF47F5F
+          2DCEA9D15692F41F96577457976B369C4E092A5D8030B63691BA470DCE36E467
+          9A58496A628743E8582E2595A317F797335C799F77474CAE7854C7E1047C78C9
+          F8B39C5EF879F69DEB8F07E4B9B7D2F579F45F39435D4514EB3C12641C318DB2
+          18E077C1EFDEBAAD37B6358B29D4D47723131E2D9FDFECB21ECAA364B63C792A
+          FEA9FB06F59697A1DBEA3D33ACE9BD6824257C8D3580690AA177F24EE2260B8C
+          7C04F21863E135C5FADFC25EB3F0E0447A9BA6354D0565CEC6BEB568D5F071C3
+          1183FE75EA4B2F1C35BEA2D62DF5BFBE59C574177ADE5841159BB93FCE4C4AB9
+          639C64F3EFEB9EB3D44D75E39F4BD9D969567A441D50B6C624BFBFBC6B70ECE4
+          6FF8901FC79395C8047D4D742DBE22787767587BE3FD2A1F6408D4C2BE68E32D
+          D8934E202C0F38F6AEBFE22FD99FC4AF0F75ABA8F59E8ABD814B9C4D60BF78B6
+          3F163E191723B9C6339E0FB57357B74B1BD6B7B9496D6E118ABC532156420E08
+          20F20F7AF7346AD3AC258E07D571EA173265A557C59575271B876A9F6B962A49
+          0809C191CE557E78033C7CA9C7B1196686456048E31DEB0B6AC5492837019C0E
+          F5B008588D46B9768F02BC74D6FC29D456F3A6EFF581AA4B19020D3A6F263918
+          1E03801B78CE0906360471E95F42FC17FDA3B3DC49A4D8789BA04BA225C6C8E5
+          D756DA68AD95D82ED1B4A92793F110700F6E066BE5A746F58EA7D1F782FECBEE
+          E240115A17B659566C3640656CE73C0E319C0ADA2F3ACBA8FAA75EB6D427BFB3
+          E9B86E5945D5B6951496B09F871BDA3894827BB13DF2C4F735E1EFED1942B39E
+          F801D919CCF9463FB95D9B7AC6A300613237C617E8362952789248DC491B80CA
+          EA72083D88A5D737FB39DC5B4BE08F45ADAF50DAF53C31E9B1C4BAA5A070936D
+          1B4F0E4B6571B4EEC1C83955FC23A4579919C85D74514514211451450845693E
+          2A7544BD2FD3F25CC579A55B100B11AAF28CA01C8DBB816FA2E4FCAB59F153ED
+          45D09E0A6B16967D69AB43A3DBDD8221BAF35251BC1E55A342641E9CEDC7CF35
+          C63ACFF68FFD9D26D16E9B53D513A8120902AD92E9AF333B819F8430C100F1BB
+          38F6AD54EDEB3F2D692A973DB112B9BF56F8BFA36B1D1B36B7ABAE81696FA8A1
+          296B68ED6375729E6677886E63D923103728DCFC804724E3CF3AC6A1D01D47AA
+          6A961D2335DE8B6E933384970D6B23B30CB146896541F096C232027B6057A3B5
+          BFDA35F67EE8E11FFD3FA125C4D903EF5A3696A8D699032033840CDC93846C7C
+          3DF2715E1EFB46FDB3B53F1C6D441696F71A53C720FF00C408E08D9E300F1950
+          594FE13F8CFA8E38AE8B387D7B96E900B7C71F6233F454B6A32999395CBFC70E
+          995E8AF10354856E639EF9845726EACEE124B7944B18933180A085192B8E4F1C
+          904107983C864909762598E73F3A9534973764F9B2B48064F273CFA9FA9F7A8E
+          BB233FC4CAE7D315ECE9B0B1A1AE584B812612A2850F76249A7088E2073C9F6A
+          65A75190A323D3D29C8A1DC3731001F415708D82ACF5290F2B39DA9F08F99C56
+          25836CAE82459829C09173B5BE63201FE94E3AA440E704D3625017E11F95448C
+          E4A9038C2C6C080E714D99B6E71431627B67EB4DF92CD938E3DEA04F453681CD
+          066639A4F9CCBEBCD60A15F51F4A4F6AAE4AB400B3E63313927F3AC67FE6296A
+          B9078CD656227D0D1053901201FD29C319039207CA9D86D95CE090A3DD8D6CBA
+          0F470D7136DA09A798E36EC88951DF2493E9F3F4AA2B5C52B66EBAC60284C980
+          B525439E09AB1B4D8FB570FBFB0C2E4D76BD13C2CB4D2F4D17D722DF703E5B20
+          747CF7F42DEB8F4FE95355F40B10D25A69D1473760581C807F97E9F9F3939CE6
+          BCAD5F8AADA8B88630956F60E78EF185CAB4CD2350BA770BA74D3E17779920DA
+          A07CC9C0FEB532CF43D5EEE45861B3DE2456742ACA10AAFE220E718F63EB5D09
+          7558228AE2344112CDBB7C69180AD9EFC7CE99D47AA351BDB78E1FBC1C20D886
+          6CB0033D80AE7FFE30B826194C7ACAAFE4291DCAE7FA874E6BDA75B79D268B72
+          96C543F9C90974DBCE096191FF00335AF9D7A604FC593DB915D3E7F3678596E1
+          52E10FE3552555BF21DEAB66E9AD2AEED045F728602C40CC2417CB1E3E67F2AD
+          D6DF1731C22BB083E1B7DE7E8A06C98360B9F1D53CD27722824E491C53D6D1AC
+          E42A9DA0FF00313DAB75FF00F46FA2DC3148EE6EA190641DD838238ED8AA9D4B
+          C2FBFB47CD94EB769ED8F2DBFA9C7F5AEE5BFC47C3EB3B49A907C71F5DBEAA2E
+          B4701DD0A14421B641BE62C47602B27545894942C5BE791FD6A14BA3EA16726C
+          B985E2C703CC1DFE87D6B60D2BA266D460DE4AC6B8C976CEDFD466BD17CCD314
+          8D7D4340CCF285C87D36B5C1AF324AA5935AB99242C18E3FC3DC5555CF9D7121
+          677620FF0088D6D97FD1B269B20590C4C4F6F2DB3FA8EE2A7B74E417BA6A456B
+          A3DCFDF3B35CF9F84CFD08C62B355BCA42936AEA961E72001E2648C2BA91635C
+          5AD105567879ABF4FF004E6AD6F7FABDA5CDD4B0317DA8C3CB6F61F849CD7A17
+          C4AF1BEE3C40F0E5F44D33AAEDB4CB7F80C48F76126007F23907B11C73DB03F3
+          E0C9E1BDE291E74F0C6873960DB88FCBD7F2A22F0CEFA49808BC8F248CEFB862
+          B9FC8026BC7DE7F8BB9AFDB8BA01CDCEF237DA0FD82EC52AD518DD3A265504BA
+          725A158A47432F606270EADF983519DA25561B9770E30335BDDA786725BCCB2A
+          DFC56D326195E12D90D9EEA7823EB565A3F49B4F3C936BD0C3A964615E5E65C6
+          7D483CF6F5C9FA574EAFC47674584B5E1F0331209F20707DF0B1B2D5EF3990B9
+          94372A3200CF1EA334FE9F631EB3A9C56892C16AD310BE6DCB9080FE409E7D80
+          AEAF71D07D3176241169E6DE43F0EF495FF51CFF007AAE83C238ECA55BFB0BEF
+          2DA13B945D22C88481FE5DFB56567C55655985A0963B96A189F49577C939AE9D
+          FC96CFE1FF0086FA6F4E5BDC7DFDADF50BE9C8CB797B96303900647BF39FA7B5
+          23C49D02CEDBA6EE9ED34AB29A52A774CD1AA3C6BEACBC649FCE9BD12FB568E2
+          31DF793E62F1E7C6DC49DF90063158D7ED24D72CAEAD9EE98065E5E40580E73D
+          CFD2BC17CDD71C4055B8A9ABBC24832231B4728E5E872BAE08EC086B797AFD56
+          AFA2742D8DCF495C4FA7DE1D4AE668F6AC3700247139C6E38E486007073ED565
+          A1786FA45BA40D776935CCA48FBCC6EE1D738FE4642081F3C1A6FA5B56BBD46C
+          7F7659DCD9C09663E196685DB7A963C90A547A8EE735B2C1A8CD6CE22B8C4E31
+          81247195527E9938FD6BB37D7B7F42E2B5B87F3277831CBA0DB31BFAAC54C527
+          D365476271EBE3BFECB0FD13636FA8FEF2D2A6B9D26F532A9248FE70ED8E43E4
+          9E38EE3F2A7B48EA8BAB7D723D23519E3D415F7FFE28422156206420C33063DF
+          390A38F7A58D4A41188CC43613C8C0349748249BCD862549C77931C91F3F7AF2
+          EFBEA959BA6E4EAC40262474CEF03A4C2E847659A78FD56CAFACEC531B26E6FE
+          5663E9F4A887551BCEE98202320FA83FAD6A3797725A5E2665CC6FC0C9E6A45A
+          EB715CC6C74959EE24270D298D4A93EA158FF7E6B9C1BA84AB0579395B249A8C
+          7E59C891C770141350DFA9962E05BCB9F983FE82A1DAEAD771C98B847DA47624
+          67FA54937719903BEF119ED939E6A4042BC1D43BAE8595EA6775C8078ED918A7
+          22D6AFA7CB4292C983C009FE9488274B72590348A3D03646327D2AC23EB0B8B3
+          2B25B9551D82018F4A53D028C11F89CA1470EAF70DFC6952CE2F532F18FEE6AD
+          A0D274EDA0BEA135FC8A73C28014FC89C9FE82B59BFEA2975399C32B349C64EF
+          E09C9A55B6AF7502EC0148232477C9F7A2500B7CD6D0F71611AB472C13C88782
+          0B839FFF0066AB9EFE359C18D552D071B58E580A8916AB3BAE195727DC0C5469
+          B75CA90E437C877A5014CBE461585CEB500726040C4FE2DE83D3F3A8CDABAE3E
+          12F18EF81DBFBF1558F6CC388D580F7CD2553E3C364E3DCD381B2A0B9EB61D37
+          AAE6B4DB225DDCC134477C6D09C303EE1B208FC855D5BF881AC6AE5D2EF5FBC8
+          FCC4646F3AE649372904303F10E08278F5C9AD0A43C9DA360FCEA2CF3B22E771
+          241C003D7E54848D8AAFB420E56E93DA692654171340E3390C8A53F51C823F3A
+          9BA55B74DDCEAAB757B0CAF6B1CDBDFEE1B125418C8D9BD5D0F247054E718E3B
+          D737B4596494C934C243E8A7F97F2AD974664BCB89D2EA49618A188B2B43C65B
+          0428E463938EF8E01C73536920882AD6B83B10BEB668DF6CEF093FE827D560EA
+          62ED636A3FFE1B71194BE9195701021E1989F5048F5CE326B93749FED3BE99B9
+          B4BB1D49D23AAD95F46CFE547A5C915C46CBC950CCEE841C601C03EFF2AF9ED2
+          5CC5143E48919236196C1C93F97BD553DDCD10FF00C3111478C1270CDF99ADC7
+          88D671C40512D017D10B6FDAA3D386F2486EBC3FD66DA3DFB5255BB8DC11EEDC
+          0C7E59AD43C53FDA41375574FDE5B7475A6B3D27ADC33816B727EEF716F7116E
+          019A40EBB9580076819073C8ED8F1358DE4AA550B42EBC70FC91DFD09C56C622
+          FBAC31BCE238A1990B24C91818C120861EFF0021DEAB37F58B4843593CD6E32F
+          DA67C4D8AE2496DFAD35EB75909764835095232C7925630DB5467D1401532CBE
+          D75E305928FBBF5EEAC1836774F209FF00A3A91F91AE5179AAF931B322C53293
+          DD13073F3C5554DAC2CD9C06507D0F1CFD01AC62B56DC38FB94F0BD370FED01F
+          19E18A28D35BB6BD91171BA5D36DF329F9ED41FD00AEE5E1AFED32B1B7B25B5F
+          103A6B52379E6605F68D0465361C637A348391F164AF7E30B5F3BACA6B9B29E4
+          92150C4F720123F23DC52AEBA9753EE11634EE7099207E7FE95AA9DDD7619067
+          CD28690BEC9B7DB27C184B28EE8F5F69DE5BA8608A92B4833E85029607E58CD5
+          3CDF6EEF05216E3AB2595738DE9A5DDE3FAC62BE3DC9ABDEEDDCDB9948FC2F18
+          E3E5FEF48B6D72FAE5B608D8AA8E40C8DB5A8F11ABC80400CE657DAEE8AFB55F
+          84FE20EA90E9BA275B584DA84CE238ADAE964B5791CF655132AEE63E80649AEA
+          8922BF6C8E33F1291FDFE95F04F46D5F59E9ED62D357D226FBA5FD9C8B7104C2
+          34768E453957018119079EC6BBCDA7DBE3C6EFB8C36B71D58AAD18DA6E174EB6
+          1249C9396CC647A81C01C01EB927452E24D20F6833E1FED474E70BEBB515F25F
+          4BFB7778C76AAC1BAB2475720EF9B4FB67C7A7AC47038A93A9FDB5FC4EEA59EC
+          BF78F51B4F6303EF92CAC94D88B8F9349014971FFA5C76AB7FC952E87FBEAA62
+          913CD7D5FA2BE67F899F6C5BAEB4F07EC3A76DFA7F5DD375B81C3C7ACDBEBB70
+          151D5C924960CF2E5495C33F1BB83C0AE4FA7FDA0BC56B484C87C40EA08016E2
+          297529588E0F00127039F97F4A1DC429B4C01298A2E2BEC456B3D71D6373D236
+          B03D9F4DEAFD4B73392A96FA546876E31CBBBB2AA0E7DFD0F1C57CBDE9CFB49F
+          8C29AA47359F5C6B1753676247348274627D3CB7CA9FCC575883EDB5E2C7456A
+          3629ACFEEAD7AD9D57CD13DAAA13DF237C240561EBC1C7A8A6388537608211D9
+          382F09693E3368C358BD835448ADAD6362B1CF0079FCE19EFE9CFE58F9F1CECF
+          69D53D33E20E87A9E9B65246AB22EC9124531CC54E718DD907B7A67D2BCF1636
+          BA4C31AC970CD93FC8AA4927DBD85449955A67F29D9E253D9BD3E58AF7557E12
+          B470D549E5AE11046608E71BE77DD7019C55E496B9B23C70BBBEADD15D2BD29A
+          4C571AC6908F6CA3CBFBC22E19C6EC670AC371ED923DEB9B6B7268305D8FDC0B
+          73F74C64A5CE38393C2FAE3EBCD5735F6A17B676D0DCDF4F7369111B2079D8AA
+          8E32141C81DBF2AC1FB98898E668240C483BD645233DB18523033CE4FD057478
+          6F0CADC3DC6A56AAEA849E47BB1E44FD962B9B9A772DD0C6803C7753B43E968B
+          AB2616D73AD5AE9B33BB2C511B796495BDB042EDFF00F6B3F2AD9D3C1D8B4C88
+          4B6BAADDDADFA8052EA50502FA1E0EDEFC8EFEB5A459DFC57527968733670A17
+          393F3F956DE9D2135F59461AEDD6E781991C954393C119FEB59F8DD2AB4C8ACE
+          BCECE9ED05A0E7D0491D419F1C285A5C06C51EC65DE1F7CECAD74AD0F51D3266
+          8AF7A96499880153680C7B9E324FF4AB1BC9A2D323DED24B3EEF8B9C29F5C9E2
+          ABE0E9CB1D2C0BE5BA9AE6E222236318F849C7B939C566EEEA5BC3BDDC797D94
+          4A77151FA57CAB8854A4EAC3B2A81FD486E9CF92EED12F737BCDD3EB2A41D6E6
+          195B7965B6527D25E0FD38A877574A921596FC48EE3E2224DC79F7C1A8378AA6
+          62A11E62403907BFE5F5AB9D17A22FF54BC5491EDB4A84C4266B9BE7288B1E71
+          BB8059BD4E1549C7A1AE608256882A0C9762D462D1D662460C9264E3E80FFBD4
+          55BA59D497B8119276FC6A719FC8D746D53A3BC3AD2ECEDE2D3BAD27EABD6E70
+          BE64367A6BDB5B47C64FF1246DCE7E4231D8F228BAE9CD03A35553AAFA5F549A
+          3902B0686F05A4CA08C8CA94900CE41191D80C0E735288DD024F35CFE1D3DE48
+          F118F3B27F1A0CE383E84D459167B7932C8429E07999FF003E2B7DD0FA6B4DEB
+          25FBB747699D492EB10C4F24D14491DDC6E012721555586171E87B13C0EDAEEB
+          7D25D45D3AEADAA697731433219524961640EA0952C0100E3208CFBF14A3129E
+          8E6B32E8067B48E4B59017070C429E41C63071F5A5D9E977704771691C5F7812
+          E3989FE2CE7D8F27DAA8EDEF2E56522DE5C03DD7240FEBC52A4D42FA32A1A764
+          246700E327F5A0053D43785716BD2B7B74E56281430E0876DB8FAE45626E94D5
+          E31205B4E01E4A30604F7F7AAD8F52D4A28CCC975226DE73E66473F3CFEA2B60
+          D33ADAEF6F9171248C4820B46C086E4718F5FF007FD4D4549AE6F354B3E85776
+          C8649AD665841C17D876F6F7ED5062B4B68216448DD660018F18DA07393CF24F
+          6ED8AEA70BB5D69F2C8E5EDE3236AC73655198725413C640EC3D7D335A86BBA2
+          8D1DBEF1E624A8CA0128C0807BE3D7DEAE654737214DCC9120E168F7FA9EAD65
+          1490DB4FE54B9210A418007CCB13FAD45D1B5AEA4B68E79AE2459A3071BEE5DC
+          773DC2818C55DB3477648660AC4820E3D8FD2B22CDC2EE89DB272541C633F911
+          9AECB78933B214C516F898C9F68C782CCDA6492ED455959EBB732449968D9C81
+          92ABB73F953D26AF34C5549030C38FC40E3B8E0F07BF35456906F9712CA91BE4
+          9D81B6A86F6F967FA7F5ACC5AADA92425CA9F2F008DFD8E7D6B980CB89015A1C
+          06095B4C7ACC7194DD12B719201CEDFAF6A72496D75431B47849636C865E3E5C
+          FE5C569475B8A59C00B3DD73853128DAA7EA78FEB56B611195C48AFF00772483
+          B643E83DBB8E7F2ABE4D3EF6C54F0FC6EB6554C3B363E3EDC71F9D2E1B9F2A56
+          264DEC171820FCFD6ABAD2E5D416C2C9C76CF20FD2A26A1ACC91DACCD656CB3D
+          C28C2A48C4024FAF63EF5900351DA405A600195B0C37D7119F86359149F84E4E
+          7B7D3DFF00CA9571AE25DF9AB2E15436186723F3FEF5A6C93FDF0C6B3A1F3586
+          5F8C007D460E73ED4BB6BB9E6B797CDF336AB6D2A5803C0F439C7B1CD4C3037B
+          CA320E16EF14D188D1E3915610A005C6140A79EE3CC3E5A91B8738C8FF009EF5
+          A745771C36ACC669022E18BBC84E3E596CFEB5AF5FF89305BDBBC7652BCD77BB
+          0BE62663EFDF3B87A7CABA767675EF1FA68B49F1FDD5752B32909715BEA6A976
+          9713A4F0DC4200E1C10D1B8F5C32F3F3E40ABDF0BEDB4FEB4D2AF2EC452DBE95
+          6F726DE5BF8AE56192100292D1C58FE20F88F0593248F89466BCEBAC75A6B3AA
+          5B35B5CEA32C90BF0570A323D891C915B77873E3343D1165796979A147A9586C
+          2D6B6892945494E7E2666DCC47AE0115EAAB701BAB7A05D4DA1EF9181B473DE3
+          27E995819794EA384980BAFF008ABD1171D31A3437BA5753A6B963733102E74A
+          8C4935A5B850C5A74936146C6EC7017236EE24123CCA6FADADE521DE4BE9848E
+          240199526CB64B6ECE79C0E31EDED5D16D3C46D74DA9EA3B9D6B41B6B4DEA534
+          2492413B6D3C041182E878CEE2E3BF71503AE757D03C41D3AE759E9FE8ABAD1E
+          F2DA4F3352B85BB334186C856E402AC49C9072723393C8AEEF0B69B76963E981
+          C8B86D3D0CC199C6242CD5FBC64389F0541A4F4FF54DEE94D2E9369711202773
+          C21602EA40E0364171F0F239C11EE4D5AF487873AA6BBAE4716B16D32A484032
+          7DE630C5B38F88B1EDF3F95356161D577BA1ADC696DAAB5B3A7E35BB18DDBB07
+          6A8E48C7B01CFBD555AF4F757B3FF0A0D5CC880B0C893804F719E3FD69D5AB5A
+          A76AD656A6CE53F9879F7B749A1834CB49FB7D9778EB3D174EE90D0B4BE9EB5B
+          A3A2DEC970B2A48EB1B2B85CE531CE77719391F9D322EBA82CAD0FDC6E125957
+          24797945073E8371FEF5CDFA3BC60BCE9FBE7835B12865C219921DB22FA1DE38
+          3D87B56F56BE25E89D4B097D2FA82D74ABD572DE4EAC36C721E7D7208C9E7233
+          DFB5782ADC3AF2D9DA2AB750992EDC127C627EA575E9D5A753BCD31E0BA27873
+          FB42BC50E811A9F4CF5AF9BAE68F3868049AB1797C9078560E72D8C01C027E58
+          3CD5778A3E2DF81CBA0DB5FC1D296FD4DD577AAD334921DB66AC37AEC78E1951
+          830F84863DC30072558B576A1E3541D21D37ABF4E75474FD95FE95D450074BBB
+          6B8FBDDAC8E9B88D92ABAB46C58F21806008C800D796258ADEE2E6E9A0516E83
+          E28E12E643DF18DC060FA9CF038AF59C3ACDB744542D2C23A1C1F22B9F5EA764
+          08DC294DAEA9BE9E68AD63B68A472C96F196291827F08DC49C0F99A9D0EA70BC
+          2ECE8030EC0377FCAB5F9008C28C1DC69A0189F5AF72D716085C47D06543A95F
+          DBEA2913F98DE633290D1F96C17630390790411C1AF52746EA5E0FF53F445A5C
+          DF6BFD53FF0052A929730C5E44A91600C6237F2B703F101890E31C81915E4582
+          D8C8380C47E957BD29D407A7B5882E66B64D4AC91D4CD653310B281E848E4719
+          AE2716E1FF003F4B5347786DFDFB2D56D505031385F7AFEC6DA5E9FA57819A44
+          1A3F51BF51697E6C8F0492D9A5BC96EA4F3032AB36595B24B1273BBBE315DC6B
+          C6FF00B39FC56E82D6FC3FBDD1344BCD374BD5649D6F0E8C6F0CB74119146599
+          B86208C6D5C9518DD8C8AF6457830D2C1A4882176819CA2B45F15BC6DE8DF063
+          459353EACD6ADB4D8D421581E45134BB9B68D88482DCE4E07A027D2AF7ADFAA4
+          F4674BEA1AD7EECBCD5D6CE2695AD6C155A5650092406207007BD7C46FB627DB
+          8356FB455FDBDA595A0D3B45B4B979A23E748CD2657600636628AA0679DA0927
+          3C76AE95959BAEAA47E51B954D5ABA078AF5F7893FB5F3A52CBA9A387A434EBC
+          BFD16288ADC3DCDB849A593763F84DBCA800648273938E30735C33C55FDAFF00
+          E22F51E9FA9697D23A25874C5A5CA79716A3705A7BF8414C310CA5630DBB2436
+          CE38F5AF0926A063676548C3B73B82F6FA0EC2A14F234EE59D8B1F726BD5D3E1
+          76B4B3127C560EDAA3CC1C0569D53D69AD75BEA8DA8EBDAA5DEAF7E411F7ABC9
+          4C92104938C9E71924E3B0CF1558D7726D552E4A27E14F41EF51C8DB91C5608F
+          40735D0063011A4152EDEE183E576FD0A823F4AD8FA6347B1D56667D4AEAE162
+          071E55AC2CF239F419C10B9C633CE3BE0E2B5000AF1EB569A5AED7CBC8B8F9D0
+          E6BAAB4B1AE2D3D447EAAB7C33BCBA65CF8372EA1AEA41D3E6EEE6C265063FBC
+          459995883F0617F1E0E06405C839DBE95B1C1F669BE5D1EC2F5A5B99E4BB87CE
+          8E01A7B1F30072ADE592C37803B100F208E2B4DD0FC54D67A563D9A7DFF96AD1
+          985D227742C872082C1B241F635B5F4F7DAE3AE7C38BA92E3A1AFE4E95924863
+          8A4685C4ECFB40C9CC80E37150481C7A76AF2AFA5C7C3C303C691CC69F73237E
+          B0AE63AD5ED24833EAA2EA7E03DD489F77819EDB501106115E466246F99207C2
+          0E78278F722B915DD9C9677D7166EF1C8F048632F036E42412320FA8ADFBC5AF
+          B4F789DE365DCB3F58F586A3AA2382BF75DE22B641ECB0A6100E3DB9F5AE57E6
+          38240248AEC58D3BCA20FCDD5D7D31FAFF00087B587FE988562222090D9C7CEB
+          22318E6A02CCE9DC9FCE9D433F92D3EC262076EF3DB3ED5D5ED1A3755766E529
+          9015E302A2C84E0E0FE558FBD96E290D26E3CF6A65C0EC86B08DD200CF7A7228
+          99BB0C8F7A48018F008A9103C8C76A6E663D80E4D4040C9561263093E5143CB0
+          3F4A7A32CFC6DDC3B0C0E6B6BE9AF0AFA8FA943C96F61208906E676E001EE4FA
+          56DB0F8532E82FBDDE195D872EC448233ED8E79AE05DF1FB2B30407EA3D07EA5
+          0293DE261527871D110EA37297FA842935BC6EBB6D2E0B224E7D8B023038E704
+          1E6BAA5E752D8F4E7DE574FD2EDAC7CD4F2B6DA29D9B3FC3B4BB1238CF73C807
+          27D35A96D7F7644628DF2C4157529B877F5E7E55AE3CD21919A4C8603E2208C1
+          AF975FF12ADC46A9A8F30390E8B6068A431BABDD63ABB55D74C6B7D7924C9128
+          4894B9C46BE8A0138038F4AAC96FE3B3883CF288E3E06E6393FA557DE5F8B503
+          7E1CE33B41A8C9609D42C0CD3B476EBFFE28F1DFDF26BA367C16ABD82EEF068A
+          0324F323C04139F258AA5DB67430CB958C5AE5A5EB2456C65B9989FC10C449FC
+          F8A932865623714C1EC47AD45B6B6B4D196486D40C9C1259B9623DE997BEDFC4
+          B165973B594FFBFD2B9B786D2A3E2C985AD1D4C93E9CBDD5D483DB3DA195264B
+          B9D11956450DC8CF7E6A1797773333F9AFBF0006523038E7823DFDE902F52E25
+          0108CED2793DB071F4A95E7B184842A09C659BF9BEA2B3309A476CABA41DD429
+          755D4F4EBBF2862E415CEEF2CA8FA67B54887AC6E6D9954DA06623276923FC8D
+          26CF558CDF98659400D801194100E338C7B71EA2A7FDE92664188C80A470305B
+          93DC7AF7EFED8AF46EBCE1CCA2DEDEDA5F0277683E2082239FE5590F6FACE977
+          77EBF5FDD2AE6EDF568E23215400E4AEDE7F53FE95334E91ADE299624F89D76E
+          4B1C023D719EFDEA32C837AE7819CEE1FDFEB5802E620D246AB2AB73DF0D5C9A
+          9C62E035D42DCE8A467BB0220F53193E27286D0A4E21F504B8467CBFBB29667F
+          2CE644809FF132024FEB4F2EB0F246A9BC103B56BF24A4644A1F00E4A9F4A988
+          C3C9C23EECFA91FEF5CCAD715AB868ACF2E8DA4931E5D15ED14D93D9B409E822
+          559FEF07258A9CB600F84F7FAD3ABAACC1766EE7DCFA556A8DB19F8C1F993C9A
+          6FEF3B32029073F5AC4A5A9598D41CB818DCDEBEB9FD2AE22B6D40C485DE2B78
+          C8CE65700FAF71DFD2B4F9E7582685989F298F254F27DEA4DD5ECD7B712CA1D8
+          333704FA0F41FA54C0232A41D072B6A3AB5BD945FC351773FAB382A800FF0008
+          0413F9E2AADFAB751BF501674B74CE02AA8FCBFE7355CF712AC79421DBB63919
+          A622FE0CAF2BB345237AB0C03CD483A02B054232AF2D9E4DC77DCC81CB6EDCA4
+          018F6236E3151B5CD3BF7ACF6DE65CCB25AC64992DD5F1BBD8F1EDF3A832DE4B
+          6ABF09924DC3808808F5FD2AA4F50E1DB7F9A40232A14707D326B6DB55AD49DA
+          E960F5813E9D3D15A582A0977F7D16ED652DAE95671C36B0A4717B927F3279E6
+          9175AAC53DF421176C8ADC9000040CE79FA0AD520D6924DC49943F70C08C818F
+          6CE3D68FBCF9E87CA9D98360152BFE63E9507873DC5EF2493B92ADC35BA405B5
+          5DDD42D1194910F19CAB6D1FD2A2C1793CE8A189C264827209F9FE95590BE551
+          1DD8C78C7738C7CC1A7A3BB58C94F3C0C700391FA56433B05908270148B96790
+          7C6E71C720E71F4FD29ED32E2696431F9921541D9242A0D575CE1D4E18124607
+          19A62D5DECD5549F8D40191CD29C2AB0DCADAA2771BC90BC81C13C03F5A716ED
+          546158E781B1B9031ED5AEADF98C82C739F7E6A40B9864E55B07DAA1A8A61E79
+          2BEB7B92377B139E0F3FEB4A790720F191C1154685CB7FE61C0F63CD3E256C7C
+          643F1C64FA520F85676A620AB348A3910152A5BE98C52E3650583647CC9EE6A0
+          4574541C607E7479A59F1904F7E39A90A852150AB38A68958800629C8E48F792
+          17BF7C1AA7473BCA67B0C93E94D35E4D15C2A2C41F82C1831038FAD4DAF254C5
+          53CD5CCCC801C1C71EBE951DE51B3E2907E98A88D72D2392AA01F91A892CA54E
+          41F8EA3ACA81AA7929E9749B8AFCBB93487C4F13A8DA08C9CE4038FF009ED516
+          305C1C39047B0A90F702440ACABBC72180C1C7B50D71053A6EDC948B39C91B5F
+          05D3002F233EDF5AB9D28C82E4B98980618040E39F5AA5DB14A9970C587E160D
+          C8E7FD3E9FEAEC375710A9459D9973D9B9A99785607E8385B1EA1661FF00F2E4
+          0C71DF3924735123B2770CA519B07242F7E2A965B99839CE0163825722A426A7
+          7108C798EBF2CF38A41C02976CD9CA9CB6A5E421613C7E25DB8C7EB5B4E81AF2
+          69EAF6D71089619136324EA1BD0F3E9D8F3DC7A7E7A50D4E78D4CA9293C8C827
+          D6AF749BCFBEC52C6F116987E190766F7073FF0038A9074ECAEA6F6BB64D5FD8
+          DB6E6963942827E64E7F2ED4ED8E812EA5325B8481A494808C661182490064B7
+          18FA91F5A9371D27A9C72A9169E6F98BBA3684EF0C3DC63E86A3DD595D5B465C
+          DB35B48A7693DB737B63DE8D4AC8E64281268934692344EC8CA429571B581FA6
+          7B54499E785C4726D6F4E063156CBD426E4086642CC836EF272DF4E6A1CF242F
+          3489E53273821467FBD4752CEFD3F94A84A91C4AAFC81DBBF1FA7BD3EC2268C3
+          2392C7FEDEFF00A527C92EA576BA60F1C6463D6A62E8C659563C074640D90325
+          41F5EDC60D3065261951565CC04265D89E483D80FF003A910590BB242BB338E7
+          201FF3C559CA90DA65721A58C6329C82BDB7019E7FAD35149145970A4AE73B97
+          3C8F98A36DD5B206E88741F87995C953DE45E47AD3E2348C12EBE60038238FD7
+          8A83FBDA0BCF3268999F27E2CB32E4FE9CD66CEEE79A63F0048D4F21A4DD9F98
+          FF007A9D5654A2E2CA8D20F43BFB24CACD78D54CC856C35586CD59B798633C85
+          279F5A25BF174236793CA849EFB76E7EB4C4F602F1548551FCC00E4E0527CCFE
+          118BCADCBD89009EF59A4A9F68F6E0AB0935F8F4C9818AE1ADD1542991A400B3
+          7A81EC2A5AF5240B66B7570C0C4AA732FDE0AAED20F63F426B50D4F56D1F4D8B
+          FF001F7F0DB18BF0C048DDC7B2839CD683D5F65D2DABE92D7DA4EA16C97F1B19
+          1ADFC97579C9EE31EFEB9C7E7CD7A0E1FC35F78F6878735A4C6A0D247F1E6AB7
+          DD766D2704F495CC6E750550C215655DDC39EF45BEB3214DAE15F9CF3C536668
+          E58B62038F73EF4476D18E00CB03939F5AFBB4B8990579CD2CD30E0ADECB5486
+          4895252D08CF2106411F9D3DABD9A40A8629566B73F85D471548B0EC72003B3D
+          7079157105C47059BF94ED903943C83FAF157349221CB154A7A1C1CC4EF4FBDA
+          4177BEE2FC58A81912185A4C9FA0AE8BA5754D95D5BC68F2EE9CF059D800F8F5
+          008E09F6AE5AD27DE22606CD037A152463F2CD3696C6D4867936377DA54D726F
+          B85D0E22DD3712472DBBBE4639F3990AD6BDCC3A9861DEF3E705777B0B287522
+          D379E8C8A4640C0DA7DB03F2A7758B4B2B7104515C79B2CEA599634CF95838C1
+          278E7BFAF7AE2F0EB7731412C4978D1C6DF8C29C06F6FF003AD8FA56DBA81A36
+          9A6BB7B0D31087927BD3B5587A005BDF0715E02FFE15A76EE351B5C359C81DF6
+          FA99E402DB4EF2AB9A03DB27C30B6D96CADECADD7E267791B0AA91991C9F6014
+          13FD2BAE681F68ED07C2CF0C66CEDD4FAE4C735859ADC46E0D8C0E814123015B
+          1993F86C382F9E735C527F12ECBA6F5782EACE3B1EA07870E8246B88E146ED82
+          55A3663C67E12073DCF3541D7DD570F56ACDA86ABAC4D7DAA49233C16305AF95
+          6B6AAC4B3051B86DE7D0039EE4D63E19C11E2A32A5D537693B0E67CC47747592
+          0F45A5F706086182B7FD074ED022D225EA8EA5EA8D374D8D4AC96DA4C3BE6BFB
+          E25C86DA880F96060F329407D335B1F5A7DB2EE7A77A8B53B0F0E20D123E8D65
+          8E3B54D57A62DA6BADA517CC0ED2F984FC5BC677739E028C05F2E4BAA940514E
+          476E3B540139DFB9866BDAD1E056741DA8F78F9003D042CEC3534C0C7AAF5568
+          3F696F0F27BED26E75DE85BAD32E627DF797DD2F7CB6733B718789591FCB2304
+          ED040391F87927BCF86FF6C9FB3F5C5CDFDBF574FD75A85ADD5CA2C7FF0055DB
+          59EB28919E0BB3BAB3AE303210670063240C7CDC9250D9EE6B119CB7A544F00B
+          0D44B1A479157B2A5568FC4BEAAEA1D35F65BF1F60EA03E16EB0DD3FD4FA7C5B
+          EDA2746861D4240180586094EE6DC71C05C83B7032707876A7F650EB5B4FBD7E
+          F1D39B4EB30F3C76B3DEA34297053B796CC39DC7F08382D95C0C9C5788E0B892
+          DA5578E468E45219591B0411D883E86BAEBFDA4FAF3ABA6B287A97AB6F6F2582
+          DBF77C37D395DC206C2B2CEC10B4C368EEE588C715C0E21F0DB4035681903973
+          FE7E8AC6DCBB67057BD4BA0F50F40EA579A1EADA74FA5EA364C1A5B6B843149B
+          4E7D1BBD4091679F47F3ADE0590B0DCE762A9DB93DB1EBC5765F0A3ED0161E27
+          75369DD19E37DDC3A9F4FD9DB0D2EC35C6C2B69D2229442C514168CB0E5F01B9
+          CB3100119EA4FB355E697147A8E99A926A1A5979A44686DDFCB8A1479009642A
+          08D8C3CAF8B23FF34678C67C3DCDA3A83B190AE6540ED970F1D55A97DCDA39AE
+          0ED0002A47700607F43E94D45ABCF6AB345221093A60924E3EB8ADB2FAC6DED6
+          5BA86E6E62BA8E13B1B6808C0E71F0E7BF3FD39FA34355B0FBBCFA46B3650BBB
+          A8687508861E218ED838E0F073FEA7380654F3D56A18F3909C80D8006471EDE9
+          4FADD3DBA85562E338C67F0D4745912E9A08B6B8076E0FBFB1F6A7DE2B885A40
+          D1C9B80C3796A703EBED5098C1550710933D9C77F03C7234B0F18778586E61EA
+          338A734E8A2D2C0B6B487CB047C528C991C0F4249C91FF003D29E2F259C2B198
+          5774880E4F2573F3E39A616711C8DE583DFE2CA0EFF5A98ACFD1A01C7446A077
+          59BE11476E3CC1F775073DB6A81F3F6151ECB55B6BA897EE722148C7C3EF8FF4
+          AB13A97DE1944AB1927F9C2818F41C63FAD4A6D5A196475795AE2E8A6158FC5C
+          638EFE9DAB452A80B4820CF9FF000B4B1C0F354BF7F9A491BCB6707F907A71F2
+          AB1B77B8122059124463867C90538FCF273818A666D501411BA4714C579206EF
+          A7240FED54E3509A2BE8A247F396462CED28C6CF603EB5A18359231853D71B95
+          B134A1AE541B72A0025A52D81FA76CFAD4D82D610F23C6CCC09E43103FA7F9D5
+          347722E72AC5439C805B3C9FAFE74BB5F32362E5B6EEF8704FAFAF359DC71856
+          B6A05AA75BEAD3497CF621BCB823C12A87863F3AD58B6DF97CEBAB5EE97677A3
+          F8C10BB0C6E75EE3E47BD6B777D0F0F925A0B9CB738575EDC9F5AFA7701E3362
+          CB6141E4532D8DCFE22772B8976C7EBD401703D392D3805719C834D6C39209E3
+          DAAD6EBA62F6C816F28951DCAE08FE955ABCE41186F9D7B6A7569D76EBA6E047
+          50647D161FC384C6D00F233CD4A8AE5E38658D24748E4C07456203E39191EBF9
+          D32F170403EBE95916B238608A588F6F6A918032A532BADF8597D25BE832AF90
+          D1A090EC72490FEE3BF1DBDAB70B5D7DE1F8773C6090A4A9209193DCD726E86E
+          AFBB96EE3D2EEDF744CA56372B864C0240F98E315D0A1B88A197F8AE0A9ED93E
+          FF002AF8A71AA35685FD4754006AC88338F5FAAF496D501A6003B2B3EA4E9FD1
+          7A9C466F6DDE79635F85D18AB60FCC77EDEB9C735C3BAB340B3D33A82F2D0453
+          436F1A9311003BB1232327238C9C647A0F7AEE5E740A0B2320247F2FD6A8F516
+          B58E4512C31CC1FE2C8507D7BE7BD59C238D3EC9FA6B12E66D00EDE206CA1734
+          F589601A9727E90D1B51D435CB3834C6686E4B8D936EDA13DC93F4F4F5A4F547
+          4C5EF476B73E9F7A8637563B64C7C322FA107FE62BB2F4CCD61697CAB0C691C8
+          0E7E05AB1EB8D3ED3AA746786F5896889647520329F9641F957A26FC52C37808
+          6452DBC7CF1F6591B66E344971EF7D179D15959893FA9A4AC916F2642573D803
+          522FEC8D95DCF0655B6310A54E430F7AAF997702C383DB68AFA107CB439B9057
+          340130A6C376106C41B89E3938A118F9859940E7B67BD4255518C52D0F1B40E3
+          E7520F3CD4740CC2DA3A47AB754E94D5E3BFD22FE4D3EE6360C1E36C67D6BD3D
+          AA7ED25F1EFA9E1B4497A8D2DADACE55795748B34B79661FF730C9231E8081CF
+          BE2BC7CB3081D5D3860720D646A0FE7B484E493F163D6B256B4B5AE49AAC049E
+          680EACDFFA6E80BE8378F3FB4E2FBC4AF0324E9AD1E1BAD27A96F23169792C71
+          94411ECC3CA24DC4EE24E028031CB67B01F3C2E4EC7237966F5A76EF539AE370
+          082353DD5060542E49E4E4FCEABA16F4AD59D9D29F32B402F79D4F59F31BDE82
+          73EB9A029E6B078F4ABD4F0B1DCD3AB0B100FA7CEB091F1BB23E946E2C48F4A6
+          046E94F44E2A8CF23B7B567715CE2B11C640C1E4FCAA4410FC2C587D2AC68255
+          4481BA8F966CF1F9E2831E41DC73F4A97951DC67F2AC6D56072083E86A5A5475
+          AAF31B29239A5451F3DF15302894E09185F5C53520404EDE47BFBD57A632AC0F
+          9C20DBEF5233C66B12DB154C21CFBA9EE4D3D630ACD2A2BB10A4E38F4AD874BB
+          0B699DADDD76C8DC0665395FA73EBF3CE28796B2997B863FB9F4549A85AED32B
+          55FBA39180A4B7AF1DA90D146B1B8CBF9A08C71818E735DC750E83B64B1860D3
+          D2189DA31FF8CF28C8EE307247200FAFCAB96F51E856FA46A52DA4374D781000
+          D218C27C5EA0727B7D6B83C3F8ADB7147B9946411E0769E66204F4995A9FAA91
+          877354D0DA318CB6E19033F5AB1D0E7165A95B4AB9DCAE082BDC1A2D6CE2B661
+          E74B09623F049C8E7D78A89315B77F5520D776AD10FA4E61E621656D4D4EC2F5
+          274D75CCBA3F470B987589D2098975B386E5D63121C65A550B890E06073C67B9
+          C573AD435CBABCBCB894CFBFCD766738C06249EE3F3AE7F63D59ABDF18ECE371
+          3B3B0540531CE78F61EB57527426A66D27D46F2EC2BA1076052D9E793F203F3A
+          F959F87CB2B065DD66B038C346E4F90C7A95B2A5C80DC0D94E7D65C191659B85
+          E373BE307247734848A5B96CE0AEECE0B8001A6E06B4BD884F3594372F1FC27C
+          C5CED39EFED838F6F4A7ECCBC87CB815495DCF9900E3B93CFA0AF3D5AD1D6F58
+          DB3810F060F4F08F0E7EAA62AB5CCD60E145D4EC16384C924AA77719CF248F4A
+          469BA8C1671490EF731C98270A3391DBBD54DD5E25C473C92DC979C36238D460
+          639C9FA7CAA4F4D69136A370660BBD22C1C7B9CF6AFB09636DB86BE9F11A9A9A
+          D104C69C62008CF84F35E7CB353F55311CC0DF3EAB618E2B4D4662E824080721
+          558927F2FF009CD34DA3DBB5BE6182E14ED006FC28207CF39ABF78AED62CCAAA
+          D1E0056543F08C9F5EDE9EB51EF34F8F548D1664F852459164190548EC47FA7A
+          D7CB6BD7B1B2AE194D82A3080675B8EFCB1A723A2DF48D7ACD9738B4F905409D
+          3E6EAD268C32D92E33BFCCCB1C67B1EE73F3A8FA4E8B7962CCB7176B34201C0E
+          49CE78E48FAFBD6CF1DBC48D2F964CD8C1C7AE3355A43125577925B2376381CF
+          B015CCFF002555D4DF4835A1AE33B4C7913247BFEAB606F532A04FA05BDECE93
+          3C7B258D8309538638F98E7153D6DDFCC93319551C2B824F3DF9C6315630DBB0
+          4590FC1F2ED8F9562E349B7B9BA8274F3E2914FE10C4291CF71EA3D6B076EE7C
+          36A3B00639C29A85F77743875C640E1B8AC6D8C124A9CFBE6AF66D3A35272AEA
+          C0657CC1806A0496EF97650A5548C91DBD6B3074ECA3054404AC582770CF071B
+          80FCCD242B6F271C646062AC20F207C2F3889BB1571956EFCD5C269A8FB9A19A
+          2BA18FC11A8073FDA96A840692B59688B13BCED349FBA32C6198B00C3E138EFC
+          D5F25B24D9C59E25DC07E33B81FA5625B5DD14B047097D870E39EFEC3FD69B5C
+          54802B5F9AD84841DC085C303FFD53AA77B96272598927B72735633E951C7083
+          0B16D8324018DBED4CC1009580192F9FC208C9FCB3FF0038A35C880A32764DC3
+          206F84A938FE94D127E2591898F927E0FAD5849A66C8CB10CADCF0066B0B68FE
+          50D89E6B1F42083FA530F0158C7C6E16BFE5C87CB08CFE503C824F229D68A212
+          16910484E01CFAFF00CE2AF3F733B216D98279EF4D1D0A56240EDF4AB4560AC1
+          504EF0A9E31109325114E36E40E00A9714B19C05262E393E9525F429E3604AAB
+          7A0A0E9F3C5C3424E47A522F079A35CF3517C9C6413F093C956E0FFCC536CA91
+          93B631F9FAD4BF25931BA3F4FC43D284B533B3228FC2BBB7E31FAFFAD01CA5AF
+          AA8D1B9037631F21E94A72AF130C91C7071FEB52A0D36E278DC84036F3B4F723
+          9EDFA53091B07645898BFF00E939E2A3A84AADCE69CC2890CCABBA395483EE38
+          A9690AC6B98A5C13CFCA92615B57314D06448010ABDFF3CD2FF7798EEA4B58F7
+          239195563C9CF6C51BECAA052A09B2A483823F4A94B7C8107C2BCF714CC76B2D
+          B8292AE0818273CFE950B712E70769EC0FA1A8C03B2731B2B75BE0D81C2AFAE4
+          D2ADEF558B7F330F61C5550DC76A84DA31F139EF9CFF00B53B0BF92BB323038E
+          C339A0884C395836A0C9293C02DC607AD3526A6D129C3E4819040A8CB1CB7974
+          5021DB9F88FB0A990F4DBE4B39678D3D58600FEF5268E654DAD3B84D5BC97171
+          F1469C0E739A94B0DCF266E0E7BFAD585BE91358C3BC3A2C67237FF8B1E9DEA4
+          E9F66B3A3991A2EC30FBF383EF8A94745686725461D9588C151E83DCD3B0CAE4
+          0C1E41F5F7ABA974B8446CFB4F078700E4FCF1FF00D5571B54F319919891C004
+          609AAC82147B33D535BA447072AA7DC52012E4B6EC91E830314B28885FCCDC5B
+          B60F6ACC50C43972393F84135000946829C109108937EE047E63F4A637A264B3
+          873EA0734E4969110DB8B28EFB55B3CFD3348117923F87C64F18E4D4836140B4
+          84E5B95CB152082BD9B8FD2AD23BBFBBC24C60EF2B82C5BE5C9AAEB2B79A5760
+          801F5249C0C0EF9AA7EA1EBFB1D1227B6B502EAE81C0718DAA79E33EB5BECACE
+          E2FAA7676EDD47EDE67926D78A62495B3CBD58DA75AC41AF1A0DBFFE467DA31C
+          E073F9D4597AF6DEE21580EAF0C89B87C3E727E2CF18E79AE237F2DDEB377F78
+          D42796E307259400AA09F41D853325B401720171C0EF8FCEBE8547E0E967FCD5
+          7BDE030A8379980576F1D5BA6CA8ECD736AC4F76128CFD460F7E2B365D69A03A
+          C7B2F46C20A9DED8DCD9CE0038E3E75C5EC9ACF7AA307DF9202A8073FAD58DC3
+          44B12476F1CB0CF8E64693201F52B80315A9BF065BE9335893CB6FAEEB3BAFDE
+          D701A576AD43A8ECADE192E61B66954207545390C477C0CE7D47AD738EA5F127
+          52EA1C5BC2874A840119815BF884AF1F131E7F2FEF5AA3D8040B23CC67008183
+          9C8CFD7FE7357FD2BD3925D48C50140BC3CCA06467D056BB2E0367C183AEEF1E
+          1C1B992223D24C9E9899D9555AF5D55BA69F34EF4CC9770CC629B6C8D9236B92
+          580FD718ADEADE0D5F5C6925B898C1A7C5C2ECF807E7CFFAD2349E9EB7B3385D
+          C485F8A495B3B547D7FB7AD5B752DE26B1A77DDACDDACF4F806D48E3E1DF1C16
+          6E79663C9FAE0715E7F897C4742F2BB1968D0D8C6B736489E8323D4E7CB759A9
+          5B3981CFAA70790C4F9954BFF59E8FA5413DAC2B219605C65978727D724D574F
+          E20E028B5B46958E37179362A9F97049FE95AF4062F24C4EA494620063F87DC0
+          155DA85DB46ECA2D4ED51C49BB8C57B067C3160E71AB5C17B8E492E39F1C479A
+          A1B7F5BFE9D3100792DFE3EBEF2AD7CC484ADDA70155B0AC0F73BB19FF009DEB
+          52EA1EAED435ABA77BBBC921880C08603B507F5E7F326A823D7EC2248D6ED652
+          547E28F186F9553EA5756B752BCD6D234687F0C4DD87FAD6EB6E0FC3AC9C6A51
+          A63578E63CA765736A5D563A6A131E4AE217B68A4DD26D917BEE6E4D222D4E09
+          5E42D12ED078C6381F4AD656E4C4C5931BBDC536B3EF7DCED8C9E715D5EDC2B4
+          59CC9254A8D15541E7B678A760FE13361B24F7CD391152AE19761232195324F3
+          F5FAD3BBAD9244C2493A01F136D08DF91E7FAFE95004038571329A8893230C16
+          3EC2A60C3A2A486303FC5DAA1DD08DA5636F1CC8A738DEC091CFB8033C7FCF4A
+          15844BD86460FC441F5AB1AE31B2ADCC9E6A741A0DD6A02E65851CDBDB209A56
+          078442C14373E99603F3A76C56C161924BCBBBE132EE11C36D18653C7C3962C3
+          009C8E01EDEB50350D56E2F033DCDDBCD2337F31C9355AD2A9FE62C7DCD6776A
+          33263CBF7FE02B1AD2775B8275488A2863B2D32CAD0461B7DC4CBE74B292D905
+          8B7620600DA00EFEF50BA83ACB56EA0D8BA9EAB797D1C7911C52CCCC8809270A
+          A7851924E063BD6BA2F1E3428B8DA7BD34D333F7391543685063B586F7BA9C9F
+          72AC0C773D94A92FC8E1507D5866A2C93BCAC493DFD07029ADD8359DC3B55A5C
+          4F356B581BB059C6067347A678A4FE11F2AC6ECD465590B27340CD00D645242C
+          A2E7B9A7A32554E33F9D3239A56768EFCD4C6140E55BE85713899E38A259B72F
+          E12C07E60FA1AED5E0478C5D43D19D42BA526B126996373E5C73F691762BEEE5
+          09C1391EBC0F4C718E016F3345207562ACBC820F6A913EA0F3CDE6E4A487BB29
+          AE15E70C65D9798009183990473DE223F9951820E17A13AB74B7D1ED2FEF74D9
+          E59F458E79ACD2E2370D1EDDF9246D2C154E40382549CE09E73CE5AE6E6E9952
+          497CC03805DBB0E78E6AEBC29F14AEB4DB57D13517824D0AE1B6CAB710091071
+          D813DB3800E3D39AEA17FE02D9EAACD73D0FAAD9754DB14593EE76D718BB1F04
+          65D42B637ED6942F1CB6C620601C7CB6EECAA59D475270C85AA9C3844AE3B66D
+          FC51BA431B3FF38C1E79EE3FCEB658354BFB104BC62E76A82B3C6DB9029F703B
+          1FAF3517A83A5EEF46BE96CEE6D66B2BC84E1ADE65C3838CFCFE5F4AB7D1FAC2
+          6F292CAF2DC420C613100F2BCF0082048380E700E3B1E473CD724B43B70A5A60
+          F7955DDEAF26B6A9195C4880E1CAF3DF38A9B69D2B349087693E251870083CFE
+          9815B0F5574EF4EDF5BC3269626D32E572232EDE74775C9C10CA00CFA6319ED9
+          072489FD23A3CFA95B431A1DB2FE0656604865AA9C34081B26699D86656993F4
+          9EA1B5E4003AA800212C4E3F2071555A86873DAC9BA38F6CAC17F860B65BE67D
+          BFFAAF45E9DD104B8265DA070C770E7DF9A93AA742C11A12F2C6C838C487B9F9
+          7E9FD2935EE6AD22D2A44AF2E26993DC4E9B04D17C5F1472C64827D45488ECB5
+          0566702397E2200F5CF3FF003F3AF40EA3A25AC708F2E35523E362541C1F9647
+          B7D2B43D6FA5C5CDC4B70AE4B6703E000E3D813C0AB0D577454B985982B43FBB
+          4AB6A43B47182777C4D92BC7AFB0A8EE26883451C848239901CA8F6C71D8E6AD
+          AEB422EAEDB3E27C068DA4F31D064E3D7FE66989B4D6B3F2F287CB932A70DFCC
+          07F9E31F90F7A039BBACED24BB2A962D42776742A06D18C8241CFF00A54BFBE3
+          042ACDB703762A34970D148D885D40382579CD437BD2AE5A459131C0E0E09FA5
+          5FA751C057490AE61BC2D80B20C770C0F26A2CFA3D96A1BBCE801949F89D3E1E
+          6A1ADC13C2332AFA9E49C7B77A9D0B1DCA5981FF002ABA8DCD7B43AA8BCB4F81
+          529654C3C4A89274A69E6DE5588C8B305DCAA5B7671DFD2AB2D7A5E574E26681
+          5B8764E703DCE2B6CB47314E260A8F81FCEB9047620D6C02EF49BAB1764DD632
+          B48D885419176E31DDB9CF3DF3E9DB918FA0703E3ADAB42A50BDAB0FC90E3E43
+          C230739F6395E7B88B6BD0A8DA96ECD4D3181EBBF3CFFB8E7A7E9BA2E9DD3A30
+          CCB3DC38C07760CC7E8076FAD590B886EAD4BA3090A820103E2C7FCF6A4DFDCC
+          3290AC5611BB29C0246338FA9C5439AF85B07798958F38E47D7D319AF035EE6A
+          DD3FB4A8E2E71FEE074F05E9184304010A547AB5CA0F2DC284047C4AA0023D31
+          C9A59D643A98A5557DCA305B8C7FA5415B982484BE5B0B8E395F5FE868BCD4A1
+          49635F28156030CBC815977E595607E32A6497BFBAA732EDDD1AE36CA33BB918
+          EC2A7E9BD4B13C6E9324B2B027E065DB9EFCF3C7FCEF5AE6F49A56224641DB69
+          EC694D3C76E08122BA01804F049A3BB1E297691B2917FA459EB4EE5AD820524E
+          548DF8F4CE33EE3F5AD3F5BE951699F299E4E71864DA47B719C9FD2B608C0CB6
+          6572783B549FF9D8D62CB57B492796D558DC4D83B511779F99CF61F99AF51C37
+          8B5FDB3436902F63770768F3891E730B9CF635C4BB65CEA58A4B57DAEA463B64
+          6288E46604FCEAC7594F3F5199B765371E41CFAD57CD005E54E3E55F59A4E2FA
+          6DA911201F75402362B1B83B11ED5924F3C0E3D28B53B9F1EBF3A71C13230EE4
+          7156812252D8C28E3E2C8DD58F2D47CE9E60A83FF2D949E3767834A544DDC83F
+          9D20D4F524C50EF5279C53450C6C7E5564530BB37630298781506E073532C80A
+          B6D492A3A7079F87E74F2C62604763EE053C268C6086DD81ED4C35D15248E39A
+          200DCA40976C12F6AC5C6ECB7AD29661DB3F2A64BEF19C73EF4247C13C7E74C1
+          E888C653EF2873D81F993509A62ACC146541A75616DC768C8FED4DDCC7E5E579
+          FD2A2E2489536000C240B81D89CFC8538AAEDC84207CC5478311C8091D8D583C
+          D2CD8207F0C7AFA0A8333BA9BFBA70AD340E94D47A8CBFDC5159118073B8023E
+          99AE8CBE1BE97A6584970D71729246A4BC9210C01EDDB6FF00A7D6B54F0FB5FD
+          23A6669E7BE5B86B961B57CB5CA81F2191CFD7FCEAE354F15C5F24F676F63E54
+          72295134AF9233EB81FEB5E2AFC719B9E2028DB4B688224E060C4EF331E5E8A8
+          791A0C056BD17D4F99E1D3E58DE691D8AF9D19DD83E9E9DBF33573D4BD0965D4
+          1A5DC1B6B289353539595176071B7B119EF9F5C544F0E62B75D1CB5B4929DCF9
+          91A5F8541C7207CBFDAB7CB6FE0234918DCDC17DA3381E99F95796E2777FE2B8
+          A1770F69691339243A7FF4F2DFEC42AA8B45761ED4C7D088F15E5FD47A72F2CD
+          E412DBC89E5B6D7DDDC1F6A62DF4BB99DF688A46901EDB49E2BD6D274268BD5B
+          10BFD5A411CEF2A28F2D562C81FE22719181E809ED51F558740D06F14E83A62A
+          4C89B1EE06E71277C601008C71CFCABDF3B8ED9D3B517557BA4FE5913F42B92D
+          E255DF5CDA51A65EE1BB848683E67F45C2FA33A42FA6D4ACA592D6654F340DDE
+          5FCFD33C574AD7B4E9AE256B789219632DB5833E3907BE4707E9532EA6363124
+          972CC11C672A3233ED511AE239A6521704E36867DA3073E84609E3B7CEBE7BC4
+          3E2475F55A55A9D20D7326333BF2D87F7EBD86D9BE5DDA3E411B47D772AB8691
+          A85D3486D7EE3A744B1F11CCA1B711C8E1738E7804FF004CD6917DD25AB5E5F3
+          B4D222AB310EE25DCB9CFA01F515D32F2DB31899258CAA0F81B3CA9F51DFFA0A
+          AD8D85DDFA89B12C40EE450E39EF9F5E79A850F892BDB871A74981C79C19FBE7
+          D55ADB30D3F8C91D30B52B0F0D52E320DFAAB81B88923206DF53EBFDAB69D1B4
+          9B0D0ADDEDE199A691DF977C0270380147EA724FA56CA975018F661964C6D396
+          01B1EF8E7FB534258A5995A31E5AA1E7E1C7D393E95CDBCF88788DFD036D5DC3
+          49DF004F31CB97288568B4607EB04FBAAE9AE0A811C68E55B82369519C73CF6C
+          77F5A84B6EFB99B6095F96DBD87CBEB56D342DF797D90B8CFF00848DADF97BD4
+          396E6482DF6012386C858DC06C7CBB579E6E02D5A6142B0D3E0937AB058A5232
+          79E3B9ED44DA4C30FC4ADBCB1C2853E9522DE6FB961A446404823201049E07CF
+          D6ACC69ECAA004460060027B1C638CD233BCA8C42A2B756B9046F452171B573F
+          17CAAC61D14491049B008ECC1791F9D58D9D8A5A96E4348C097638C9C9FF006A
+          90CBB50E3934C03C9303A2D7A3D1648262F25C09238F952E0E070793FD2A669D
+          1398E32D8742707CDE323DF6E71FE7531ADFCC8CA364B64160093CFB0F95488A
+          DA46E7079A9E9E65300AAD91C2CC811E355DD875D80AFE471DFF00DEB304CE97
+          D3C70810843CC63186CF66E4600EFDBDAAE6C7416B995F6C4331E0649C0CF7C7
+          CF822A5374EC30B219963798658B903BF3DB3D855C1A0032AE6D3312A90C0599
+          95F2C4F7E79FAF18ACE1C46E39E3D1B9C8F7AD8A3D1E36C48A0B1ED953C7F7A5
+          4BA209616C1556C7249E71483410A42912173537522EA53AC29E73C9F00CF1F9
+          558D96832C333CAF892465CFC3C05FF5CFF956D3A2F4725AEA924CEA18321D8A
+          3D1BD7FA55F7EE3024CE321B93C63D2A01A48C24CA04892B4B1A5C92C7B46720
+          60E09CD16BA2AA6E5087040193DFD6B7E5E98976EE5400FE2C11DFD45479BA76
+          509273B246E42A8F43ED560A50215DF2D0B4D5D2F83B463DC8A7E3D158F00062
+          4851FF00DD5E3F4E4D13E3324791F102DC7D7B52E00F6518518764200939C9C7
+          CEA25A06E81444CBB0A905810E00C609C734ECFA7A47112C0F99C71DBFCEB698
+          A38AE4EE9026E7EECE71DFBF34F2696F133A27F19187C2D92707D8FB734DB4C1
+          53F95042E7B7761114C98416077060A49FD4554C705B1CAC18DE461919B97FF6
+          ADEEEE13205096E80E4798FE670323D07E9C56BFA9CB69B25B20CFE6F1909F88
+          0CE78CF1502CD182B03E9F6782A925B7B7BA431CA1AC6E48FE1B8E15B1D86E1C
+          7E55034EBF923B8F2EEA43244A70EA54164038CE7DAACB56BA94D835B229CE40
+          F32461E9EA78EF555A374EDCEA8FB926892553910B0DC4E0F7A6D12A0D6971C0
+          563D45D3F34EA8F6FF00C10C03ACB212A5BB7030703F4AA0B3D4EEADA5749523
+          F3B1833B8DC41ED9CE3FB9ADAEF7A4356BE91A07D55E6908F82DAD98B903FF00
+          4A038EDF2A625E8C863B16927B9104F1F38923742DDFF98A8E7EB93F4AD1C95C
+          693A7016BEDA56A215AEF7AB42C79652081F3EF4B58EDD91448EA8E0766E39FA
+          D3BA62B3CE8AB71208BB2C792B9CFB1F99ADBAFD2C618231750BAAC8CB06C58F
+          71DF82724FCB0739AAC0D5B24DA61C256892E8C6DCB4D0A860C77174E393DFBD
+          66DEC7CDF8882117E227B63FD6AF2E2D1EC491612BCF6CC3FF002DCA823F3CF7
+          A8B6F16A97D2A2A58116A0FC7823DF8DCDCFAF3CD5B4E9BAB992E03A927F4DCF
+          A02A874B3604F92A8BCD5A6B35B886CC8377709E5A6C6F89391F17C863FBD6DA
+          150C16F0902710C6033EECEE7FD79F73F515423A6EDB4A79249332CAC7971264
+          FCF9EFFD055945796EA561872231CEE7C027FE715AAEAAD0ECDB46DC61BB9382
+          49F7802302558CD6D92EF6561FBC1909DA03F18DA578C7CBD7FAD411248A4E09
+          51FE1A9D65A7CDAA4816D867233B88EFF3A5DF690FA7B989A2732E33E69EDF4C
+          62B990F892AC979125564B72EFC06C607651DE9AF34E0E79E3F98D2AEF4E9A28
+          8BBA9009C024633F4F95468CB448541C7A5524CAA0BC9294F2B7A02EBF234CFC
+          52DC98CC4F1AE01F324FCFB0E73FEF4FC292B49BD476F6E33560B6B24AAE7683
+          81C8353698C14B51555E7C3080567570BC6D2BB4FF00514FFEF332B2244BBDCE
+          3013D698BE78C809264B7A107FBD316A042E50C4AE46589CF6F6CD58254C3CA4
+          754EA17B73691416AB2436A1409923932653DCF60005F41DFDF3CE069761A66A
+          DA71B9B986C62BAB6991A268A7DAC483EC0F39180723DAB7F2A268324ABCA84E
+          EC0E473C77A229434533C8C632064A91B40FCCF1ED5EC2C3E23AD654451A549B
+          8FAFA0E7E2B19B76D42751907AAD4EEB40BCFF00A6EDEE45ADA9850072638C86
+          3907393C138C0FEB5AEDFE87147109C3916F30DD1BEEC827BEDFA8ED5D16D35E
+          B2D4E0586246611C45595800A7938EC7B5691FBE92F74C82CEFE4903D99748A3
+          C03B5724800E38E49CFE5F97D52C3883AF6AD5A3559A0B34E0EF912B88C656A2
+          D0E0664998E99F7FE56B4ACF62A151942B1FC78C907FCAA4D9DC5C433EF1336E
+          3FCA5B20D34B012C549DA4F70702A45B69B96797CCF857B2835D600CE1745E5B
+          07529AB7EDBD45C208C6F1B980AE9DD16EBFBB994295CC99C7AE0E39AE5F1698
+          DA9CCC91BF96C9F10F30E148FAFBD6DBD2BD436FA35CDC477C45BDB98B064624
+          A961D80FEB81EB5E77E26B57DDF0BA8D60922081D60FED2B3522D6D66E9F55B8
+          6B172D892676F2EDE2524954F87D4FA7BFB56B5D43D550F50C492C297705CC6D
+          B98C8405938FC64839CE7181F33CD53F53F50C9ABDE07B59258ED0A6D4801237
+          1F5623D33C56AF7FAACBA6CF2C0C0B6471CF615C5E01F0E32C9ADBBBCFFA9B81
+          D246C7A95A2AD57D79A74FFB0A49D6AE22965F2846635EF9CE33EE6A658EAA9A
+          9B4C5119028190D8C0FCFF00DAB558B50689A4254481C7C48DD8FCEA3C93899C
+          B8511E78C20C0AF75DAC194BE4DAE044478ABCD7AD5675DC8823C7F39380DF41
+          5AF1DDF87D6A4C3034EA14CBB549E0126A4EDFBB40219238E51BB3B828DC0FFE
+          AEFF00976AADF2F3A805AA97FC4DD04CAAE589DDF602037CEB26D4A67183F315
+          37EEB15CCAA892A2B1F73C53CB68230423A1038DCBDCD47429F6A932CA8C0153
+          F91F4A84676DD8EC3358C34A48DC7E4286876AF7E7E54171286B4370977570CC
+          E5558841C000E699DE40C67229B23BD642E783D87AD565C49568680210580ACE
+          091C0269F8A38154EF3918E07AD38AF1AAE17240EC6A41B3B94B5F40A1A46DED
+          8FAD676609C91F9529DB713CE47CEB0B8E78A8C0539293B41068C63B0ACEEC66
+          921852C27959F4C518158073412692166B231EB4D60934A54C500A2139B0FA73
+          58C64E2B3C81906855E327B54945602FE941F84FD69D182BF334DB00B91DE884
+          032A658DF4DA761E19080DF897D1BF2ADCB44EA196DEEA0BDD3AEA6D3EFA2FE2
+          79B6D2156073C631DB1815A01C0F5AB3E9BBA106AD0876CA31DACBDF703E95C8
+          BEE1F42E5AEA85B0F00C1F4E7C88F30554F0E03505D9B52EA6BAEA6B75B89EEB
+          CC9E56092CF3C456476EE32771E3D01C0E073DAB27A62FAEF466D49918A2BAA0
+          312654E071C81C608F5F7155F0E9B34F3E9F6714601BD91766E3C9E783DF8F6F
+          CCFAD7A1A3BE83A5348B6018470C71B7FE1E4915F03D80CE49CE3E55F18AD519
+          51E5EC6C03CBA2E9D9D22F61D666179FA3BAB9B0436B26044C54AC6C786C06E4
+          1FCFFB5743F0C7A9E2D3B547B3BA75B77BB7CA4F29CE3D38F41DBFE7A5375B3C
+          3D4082FF00CA782ED7728B71863F8B1F97BD31A0595C6A1269F098E779233B54
+          81CC793F0E3FFDA6FD6B34976EAD60731D0392F512685E4E9FE74570B0A8FE23
+          3B364FCF031F2FEB5433CB1CF13AC523DC1C96385C9E7E98AD0EDBA9EFACAF6C
+          22BCD59C488732DB22E549C9561F8724939231F3ADEACA3D3ACADD1E594DDA11
+          E6E64215A4CE78EC323DBBF6A80046EBAFAC3C405A9EADB6EB7074C0DC7050E7
+          6FFCC56AFA85B1FBC0DDBB6F382BEA2BA86AA6D2F2D8B4169E5AAFC01413EDED
+          C76AD1AFF4B7B8BC6778D7CB5E3E35E47CEA0E682B9D5E94AD6268D096C85440
+          4619BB9F976A837FA717B4314410027218AD5DDD5A80E40042838EFC1AACB9DF
+          E43E010718FA1AAC37915CD2DD2573796D2766B93BE09116428238C92481DC1C
+          8E0FCAA0B5A465DA331938208DB9ADE2E74526613C6FBC60060ED923B927F5FF
+          009C5516B1D34353531CA268C303CA3E013FF315BE8BD8EA81B55DA1BD609FA0
+          DD45CF2D1B4AD5752BBB0D2AED5A4BB76655286DA1E5739FC5ED9A9D63A8DA6A
+          50EF81F217E12AC707F4A74F4358FDD4DBA40D1498C995BE273F3FFEAA9349D0
+          74F8B558A1B79EEAEE756CE6240AA31DF393F97E75EAA9DA70DBDB671A2F7EA6
+          7E62DC478C600F333E6B39AA5A72B648BCADB90CC492091D80F954982D87C4C6
+          65FCF3CF7E38AA8BDD52D6D6F4C3334F6F8190B3465723DC7BD48D3EFA2BD0ED
+          6B72C170565463C8E3DB1EF5E6EAF0EBBA34FB57B086F5E5EE158DAAD3B2952A
+          46863CE391F51F3E2A2C4FBA72C5094EF861804E48C8C54AB6D2CDE107E7D89C
+          13FEB5630F4DCEF22065117C3F89C8271F4AE78786E14C3CAA6913CC8D880BD8
+          738EFF002033CE2952E884D8452310AC4606EE0C83FC58F4F6CFAD5C7EEEB4B0
+          955CA89A55E06E3901BE9496B9FE2B3DC65C763BBD476ABE95C329E4B757872F
+          5833E808543CBDD86980B5CB9D0E768DA633B4710FE644F873F5AD6AEB5028EF
+          0BC933B21F8658252BF99535D0E1402E07C5F8BB03C67F2AD73A83C3E8966925
+          D3DA78FE1E2393690C7EA5811EFD8D7D0383DFD0AB4CFF0090868C69C068F420
+          09E5824F8ACA3BB534B4CFD7DD6932DE5F4CC50DCC8E1CE300FE2ADD7A7BA605
+          869C5AE124592700BB2A9DC07F840C71F3AD5351B2B7D3AD2155BADD7EADBA45
+          5EC3D80238E2A3477F7858B0BB9B71393FC43CFF005AF4B7766789DBF6766EEC
+          D939C6F1B46D8E72B435FA4CBB2B69D43A263486E2E12470814B2C6A3017E593
+          5A5B5BBA48E8D92CA70455A8EA29E2F2C3B6E48F1FC3624AB1C77393CFF6F954
+          0BED4FEFF772CECA2391CE709C015A386D0BEB62597753588C1E62311FACA090
+          7F0848B548E1B8CCDB821152E3019CF94A24CF6047A53493491A6D621E323B30
+          CD49B4912189B6FC2CC7BE38C7B57A4688C2C6F2774CDC5B945DC7E1F4F2FD8D
+          40D8CB21258F02A4DE5E0F88052413F8876AAF32B3642E54554F2270AFA4D746
+          54A4901604310284383264038382A4F7A8FB58617B2FF953E8A19723B8F53EB5
+          10654C8013DE5A95DEA07150C90CE462A4797BF3C8E29BF28249CE71F2A67293
+          70950C649F8467E9567168F34C172CA01C7A814D5ACA212B2018643907E75669
+          AD2901F8504ED6F87B0ABD8D6C6563AAFA9F902AD36C219194B8E0E0B0A62641
+          DD9723B026A73DD42EEF86041ED8AAE690963B9B2BED43A00C29B0B8E4A88F08
+          662630719A463CA3C3647B0A76595F1B57E15EF4C956604FA9F5AC86392DCD98
+          CAB56686F5232B30475500A48303F5A52136E776CDC4630C395CFF009D5481B0
+          673CE7B561EE5D73F11DA7D3356769192A9EC6700E16F9A0693D4FD5F6D2B5B5
+          EA25AE446D134DB5463B7C0071FA56F5D33E18DC0D2D46A975796D3BBFF152DA
+          6DCAC83D18763FD6B8C693AF49A6DC24C84EE4E460E2BBE7855D712F55D85CC3
+          7CB0A3C4C00941186073DD7E5EF5E338D3F88D9DBBEBD93DA18082406C11E3BC
+          1F1C7EE91A74DCE0CAAD81F7F0EAB6ED1AD4695A5470424BDAC5E8EFBBE2F7E4
+          E4FE5EFDA9AD66D6DEE2CDA57B811DCEF002DBB11B8639DCBE9FEDF9D41D46FA
+          0568E311EF8A36C29E4E0F3F3A61678D9E72AFBDD549DB2600ED9E3FF957C72B
+          5C54B879A955C5CE3B93BADCD6B29B7B3A4D002832359D94A1B8952250F246D9
+          C119E791EA7D294D040E92961BBCDC1F8FF97FEDC7B76E6A6E87A425D59CD7FA
+          8CDB2DD73FC24CACB330190172A4004F19208E3D2B10DBDBE1E49B4A9A691C7C
+          10B4A197B71B8A907BE33DA935AAC6830A8DAC1AD645780C52B7E01B5F0547FD
+          A7B7E5569650FEF199A09244825F40CA32C71CF6FD783E9553A83DBE9AB6D6F3
+          2DB59DDCD854540ECF2373EC71EDDF8AC684208A57B9570EC846D6C76356D4A4
+          F63439E08076C6FE4A20B67756DA9E9D796F1C6638F308CEDF3412FCFB9CFC8F
+          7AC46F7D7D131758CB0181B86467EA38F6AB6B3BF172DFC4DAD9EF9278CFB7E9
+          E94E6AB3A456D2CA08C0E06EE33ED59E044A94089056B916A0B6170B0DD466DB
+          3DA404ED27FCAAFA28D6E9415FE22B7A824835AF4B341A859CB15C9DD2B8FC6B
+          1B703E5DF9ABAE8CB79F64D6AACCD6F10DE92329F5FE5E7E7934F48385068930
+          A4B428808232E001C9351D63BA8DD70F1BC258960F9DD839ECD9FA771F9D5AEA
+          53D8E9B6D34F713A6D8177BE5B90338FEF5AB74D789BA3F526A234F8AD6E5272
+          4A87678C21E4F39661E9E801AED5B708BBAD6E6E98C960E78FEE3AAA0D6A62A9
+          A33246FE1E6AE163EF852AC7DF934A8119720E303807352AEA3B6D3657D96C65
+          E36EF4C02C3BF73F9D260D4627B24D964126624972C5863E5CE33FE952FF0019
+          50DAFCDEA68678912731B093EF0B3BEFA9B2BFCBB5AE73BCB03D4C7D252E0B61
+          263B1C9F535656860D972CB1798F6D8DC14F1BB1903F420D41B3119077F07F5A
+          D97A6F4F86588464471C407FE5A1C003E95CA19C2EC533A8E909EE968D758B9F
+          BA46A219242BFF009C369E72327BF07B6471C7CB8B5D53A1D0F9723005C9033C
+          93F97CAADD348B4B4D39AEA38A569E005A216A7126EF604FE5C1C83EA0D446EA
+          FD557479AF7575D3F4C9108F2239E4F8E727383852768EDEBCFEB5D6B4E1F717
+          CED34193F61EAA77DC4F87F0B60F9C7804EC3727C80CFE8AB22E84B982E63612
+          060DF0FC3D87D715297A7269448FE5658139C76C0C9C826AB7C3FEA8F1775FEA
+          CD3EE9743957A727720EAE9A7136EEAA482AADB3693904673DFD6BD6517875FB
+          CE2924B7B760414DD24677139E72C3B719ED81FA76CFC42D1FC32AF63588277C
+          19E642DD655A8DF33552040F1FF65798D7A3EECC5E60889E3855E5BBE3B7A76A
+          BFD2BA25E5C3F90E420DE5493923DEBBCEB7E1EDBE85A27DEEF1160459910792
+          E249A7924902C71A8C28DCEECAA071C91C8A87D2F63AA5EDD6AB7767A74177A7
+          69F24B15E5A48365C472479CED39C601F836951CE486231BB9C2A10D9016E2DA
+          54DE18E393C9733D43C3EBB4D3C5E1844916E00B47B4E3B10300E723D78F5FD6
+          92E7415870A232EE383BB23FA1F5AF4FCDD39A75DDBC57B7622D3B4D3B048F72
+          7CBD85BD18FA1F4FCAB5FEA8F0BEDEEE7FDE3A7C91CB69230F8E395268E4CFF8
+          5D3233EBEF55B6E09DD6CEC4725E7ABED044FB23F21720E7E87154B7DD2724B9
+          54FC44E0631835E87BAF0C94C4D2BB8561E810FF0073CFA0E2B50BEE90111318
+          3B25DD9D8E0803D4004FAF6E0D49B5039275BE365C5D7A4A62FB513952096C1E
+          7FE73CD585A68F7564AE4A091881F0FAFD0575FD2348D2EE354B6D32E6ECD85F
+          CF16E8E6B8B72D0EEE7E0CE465FE5B877E37545EA9E905D1ED37C5AA5A34A57B
+          4D0B152DCF230FDBD40CF38C67D6B40203A090B9ECD2E05CC04C63A7DCCAE3F7
+          F671CF6F2058564520E4141956F63FED5A36BBD2A45D5BCB2982DCC836A3C876
+          A927D0B1E07E75D1FA8359B59AC4AC708B9BE18F8ADA27DAC7DF0092A3D7BE7E
+          B51B478E6BAD3D3CE8AF2CA5993FF2F7078F3D99793938E7FA5061DCA5637B5B
+          55DA4AD12D3C34D5FCB9A4FDCD35F5B2BF96ED10DC32413F085704F1CF03181F
+          AEDDD33A474FFC115EC71DBCC4855696D844E78C918CF6E3FAD769F09FC2B9A5
+          B054B9D56EB4D8265F3045B8379B9C6DFE1EEC0CE4718181F4ADCBAE3C17D1AC
+          FA62286FA1C88D963B69A59BE2930319563CFA0F6EF8F7AA35B699D056BA364E
+          68D4CFAAE5E3A4744D534A99AEB7456372041750C6AAAAC1CE17F09CE4E40047
+          B13C55FB784B7F3F4AD9C515CE96DA6AAF9504515A92A6253B40C9DB8381820E
+          EC11DCD46E96D224B186E217BFB451047B0C77B2AAB15F63CF3DCFA679ADF3A7
+          750BED22C6E2CE1B9061F2832450BC6E01CF2413C1C92493FAFCDB9CFD815BE9
+          B184CB8725E5AEACE83D2F43BE31BA2A084B2885642D9C9E36F04FE9C7D2A935
+          0B3B16B311BD929914EFC26F5201E3396C7F6AF50EA3A2E97D41A986D52DCC97
+          606D1731950368F52A0601F72A4D576A3E0059754C528D2AFA34BA62156208D1
+          B9FAEEFEE0D483C010E0B33ED3549642F2CB7474D796E9F7389E4466C64024F1
+          F954CB7E93B8D36CE6578A56739080C6DC37A648EDFAD7A4345F027A8BA5049F
+          7F9E69606F8033AE420C9E0E4F3E9E953E3F0CF2D1C4230E3B13C923DF27FF00
+          AA982C1959996077232BC3F2E83A8EA3712C86368D0900145C0EFC64FA9EF5B0
+          697E1B5CC856436CD337F879E3EB5EC78BC20170836D9470BA9DC1187C2DDF27
+          E551A7F0C266502E6268A2CFC0B1AEDFD690733AA6DE18464AE23D35D1696168
+          E678E32D81B9199B23E406318EDFEF5B0EA9D23697314134B1A4596019810BEB
+          CB67181E9C01F9D5EF5069D6BD3176636B37504E10C0A5CBF190338383F5CD46
+          D5ADEE352B68CB59ADA2B2F1F7A386C0C77DDB79FF006AB5A7A157F66C602D8C
+          85CB7AEACB4AD19678C1383F83E20DBBF315CCE0D3DEFE726DE325339C91F847
+          CEB7EEADD03CEB9026994C6ADC0420E2B60E99E84F3F4E58809219AE1F11E632
+          738E7D3B7D4F1DAA87335B893885C27D335AA1810B9ABDBA4316CE43630302AB
+          E5D5CE9E1A2640E00FC47D6B7FEA7D1AD6C6072F23C776A76C9115FF00CB6F9F
+          F5EDC62B9D6AD0A48771963023FC679FD07BD545B1958DF4CB0AABBD1F7C9D5A
+          18C92C33B3190A7EBED4F45A3DC1019E4D8F9F880C8E3DAADED0208E25B75DCA
+          D8C02BC92699D7D26B14945C31B7908DBB1810E08F7F6A03B9280C2ABD5AF62D
+          26022155F373CED19E2A9AFB5B86D2C669AF272E581DA1941627D06334DB812B
+          AB312C7700AB8259DCF6007727E42AB7AABA5E6113CFAAC8D673862B15985195
+          1EA4E3D7DEBD6F00E0D5389D6D44431B927AF80FD7A2C95EEA9D1218F393B0E6
+          A0F4C6A50DABEA37CC58A051FC31C9C10477FAE2A3699716571A8CD74F0AC499
+          F34C65B938E7BE3D698D3273A26957122D9B4E93B84F35C1DA300F63EFC8ABCB
+          7BD4F222DB6B1DC3140E1C7645CFAFE66BEB7656CCF9DAF745BDE24099C1000C
+          478107713E2B9D72F2DA7A1B907D1566AD67B775E4BB144A77ED5EF8FCEB5D96
+          6F32E33B8E0F723B9AD8F5C94DC4D34D35B44176FE351800F24726B566C6E522
+          41B48C91FE1F61F5AEAD4789D20AB2CDA4B25CA60BC95B6AA36307F4F4ABE363
+          7367E54D7F6AD2C20FF0E395FCB5E464FCC9231FA550586AB1D821952D96471C
+          7C78653F91146B3D4526AD1C4A211004EE55BF11C639EC3D296A6FE2764A9BE9
+          547BF4B043799FE95B7CEA2C6CA5B84600EC2539C601F4FF009F2AD1353BB86E
+          16331C615C8CBB924927F3A652E27789A2331F2FFC0D9C5309113CB3F6F7A854
+          ABAC400ADB6B5EC092E749584574CEDF5F7A0F0714FA15E7073F2A4CB1964C81
+          8C551185BC3B394BF3F10AA05D847A83DE9A69643DDDBF5AC47B8E463269D2A3
+          6FA6454B2428C06A6626D8F923F4AB8B2D523B68C80A1837757507F43555B377
+          B52D36A7079F9D4984B7651A8D6D4105343721C8FD6B203377248359C7C24D0B
+          26CF9D421589257BFCBE749F7A70C8ADE9F9D23232714B0989E6938EF9E29593
+          EF48791680DDF9A8CC29C159CD1BB14904FA560E47A529442581BEB3B4629A2D
+          8181FAD2831C1EC71402884BC8A403BB3C628DC0919FE9407049A1110B28B93E
+          F4B0A5467D0D662758BE3383EC28FBD0D8DC6335211CD4727658EE6B38653C51
+          1480FB67E744A768273907DA9F294B9C2036739EF58001CFF4A6849EF582E49E
+          2A3A94C353F8009CD59F4C5BAC9AAC2CC400B96E7DC0CF1FA554AE4819ABAE9E
+          648EF6177731AEEC6E1F9D5170D2EA150377D2639F2553CC05D8FA30DC4BD556
+          175282238225F2B319C381C1C73F5CFD2BB5C9D1F67D4112CB6F732CF0315CC6
+          87CC6724F033E83F2E3DEB9674C437FA4682BA9473466D2D6629243101E64990
+          09627D4763FE9EBE92F082C74DD6BA7FCE68C5EC92405D6156F2D549C03BDB18
+          240278E076E7D0FC17500DC2F49694C06683E6B4CD53A1AD35C8FEEB98EDA654
+          56590838908C8DB9FA7FCE293A3F4CC7A36E8EE156450ECE4C7C4838F43EA380
+          056FFAAE8D148ED12658296631248483F8B183F41FDAB78E86E93E9CD43A17A9
+          AE26566D6E1863160E2238F88ED25067048393820F6C71C9AAA56D3480380BCB
+          D7BD3936BDD4896DA7DB48D34ADF0C6AC70CC32C477CF6F9FAF6AEE763A547AE
+          786E744BAC896D582C72DD5B341340EA70BB0E4F619E78EF8FA69BD2D75AE74E
+          F595C2DAA69ED74851E79EEE368E205C636827F064E40C9F9024D6C9D77E2CDF
+          685A05CD843716F26A826C09EC9BCC897E457B63D0E7FBD45F24001554B4B1A5
+          CE55FD410586A113D8EF31B448015427713E8C3F3FCAB50D3EC66B7B436B7134
+          D797085B3349F08DB938CF1DE99E8FEB9BCD77506B4BBC4AF146584AC406E48D
+          CA076DA3240E73C735B04923ED7F294296E0866C8033FF003B520C2372A87383
+          CC85A6DFDBCB6BBC08810589383C7EB5AC6A12732055E4F700D6E5ACA6A4656F
+          28AC88C71807681EFF005AD4EEEC268CC8D3C601DC76E338A58E4B9755BD1522
+          48524EE694EACCC0C65B039EFD8D4955568C7C3F1763C734C4FC018C007BD56E
+          20E163D957EB571269BA1DF4D190B398B66E039F8885C8FD49AA5E86D3ADC691
+          1956DB9660CC7B96CE73F4C62AFCE0C73C2F892195763230C86069CB3862B389
+          228E345800F81462BAACBF633873ECB49D4E7874F28022155A7FE50FF0543D5D
+          D076FACFDD67B57659959564333E23F2C64B91C672091EB536E5742B40069C6C
+          E4BC9005550580E0F058A8248E3D7BFBD59EA71DB5EC69F788C18D1FF06FC13F
+          9679AA9963B531958711A29C6D4383FD2B61E2749D6D4E955739C5B3810D6FA9
+          1248C0E43CF2A1A5C1C43408F5254516DAB24E8DE66969006049811FCCC7A8E7
+          23DBF5A7A68269A7DF24A0C6C3940C7B639A7ECAD9DE362AC42938193C67FE0A
+          8DAA5DD9E8514973A83C846DF8638546E627D39EDEBEF5CA6F6D7D5594A93007
+          1C08112A67B80B8A8B71325B413DD49CAC2A5986393EBFF3EB5A15E75FDEDC97
+          11C69027F2E3923F3352757EBB92EDC8B7516B6E460ABE1CB0ED839AD665D5A0
+          495E60AA4B73B54719AFA9703F8719660D4BE635CFE5CE079444FBACC5C5FB02
+          ADAC3ABA5B1491A60D73390046ECDF847B0F95555E6B579A896F36E242A73F00
+          6207E9517EF51DC0CE7393DA90D711C6095EF5EB059DB0AC6E348D4633BEDB47
+          4F484D8DD220058009046334A8A55471DB03D3D6A23DC90723BFCA92B2EE6046
+          01F9D690F00E15DA0919560E14B1620907D4D332265B6FCBBFB54792739C6EC8
+          F953919665660785E7029EA04A41A5A14D8490A15BD29BBABE11A855078E33F3
+          A8F1CFC9CD36CBB892791EBCD3D6630A22989972C1B867240C807B8359518E38
+          39F7A6D542E7DA86971D88AA67995A23A298AECA79F8863183584E38F7A8EB70
+          08E4E0FB629265201CF6A9EB0AB0C2A7E4206E6908E18E4F20541494B71CD3B1
+          4C543600E39A61E0A5D990AC04EA10E7B0E40A61E72C846EE3BE2A287392DBBB
+          F735869F1D8F1FDE997A429C2948491C1CE29E8C8C1E327D8557C328DE493814
+          FBDC0DBBB201A1AE1128730CC2CB1DCE78AC3ED231D853324A18139C7CA9B136
+          391CD4350530C2ACF4AD2FF7BEA10DA24D1C4F29DA1E5242E7F2ADE63F04A6BA
+          9A28D351C96009C439C1F97C55A6F425ACD7DD59A6470A977F3D5B0067001C93
+          FA035EB4E984DBA7DADD7DC3CD995F710401800FCF9FFEEBC0FC47C52EAC6AD3
+          16EFD208C88079F885B6DE8EB265709B9FB35751DA40F3CAE23847E179622993
+          EC73DAB63E86F0A35BE88DF777C2787CF2044F10DAB819CFC478F7AF4CB1BAEB
+          64952DA288C463026865659CC8BFF6A8EC31EB9E295A67517FD35A7DDC573A7C
+          71DA5B8C88707C9540A773EEFE5C2824FA7AFA5788B8E3BC42F293ADDEE90EE5
+          007D974FE45A7BD2405C66F2EACDA32AD1B41705400D260A9F4C922B42BAF15F
+          A7343D5751B2B8D3AF2E1A273034B851920E1B6AE781C139279E322A9BC49F1C
+          2E7A9F5BB8B4E9FB2B78AD5DFCB86710133C84F7239C609ED919E7D2B966B369
+          A8586A5751EA91CB15FACAC278EE38943F73B81E7D7B9EF5E9384FC36DCBAFC6
+          48C09323C70B9CE001967BAEA3D4BE3A66348745B772114859EE38299F403D86
+          3FBD35D13E256B7A5EBD041D4D7B711DB5EC62459A5C2B0C9F849C8C60E3D471
+          907815C9E2D8D2A090B2C6586E2A3240CF381EF5D0BC68E8A5E8AD4347B637D7
+          17D2BD9AEE6B88C21007E1C01E983F3EDDCE6BB55384F0FA45B641826A039397
+          606E0EC227F84802E05DD175EEBBE891E2168F6FB6FCC57B6E1DECE481309336
+          010AC3E7C00E0E077C571BE8AF104F488B8D2F59D3E49E10E41218C73C0D9C11
+          CFF623BD57749F8A5AEF48DB0B4B69D27B10DB85BDC2EE0B9E0ED3DD723D8D76
+          1D1BAC3A2BC59D26EAC35BD33EE9729134CF2DBA6EBC448C13F0C817E3FA11F9
+          5730DAD7E1F40DADF33B5A1382376FA6FF005C7AA6C630E1B8948D235DD3BA8D
+          167D1F53DF3776B5938957FF006FAE3E5C55D4892CF6EC2753E58F881C1C9C67
+          8231915C1E6B5D0746D634BD4F49D62E25B0FBDA896DEE22F2AF2DD4104E4292
+          186091B811920F03D7D2DA688350673A65C19E29E10D6E42FC241E71CF04E0F6
+          2060D799E31C2E9D839AEA2496BA771B472483330A3595E5B329DF66C66C027C
+          A4DC1463DBD3F3AB283A823D3E292E25478EDD01620AE370C5729EAEF1634CD2
+          F54486C74DB9FBE44C63985CCC6078DC123630E72338E73DBD2B70E96EB997AB
+          FA5992DB44B29AE2EA42156E6E0B8003633F0AEE1EBCF1D8E3B7394F0ABBA21B
+          5EB361848E607EBF540060E92B917881E235D755EB378EAF2416524995B70703
+          03819AA1D2EE268665960501D3E2071D883DEBB169DE0D47AB4ACCF6A22BC6CF
+          C1048C6227B71B972393DBD73C56FDD3FF0066EBEB08E06BCB386382619571F1
+          38C1E491F9638C0FF2FA5BFE28E1B674853A2D2E8C002223CE48FBAE6B2CAB54
+          9D2D89C93E2BCEB3EABA86A32996F263212724B9CFE7459F52DF58BA8B7BB758
+          C1C18813B7BFF4AF4B6ADE07D8ADA4C93428D2676A482358D4B37A0C7FBF6FD7
+          44B8FB395C3DC94065B7E7B01B89F6ED9C7A77F7AAA97C51C26E68F61734F4B7
+          A1123D23F649DC3AE18F9027C955F48757457CC90CB73279BEA8CA1C03C76E7E
+          B5D0AD3A93F75FC7677515E46C0EF419465EFC10C0678F627F5AA4D1FC038B4C
+          984926A124D22FE148C608F7CFF6C56D5A7F86D2C96D21B355FBCAE17073F1F7
+          C671C1CFF9D7CDF8A7F8F171AB8693A639F23E1CE3CD6EA142E5A25E33F5565A
+          6F89B7F73646382DA3896157601D558B1DBFAF6CFCB9AF2E750F576B93758CBA
+          8CB3C91DCDB5C6F8E2BA025552A721591C1561C7E160411C10457A674CE9F866
+          7FB85C584BA5EB1B082A398DF1DC32FBF6207B7B5691E33F84FA558F4F43AE4F
+          AB4367AB34FF00775B5581C9B95D84EECFA6300679FC5DCE2BD4FC27C57B2AC6
+          C2A8243CE39C18DBC8FF00BC2C77764D350DF39A350104F82F68FD8C7ED19D01
+          E27F49687D1F73710F4EF59C704914BA3259B9B7B92A199A685C0DB1823E2DBB
+          9769C8008C67D6BD1DD116D67018A380456CA76ACD18E587AE0E724FCFE55F11
+          7C02D5BFE9EF17347865D79BA76C3508A5B1BCBF585A5C46EA4EC0AA324B32A0
+          18F5C7A66BEC5F84134DD09D376FA34FADB6AC96E8AB6F713C223C211C312090
+          7F403EBE9CFF0089784D1E1F705D4DD87660CF32660C463A6FE2BD270BBCA970
+          CD21BB0DF1E98DFD7657BE3269DA358F475E05D3EC6F66D2DA0D4EDD2EB23CA9
+          A2955A3665039EC719E09183DEB43F02E2B1B8D3752BD1646C5AEEE1E47995B2
+          181C12AB924FE2C924E33C7B56DF7567A16A5AFEABD4335A5B8D5B54B58ED6F5
+          B73159E38F708C30CED38DC70715A843D25A55B7517EF0B18A5B0B85F88A5BBE
+          2193BF257B1FCB15E2AAD460C3797F4AEED2B2D6E156A34170F7F78FA2DAB579
+          6C7EE37569058DB3AC9FCF3C61CB0EE720F1F95728D5A03A63182CEE17498267
+          1BA1B5020865C1C8DCABC7E639F9D6FBD43AA0D2B4F334B34CAA3204102962E4
+          00400A3E2E727B03DB9AE49E20EA3A9CF6FE6C4EB651938CDEDABB06CE7003AB
+          00BD8E720919F960D7488225C775A6A063640DC28DAE75849A6A482FD1AF2260
+          70E9847232739C121FEB85AD3750F10ED040417B9552DE62BC39F8C760481E9D
+          F233EB547AEDEBDFDB3DA5CDFD9430ABB8FE14CA66258E7905B27D7D07A715AC
+          6AFA335F5C48896F70CB1332A9492432640E40C80A38F4E719033C8AB58D224C
+          2E755AEE186ADA67F16A4092058269ADC3E4C461C8C9EC79EDC0F4C568BAEF8C
+          1A6EA1A8C5A5CB3DBCB2CBF0CBA6C73EEB88D4739DAB908318183839AB3E89E9
+          7BFBCB578EEAC252CD26F8A47660F8E7BAAB0C1C6792318ADFBA2BA1A5D2E095
+          CC88D7224FE1DDB5CAB1841EE8001DCEE040CFAE7E75AA9E813AC1DBFBC8ACF1
+          5AB346616802ED754D35A0D1BA4B5BBAB54F811ADC4B8465E79201C638E323B7
+          6F7AD93A83A874B51BAD678E22AD1959C625C8E32A146E38DBEA08FE86BD51A1
+          7873D4B258E9D04496D73A24ACF25D59DD4D24519761C1116DF51EBCFA11EB9D
+          C62F0A2D6DF5A5B9FBFB4169E52A7EED58F7AA71F1057272327D703E58AA9CE6
+          F24FE56A38EFEC1794B4CD6F5C8E0D3757D2126B9550AAEA6164D8E49F841566
+          19001C654719E2BA0DBEB1D75D4767E5DCC904D13B6FF23502D1B00076C819EF
+          9C7C2073C0E2BBE6B7E15683AEAAC32585B7DD946D30FDD97128C823CCFF0019
+          0470719E7D6AD74AF0F161D364486F8A44586FFBD8F3111471818DB9E31C7F5A
+          74DD4DE6085A9B46A53DCAF397FD2971AD95924D32CAD010048B1DCBE1DFD48F
+          846DE71E9F9D22D3A1756D1668E19EC1E4595F2AD04BBD9476273DF8C7B7B62B
+          B8EB5D3D610279501696E3796DCC368E063B0F7391DFD3BF35165D36EC49083F
+          73B675531F9AE1D980C11920E381F53DC715AC7663F0952D24EEB9DC769A85A2
+          111C858A0042CA18F0392083DFBFAFF5AB7B5D667681DEEB4E9E69C9C2A040C8
+          A47AAAFBF6F51DEAE74AB8B6D3269EDEFAF5232495412A8D8076C71DF903D29F
+          D30CD70DE6DBD9811A106416C37663C907E673F3FF005A4EA8D2AC63679AA18B
+          58B89EEA49F4CB5FBA2E306DA742133DF1B436D5C9CF3DFE552749EA0D5EF656
+          89AC8A0042916DCA9C7B13DFBFA56C36AAF7F7F219A255C6E08CD012573C8E3E
+          556D6F60BA5A5CCFA7BC51DE6CF304B227F0D78EE3D7DFFB5613518670B7369B
+          C734C5BE970B8135EC9704E3FF002886C29F4E723FCEA7C7696BAEC86495E286
+          0076170B8391C6315CC3A8F57EA44B24B8D4BA8ED25988CB5B246D0A277C0571
+          9FEABEFF005AE5FAA757F542AC8BF7B86DAD836E88472162C73EFC77A832997F
+          355BAB8A6721769EAAE9DD02CE479619218D87225908DC0FBF22BCF3E2EEA8EF
+          223B5F5B450EEF21739677F7230B904FD6AB3A97AB6E67B39E4BFBD559557717
+          2E41F5E36E79FF003AE37AF6AD7FA8912492996DF71F2BE323E44EDF4EDEBCD6
+          800531932B857B76082005D634AE86D1D2196F27D56DCC8C3220B9F34BFC8E55
+          081FAFAD43D6F5D8F43B6223BEB6658D3E08AD893C9CF04F03FA1AE569AFCB63
+          14505D5C850576A6E3927F2F5AADBD92F263334922ADB83F0E4F04633939FCFF
+          003ADCCB1B9750F990C3A09807A9F01B9F495E79DC42DDAFEC5BF8A27CBCFA7A
+          A35AD6E4D45A6965DA3E2CAA29C607B7D2B56697CFB9662E4B8C6D46FC0DC9EF
+          F2A9D35A388D9D3132B0CEF52315AEEADABD9E810B4979266665DD1C5183BC8C
+          91F403E66A8A76D715AAF60C612FE919598D4153BC0E158DEF5143A04F1CF7CE
+          85324A0CE4FE407E5553AAF5E5A6A4CF712DD35E4B21CED4562C7E473C0AE5DA
+          C5FBEA9A85CDD3657CE72C10B6768CF033F2E0522DA408BCE5B1EB5F4DB5F83E
+          D3434DC39C5DCE200F2D8FBCAA89201216DE3599A6D4A0BE1E624B0BEE8954ED
+          4871C8C7AE7819348D5AFEEB59BB25E5324CEC598B3F61DC939F41C9AA883548
+          91C091B23818DB4F69520D43A86D96191E1DEDCB7048E0E719F5AF7753B2E1F6
+          6E140068634C74103DFCF9AE536897D6D6F19EAB71E9DD3ED63D35AC64B9B6BA
+          9A772645126E44EC0678ED8E73FF00056EAD6BA7E9768CD6F3DC4123B6043825
+          5979EC7D4671EE3E7549D57A13E877513890B0946EDFD8EEF5F7FAD564D7F797
+          918733B31886149E0A8F9579CE15622A3CF1065C39CDA9DE81804F391F4E446D
+          2B5D4697434010B1A9F9F77F108888D09FC67938EE48CD2174C9C42AF2AB47BD
+          4365C606D3CD66DE1DAA67B872E7D101E58FCE957F7DF7924976C630031CE3E5
+          5EB035A249402E10C6EC157CB6ECBBBE21B49E00F5A6F72A70579F5F7A5E0B02
+          03520232FC44E3EA2A93E0B5B7C538AC1401DCFBE292CBF2CE79A1802BF4A172
+          3273CD081D50817D29D12820A9C67E54C91907DCD213287340308D329E628092
+          062803B9A6CF2B581261700E4D294C0586CAB524B734E3FE119EF480A307BD25
+          3082D80C739069824B723B51BF239EF58DFDF9AAC9956010B2AF8CE739F4ACB3
+          0C77A6F771580715095284E118EF584600F23348268CE2894E13E936C0C31807
+          DA92D2EE5C533934668D49694F6F038C0A49931C0A6E8A5A930D4124D00E28A2
+          A2A48CD654E2B145084EC6EA0560B6E3485F5A5038A98385088476A01C562827
+          14269E462467D2A55A300E3E3039F53C54147201142C843020E31536BA156592
+          085EA4F053AA2C754B15D22E5FCCBC68B952BC4801DB9F97C2719CFE55D6FC2F
+          7BCF0FB5C3A62663B4BD94F91332FC2FC7E06F50C30063D463DB9F1174C753DE
+          F4FEB569A859CC609A160C1F3907DC11EA0FB57AEBA5FC5FE91EB2B6B3D3AEA7
+          169A84A62F88653F9D4E14123730236E14927D3E5F2DE3FC1DD6D5CDCDAB269B
+          B7033A4FE83A7B2E95856EE8A751DDE1B4F30BD0FF00BA6D0BF9B05BCCEF2AB9
+          C49909B88E4F18F5F4CFFA553A5EEBDD3F6D7F1E9569348B7313BDB95D8C4920
+          866E5BF0FC5DC0F5F6AE9FA37FD2FD6293DBE8D76F3BA88CE2E94C001248DC7C
+          D6192595791DB19E315A675FF4D6A5A648ECB0CD712DACE72DF11040C1C007E1
+          2381800F6C7B835E1DAE04C1FAAF5018227EC9BF0D346BED23A5EF3EF305A6AB
+          79AA28683CF50448366366EF894F63C11C649E7D78EF8D9D31D4BA7DE7FE2F4A
+          37362DFC549A32B243090D8DB1B285DAA305081FE1EC0939DD3A2BC53B0D134C
+          BBD03A8D12CECD26F3ECA586DDCAC2B9DC41CE48233C703153B4DEB286E565D2
+          5751B2D6343B895E779DC1775695CB3670D85CF231C60F383935606B8126146A
+          8A5528B69B707FBBAE2DD1EDA7DBDF6892DE0015D645113265A160707201CE39
+          C739ED5BF5D491ADB48D0200338071DC7BE33443E1D4569AD2DC5B3CF9B589A0
+          5495B7109E639DF9C0E5877FA01E95235885FCCFE1DB3121704863827D381C54
+          AA09121737B273465514EBBED0F9912A48DC9C0AD635CB51851C6D273F4E6B6B
+          96CEEAE829DADC0190CF5A6F52F98971CE77200767B919C9C7E9588974C2C75D
+          BA58B59D4E3306E08F18C71F19ED5517173245711A04F3371E001907E94AD4AE
+          55CB10932383927803FA8ED537469205843A3199CE4FC5CEDC1E45132B930132
+          E7CA22374DA49C0C532B0AA396958C7F16739C1EF59D425FBECEA76858F76776
+          3938CE4D3774A3B00180EC17BB1C76AA9C792A8F4516E636966674194ECA0F38
+          151846CCEA718F5DB902A492E3E091BCB43FC83827E58A9490ACE8983E520E0E
+          E1CFB8A4D9E680D253DD2F2C3FBE6D92E58C56EC7CB91F206C561B4B73C700E4
+          0F90AE3BE20F528D535678E391DE0B6CC485B8C804D6FBAC7887A1F4E5E431CC
+          B2C85559CC56E15989C1C67702BDC0EE0D714EA2D5E3D6B59BDBD82D458C1713
+          34AB6EADB820249C6703FB0AFAC7C256CFA34DD5EAB20FE53E077FB0CF9AC1D8
+          17DCEB33103CA413FB951EE2F3CDE3B0F9546DC48C7A5628048ED5EECB89DD75
+          03434404E2388C71DEB058B77A45283F047BD00A2103BD3ACAA1720E49A6C1C5
+          1B876CD4825096A993EDF9D38018D473C1A419063839AC48FC70735290142094
+          AC839AC86C7AE0D3425233492F9A8EA52D296CF9A6F358CD151254C08590726B
+          25CF233C5268A5288590D8ACA49B1C360363D0F6349A292709FF003564C06F80
+          7AEC19FF00EE9B38CB60E7148A29CA510968E077A19F348A289442C86F7ACEE1
+          8C5268A2510B6DF0CBAAE6E95EADB3BA8E58E18A46114ED2A8204648DC79EC78
+          CD7ADFA77ADFA6FA8356874ED1355B1BEB968B7181B3BB18CE41008C8F5C7E75
+          E1BAE8FE01F87FAB75E788363169CB711C16ADE7DCDCC0CC9B107F2EE1D8B76E
+          39C127D0D795E37C2EDAED8EBAACED258D39FB4F55AADDEF63B4B04CAF635BEA
+          1A7F4FDD9BB935DB3B29E75C84836FCF904927FF0088FD2B49F1AFC7FE9AE98E
+          90BCE9E8255EA3EA59A0CC32988343007255C487777DB92179CF1BB148D1BEC2
+          B2F885D5B7EB37580D262756B90B3A24C1141E7E33282464F7C1C0E4E71CECBD
+          0DFB38A3D2AFDA5EA5B997A9A0900F263B60D688327B9F8B731C678E072393E9
+          E1EDA9706B7D356ADC1791074E9233D27F95DA652BDAC0B594F07C7F4FE1782B
+          7BCD950A0EE6DD8551DFF2FED56573D29AEDBC2D7171A3EA1143DCCB25AC817F
+          522BEC2748FD9D7A7BA7E1B48AFB48D3F4FD3624548F4FB11B0B3E3192CBC927
+          039CE79EFC5750D03C1EE99BE48E27E9A82D36282B2162EE06781B5B70FAD752
+          AFC6603A2951C79FF1FBA9FF0083AA1BA9CE85F0CE2E81EA792DBEF51F4FEA6D
+          08C1F356D2423BE0738ABFD7BC33F10EF7478BA9356D2354BAB49DBCB171392F
+          20C296CB2E4B2AE158E48038AFB736DF674B5B817773A8D8E8F73006C41B6D36
+          ED009C6FCFC27D3B7B571FFB6274C7879E1E7811AEC1D5F6F2C4BAC29B3B08F4
+          A8E4F31EE403226CDB90AA36E5B71C150473D8C6DFE2AB8B9B8A74DB4064C624
+          983D36F3F4F559DDC398C639C6A6CBE47F45E8DD35AD3CB6FAE6BB3E873B1020
+          9BEEBE6C1F32E41C8FD31EE456C1D57A258784DAB5AB697A9C5AFCF7563E75BD
+          FC122F949BC95CEC19390037738E47B71CEE40AB230462E80F0C46323E95866D
+          C73803E8315F40A96AEAB525D50961DDB883EB13E92415C40E1A764BB9B896EE
+          E259E67324D2B17776EECC4E493F99AE9FE0DF56476D31D26E6F5AD22C79B13C
+          98DA92027B1DC300823E1C1CE3B8AE594038391C1A77968CBCA0683B00FD1269
+          832BA2F89D7DA1DF6A7716B6B64C9AA4729336A01DB64E0F39D8C4EDC939CEE6
+          C82083E86F3C0DEB9B5E9CD665B1D41C4313C5E51B89252F1A60920053918C96
+          EDFE2FD798E973E9270BAA417AE777FE75ACC80850B8036B29C9CE39DC38A625
+          B882D6F44B60D2B2A90C8D70ABB94839191C83E9FD78AC4FE1ECAB6A6CDD311B
+          F8F5FE14C3E0EA0BDFFA2EBFA45F74DDDEB16896DE458C6CF33C2E162C76F8C1
+          F87B95E73EFCF6AEBFE0BF889A5F56C6BFBD1EDAF2CCFF0006362FE6A8520824
+          9CF1F0E3F5E3B57CA2875CD4ADF4F9AC22BFBA8ACA66DD2DB24CC2373DB25738
+          35B4F867D4B074FCD7BF7CEA8D6BA7AD1D4131E8A999273CFA9750A471DFB827
+          91EBE3AE3E13229388AB9E583B7A735D0A379A5E30BE81F885E24691A25EDC69
+          F677305DA5A4FB0EF9635DACD801300E4B1C8F4193FA54EBD5BDD774C89E1B08
+          84CE9E59F8F6924FA119F981C8FEF5E10FB3F69375D5FE3BE909A75B5C6A2CF7
+          12CDFF008870D211B5B0F21240272467EB5F6ABA07C1AB2D27A7EC65D4ED4C37
+          A63CB225D37C24E0F201C1E40F5F4F9F3E578BF0F670AAACA21DA8912797D27C
+          174ED49BA0E7BB0365E1E5E95BAB58E45B983EED383CC68ACEDC7F4FD29FD0ED
+          474FCAFE736A1712BCFE62CEC47F0978F85028002F7EF93CF7ED5EFC7D26DE2B
+          D68678B7A3AE048D8271ED8FD3FE77D47ABFA6BA675237567E669C8EA8825490
+          8578CB82C990482B900907193B1877535C06D722602DBF22C6C10E82BCC1174F
+          4DD4115A6AD770793AECA86333ACCAA8E439C76E4820023273FDABCE3E3E787D
+          AE9EAF7DB6D34F6A101D91969155F9DD8E0E33C9FA1E2BD6F3E8B3741F52496C
+          653716A30EB1381800F39C11EF566B2596B924D706D93CE4EF0488A72BD8E0E7
+          1F97FC3DCE1DC4AA70EB81754409F1DB2B9D77C3997943B0A8E20F5F25F3535E
+          F0F248E1B6BDD3B508EEEE32B8B58C13203EBD87A57D3FF083C68D1E6F02BA07
+          A734F9350D57AD4595B8BA48D0C932C8136BB4AECD908A5727711C631ED5061F
+          023C3AD66D609F5182DA5926DCCF08CC6F9046541C06049EDF9FB8CF45D1FA0B
+          4AB2D3ADED63315B6916A008ADADED943E0E428661F8873D881C57738D71F3C6
+          58CA46969D266667F40B070AE0B5EC09754ABAC794154FA66A7AD69723C72C69
+          AA2F9877C931DAC4FA81B49C7F7EF56EDD46E8AD25B58CCE1C0D8CAC76A3F24A
+          B67900E38246793C0A8BA9F4F59DB3308EED228A770A920B5059C103BE303182
+          07F6A93A2E9575676F2C1F79DF6088A10C49857193C13E847A6723DABC73D847
+          8AF54C6C6028B204D6AE2D24B88BEEF798DC7E30E10E7214B7AAF1FF000D63AA
+          FC39BED5B439E096C991E79CB4BE5DDA104760630CD804E01C11D8FBF151354D
+          62D16E1D230EB3AC98DCD1ABAAFA7386E0FF00CC5546ABAF5D5B4EEAF7ECF1ED
+          CBAA29C9F6183F9556D0E49ED6E5735EBDF08DF4A8EE2287CEB775526394E10C
+          98DD9C9201C76E7D73E9826A078746F3A796F2DEDA7B4B579101FBD9844B36F0
+          786461C8C6739CFA9E3B11B2757CFA86AD05C8BC9560B24914442F9F82C41E0B
+          0CE08E4F238F9E38E41D5375D41A6C666892CEFAD220730DB4A6552031F899D7
+          8279CFCB71ADB48F672F71CAE4D7ECE99D442EDBA74930B39ED1D0CD733A4D04
+          12A029BDC0EEA849661B4638EE0F391DF63F0CE0D32C750D3AFB505FB83DA5BB
+          A9B192DCA46B3337FE7A1C6D3B94EDEFC738EFC798FC2AF1927D135B5F264905
+          D3C8BB0CF046D6E8D9C9F85C9FA76FD6BD45A775F695D49A74C27D362D135E40
+          CCDE40C4530030034671B58641CF0060807240AD06932AB4C3B2A34AB07991B2
+          EC565D456D7EF74B03B39813799954B230201CA91907BF3ED8A6AE3508AD6237
+          172E235201124876A9CF6E4D721D0BAA74C7CED494CD2C382D673ADB499CFC4C
+          F8078EDDC64E0618D56DB753037ACBE5BC90818DFBB8EE4FC4C01C9FA1C76F9D
+          64F970D1972E88ACE26085D6E5F106CA0388CB492E3943F020EE7B9E589E3017
+          F5AA7B6F11D3529D9657487CBC6406284A76E18B0EDC93C935A2EEB19EE118DB
+          4CAEAC3F88AC187607D067DFE75035D7904A6F2DE77BA5662CFF00102F8CFE22
+          7BF7C727D4D4839AC10D4169764AEDDD2BADE8DA95C3BDCC66574CB2150A500E
+          368E0E09AA3D75F49D4AF2E6E2273A4CB206548EE6D595246E7073FCBC0F515C
+          053A92F15E0F2DCC3320EC768CFC4727231DF8FD00F4A35EF18AEB49B78A195E
+          E255500089E624820F718E1738F43CF3DAAB2E3D52716B46A72DD3A83A62F35C
+          81E6B2717691A857948C1DB86F5E323383939F4F7AF3F5E7881D57E187545B5B
+          9B99A1946F92D6D2E8B6D68C7E22BDB83CF2300F3DF15B91F1F55A642924B03C
+          9FC376DF9080FD4138EE3B8FAD68BD65E285E3DFB8DD1DEDAB205D8EFBD41EE4
+          856CE324FA549AEFFBB65CEB9A8DD3A98E82BB37873F6963D6B7BFBAF5486486
+          E55448A618492E39EED81C7D7E5DEB6DEABBD3AE5A5BDB417171159457097171
+          209360745CEE4201CF233DF1F2E715E3BB2F126EF42BD0D1A450C0E482107940
+          827247C3DB1F4FCAB70EA4F1B63B1D1209EDE568256C281B73BCE4161C7718F5
+          EDDAA3D935E7502A547888348B5E65764D6FC5ED322B8B9376E265CFC5FC2386
+          EFC67FDAB8E7895D4B34E6D65B72B676F2AB48DB1CC6A830BB4E7EA471EBCFCE
+          B9E6BDD4561D6925ABBDEA58ADBB3168C3677A9C67032067FAF7A5DCEB7A53E9
+          5F74B5BD372E53C8135FE788C60EDDB8033D8673E9EE2AE01ACFC2B1D5BB3524
+          4E144BEBA926BBBAF2E57B953B70D3F0AB9C72324F3CF7E298B5BDF29DD4A8F5
+          C3A72549F5C1C83FED517C86C90EFB14104A282738CFAFFBD2ADDBC9725932A1
+          7D7B03EFF3ACE2A16BC3DBB85C0A85B5090ED946D5FA765D466B56B79D55218C
+          7C6E8149F7240FF9CD735EB7B3D62D5269EF7518A68236DAB1C72761F41DAB77
+          EA7BAD5EEAD1ADF451FC472237217E3C13E9FE67E55C47AA34AD5341B87B7BF5
+          65690EEDDBB2ADDEBEE5F0F5D5DDF5BB6E6B54696B7000027CC99C13D236E8BC
+          C7CADB52AE6952C38E73D26703A78ADFFC3FEA4B2FDDD2DB6E919CC8094FE9C5
+          3FD77D2A9AAC0E152349D4663994F247B1F97F6AE73D2A521BC4B89591123654
+          E4E0727927E8335BE6B7D7FA5D817F2D85D9618444385E3B727B572B8F58DCB6
+          FA95E70E61350C971CC6200064C007A2E8DBFF00C6E753271CBCF9ECB91CB1F9
+          608C76E3914C173CAE78F6AB4B2D36F75D9A53022A45BB0F239DA8B9FAD6DB69
+          D03A32DB1967BCB894C4A1A43163691EAC38EDF9D7A4BBE2742D5C18E927A013
+          EFC84F292B7361A3BCB4BD3B4FBAD45DD2D207B97450C56352CDDF1E9F322BA1
+          745F483E952ADFDE031DC118589C03E58C0CB123D7BF1E83EBC4E853A77A0AC6
+          78CEA4E649C2CB16C4DC49F62719C01FD4FD6A2C7E335A69A2F122D3FEFBE621
+          58DDE42A11B8C363F5FD07D2BC7DEDEF12E2CC751B2A5149D8D4798E63C33FDE
+          AC00568FD6DAEC9A96BF72CCE1A385CC51AA1CAED0481FAFBD542EA2DB3E13B7
+          1E9512693CE95DC80A58E70BD85200C57B9B7A62DA9368D3C06885668691953C
+          4CC4E4B163F3A4C92863902A1ACAC878634A139624B735AB5CE12ECE329F5976
+          8ED4E9738C9FCAA287CE7914B865F8B18A61DC922DE69EE5463381F4A7484F2F
+          25891FD69895F9C01585908FC5DAA40C6143492252B2327E2AC0182493C7B8AC
+          16539C039A483B41C8C8A52A402C8209C76069C5B61DD082A7D4D3009E723029
+          D4719C67803FAD211CD3208D928A80304E71EB59006D27BD619D707E2FD2A2B4
+          C4F19A6480A2D6972668A28ACAB5A28A28A108A28A284228A28A108A28A28422
+          8A28A108A28A284201C5641AC500E298284AAC66B19A2894A119A01C514524D2
+          E293636EF6A756E73BB23073907E751EB2A3240CED04F73E9520E20428E9057B
+          27EC4BE2B4325CCFA06B32CB23AC4D12DC3BEE74899815913D7746E07AE0A9DA
+          7238AF64DB7887E1F6B7ACEA5D3F61D456D2F5DC4D24773A24B2B5B985E3E584
+          624C19470301598F73800363E47740F56DCF46755E9BACC0BE6B5A480B439C09
+          50F0C84FA646466BD1BAE347D6DD41178D1D1F7B790EB1A74F1CBAA69CF1EF68
+          1A2450CFB86331941F10E4E093DB76DF03C4B80D2AB74EA8496B5E3079079E47
+          C0F5C670BAD6F7CEA34E009237EBA7C3C4745E92F1026D2352D62DED1D50DC7E
+          173E512B2273C9E7E47F5EFEA65F875E17E897DAC5A5C69F2CB6571E618FEEF2
+          32F94586700E4F3DC631EBF96355EADD5347EB9E91B7EA2D07578351808324B1
+          C60F99048BC32300011C90412070463839AD13A27C44D4F46EA1778EE77C4EBB
+          C4721270DCF239EFF4AF9EB98FA6E349C208DC2E98B9A7DA89120E41F05EA6BA
+          F0EED2DBAAA6BD32471DC9B686C67B4F33727C3BB74B9E4EE24EE3E9F0FA6455
+          46A5E1DDE59B5CBAF9261552FE706F848F420F6AAAD3BA8FFEA3D056E2E660D7
+          32AC8D3171993D30993E879EF81DEABBA83A8A2D0B4BB3B7961B83A7B831048E
+          4E6371DC28E3D4F6C1CD50358300AE897B1A0BA1697D40C2CE36559022BB1CB2
+          9C9FD3F3AD2B5E956D6C641E5EE3B82893D4F15B3753689A87DE2360105B3608
+          665CB608F5E6B43EA8921D32093EF7729140808264708BF404FAD058EA8E0182
+          49E8BCF5CBE0173B0173BD5B5449A4922323E5C15DBE80E73FE469CB2BE1A7D8
+          C2A90BF992125F9CE47CAB57D6FC4DE9DD3750992D2D65BE50D90CB2617E6338
+          F8BD79C0ABA5F133A46F6D2DEEE3BF582E5154CB677D68E8A5864E018CB6E1D8
+          1E5739F4AEF1F87789680EECB07C44FB4CAF3552E5ADFCA4F9027F4FBA7C5F3B
+          B2C4549566E769E7D71DEAC61B67BAC3C41CAE002C7B0AD4BC47F14B4DB4B0D3
+          A1E9396CC992DF6DE4896FB8EFDD904798091C6071DB079E6B42D33C52D66CFC
+          D1712FDF11970AAF85DA7D3903B7CAB73BE12BC0C0F0E6CF493FB256B59D5D9D
+          A682DF03838F05DB67B78AD1C48CDBD8AE4927047D2B9675DF8817105C4FA7DA
+          1C305D92CA7B8EF9503FCEB72E81EA18FADF4EB82F12457D6DC91CEDC9CE319C
+          F07E7DB15C8BAEF469B44EA5BC8661F8D8CAA41CE413FF0007E55AF8170B651B
+          FA942F5A0BD80168DC79F8F28F3D96907B4F2E6A80B163927358A28AFA72B914
+          5145084514514211451450845145142114514508451451421145145084514514
+          21145145084565480C091B803DBDEB159542C188C7032727FE6692160F7A319A
+          765B39E1B8FBBC90C893E40F299486C9EC31DF3567A7F4AEA7A96B9FBA2C2D24
+          BFD40C9E4AC16C85D99F382A0019273C71F950D20E0244E9125758FB26F81117
+          8D5D772A6A52431689A5A09EEFCF9846AE4E76213EC769F6EDDC57BE6D3A3B42
+          D1AC8697D33A3C6D6F9319992258AD612A79DACB85F419F7F5AD17EC87F656D6
+          7C2ED2751BDEA9554D5F5278D7F76AB8916009BB1B80CA973BBDCE3918C938F5
+          3E99E14BEF89CD8795093F0B8C061EBCA815F1FF008878836E6F1CC6549A6D80
+          2369E67C73CD7B3E196A594039ED873BAEF1CBC944F0DFA75743D2A36B45D3CC
+          E14869BCA2666C9DC46FC0EE7D856F70DB5D6A0DE6216B78891B9B664B1C7A64
+          7D6A4DB6803488A38E256DDB36EE206476E48AD9FA763BB16F8BA45C7E10D103
+          93F97F9D782AB5412632BD2877CBD396AABD3B455E5C4611D38DF272DF51FED5
+          6BA35B48B7B1F1BD836403DB1EF5175CEAEB5D38B4518459376D25C12588F419
+          1FD7B549D1BA824B86436F12C8C472C8338FA7FCF5AAB4BC0D442A1EFA951A4C
+          6EB7A935787EECF1CD1A9C8C346C0153F2C56A1D4F6563D45A6B5B6A1A7C1776
+          2E8637B4788346076C6D2318C548BD9669D18CB27939E72172C7E405447D52DE
+          34365144EE09C991CF723DEA2DA959CE92ED972E85AB5B9027AF45E47EB0FD99
+          7E0B7526B3717BA7E97AC74FC532006DAC6F8F931B7ABA0903107BF19DA3D057
+          8CBED5BFB3E7A8FC11BAD36FBA2A2D6FAEB40BD32091EDF4E324D62C08D8B279
+          59DC181E1F6A8CA91C6457D708E696DE6677959D304FC03B28E4FE82A6C3AA2C
+          978B6A2DA743E5898B3425A3C71C6E0319F957ABB1F88788DAD40F754351BD09
+          99F5DD173C3683DBA5AD03C42FCE85FE9F75A5DDCB697B6D359DD4476C904F19
+          4743EC54F20D7D28FB347ECB5E8EEBEF0EFA7FAB3AB3AAEEEFD759B186FA3B7D
+          219634549103050CCA4EE5CE0E73C83C0AF7FF00889F673F0B7C74B2B1FF00AD
+          3A3F4EEA06B36592DE76DC9327CBCC8CAB15247284ED3EA0D742D2B4ED3344B1
+          B4D22CECA0B1B1B68D2DEDADE08C247146AB844551C2A80000057A1BFF0089AA
+          DDD0636DE69BA739F683BFD979BA541B49EE0E1ABFBD17C91F15FF00646F5559
+          EA9AADDF86FD4DA6EB3A2C2AD25BD86B324915F1C267CB0C9118DD8B0206760E
+          467D4D7983AC7EC71E3674269C6FF59F0DB5D86CC28669ADADC5CAA03DB77945
+          B6FE78C7AD7E8606936C2168CC6A0139F846DE7F2A624B5B95B548209BC8419D
+          CFB8671ED923FDEABB6F8A6F6880DAB0FF00BFD084DF4283CF7242FCCFD8F4AE
+          AFA8DFCB656FA75C35D42712C6D195311FFBF38DBDBD7156CFE157578709174E
+          DFDE139FFF009384DC0E3BF299AFD0AF885A1E9379D33AD8D5745B0D5545ACB2
+          CA9740113148CF05C2B303B7807048F4AE5FA42E99F661B2E95B483A7E3B1E9E
+          D4C9B3D55ADE4DF34170FB3C996576600A6F0F093824B4D16368CE77D3F8C2AD
+          57C3680F29CCF9C7D2154787BB93FE9FCAF13FD81FECA9D4BA54275CEA1D3F50
+          E97D4352901B56BBB431CAB6E8A5B3871C64E49538C8DB5EFAD16EB57B1B353A
+          9EA316AA24FE24372711B3707702B9C2E3DBD2A05978D16DD6DD5FAA69D68A56
+          C2C1C5B9BC756092CE22491E355C7A2CA9CF3F8981E3BCDD1F51BA96F1EDDA18
+          A4B7C90909058303D8F6E0FB1045786E2378FBBAEFAF5865D9F21CBE8BD7D85B
+          1A54C0118FE957F63A60D4235924419505B39C9FD6A175C7485F75169A2E6C9D
+          CDF43E514B508009191F21F76472016E0E47B7357697F3E9D0AACB629B463E16
+          38C54FD3F5D8E5E15562917B29271EF5C9A55187653B8152A098C05CA7AB2C6D
+          2EEC4BF525A84B88A24547820632B67230500C9230410067B715CE355F0E2EB4
+          8B79B54B76962B78A5D8F038F6F5518E0FBAFD7DB9F545E9B4D463DB3242F363
+          2AE4063CE0F071C761CFCABE5678E7F6DEF173C1CF1E35FE9FD4ACECED74BB2B
+          B8A1B9D164512A5D42ADBC48B2B2E43488C3E3001C15C8C8AF41C338557E26E7
+          B6D5C25A26098F6DD71EE2F1B6E1BDB34E7A2F5A689636DD450365DED6FDCE55
+          A2F8166C0C6C7E7079EC71C7CEB64B4825FBA3C2A19111144B096F88382770C7
+          6ED8031E99AD2F413A575774F693D4DD393C971A2EB1125D5BB2AFC782A32181
+          F50432903B14357DACDACF1E9CCB32CD6974176DBDD16624827D40CAB0F4C9E7
+          FCB335E58E34DD8239742B6882DD4365B06B3AB816EB7511F361089B027F2800
+          0DA47AF7079F9523A72D750BDB81A7DBBBA3DCAEF2236F40A5B3C9C76F4E3FCA
+          B44E9AEA9BC827BCB49AD84D149B6179C6445BF271B81C119E41CFCBE59DB7A4
+          EFC74C4730B6992E4AEE432105890C32E4B2E42F63CFD7DEB5B581CD9855BEA4
+          65A56C5ACF8590FDE56E22D4CD9CD90265310762B9C120FF0088FE9541AC7865
+          05934B786790C10C98621F7492367E1E3207A9E4F6F6E2AEB54D7352BC75BBB5
+          D3E51BC9CB392413EA72012DDFFAD4CD5AF55AD5EC824EB2CEBB1A4BA8FCA6DC
+          E400154938EC793CF3E99AC2E63C19E4A72D2DDF2B98F5FDBD8EB0FA5DADB482
+          D2CACCABB4617CDDEF9E431E324924F39C60FB0A8BD6FD1D63A674F6A17BA747
+          6B6F6E2E45A08B6FC7248A0EF65F4009FE807BD740D6744D034E8AE3441D49A6
+          ECB193322BCEBE6A7F8C6D524B11C8F5E7BFB5698BE1B6B5D6168D79A8DF0B1B
+          61BEE21B420862CEC4FC43F97B03CE4E00E055248C05CFA8751EEE495E42F10F
+          A1A08249678D7CA7909CFDDDBE1661C9241FAD6CFE1C78BC973343A6EAEF24FA
+          E44A90DBCF2AE5AEC166CAB30C92C3230DDF1C67B5759F10FC1DB68AD64BA8EF
+          22858201B2590EF6C13938C579FBA8FC3596DA6C601663FC22082D9CF1FD6863
+          CD133C9711C2ADB54D40617A63EF16DA788AF2D5DE013C219D21031B7240E31E
+          A7D7E7C679C66C352B7DE9780436B6C10B969C2A8600EDC9E028E7D73CFCF9AF
+          37E91E25EBFD3EE2D7588FF7DC2108945F02D3B2E30AA1DB71283190A411DF8E
+          6BA8F44F8849D57A62DB3DC5969CE3703B6648909FE450AC4333ED524B00403D
+          855C34BC4B0CFDD74E971063F1B15BECDADDAD9C170C2E6DE24E3731251739C0
+          CE0E7BD552750DADE4A6D656E66DC0BA2031463693B9F0D9E7B0C0278F6E6AAF
+          52D175A49AE6F63D084F8DE9BA3909E17F11F9F7EFDB9C8EF9AD4AEB4BD517CB
+          8E4B29BE3725231CEFC8E070467BFF005AAF469FC4B776E48909CEB1EAD5D3BC
+          8B5804775023E547A027D88F8BD3FBD69573AC46978D23DC49652491FF000E59
+          17E1656C719C73F4ED81EB57FA858DE41AD5DB0D1DECE1F336CF6515B84C818F
+          8B6B776C10433727824FAD58EB5D4F77A3698D63A88B3B247C411C53DB42ECAF
+          26EDA25DA0AA839666246E3B495E40AD14E887499D972AB5770CBB0B8E6A1725
+          7509470B330326E8F80C3FD3B7EBDAAACEA0F730EFCAC81060385C73DF078FA8
+          FF005AEDDD53E1CE9BA874F6917FA29907DFA117A8A2D768443C13C7E0C71C64
+          67DB915C5B5FB26B2B49ADA68C2CF1312F2C6DC8248C023D00E7BFAE6AC7522C
+          C2C6402241551724C9148CF6E1FCB9551973C1CFF6271FDEA1CD6377756C9F78
+          3F0C4311A37B5595F14DEB7169215B758D411EACF81B8E07CC71DFEBEB4D7DF4
+          7C1962C08C6D03258D642434C0580C491C9538B63137C300DE3D40C0A9DA6DCD
+          B8BA48EE605DACDC48C3907D38A5CF1B119601437E66A36957090DD37C5F2C30
+          E2ABD582A8240D96E7673584914B25C5BCC536EC5922E18303CEE07F3ED4CC17
+          FA75CC4E626579541C238C1AA19B5D920BA312832B360152393C531AA24B1C04
+          451185CE37639DD9F63ED55B41291223656E523B86917700E130C50638E17D3F
+          BFAE6B46EABD39AC89D335191AF12D615586494971E5E495009EDDC7EB56FA6D
+          E3D93BCAAEA5B38008DD8AA1F15FA8CA68455E68FCFBA54FE0A2F0101249F619
+          C2F6F9D7D2FE08ACFA773568CF748922318E73CBA78AE0712A5ADD4F48C9313C
+          FEDFA85CB35AB4874FBA56B794019DC108CEDFD6A8EE2E374ECEDF1B13927DCD
+          2E7BF693F17C58ED9A8658BB7B93ED5F52A8E693202EDD0A6E6B407195D262EA
+          B865F0F248E5FBB24C83CB58517696278CF1EBC13F9568D7DD457D7D1A44F3B0
+          856311796876A903DC7A9AAE2CCA0A118C1E411CE6935C3B6B0A36EE7BC0925C
+          5C2794C6DEDE6B43580271E79252BE63B3ED0146E39C0F6A492307149CD19E31
+          5D4100429C22B39AC5149359C8C7358A28A1080715943CD6281C53084FA313DC
+          F6A3CCE08A6B7714A0571DB9A982AB842B1CF069DC92A413C5339C5049340308
+          84B2028EFCD6379F7C52738AC678A2510866F404D27345155CAB008451451421
+          1451450845145142114514508451451421145145084514514211451450845145
+          14211451450845038A28A1097139424838AF4CF811F6AAB6E95E86D43A03A83A
+          7AC66D0EFB05AFED2111CFBFB6E940C0978E39C13D892318F31D3B6D3986407B
+          8CF354D6B7A374CECAB896A52F61D74CC15E89D5E593C00EB8B7D4AD22FBF74C
+          EB56EB31B4DCE10C6F860064F240C104E719C1ADDFAB74A4D035237BA7933E93
+          29125BCCCA30CA791EA7FDEB9E69BE2FD8F8B5D2B61D1BD74D1DAA5800963ACD
+          BA245246029544909E0C6339EC08C7723B69FD01E2D1E871A868BAB452750E8A
+          730C0D1DC32FDD8863FC48830C60E49DA40CE7B8AF27C4B83D5BFA62715D9B1E
+          4F6C9893813033399F02B297BE991569091CDBD0E2489FB4E478885ECDF09BAA
+          AD75983C8BD636B017092385DEC3B64FE783C7E55DA7AC7A621D52DEDAE2C7C8
+          D534540AF0BC970A19DC32BB6D5277923246114E37FA6327C59D0BD46967731C
+          D6B71F78B1B81B95E320E091EA0F63DB8E0D7A5BA3F50835ED245B92B344C448
+          EAE00DACA31F17BF07B1AF9955A4E6B8878208C11D0AF6167585C52C14EC773A
+          76A7AA6A9605E2BBFBB0DDE744E3938CB29C3139CE7EBDEBC6BF6B8867B0EA6D
+          322338FB935BB15B7070438720B119F5057F435E82EBDD56283A8A29B4F89E0F
+          36336D318708F24832CA78EDD8FE440F515E36F1DB549355F137579652DB8085
+          4AB8C15C44BC1FA722BD4FC2F4FF00F3E5C0FE1693F61FAAE5DEBC3FB87915A1
+          330619C60FCA934515F565CE184514628A10B73F0A3AB4F4B752AF99288ACEE8
+          08A624671CF0DF91FE84D6C5E34476D789A46A1194679DE48D360C168D429E79
+          3EAC7078EE7DAB49D1BA1FA8358512D969534B19190EE02291F22C4669ED77A5
+          FA9AC238EEB54B1BA11200AB2637220F4195C815C17DBDA54E214EE9B540A824
+          1123BC323AF2554C38E70A92E608151DA3322B8603CB9179239E7E5D87EB516A
+          F755D46DAFE0B2F2AD85BDC4500866F2FF000BB29387C1CF24633F31E954CF16
+          3257E250324AF61E9CFB735DC1312E526194DD14515253451451421145145084
+          514514211451450845145142114514508451451421145145084564315EC71580
+          32714FDBDA34F26D1DF34C34BB0122437256D9E14F879D47E3375DE85D11A033
+          4DA86AB79B20499DBCA8DC8F8E56C67002AE58804E17E55F6B3C03FB39E97F66
+          4F072CB41823B4D47A8C47235DEA115BED6B99E46E4EEFC5B4280A3E4B9E326B
+          837ECCCFB29D9F44F4ADA78BDD411B9EA1BB13268B6C58AAC103298DA661DCB3
+          0DE003C0539E49047B9ED27B3D4AE0FDE9E392E1C128807E1418CF1FF3B8AF93
+          FC51C5455ADF2345DDC6FE2FFDC267CE3EF3E0BBFC26912DF9A78C72F2EBEBF6
+          5CF7A6BA7B54D39EDD659D25B5DD88DE5425877CE4FAF7EE7D3BD6FDABC3A869
+          16B1A44D6ECA3F9638F92B8EE49FCAA4DCDEDB2E9B2425B1C12A7D7F5AD335BD
+          42FF0050B4FBB4722D9E9FDA49A724C8E3D80F6AF00F2C39257AA6F695C8C607
+          555D67A85F4F75225E324237E63DB8008CF6E3BD74BD1EDBCDD2E48D176964CE
+          E1E95A068163A5DC32ED952409C9964604FD71CE2BA441728F67B2D58B467033
+          B704F158DC5AE32D1095F17340646573BD52DF4DD3EF0CB3DBA5C5DA65577B0C
+          609E4F6E6A1D8F595DA6A8DA4E97A62457370E487087180A492703B7A56C7D41
+          D2705F39B99C16948DA36372467B63E74DBDAC1D29A7899E5CCA50C624DA03B0
+          28DF0FA7CBB7722B4D220EF94DF55AE66325697A975E6A5A4884DEE9A1A2C32F
+          9F00DF1336792AD9E7B81CF6229CD13531AD4335D25BC911070B149B86E63C83
+          DF1E9567A6DDBEB96515ADC69B07EEEF39567B52A0E198960428E00040E07A9A
+          D8758E83B44B18751D39459CE248E568147C04838C81E9C678F9FBD46A52A401
+          C415632E8D2706BB9AAFE9473A95D3AC40BA60AEE6608AFC7217D715B16AF6D1
+          49A15F58DCCB2D934CA503C659DC0C1185C1CF03E79A5683369BA2E94A650A6F
+          1720045C9CF7F6E0D3BD35671F50DFC9A95E7C6B0B6238C8C6DCE0FA77F4FD2B
+          250FC50DC2CD7150B9CEA8E10D1F53E0B59F02FA1355E901AACB73A91BCB7966
+          DB1ABE72C0672DCF639FED5D46EF4EFBC5D473F019318C7AD6B5D57D603A5D82
+          DBC2B25C4EF8533B111A103B12338C81C6077ACE9DD5F7823592FA02924CFB12
+          04232801E58E704FA76AE854AD197F35C934AB553DAB0429BAD7525ADB6AB0DB
+          992404105DD33B579F5ABBB99404DCBF103CF1CD73CD5F421AA4B3F912169E66
+          3FC5723628F5271DAAD3A726BB95A2B79E32AB0AF92CE1D8AB63B11EFDEB13AA
+          B9C090B454B4A62935CC7640CABFD42C2C35AD3EEACA728D05CC6619155F1F88
+          1EC4720F279AE49E32E8177ADF4EEA5A56B76875348E193CB9C2AE2F22C10CAC
+          1486525199588C0CB718DC1474ABEB58B4468A41133FC47E04C6E20E49C6E207
+          E59AD37C4DEA9B3D466D374BB14334D717245D363E2B5511B1DF221F89412001
+          9C72CBDF35B68BFD0AA28B74D41A4C83D57C62D2BC43EA8FB30FDA3B52FDFB73
+          A86A9A64D3086FA2BABA699AF2C5B889F737E2754C60E382ACBC02457D3DF0DB
+          C57B0E92B57D404475BD26F238AF6CAFA29B7ED85D032E39C1CE477ED9AF28FE
+          D19F041B52E8BB0EB3D334CBAD4750D25A3B7BABCB65C836655819240012551D
+          5003F0E3CC39CFA724FB1AFDA3ADE09F46F0CBA8F4FB6FBAC81EDF48D5518ABA
+          4AD23CAB04A390EAEEECAA46082E01C8EDF4ABAB56718B065ED36F7DA21C0730
+          39FF00791F058E9D436B59D6EE3DD3B2FA6163E2AC1E235DCBE44AB6304731DA
+          E412D205EE5BB6077E3D7E75BB5BC65B4C2E4B33A0C1976801883CF02B847853
+          713CF3F94B6A154DC184C914459C9C965271D8638CD77C83CEB356F2D51ADE48
+          CB2B9F8F6B618F273EFF004FAF3C780B8B7634686E17A2A5588683D158697AB2
+          5A4B1B5CC02553C79A467E6335E7BFDA15F647E9BF1BBC33D4BAEECD5AC3AC34
+          3B3F362BA814B2DD4084931CAA01242A9660C391CE723B7A33A740BED355CAA1
+          49107C38C819FC43E9DCD6D9A05B6DD0A2B7994491B6F4DAC3395DC460FE553E
+          1D755AC2B8AD4CE5BF5CEDE4572F89B29D6618C1FF0079F45F057A7BC4EF18FE
+          C6FD5BA25A4F733416EF610EA50681A8DC99ECA5B7B85DE8CD12BFC0C7BFF2B0
+          239F9FA6745FDA4F7BE21A45A2E81E17DE5E7545E1645B58F50F3A02A003BB0B
+          183B40DF9CF0A06493CE3D3BF690FD9D3D2FE3C788F0F57EA9D5FABE9565069D
+          169B1E956B0C6EB12C5C462376FC298272A413962770ED53FC1DFB22740F803D
+          0FD45A774AA4DA9EB7AB44D05CEBDA82C6D74B1B0C79519551B13201207738CE
+          7031EEEFB8AF05B9A42E2A530EAF0310E193D4E240F55C5B3A17A4F66D243399
+          C2E11F670FB46699D7DD32B7BAB6ADD2DA7751979EC6FF0045BCBB5851F120D9
+          24714AFB8860CBC827E22D8C761DD63D0B53D7EE239347D2B4EB75552DBF4B2C
+          C8EA0927F98EEEFF003EDE95E0AF19FF0067DEB363D47AA5DE81A8C3079CEF3C
+          7A7DD43208D9882DB639402304E701C0DB9009E09AF244171D43D09AC5C2C13E
+          A1A06A96ECF6F379523DBCD19E5591B0411EA08AD96FC26CB88EAA967563996C
+          6D3CB718F749F715EDC69AA17DC341AD6996A96976B3AB487FF0E90B6406CE0E
+          700B0E076EFF00A5415D3B50BDD6208659A14433299602C3CD0A0E0B007E26C1
+          2B9F624702BE225DF556B77F7067BAD62FEE662FBCC935CBBB6EF7C93DFE7577
+          E19F8ABD47E15759E9FD4BA06A77167A85A3637C6F82C87874E73C30C8FCEAEA
+          9F0B4B1C5B57BD1D39F9CAAFFC85411DDC79FF000BED8E91A1E8BD33D4DABC17
+          56E5B540EF769733287C86F897693D8E1881C7B0E295ADEBF7B6905CDE5BC51C
+          500F81477E4671CFE62B84F829F6B5E84F146DAE759EA0D44E897F29F2E782F2
+          F97CC182BB5949C0618E00038C631C8ADFFAF3AF34DD46D5469979241664EDD9
+          2382431246EC90BC77F427E75F2EAF69716954D3B861691D7FB07D174E9DC35E
+          C2EA4447F775A1754EA936B8F3C13CA491265E45048439F9FF00CE6B57BABAB4
+          B2965B5BCC5EC8A0F94F22E58673EBEDC7FCEF52751B39ECD08826726772F248
+          0139F90CFA735AECD27DEA659491B540018738C1E063B7FF005512090B3697B8
+          12E55BACE9A275FBC985490C76827970338C7AF6FE94C0F0CAC355B19246430C
+          D2B80C79CA139C0FA6727F3A9FFBCAD3CC55BD6931DCBAB0D8BF41F2ABAD1EF1
+          12469ADF6DDB478F2E38672C5D7FC454761DBBFBD554E919D962F970F74AD6FA
+          56DFAABC2BBC4974AD76E6C4C6C4AA261A2C9E3F0918DD8F5E4D635CF107ADAD
+          6CAD6CBF7EB5D456D1A880C71AC4F1F2C71BD54127E33C9391E9835BBFEF6812
+          376BD5824982AED1237E02DE98C7E2FAD73ED6353B5492569729123076653BBF
+          CE9BDF529775AE287D26D3182A96D3C67EADB7D516F25D626B99E34DB148E4BA
+          DBB0CE1C0605430DC40381804FAD6B912CFD4778F35C4FF7CBA7DF34D3CEC01F
+          847C4ECE7BB9033963DCFB9E60EB36F0437B73340A1B08197729C15F4201FD3F
+          A558E85A5DE6A76965696F26E373BBCD42D81B01072C3D40DA3BFC8FA55C5EF3
+          DDAA4E17301350C34CA4F4DF506A1A74125B5ACB730413DDA3AA07D8D22329C8
+          6D8324703824E32463939AED52DA5B9BEB892E80972E093DB78F71EC31F2F6AB
+          4BED3E6B691E02C8A70D0AAC415B839072076ECDF3ED516E13EE56C0A06903B0
+          53E60CED1FDCFA1FD28D5C949860C2817B25B3C44C1046872098A3270C303F4E
+          C7F5F9544B2B48F76E31ED51FF0031F3AB8B1D0DEE221383B62C9DC7F16D001E
+          0E01E7009FA7351EE749DB72DB6E5D571BD8C8318F9FF5A8BC293C8230B5FBD4
+          C5C1CEEF2C02C589C63BF6A6AC9D3C99494667638193F3ABA4B146F30300509C
+          0C0EFEB50EF7499195FCB5088368F88F3C0AA019C2CF9DD55C131FDE1DB851EA
+          D8CE01E41FD2A3DE47712CCA924A1F049193900D5ADFE8B369D125C5C3471DB6
+          D04BF9A390738079F97F435AD753F5AE8FD328245B88AFAF18FC16B0C81B611E
+          AEC3B7D3BD6FB4B3B8BCA829DBB0927DBDF60A3293D41AF7FD1BA7457E6DC4F3
+          172B1090E543633961EA3E55C535CD72E75CBA33DD364ED08AAA30001C0007A0
+          ADA744B893C46EB587F7CCF98CABCA2DE3381B514B6C51E99C7D7B9AA0EB8D42
+          3D47A8AE5A2D9E544162528000768C1EDC77CFE58AFB1708A0CE151C3DA25E5B
+          A9EEE5BC01F78DB69E6953A40BFB4233F60A84D2C0558B76FCB938DB8EC3DE92
+          5B39C0001F4158AF47BAD88A28A29A1145145084514514211451450845145142
+          114671451421673C5601C514539442CE6B14514908A28A284228A28A108A28A2
+          84228A28A108A7D6E83BC7E7C6B2222140A80277C90720724139E73EDDA98A29
+          100A14F4D2DAF2D25B8B28E69D605DD700479F287037123D33502A5596AB77A7
+          477096D3B42B3AEC9367048FAFA7FBD45AAD9AC121DB72EBEA9A28A28AB52451
+          4514211451450845145142114514508451451421145145084B4908047BD3B0E2
+          473B8D470702943B7353054485D9BC25773693245209236914B20EE8D8207AF6
+          23F5FCABB674EF5C5CF4D5C6F49036E55E09DD9F7047E55E3FD0BA8AF7A7EF3E
+          F1653B42E46D3819047B107835D5342F18AC2EFCA4D521F22538DD2A0CAE7DFD
+          C0FD6BE6FF0010F06BBAF72EBCB61A81890371023D67C33E0A145CFA1B15DD75
+          5BDFFA824FBC69F3F973AC827FBBCBC92C17048F6EDDABCE7E3974F4C9AC2EB6
+          B0E12E004B923BACA38C9FA8039F97CEBA8697A95B5C869ACAE7E0231BE393E1
+          208C11B81C763569D656B63AF68B6D14CAD73692C6D14A809210E41DFF002E7F
+          B5790E1B7EFE1D762BB81E8E1D473F51BAD2E7F6A0BF985E4AAB5E99D09FA875
+          682C51C4664272E467681924FE82BA5DCF829A61BFDD6FACB0B36C111320693F
+          5C8E3F2ABED0BA134AE9EB896E2CCB4D75B76A87392A3D48AFA1DCFC5160CA0E
+          751712F8C083BF299C7DD6473E4435517FFA35E9ED3ECA69276BA9C2A6E32330
+          5DA0773802B93DE3C11EA13B59E7EEE24631798013B73C67F2AED7E206A6BA3F
+          49DCB203E75C1FBBE4FA060727F406B85D2F86AB5DDDD07DCDD542E930276C6F
+          84E9899255CCBD61AADC12F35D3CD3EECA4EEEDBE31CE55707014E7B63D2AC74
+          5F13BA87462552F9AE223FFE2B9FE228FA66B55A09CD7A7A9696F55819518081
+          C88DBCBA7A2B34B738DD75D29D31E25DB0B9B99DB41D42240B25D108B13BE3B6
+          3396F53E879AD0B5BE963A16A2913DEC37B6D33E15ECE45791973C131EEC8278
+          F97CEA12C3A43697BCDCDD47A80FFF001792AD19FF00DD9047E86A3E9D258C6D
+          21BD8AE24E018CDBCAA9839F5CA9C8FA62B9B6D6D52DDCEECEA38B07E5236F22
+          4EDF4434425CDA7DE2F9D13584C8F136E72D1B6E4EFC37E9EBEDF5A835D8B4CF
+          1BECACBA712D5EC2EA5BCB6548E1669F1E62F6CB71E8BC60E73C7CEB44EAAEAA
+          D33A9239248F424B0BF69037DEA29C9DCBCE43260027B7352B6BBBC7D52CAD6F
+          A5BB48703EB060C794F4525AC51567789A37DC2136B25E9BD3B7CD59D104438E
+          704127BFCBB556E320E3D3D2BAEC7EB130479A1628ACB29562A7B838358AB108
+          A28A284228A28A108A28A284228A28A108A28A284228A00CD2DE1786478E4468
+          E443B595860A91DC1142148B6B1698823F4ADE7A17415B8D6B4F92E2266B7170
+          82407E10CB9CB0DDF406B4BB5B93183B064FCEB7AE9DEA29AEA38AD551639103
+          6197F1393EE3E8319E3EB5D1A018B85C41D58533A3FD2FBCFE1DF5174EF56F43
+          691D45A3C4BA768F7568A6CADD94451DBC4BF0ED0A380015C0F9015274E9CDEE
+          AF7765A4C16EB2A302D71744ECC7AE141CB11CF1DAB8AFD95F5793FF00DDD7A2
+          6C3A9638FEF76F6C0A363BC19CC59193C85207E9C0AEAD75D5D669B4D8885AE0
+          C8B1B4D8F8B183EB8EFF00EB5F9738933B0BDAD41B90D71039EC4FBAFA970CD7
+          73614AB737B41E836198E8B75B8D327B5B50B33AC8E4770A173F41E9541374AD
+          D6B314B094116FFC333738F976ABBD27A86D6EE030CDAA4324D11F8BE0CEDF90
+          39FEB56963D47A7CB3B5AEF0932E012A772FEBF9572C5304EF0A6DAF716F3A5B
+          247385A4DA783305ACF04ED3191E36DC36314E7F2EFF009D6D317DCF4606391B
+          330E00008EFDBFB55D5CEAD0DBE42CA8E47700E6B5AD4258F51791A40C49E563
+          63C1C7A54DC5B4DD8485C5C5E19B824850752D7E0F324003A98F6EE50A4F04F7
+          FA55B4135AC9028936CA157B300771E7920FB569DE725CEAA6E81545254BE4E0
+          1033C107EA7E95B2CB7F0A42CF88CF19193926A408FCAB4D4A30034051A7BFB6
+          B1B9BB2E16256E7B638AD8ACAD0DDE990C91B82AEA0823F994F63FD6B8FF0056
+          F5525D5CA69F6EAE2E59C491BA2F23DF071C7048FCEBA378531EAEDA16753B99
+          258D8298127E648D707867CFC5E9DEA7D917004EEA9BC61A4C0E0A0CBD28F7FA
+          B5C5D23928CA167404EE42091F0FD6A3751C7ABC7A6DD9D13CD12A4C8EA22CE5
+          97F094C7CC1C9FFD23DABA7476A9086DA15558E4803B9A8F7114727C0211211C
+          FB55868BE910E3BF4EAB1FCF97F74890179406B9ACEA9AFA7EF279B719582FDE
+          0907CC07DBD3696EDDF18AED97BA7DC472DBB461A4778913318C9CF7639FCEAD
+          B5CE8DB6D52E5EEA7B5C32BF991E17197F7CFB9C7F4AA0EA2826D22CD0CF3491
+          42DF0E220CE71EC401D8FE5F5AA6E897B83623C1762DEAB1E006912AC488EE21
+          78217225661BD95C90D8E7E13F2E39ABFD1636B5567B8C231C63E42A8FA0F4F8
+          FCC92E19A478C0C625431E07A00327FCAAD2EE76B8D40AC40AC79E09F603278F
+          6ED591A6041DD65AF0E7BA934E3994FEB17885B7AA79D226150F755DC76FF722
+          B56D5FA562B4B7DDB215BB9C9F3A658BF19208DEDCFC87F6A9DD42F143A634B3
+          4BE4AB302DB73C85EC481F302A99FA82799A1DE51E00992EC0614E0ED3C904FA
+          7D33FAEAA6F6EC7753A345ED687B36185A2F53E877F1E9979737FA8FF0E18041
+          0146602405DD5B299FF091DF83C735F1CFC5CB7B5F063ED4B7F75A75BC6D6BA4
+          EB36DABC36B1AAAA00DE5DC88D46D01546FDA06380077C57DA4EA77B1D76C24B
+          98DCAA6DFE2C56FC9271CFE5CFF5AF9EFF006D8FB2EDBF54C1AC788BD38D35AE
+          AF6165F79D4B4F9F94B9B785557CC8CE06D74897254E72B19239E0FD0FE1BBDA
+          74ABB995CC0788F59113F5F75CAE2141C581CCDC657A83C35F1BFA6FA8BA5752
+          D4FA02F12F34FD42EA26FBC87025B694C79F2678C8CAB0CFD0E0E32393E80D02
+          E2E66D1ACBEFB7514DE64016E53825DB9DAC31EB953FF057C44FB2B78DE7C15F
+          109E6BCDEFD3FAB422CB518D433145DC1926551DD9187CCED6703935F58FC33E
+          B35B8D5347876EE876467EF227DF04CA53723AE7D1836466B171AE1AFE1D58B5
+          B969CB49E7D4798FD4156595C8AED876FD17A17468E3B5B578E36F881C47193E
+          9D813FA0AD9B4E5963B75123FC0A30A718C56A9A6DCC7A782C54C8C46422F249
+          A72D3A8E6D5EEE6884C20F2BF1C60671F9F6FCABC5B5EE7E005A6BD17542636E
+          A55A754DCC6BA53C624FE21E576F7CE38AD7BA73A42E99D65E37641249C8FF00
+          3A9F36976B3A19A4BD94E4E0163819CF6E0568DE2F7DAE3C3AF00BA61AF358D5
+          63BA922996CC58E9F2C72DCF98559802A5D7180BCE48EE2B7D9DA3EE6B064124
+          F2192A0FB83676C5B4CF992163C74F107A73C19D1E6D675F981DCB29B6B4EE66
+          7552557763E119E0B1E067E75F0AFC73F14754F18FC4ED7FAA7512A86F6E0B43
+          6D19C470443E18E3507B05500574FF00B5E7DB37AAFED2DD4135BCC574EE92B4
+          BA99F4DD3D2255916366E3CC7192C4AAA64676E4640AF3764FBD7DBB827096F0
+          CA45D507FCAEDF3B09C01FAF8AF1B5ABD6BBA9A9E7B83F088F727273D3A0F194
+          A2706939A28AF452A30B74F0B7C53D53C30D792FAC82CF6CE47DE2D24FC32019
+          E47B30C9C1F9FA8C83EB1E95F1764F156F2CE2D044D6F648C24BEB89D4178B68
+          256208B9E19B00B67007D6BC342B63E83EACBDE90EA3B2BCB4BB96DA3F393CF5
+          8DCAAC89B8121B1DC715C9BBE176D78E35AA325E0100FDA7AC2CB702BF645B6E
+          FD27CA7CFD63EABE894F797A22955A612390079433C0C64FAD505D6AF347E644
+          1D635230500CD58E9B72357B266B7646C61828E5B1EE07A8E3D2A2693D3CFAC6
+          B2FE744F2C072819410013EBC723B1EF5F0B1A805EC0B5DA068CA8074A5D8BE6
+          2B22BFA3B7E239FF00EB9ABFB1D5EC7A76D0410B7DDC47845F346E7CFD1B1C54
+          5D7F438ED05BC12460ADB9E146776012791DCFA8CFCAB94F89BE3968FD336261
+          BC80DD6A099FBBE9E85558673869081851FD4F1DF935A6DADEADCBC53A2D25C7
+          97F761E2B9E74D293B15BCF5DF5069BD37D3175AB5FEA2B008C19956671E64CE
+          136AA819DC4124715E5AD53ED23AE5FDBB45F7787696CEDC10A7BF7C1C9FD6B9
+          A751F536A3D59ABCFA96A972F737529E5989C28F4551E8A0700555E78AFAC70A
+          E016F654C9B802A3CC648063C04FDF9AE45702B99323C891F65D7BA77C7069B5
+          985753B48A3B6B82B1DCDCEF791D579C15DC4ED504E76AE057A73C1B3612EBC9
+          2FDE22B85168FE44D1C99573BB3DF041FCBE55E055F6AEF9F662EA6BDBED5CE8
+          442F916C8678A5DBCA7C477027D7F167FF006D733E27E16C7DB9BDA221CD0011
+          CB4CFDC7D9556F4DB6CF0698E73B93F52BB87559F275DBB92195844653B760C0
+          0181618F7FC5EBEF55B84D572B262230A6CCE3F11CE3F33CF7A9FAF591B49512
+          698147DCA7DC618E09F4E47AD564085AE0CB0B1753F02A87E18904647BF3CD7C
+          A1A4B400429D42492E48D3F50163345323BA3A86ED9561C9FF009F9D57F50F50
+          696C751BBBF44B3B74018B9C8543E8319F7EC3E75776FA4BEA523299D54A7E32
+          ABBB6727B9AE7FE2A7425D6BBD333416E184D13FDE539CF9A40231F983EFC574
+          2CD94ABD7653AEED2D244954E970C95A25BF8D97771AD24163630BDBC87CB412
+          AB339CFAF07FA0ABAF143C54BCE9BBCB7B7D26D228E19630E66991F2CDCFA371
+          C647BF7EF5C9FA2BAA8F436B535CCD602E9FCB681A373B1E3391920E0E0F18FA
+          122A1755F545CF55EAAD7970BE5A81B2384312117DB27B9F735F5A1C1ED45D31
+          ADB56F66D6EFBC93D46E62373D4A05233B9852FAB3C40D63ACA757D42E7F8680
+          048221B635C0C6703D7E7F3AD733C77AC515E9DAD6B1A1AC100721857329B698
+          D2D1012E09E4B6992589CC72210CACA7041148AB1E9BD2575CD76C6C19CC693C
+          A11987703D71F3C55DF881D123A3AE6D0472C93C37285D59D40DB83DB23B9FD3
+          BD637DE50A772DB571EFB848F21E3EEA53985A9D14515B934514514211451450
+          8451451421145145084514514211451450845145142114514508451451421145
+          1450845145142114514508451451421145028C508451451421145038A284228A
+          28033421007145676D0BEB4D0B14564D0064510858A2B24560D28420564D628F
+          7A108A281CD14211590D8AC514214ED3759BDD26512D9DD496EE08398D88CE3D
+          FDEB74D3FC67D6AD60922952DE53200AD2797B49C1F5038FD315CF4528564AF6
+          56D779AF4C3A3A8FD775088C85D213C5FD4ADF50495D525B4202BC623556C7FD
+          A40FEF9AE8BA5DFDBEB315BEA36AE1D587E24E01F70DEC79ED5E76F30B0C7A0F
+          4A916173736CE4DB4F2C478398D8AFF6AE0F13F86EDAFA1D6E0537780C1F411E
+          FEEAA68D0D82BBAF5474645D512247797738442488AD9805CE3B9C83CD524FE0
+          B6956B0A169AE9CB3633E62E7FA2D6AB69E216BDA23DA1B89A3BD898090A48A0
+          BEDDC4119C70783FAD775E90EA9D0BA8D6CD85D0DD7687646E982B201CA1F404
+          771EF5E32F6DB8C703A4D687F73FF4EDD738C4A03DBA642F3775BF481E90D492
+          DFCF1711CB1F9A8C3B8049183F3E2B5DADDFC6578FFF00D206A3144E5D21091E
+          7D3F083C7EBFAE6B48AFA670EA952AD9D2A958CB8B413EB957B722514514A58D
+          98E0293F415D04D268ADDF52F09B53D17A2E1D7F51BBB4B29AE2554B7D22563F
+          7C950E4193601C28231C9F7EDC6697AABA2B55E8DD427B3D56D9EDA58982EE64
+          6D9264020AB630460E7BD67657A55234BA6663C6378EB1E09C2A2A3B5282D29A
+          074232A79EDC56982A3212AECEF9164010091410A9818F4C6076E47AF3D8FAD3
+          7E590B9F7A5B3608DC03AA82A01CE3D7B7E67349193C52688108948231453D86
+          0A47A118A6B691DE9908065628A28A49A28A28A108A28A284228A28A108A9B6B
+          2AC644924AB2B28E2160C41CE41048C63D3D7B1FCAA152E33B4E4D11291D9488
+          984478FEB5BFF85CB693F5759DADC35A196E8F9318BA4DD1876FC3FD78CFCEB9
+          C9719E3903DEAF7A165822EADD264BA0CD6F1DCC6EFB0E0E03039AD2C71FC217
+          32F696BA0F9E857D6FD3FA92DFA5ADACADECE56BEB782CE38432B6D04AAE0EDF
+          F08E38FCAA46A7E2CD8DD59B4935C0B6B952ACAAB96CE33C123EB8CD791B40EB
+          B4B8963C5F4A90AE14C001E3BF1B6AC753EAC42278E324AB020945C1EDD8F3FF
+          00315F9A6EA8D7A35DE2E010E93B883ECBD1DBF137B6837B110C88026797E8BD
+          0DD31E2A2CB7572EF7BBADC13950FB7DB383C7F5FF003E776E9BF164C778A202
+          CCF28195CE339F507B7A76039CD78B34BD5670AFB55A595B90E5B9038F4F5ED5
+          BD68BE225FD9BC6F10CB20501F68E17D7159B73B616AA1C46ACE57B16D7C53B8
+          6BCB98238E47B8894089CB6FC3907384F5207D3E9ECE5BF5CDD4B0B3CD24DE78
+          391287CED1F35C6EF4AF263F89BAA5E4CD25B4A0B060BE6A7C2C01EE0FD401C8
+          ADC7A7BAEE3B68E5F3F50964957F10DB86C63F97F4A83A9B575695FC139CAF48
+          F4DDAACB7971249793F96F1B36C49197E32724E31EB9F5F7AB6D42EEF6DF47BC
+          BA82E56582DF2E564248D83BFB7A0FEB5E62B1F1B6E74B79158B4DE5E0146938
+          19F9FBFE55B48F187F7CD96205686DDC88A554258B060576903B1E3F5AA4B0CA
+          DECBFA2F6E0E5776E8AD45B5A305EC7A5830A0DF15C4C07AFA81DEBA0AF89D67
+          A5DC259CF11491880A40C67F2AF2A278D1A9F4D12B14E8F0637ED440B85048DA
+          077FD7DBE7561078B56BD446D655FBBC53C799249677552063E79FF2F4355CF7
+          BA2A5F5A9566F7F30BD8165D59A59B05927BE8638D36C6649E40A0B760093EA7
+          1DA9C9BACB4DB70FBE5C6C38EDDFE9EF5E14EB1F14ACB5FD2352D2AE2689BCDD
+          A61DD8F303A1CAB2F3E8403EE79EE2AA742F1CF51D36CDA0BAD55EF678DD434D
+          70A164520608E0F6F5E73DFD2B436B3C61A72B8CFA96C1E466392F75F51788DA
+          3E9D6EE3EF88182825DB8080F6C935C6F56F172DA4B90ED28F24BF961221CBE7
+          D793FF00335E5CEA1F19246B87F3AF45C4CAFB19636232A3D028FF005EF54D6F
+          E2CC45A3565F29CB13B6439553F303D3B545F2F7EA729B2F29D1EED330BDC763
+          D7F6AB6A96B6D2A44F2AE46C20B1FE952346EA6BE86EAE6578156C22236CF2C9
+          F1393F886D2381EDC9CE6BC89D25D5FA8EB5D496B7D7778B159D948CC8140C4C
+          C5083C70477F7C735D44F5FDCDEC6F0BB116F21C46776491F5E7D73FF052141A
+          72177A85DD3AB4C97377FAAEDDAD7564178D234410C6AA30323233EFFA8AE61D
+          67E21DBF4FDB42A083E6B9411E718E49CF3E82B916BDE3BC7D2ADE5C57125DCE
+          A4298F1C139E72DDB8C7A569BD73E2A2757E93BE3816D6785F7798B2649EF903
+          D706AC65001C27649DC4A8D1A669D33DE5BFDEF8F16D67A84723A810856240CE
+          E2C06411CFCAABBA87C5AD2BABA1706DF7C3700C33C79055E37528EA78E0ED24
+          7078AF30F50F50B99A4F8C012FC5CF704F7FCBBD3FD3D7FF00B8AE619E364BA2
+          C81F6890854249E0F6E7FDAAF2F2D70D0BCBBB893EA3F4B76E6B8AF8D7F670EA
+          4F0AED21EA4B1845D74F2ED0354B59977A31C61A48C12D1F2C17D4671C8DC057
+          AFBECB7E28C36BE1574094816EE2FB8CBA7CA2F5F812C733939C76C0202FA852
+          07AD4CD27551D59D1845D241340F12DBBDB38CAC877B65595B86CEE1C7B67BFA
+          79EF51F14F45FB335FB68961D3CFD47A75DCEFAAC10DC4F25A8B39D808DA30E6
+          32244023420A9041C826BDF3EF2BF1FB616A5B355A41046244106790399E8559
+          4A932D08ACC3DD3F45F55BA6FC51D1355D39A149160BD1B10DB6FC3EEE47C3DF
+          38C1ED5C9FC58FB57742F8057206B5D526D75172D22E970DBB4F3CB8C8C95038
+          C9046E6DA32319AF945D51F6ACF12BA95EFD13A824D1EC2EB2A2CB4D4589614E
+          7E047E64039EFBB27D4D73CD03A5B5FEB6D523B3D234BBFD6AFA5202C76B0BCC
+          E72700F00F1F33C55D6BF08E93AEF2AC37A0FD49DBD8F9AD4FE2B20B693249EB
+          FB2F587DAEBF684EA3E39E9567A0F4747ABF4BE931CAD2DDDC9B9104D7A08C08
+          D923276A0C938DE739191C0AF1C49234AECEEC5DD8E5998E493EE6ADBAA3A4B5
+          3E8CEA2BFD0F59B7167A9D8C9E55C4024497636338DC84A9F4EC6A3EB76DA6DB
+          DF3AE9177777B6400DB35EDAADBC84FCD164907FFB55EFECAD2DECA8B695B0EE
+          EF3BCF8CFF007C170AB557D57975439FEF255F45145741508A28A284200CD2A9
+          3DAB20F7A6122BD8DE00F5DAF5768D6F1CD1C46EED6258A576CF053033C1CF2B
+          B4FD735E9B8EDEF2C348964B021212ABE4BA90C738209EDDF9CE71EDED5F3AFC
+          07EAB8F41EA2BAB29E4F2E2BF8822316C012A9CAE7EBC8FCC57B734BF12922B5
+          4921324B6CD1972CAA4AA367043003839F4FCEBE2FC76CBE52F5CD68EEBB23D7
+          7F62BBDC3EE5A1869D43B2E47F6A7F12F54E87D3345B7B0264B8D5126F3AF659
+          0960C9B412BF325F3FA578F354D5AF75BBD92EEFEE64BAB97FC524AD926BD03F
+          6BCEA85BF9FA7F4890335DC225BC918E76AF9981819F72849FA0AF39D7D03E1D
+          B7A6CB16550C01CE993CC8931FA2E5DC3B5D5251451476AF4EB32056EFE16F8A
+          7A8F859A9DC5EE9D05BCD2CC1416994965C67B10477C9CD69B6708B8BA862242
+          8770A49380327BE69576D1BDDCED100B117628A3D064E3FA553569D3AED346AB
+          7534EE0ECA25774E94F1B2F3AABAC6117FBBCEBB436C02336338CA855CF19651
+          9C601C938C9AEAB6D6EF0C10BE163FE2B04238036E09FD33DFE95E3FD0DD9356
+          B46498DBC8B2A95957BA1CF07BFA57A07C43F11E6E8E4D184060BADEDBE58D40
+          1E64385DC01E76E4E704671CE2BC1FC45C25D7777405B000B816C6C06993CBC0
+          C7B2CB483684B1B2673BCFDD759B1D434BB080C485252406909720F23B1FA735
+          135CD66D24D3A28ACEE01F88B38033B7D07CFD2B9A74978B5A6F536F616D25B4
+          AB9F32D010C42E7F102400C0E704707E7EB5B941A4CF04505DC716D8251F8430
+          24762320F2383FEF5F35BAB5AD6754B2B8D2E1C9745CFD6C2005C7BC5BE8F86E
+          2C65D5E08C8B84F8D9D13FF3173821BE63BE7DB8F6C71AAF4FF889AB18BA4358
+          8660857EEEEB90FB76E411DBDC938FAD7982BEB3F0ADCD5AF64E6D4C86981E51
+          B7A2A19B228A28AF66A4B77F06E6D2E1EB6B6FDE8E2256522090E46D978C0FCC
+          6E1CFA914BF179F5397ABAFE0BA1235B59384886DC88D5B919206326B4FD3273
+          677297384710B07F2DC901F047C3C7FCE2B715D7EEE7D4EE750B3FBCFEE56B83
+          BBEF2AD3222E3B39049F518FCB0722BCE5C5B9A77E2F5A24E98CED3236E8489F
+          3F79ACC832B44A2B60D734211E98BAB4571E6C324E60F2CA9CA000EDF88FE218
+          1DFF00E0D7EBB946B36B37537960F98DD4C1908A28A2AF4D145145084500668A
+          CEEF87181DF39C73490B14514534228A28A108A28A284228A28A108A28A28422
+          8A28A108A28C1A00CE684228ACFE74629C2162B20706B039A501814C24B00518
+          ACD670684A5271591DA8AC62842C8EC6B005640C567D28424EDCF6E68DA6968C
+          51B23BD299FCC1EDEB4C009494DE2803159E3146684D1E8693EB59AC11490103
+          D6B39AC64D01A84D19EF58A5601AC6DA480B14518AC8A2135903149ED4AAC629
+          A416077A314A028A2112B18E0D64560E2807342148B78839C67935352C9E1032
+          CAA1B9049C66ABE294C6723B8ED4A96E5E5396627D87B55CD7340CAA1CD71383
+          85B2EA72A4D6F0CD3849655408589F6EDDAA4F879E202744DFDCCAF69F7A8E56
+          42307F01527900F7EE6B4F598852B9E3DA9BACF794A95F52346A8969DFFA1574
+          687660B65755EB6E981E208FFA97A762695A445F3ADC2E1C91F0E703B1E307DF
+          1DFDF52D3FC35D62EACDEEEF045A3DB03B164D45BCADED9E140C67F3C62A934D
+          D4AEF4E70D6D73341C82445215C91F4AD83AA3AEEF7AAEDAC05F4510B8B4565F
+          BC460AB49939E403818F90AE1DBD9DEDAE9B7A6F0694EE4779A390DE0F49E5D0
+          F2B4970C04C3F869D4235DB5D263B079EE2E76985E1F8E3753FCDB8718F7CF6A
+          EF9A6F485A746E89656D3C100BAB683329B75DCCED8F8F248E7241FE9DAAB7C0
+          BEA59B5AE9AD46DD439D46C2016F1B2BE3746431538CF7053DB1DBDEA44F7F77
+          797AD7124BBC05319555EE4F7FF9F3AF9EFC43C42EEA541675401A0E63F3743E
+          D184DAE71DD6D5A06BB39D222F2560B6D8BE72DD76B92E49DC8A71C26060F23D
+          3BD44EAAB6B1EB3864B6BDB6916D66C19622EDF8C1CEE04608F4FF00868BBB51
+          A7D9DBB424A92A37C780A6327D0FD783FA53DA75B4B721A59A6308FC5B4AE5BB
+          F6E2BC9D4B8AB2CECBBA59B118E64CF9E7C158CA751BA9A0CC99CF9010169FAB
+          780DA25D5B46D6D0CBA7E39530B96DE3B725B77F955A6AFE0FE9FA5699124D0C
+          775388368DF261D140E1811C647D3DF8A9B1F59CFA64F3C565209079985247C3
+          C7CB3FEA39A6F5FEAF796D618AF10CE63918C8A31B590AE003F4383F956F6715
+          E24DD23B7760CEF3EFD7C8E14CD3A2E690F99FEF30B8BF893D0C74D82D752B05
+          56B223C878D31E623A8E5980EFB8739F707B60679F0383F3AEF723AF9EEF1AB4
+          4AC72A0F240AD63AD7C355D4D1F56D184314B85171619D877762E9E841E091DF
+          9E063B7D2782F1FA772D142E7BAF037270EFD8FDFE8B9ED79A1DDA991D7A749F
+          DFDD73655C4649C118E3DEA3C847BF35BBD97873AB9B2632C099642DE5AC80BA
+          E3BE541CD6A5A9E952E9D732452232BA1C104608AF7321EDD4C208F04A8DC52A
+          8F2C6BB2A01AC528AE7B526A85D008A28A284228A28A108A28A314211DA8FEB4
+          62B2B4D081835904A1CA9C11C82283DA934D2895D2BA63C5F974D226BF5B8BCB
+          C5550246946D62B9C12B8F6C0EF5DC347D4A2EA9D1EDEFAD90949903BC45B91C
+          E3FBE6BC8A38ADD3A1FC4FBCE9006DCC2B7364E7E2504ABAFB953DBF235E5BE2
+          0E16789501528B476ADF491D3F65929DBB6DC9ECB00F2E5E9D17A326967B28D8
+          FC255F855C9FE87D7E7565A16A2F048A922F9AD8E131951EA78F5E056A7D37AB
+          69FD45A53DF69F7A2E9DB00961F1464F3B587A1EFCE3DF935B1696C6394EF659
+          24202E42F033FF000D7C66AD1AB45C5AE1046E0882B4B5E5A656CF0751450002
+          350E55BF90633DB9AB2D175E6BDD4E504851B976E090DC9EFF002C56BFA844BE
+          4025E12F8C18B6E33C7D7835531EA047F1ADA368DF211A38C139FA127FE62B31
+          738AB057712BA4EBB35B4AF15B890BDCC7215DDB703279C9C77233ED4CE8DA89
+          D18DC4D226D8000DBDC9E48F73F3393CD73E9BC41E9BE969A03D45D411437122
+          F992430E66941600104206C763DF1F2A8F0F8BFD2FD6B76BA5E97A8397541849
+          22643300339048E48C76FAD7459C3EECD33505271681BE931EEA66A91DE5D5AF
+          BA80CB6C8F65209A5970B27C4A07C43D076E31827E7F9D43D334F96C25FBD869
+          1619810518B2B267BF20F6E08CD40E9FD165905BC70DC5BDB246C4B199C2E005
+          C9624F03D7F5F956BFD65D6A3CF361A4CEFF00761F0BDD02407E4676F1820E38
+          AE5C670A42B88972D9F51D76D6CEF3CE023692525C85C954209C107DF1E954FA
+          CEB0F733B4D6385B81CB976E1C0FA0F9FF00F75CE24BA9E6DE3CC2C476278DDF
+          41ED494D5EE6C207570C0124157E48FCFF00E77A1ACCC959FB42E39185B7DE5E
+          1902B939D9C950C393DCF27D2A9E6D7A2B7B995C90CE7070E7381E83DB038AD7
+          1AEE49195BCD67F87241249CD416B66BA98CF202C14FAFAD590D272A8304C80B
+          A1E99E24DF58C8F2C370F1829B3B71F23F51C63E957B69E25EB11DD45716FA8B
+          DC32A91E5CAF8C71F9572A570176AE36FF0086936D7A524DBB883EDED5111985
+          2159EDD8AE837FD55717B7134D74E1F2D8DA304AE4F2281A8C4F13B23F1DF046
+          3DFF00DAB528E617C8FBA5C13CF27FA93536DC979095672DFE0ECA293863BBBA
+          8B9DA84F349D45E3B8BCF3395653B7FAF7FF003AB4D3A65423746CEFD9368073
+          9FA556CF658B969A50CD12A707FC278FCAAD2C661A6C0EE98F30E42C6837311D
+          8F3F9F07E5434ED2AEA074EEBA1742755D974C4891DE5ADC5FDB970ED15BB610
+          1246327380781D8678AEB777D15D0DF683E96B4D2FAB74685AD2C5CDD5ABC24C
+          7344C405602552ADB5B6A860411F08ED806B85F87D1FDE6F6DE3BE9A4B7D2C4C
+          3CC918FE1279F8B19E3F5AF41DD6877569A617D31ADA6B765DC0C608DA7B829F
+          F6951EBED5D0655750707D27697722392F65C3298AAD8A996745B0F86BF66EF0
+          8ECB52B79348E90D212FB4F8FF008722445998608218B9666CE4649392320F04
+          8AECF79A7E83D23A63DC5D69D63A46956919BA6768FC948111492DF0E00002F3
+          C761DABCF9D11A7C9A95F0717AF0C8318D8725DBD81CF06B907DBEBC57D43A43
+          A12D3A1E2D4677D475A067BF71707315A29C2C58CE7F88C0E73C6D4239C9C5F6
+          B6B73C5EF596E6A124EE4C981B92BBF786DF86D07576B406F21CC9E4BC43E39F
+          88A9E2878AFD53D510C11C116A57D24D1845DB94C90848F7DA0568864DC30456
+          666576CAAED1ED4D8AFD02D68A6D0C6EC040F45F2F02728A28A2852451451421
+          1590314023D2B2393ED4C24950CAD0C892212AC843023D08AF6BF861E2043FF4
+          6CFA9EA17D05A6916D0457372CD18608CDC1C2805B391E9EE3BD78980C54EB7D
+          62F6DEC27B28EE255B498832421CEC723B647638AE2714E14CE28D6073A0B4EF
+          E0771F652A751D49FADABA7F8AFA949E2A36A5D4B68435BE9F23410C6AA4B340
+          093B998F391907040E3B76AE415D6BC2CEA6B1B2E99BCB3BDB9B7B7DB72653E7
+          1037A951C63D7F09E3E7F3AE5BA87906FEE8DB294B632B794A7D172703F4C52E
+          1F51EDAD5AD3B3D2CA701A63111D799E7EAA0D9E664A8F4502958AEE4294A222
+          558118E3DC64518A33DE96ECAEA9B7717C7C59EDDFD3F2C53514BB089E5BE823
+          41977915547B92702B7FF19F4ABC8B5786FE6656B478D20B7451F802AF20FB72
+          49AE7714AD14A92236D7421948F422BA974F6B5FF5F747DCF4FEA338FBEC0164
+          B7B86059B0AC3BFBF723F3F973C3E20FA96F569DD882C64877501D1DE1E519F0
+          95076082B9BE8FABDD68B7A97569298A55F51D88CF623D457A0EDBC5186C3A47
+          4DBDD76E658EECC3882D23070E17F0E00E00EDC9F7FAD703D7FA7AEBA7AEFCA9
+          F0D1B64C532FE1917DC7FA556B4AEE00662D8ED9A2EB87D9718A6CA8FC890411
+          1919C4F4EBE4821C4CB4C2BCEA7EB5D57AAA6637B74CD06EDC96E9F0C6A7DF1E
+          A71C64E4D50D14575A9D365168653680072180AD02308A7AD2D24BD9C45101B8
+          F24B305551EA493D8532066B64D1FA32FB54D267BA8F6824131444FC5263BE3F
+          E726ABAF5E9D06EAA8E0D93027A951738344954F7934490ADAC1B648E362C66C
+          105D8F7C03D871ED9FED57FD1BD411D958EA3617321686442F0DB792196490F0
+          493DC1DBDB8233ED5ABB40E923232947070558608ABAD27A826E98889B34805F
+          3175695E30EE808006D2471FCDD8F39E7B566BBA1DA5034DA3513B6633BCCC18
+          F41CF091888565716977D47A5DCCD6D04C9A75A2BCC8D31C0DC76974519C000E
+          481F33CE6B50AECF79D61616BD0F677318B7BD2CAB1DC471B88CA3321CFC23B7
+          C400F6C6715C62B9BC1AE2BD715454A7A5A0C0FACCF39E7B0DD0C9CA28A2B2A4
+          027233C57A35358A28A284228A28A108A28A284228A28A108A2838E3068A108A
+          28A284228A28A108A28A2842551451525145605668A10B18C56451450845641A
+          C514D08A28A292114018A28A108A28A2842334518A2842338AC66B3B68DA2842
+          C7CAB1EB59C51B684C2C038A5668C50051092C0E7340AC8159C1A2112B145282
+          9358DA69C24B145640A30688424E39AC818ACE28DB442728552DDAB254AF7E29
+          4A94E9898A648CFA66A406142546A508D9BB0A588F9E6A42263B76A61B291742
+          8DE5BC78233F5ACEF3EB530479C0193F215BDF873E11DDF5F35ECF14B14765A7
+          7972DE6640B2089B712541EF808C49F4A8D67B2DE9BAB5430D1B9549AA06EB6F
+          FB3FDC3D974E6B40A4889712C787380A70186064F272D5D1ACA0B5D2A5698A84
+          91D0AC41B83EC5BFA03F9FA51A87DC6C34A8F50896286DA3052D6D902EE60303
+          795000C0041048E4F03D6B53D6B5A86E4170119B0304AE0E3FE7FBD7C178ADD8
+          BFBB7DCB444C7D047E8B5536F66DCEE56C777AA5BD84A1A7DD392700639273FF
+          003D6AAB53EA99A7B668208D22F338247703EB5ADCD7E922862F975C7C39C0A8
+          0BA8A23BEE62F93CA77F5AE431879A99A846D84B575826DE4E132140F9FD2A44
+          C925D9C6E2A0FBF39FF99AAF96EE292472701061847D89FA7CA9D8B534451C3A
+          E0F6CE71F99AD04103C5540F45BF0E9E83FE9A1777090FDE1946D901219867B6
+          DF5AD375A87C961B1B280E000718A7A2EA5BAB7F86298AED52A013DBDF1502EA
+          F84F866EE3D076C556C079AB5EE0F498A01E6BCBBD9F000DBE80F3CFFCF6A9B2
+          6956FD5562DA75CDA24D7B229169720859164FE5563FCCA4F1CF233C1A8B25C4
+          4CCDE4AEC4E32B9CE3E74EE9F72F25E4660252488860C3D31CE4574EC6F6B58D
+          76D7A248889F11D0F9AC55E836B30B79F23D0F5FEF92E47D4FD21A9F4B4CABA8
+          DA496C64CB2EE5E08CE3BFD6A80D7B2BA8F4793C5CE837D2E6D3E0935DB18D5A
+          DE585562DEBBB9418386C282493C823E633E43D5F49974ABD9A0954A946239AF
+          BC31C2B526D660C100F94AE4707E286F43E8D60055618206DE047815068A28A8
+          AF468A00CD1450846281451421645005628A72859ACE45268C51294228A28C50
+          9AB0D0FA82FF00A72F3EF3A7DC3412630C072AE3D88F515BA5DF8E7AFBDB2C76
+          71DB69F315C3CF126E627FEDDD90BFD4FCEB9DE28DA6B057B0B6B978A95A9871
+          1D47F67D5280B66FFF0049BD57E617FF00A82FF9EEBE71DA7FF6F6A355F12FA9
+          758B516F71AACAB1118758008BCCFF00D5B719AD67068C54858DA8707764D91B
+          6063E88C23352F4AD4AE348D42DEF6D64315CC12092371E841CD440335902B64
+          48828310BB7DCFDA8751974D7B34D16DB1280257925625BB640DB8C03DBD78FA
+          56CFD27D4D63D5D65793ABA457164409ED95B7231EC0A367E207079F97AD79B3
+          63000953861907DFFE62BAE783D6E34ED0EFAFB3213349B4855E06D1C1C8F5C9
+          3DEBC171DE13616B60EA946986B811113D7F69556913BAEA09B92669C09110A9
+          45D9EE0F280FA7A77AA3D76FBC98B7AEC0DB89299E33536191DAD24BA08FB780
+          DBC6DC641C9CFF00CEF5A76A521BAB83C1F2831C337A0C9F5AF97B581C72ACD2
+          02B9D1B5286E2601D0AB95DDCFCBD2A55CDE240A9100499396653C039AD71266
+          4C8121CFB0F6C76A956B73E5A891986E0319EF507521321561A1664B830B3146
+          C107B9144BA823ED7DF83D89C6327FD29A910DE3B72013ED54AEED0EE57F830D
+          C37B55ECA61DBEE873415BB69B99B6F94DFC43C56C56D7CD6CEA92AA8CA85719
+          CF3F3F7AD03A72D6568E4BA81A42510ED673F096CF191EA33ED5B7E910EA7A8B
+          451244F7B31C093F8592DDFB051C679EC2AA343BD8339558018351310BBC747F
+          4D59EA5D2771A943A7B5F41018FEFD11507C98D9CE5B939C000B67D8557EBDD3
+          29A64CF201B127556478F90809380A7D4771F23FD357E8BF11350E95FBF694B2
+          B2DA5D2149A091C8040E40C6783C119FA575FE96B8D075D934DB0BF96DE39EDA
+          2DB6F046E4C7128E7710380412C01C73C7CCD5D01C352F636BD95CB0446C3FBE
+          AB57E8AB582CEFC4DAB965B656070620448C7D09F4C115BE5E78AA740BE4D3B4
+          D48E48FCE22464B7560CA48DAB9CFC201F6F5E6B5CEB9B0B5B796E12DAE15154
+          F984BB7C0CBE8C3DF8CD79EBC4AF1B13A2F22DC89B556CB4302F00027F1498C6
+          07B0EE7E5DEA742854BCAA285066A71FECAE8D6BAA764DEC983D57A77AA7C61D
+          1BC25D12FB5BD64FDDED95F7C16D0B0F32694824451FA649E0FF008402C7B60F
+          CDFF00137C4AD5FC52EB0D4FA875799A4B9BC94B04DC596241C246B9E76AAE00
+          FA73939A87D67D7DAEF5F6A2B79AE5FBDDBC60AC31E36C7129392114703E67B9
+          F524D6BF5F5FE07C1870AA65CF3351DB9E40741FAF55E66FAF5F784077E11B04
+          668A28AF4CB9A8A28A284228A28A1081594383FE758A2983084A3EB580D81411
+          58A252016779C77AC139A28A529C228CD14508453B67772585DC3730B6D96270
+          EA7D883914D514880E107642E95A5BE8BD690C96FF00738EDEF6405A4658C075
+          63FCC1BB9E47F5C1F9C5D0B47BFE87EA68D6F23636B36613345CAB83DB9F4E40
+          383CD6A3A4EA12DADC4976B7860BB8D3746CCBBB7FA1527E95D93A63564D6745
+          492609BAE176BAB2AB2038C1E0E7047383DFF5AF0B785DC1F535F2FB7A982324
+          B641FC24F86DFA1CACD503B490CDFC55475CE9F8E9EBCF354868D46D465E5482
+          083FA135C842939C0ED5E91B2D22CB558EF2CA490208A2674B76C32B0031857F
+          76F6C7C8579E756B44B3D4278A37DE8ADF09E7B56BF86806507D361D4D9907CF
+          911C888CF9E0950A15C3DC584438723FDC851768D99072D9E463B0F7A72DACA7
+          BC2C2085E5DBDF62938AB6E91D0935BD54412B30882B336DEE703FD6BA5693D3
+          96FD3B64FF007289CC8F86792470C4F7C0006318049FCEBA5C4B8C50E19DC789
+          7C481B4E63756BAA461BBAD43A77A416DADD6F3518C090B6520933D867F10FD3
+          8ADE347C5EB912CA21486367E0ED002A93FE551913EF5867C24607727BD4E5D3
+          D2D34E9750BB644B58F96575CAB28241C81CF3DB8F7AF99DCF10ABC42E1AEB89
+          22443479EC3C4F5DD54F04B49072B8DEADAD4FAADE493C8725B80580C81E8320
+          0FD6ABEACA5D3A2B8D4A68AD6E637B65F8BCF93F86A1738E73F5C53CFD383711
+          16A76120F4CCE14FF5FF005AFAE0AF6F400A63BA2368381ED8F2395A81002A71
+          D8F3F9565B1B9B6E76E78CF7C54BD42CE1B111C4B709713E3321898346BEC01F
+          53DF35221B781744926F3009D98A9521496195C633C8C77C8F7F6CD59DBB74B5
+          E367181FDFEFB272AAE8ACEDAC62B542728A28A284228A28C508451451421145
+          1450845028A00A108A052801580314E12946DA36D66B231B4FBD384A5276D670
+          28A284201CD19A4D14A5384ACD6375628A2510940F158DD58A289442CE6806B1
+          4509C2CEEA375628A2510B3BA80DEF58A294A2167751BAB14539442CEEAC86A4
+          D144A212B756375628A25284AC8A3349A289442564519CD268A72884AAC838A4
+          502805109CDE68DE69038A09C5395184BDDF2A0352375641CD12884AC8A37E29
+          359519344A212D5CE4E6A6DB6AAD6D6D24423460E41DCC324633F97F4A8BB540
+          C6452368E4678A6E68220A8084A3306627685EDC0A76173DEA2E39A976A428C9
+          A9B3749C000AC2C2DE4965015724FA1AF597D9DFA76D8F41F5516B88631FB8AE
+          A79BCC9906E937AA2C64F756C052A9DC961FE2E3CB5A3BAC97415A42808EF9AF
+          475AE897BD0BD0B650D8DC25CE9DAEC315E35C227C533283C64F21431FC3EA51
+          49E40C79BF8A6B53A5C3C35C4CB9D88D8C03BF873F458E86B7D78004019F25AC
+          752EA45B549224CF93100A89E9B7E7FA0AA792E080EBB15DBD031ED4DEAB2117
+          60B6F1230F889F7CF1509F7B4A5F76003F17CC7B57C5624CADEE7CB8A7268904
+          9B72C58A839CFAD3332794CC11B0C064381FDE99374C1D8B73C77A54578C418E
+          2E011CEE00926AC01C32A1329315B4F2A8664C95193C734097CB2470929F53C8
+          FD334EA9080AA9C30193834D16DF206640481DF9193520652184EBCCECA3CB0B
+          9CFC60FA0F715982DDA64F83DF904E38A4091A0DEC142E460FB9F95389210AA5
+          DB6719216A3B0C29021595B59AA862260AAAA093DF19F4A76390D8C5F07C6E7D
+          42E0639CFF00CF9D4147401CAE5D73C063DEA5C57CC5163C0645180B8AA248CA
+          66085B1F49F52DC74F4CB7B0DC3497B0FC56EDB772C4C06037C5C7009C0C77FE
+          B47AFF004E693D4E67FBDDB29B83F135C5BE1245C9EF81F09FD3F3A72D6CDE74
+          6555F2D03AED6279239CE7F33FD7E5537C916B78CB23B485E31C850028FAFBD6
+          EB7E237968E9B7A85BE00E0F98D8FAAC82CE917768477BAF3F291C9719D7FC33
+          D674C9AEA4B4B39AFEC215F37CF8537623C81B980CE304804F6C9AD4DA191090
+          C8CA477046315E8D89656BA2A9272D8196EF8F7AB8B1B7DF1CEAF12C8AC363AC
+          801523B735ED297C5CF03FE4A33E463F42B6D363C360995E58A2BB4F5A781375
+          78BF7FE9DB740ED92D61BC296E4F29938F6E33F4AE53AF74C6ABD3170B06AB63
+          2D8CAC09559477C77AF6965C4ADAFD81F49D93C8EFECAD2D2370AB28A28AEA28
+          A28A28A108A28A284228ED45142119A33C514508466B23245607159DD4D0800D
+          6681CD38B11C1CD4809509480706BB0F446BD0DD74FC30DA40209114C73AC3C1
+          DD9FC44F7C1EFF00957268ED43725801571D39772687AAC3776EF928C37237E1
+          907AAB7C8D7238B70C7712B6345A608323A4F8FF0070ABED1AD32BB25A4D783C
+          B8D83346494DD8F8F3FE1C7FCEF56FD4FD3F6B13CEF6C9E4C200668D8107FB1F
+          7A5E9D2A6AFA55B5F451F9304C372479F89392A47D073834FDFB06B4F2DD9915
+          39DFEE3FE1AF883E8BE8D4753A821CD307CC2DADD2E648320AD16E60689BE24D
+          84A0C73D87FCC547491A1520E3E75B9CD60BA8DA2C2C837B91B5C0E7EBCD6B13
+          D9341232BA1CE0E37704F26A00CEEA973485084AC992A7BF7C1C545BE773BF70
+          CA9E49C55FE876F1DD4B2C52423E04F315C0EFCFF98ACDE74DB4A3CD93702C03
+          15419C7B77AB5B832547438B642B0E87B28D2D1663130745F84BFA96E41033DB
+          819E3D3E5C76FE85E989EF61D22FFF007CDADB69768CF7D3D93B05795D5D957E
+          12CBBB81DC9AE1FD3DA87DD752BAD28313E5DAC72C25C1EFB983F3F98AE91D03
+          AB47A7C805DB868F3C61F1851EE07279AEAD95D55E1B726BB4492DC4F8F31E2B
+          25FF00096F15A02D8BF4899389EA23EAA7EB56B3754752DF6A97AB212D72CC55
+          1B29106624A9C8391CFD6ACBA5203A1EA9631DBB4AAD2C8B23CCD9DEC31C37D3
+          BE293AC6BF677530363E4ABB1694AA3B121C02BCF3804F18C7B1AD7E5EB5B5E9
+          9B6B9D4A22C25546964657DC54E392493EA3FA8AE3779EF24EE7EEBD4DB51A16
+          4D6B5B80D55BF681F1721D0EE6EA0864492EDD7647186CF6EC48F6CF3F957927
+          50D42E756BD9EF2EE669EE256DCF239C926A7756EBB3F52750DF6A33E434F216
+          54273B17F947E42AA57D6BEC9C1384D3E1B43ABDD1A8FE83C07D5726B5575679
+          A8EE6B14564D62BD0AA51450066B217E7421628A31450845145142114514019A
+          108A2B3B6B142114514508451451421145145084292A411C115B4F496B834AD5
+          C0899CD8DD6D8E55908F85C8EFFAE707DAB56ACABB286009018608F7F5AC9736
+          CCBAA4EA4FD888FE7CC7248895E8DD2EED21945CC046FC18D8103D4107B723D7
+          E95CF7AFBC3EB9569B53B4FE25B8863758532EC33C32F6E36907F219F9987D19
+          D7EB6718B5D47209202DCE3B8ED86F7FAFEB5BAF881AA8B2E8B79ED6E0AC970E
+          90B1523207278F6EC7B7CFE75F3AE1EDBFE0F7C2C4FE0A870791F11E820F3589
+          F4887F6ADFC431E627F45C8FA73579BA775282FBCA668C82369C81229C8201AE
+          CBA407BB8219A2902DB4A994476E429CF7F9E2B8549772CD1C71492BBC716762
+          B3642E7BE2B60D23AE752D34423EF0D3C70001229BE24C0EC08FCABD7718E0DF
+          E598D8706BDB398991981FDF1527B4B5DADA24F9AEA73470A5D3DB43189403C9
+          C648CD6B5D71D5771A4698DA718A29DAF51D1DDF908A0E3E11EF9E727DAA8EC3
+          C53BE883FDE2DA19C125810BB581F4E7D87B7FB635AD7B5E9B5FB949A6445654
+          D80276C649FF003AE170DF86AB59DEB6ADC10E637237DF963C37F6F41A1CFF00
+          C6215CF49F4D2EADA4DD99118198ED5901FC01707763DB3DF34D6BD61A574FCA
+          2C4C12CF3ECE6E5C8DA78232A01F7CF7ED8C54DE9CB89A6E85EA0498836D0A22
+          C3F0F662C491DB9EF9E69AD6EEE1EA3E9CB7B9DC4DDDB0F8D106106E24600EFD
+          C03EDCD741AEB917CF355C4D3D71009C4B4169F5982369EAAFF35AA7911EC0C2
+          74248C95C1E3FA52E49C3DAC51E4EE5272360007CF39E7F4F6A6ED6636D3249B
+          55CA1CED75C83F51539B5E9D27B896058ED9A6EE224C01F415EA1EDA93DD1319
+          C98CFB1E4A5953BA7A4D35AE23B7D459DE19086CA13B51B9FC4BC67F2FEB57BD
+          5FD2115969926A10411795B976B4279C64F7038C63D6B4FBAD4E7D4150CE55A5
+          8F389020566F91C77ABCB4EAFBAFB9DB594B01B8891486CE4B38FF00619AE35D
+          5A5C9A94EE684EA07235608F6E711CBC55043819070A068BD3D2EBE6310288D5
+          7E191F079F5CE3DE9ED5BA2352D3E76096EF711FF298C12D8F98EF5B9744DCE9
+          7A9DCADA5B5F0D326CE228E6500337B67B7EA45743BCE8DD561DB3FDEE1BE113
+          61B61DAFC77041FF005AF3B79C738859DC43A9E96720E073EBFB180A6D324C1F
+          45E6C92DDE262AE8C8C3B8618349C715DE75CD274F4831A8E98A718237A60E0F
+          A86F6EFC835CF3A93A3E04B66B9B0DD122EE731C87712BF223DABAD63F125B5C
+          B853AAD2C71F513E7FC296A3CD6972C3E56DF8D5F233F09CE3E55830B88C49B5
+          B676DD8E33595899BF0A93F4152F4DD32EEF2EE38E28E41BBBB05ECBEA79AF51
+          52A369B4B9CE0214E540A2A6EA30C11DCF9704865604AB36DDA09DC7B0F4C8F4
+          A84410483C114D8E0F68705206500E28CD1454D0B20FBD67229345394A1649A0
+          35628A253859C8CD67349A2894A114514524D145145084514514211451450845
+          145142114628AC838A7842C60D1834A073451094A4D14A6C104FAF1DA9349345
+          145142114514508451451421145145085918A338AC514E5285907359C8A4D144
+          A212B228CE3D6934512884ACE49A529F7348CFB564530942CE7269692629BA5A
+          AE463FA0A90512AE349751302FCA81926BBF787BE30EADD5BD39A4F41EB0D666
+          C34B465D1EE440B14B0B162DE4BBA81BD5C96C16CB6E239C703CF516218F0D85
+          7F61CFEB57BD35A97DDE5284295938DDD8A9CE720FE5FD68BBB2A3C46DCDB571
+          83B1E87911E4B9CF7BE813569FFB0BB075758B5A6A2B33069219A2DC463E2590
+          73C9FEB5AAB091A25C83B093CF619AEBB72EBD7FD376FABB05492E09174CA065
+          2E9001267DB70F8F1C70FF002AE57A8892195A13F02AB1C7B641208AF805CDBB
+          EDAB3A8D4196983E8BAF5435C05567E170955AD031765FC43E5490861259170D
+          8C0A97B372648C67D334F59DA248E1A66C420F2C3B8ACDA966855F6E8D97693D
+          6948A4167F41D867FE7B54E9023C8DE583B09277B702A569BA7C7AA908240255
+          E557B01F2A5AF99442A699CB3156C87ED8C539E509F046410791F2AC4F03C770
+          239891203F116EFF00AD59C1631B2832AC9DC6485E00FF0098A64C0C24A288F0
+          B1F040EDCD4FB231B2BA3401FCC3B7703823E74FEA3A65BD8DA23A5C79BB9B23
+          033B47CFEB4D69FA7BED59B3B9186EC2F2C3B8155805C9806616DD67611C5008
+          506C545F88BF7F5F5A43C30E30FF00115F4600E0FCBF4A6B4C72D65302C1D877
+          F5F7ABAB8B381348B7BA6122A3F7C73CFCBF439A9B69C1CAE95166150DBD9422
+          4604334A7B2E7B7FCC8AD92CEC121D3A53BF2EE4FC39F9FBFD4555E8D6097F7B
+          25C4819A200671C051EA7FA7F5ADAD2482D5BC97B260EB80A1A4DDC81C9EDF31
+          8ABB406892B5D1A63F11184BD1F545D3C6E29F0EE0870C40C76CFE55C5BED102
+          0B9D36C2E063CD8EE5954FAB2B025B9FAA8AEC1AB75341A7DA5D5F5F048A20BB
+          8B380005C039C761FA7AD7967C48EB86EB2D60B4795B1859BCA07BB93DD8FD70
+          3F2AEF7C3B6F5AE2F9B5298863373CB688F33F659AE2A09ECDBB2D468A28AFB0
+          AC48A28A284228A28A108A28A284228A28A108A05145084B5A507F8B83C53540
+          38A902A30A4CA7118C7AD3692BC7F8588AC6E257149A91395103105755F08FAA
+          DE4136913BE18666858FA8FE64FAFA8FCEB7DDC6F220D1CAC1524D85C8CE01FF
+          0086B8FF00851AC5BE91D590ADCC71B25D235B2C9220631338C061EDCF04FB13
+          5DA4247650A4414E76EEC93EFDBFBD7C97E25A029DFEB03F1807D763FA2BE808
+          05A0612ED6FA6B090C5E624A814FF113BFB03F2A873C42E6512CA0C6E9C80077
+          F6AC8BD324DC2F96E4A8217B37CFE552272BB4AAA738E5C1C819AF2E1A216E10
+          E10549B329711C4C6254953237FB8F6FE94D5CCEBBF682011D9473EFFD3355EB
+          77344C52038C7A67B1A924A8B795D9879E70A4AF20E3E63BD046210634C0549A
+          9C32DADDC3ABA480340A219E32BDE166CB107D08EF5BDC76AD15A25D053359CA
+          49478B9C1EF83EDC723FD8D6AD63650D9C67CF97735C9661E73659F27903F4C7
+          E55756D77343198E3051026C40BC003DC01F95687BF5536B79B644F51FC19F78
+          E4A34DB04B96D1A76A906936172D26D6859032C72C597DDD810719F5ED9AD075
+          3822D62D6E1A7428B2F1232E14F27B818C000FBD2CEB5A87515AEEBA957CEB59
+          A5B76619CB6D63CE4F3D88F7A9F0593CB1388E3214C3B41CF047FF007595CD7D
+          2A903041FAA95679AA0346C17976E9425CCAAA4150C70463B7E54D55FF005B74
+          DC9D37ADCD0B1430CACD245B0E70B93C1F98AA0AFBCD0AACAF49B56999042E70
+          C22B216852318C7E759AD012401834566B14D258238AC52A80011834420149AC
+          81DEB145454967159149A3B5394A12A8C5601EF9ACD349608A36D1935903E749
+          3D9271452B149231442014514514934514514210B57FD31AFDBE937A1AFAD56F
+          ADDB0ACB28DE147B853C13FEF5419A2AAAB4995A99A6FD8F4C1F709113BAE89A
+          94FD15AE46640C74B94B673146CBF96D008C7D2ACB4AF0FF00A5F51D214A6AD2
+          3DC313B658A443F914FF00EBBD729CD64739AE29E195D8C0CA174F6C75877E80
+          FB948342DBFA9BA1DF49663631DCDE4224D9E7129FC43F25525BF5AD60D9CC65
+          11AC12EE662AA9B09624771F3349B7B996DCFC12BA0C86C2B11C8EC6A6C3D47A
+          8C10B4315DC8B110576F0782493FAE4E7DEBA54D9774D90E735C7D5BFF00D944
+          08C28423991FCBF2E4048C95DA73EBCE3F5A6E38DE462B12B3FAE14135B1699D
+          47108E737971A8477A63223BC867DC411D94A9C647E755A6FAEF51B806E6F9D9
+          4FC4ECF2761939E3D4FCBE7536D4AC5C439A001CFF006C67DE7C14943FBA4FB9
+          37A18C49CAB4BF083EE72692D132839071EF8E2B67BFEADB7D3CFDDFA6E06B28
+          703CCBA99434F29F7C9CED1F215ADCCD35CC8D34CED2C8C72CEE724FD4D3B77D
+          6AB2E7B748E5D7D46C3DCFA20C04A86D83ACCCF2AC6B1AE7DCB1F402A7E81AA1
+          D2EF5AE8812C8B19440E4F1918CD56ADB48D8C2939ED81DE962D9A372AC0861E
+          8476AD629EA90FC82AA7438104AB4D0F4B9AFAF505B83BC30C3038C1CF15DAAD
+          B5EBDB3B7B68A691AE2503E362D924FF009FA7F5AE150CF25A9F84903E54E45A
+          9481D651239955B825AB9FC5786378A516D12FD2019DA4CF2E631D473F45934B
+          FB4ED17A217564EA286382F50DC3038F2C273EBD8FD7155DAB5AE97A2C637DF4
+          565768DF0D95DE0338209F5FCBDB39AE5B075E6B496935C448B88482660A7287
+          D0E73EE2B51D5356B9D5AFA6BBBA9DE7B895B73C8E7249AF1B69F0AE1E2EEA6D
+          B693F790AE06A39E3461BCE77FA15B7F881F7882F23BBB5B38ECE357CF9F0E56
+          40FEA1CE7DF904FBD6B177D4DAA5FDA0B69AEDDA01C1014296CFF888193F9E6A
+          EAC3AD20B8D38D9EAF13DC0C04DC801DEA338DD939C8E391E95537AB6091C8D6
+          72931C9FCAC70E3E4476C7B62BBBC3A93A906DB5D5197330D744823ACF23ECAF
+          DB92A7AB19AE5357990CB11171E5ED79233F148DE8C41EE7DFB67BF7A82E490B
+          9503031903BD2012390791ED5E81F4C3F3CC6CA49C3672847603779648751DD7
+          EA299231DE9F8270270F3AB4CBFCC3760918C77E69CBA6172A655DAAA9840ACC
+          37ED1C2E7B67038C8F6A802F0E870C75FD1481EAA251401938A318AB93451451
+          42114514508451410549078238228A1097142F312106E206703B9E71C0F5A463
+          14514B284514514D08A28A284228A28A108A28208EFC5142100E2B3BAB18A284
+          228A28A108A28A284228A28A108A28A284228A28A108A28A284228A28A108A28
+          A284233590702B1451284A0734EC12046C8273EFED4C567754818512D9521E5D
+          FB8E739A95A55C6DB98D4BEC5DC327DAAB4134F5B90B2039EDE95635C754AA9E
+          C05A42F47F839D6422D622D0150DCDA6AF32448CBBCB24F9C46C1067392769E0
+          9C37CAB6FF00127A165746B9897CBBA4C8920D98CB83861F235E63D335A9EC2E
+          EDEE2DA77B69617578E48DCAB2B0390C08EC41F5AF55F4C7DA2F41EBA5B3B2EB
+          09A0D275E72165D5DA3CDADCF040322A8F81B181903079EC381E33E28E1356E9
+          C2F2D99AB10E037F031CFEFB27C31F4E930DA57383913FBF2FB2E623A1B556B6
+          69E288CEA172523E580F7C77AA4543149E44BBE26079CAF6FCABD81AAF87F736
+          70DADEC22CE5B2914182F34F9C4D6F29FF00082BC0F5EFFEB8E23E22F445E5F5
+          CEA3771E95F7792D72ECC996F3E3DC3041F461EA0FCF04F6AF970A45DAB947FA
+          5D6AF68D634398667D968F6BA3473C20924E53827E7D8D4328FA3CEA536B05E7
+          7F1CF24739ED59D37569D2778672E14261378238E69171672DD309501F2DF382
+          7B0F5EFF009FF5AA088C15CE246C065499A25D65E3956412CA70A1071B4E7FB7
+          6A9971A35DC2A85DDE58036C98A9CE0FCFF5C7F4A6B47812C301D8E1886C838F
+          CFFA56CEDA845E6A6DBA5963E725B1E9EDC714C00AD631A41D5BAD73A874892E
+          2F0259C63CA0A0055F53EBC7AD4DB1D12E34DB30F28C039C0E58035B1E97711B
+          FC51A920923238E09F954986C55F0F21202E71CE72B5706F357B69349D4155DB
+          422C6C8AB905D9867DC55C69D2EDD32F23C6F2760418C9E49071FD3F414892D2
+          495DF23F102C4B7653E9FDEAC92358615002E48E59871F4FFEFDEA4216AA6DE6
+          155D96949F1453E563F33692BC6D1EE7FBFE751A7BB9ED269EEAE5DD4290815F
+          D4606063F2A9B757AD6567749E7333312A0F1CEEE3FB1FED55B757D2DEDA3C13
+          1F8514905BB163DA9568D39563DCD6B08E6B8978B1E213EBF33E9506F5821908
+          94B76723B607B5737AB3EA7544EA2D4823EF5F3DF9FCCE6AB2BED5C36D695A5A
+          B29D210227D4EEB8C093928A28A2BA6845145142114514508451451421145145
+          084514514211463145039A021647AD66855C9A956D6FB9B0477F5F6AB1A09C28
+          39C0656FFE0FF874FD553DC6B5712B41A7E9924782AB932CC4E553E4300927E5
+          8F5C8ECD15A8818BC9F87394C7AAF7F5EDE95B8F87BE1E41D17F67BE99BFDE67
+          975766D5258555F6B16768D549E31858D7F32704E6AB6E3A6AE2EBF8AD6CB0A6
+          36E429DB9CF6EE79F9D7C7B8D5E3AEEF9E27BAC3A47A6FF55D5A548D36874648
+          07DD695244923B310232C785E6A4D869E3509658E491926CEE8F0576FD315B58
+          E958D0BACAC1F676551F3FF9CD169D369637B1CC652003900F1B4F61CFB57106
+          0AB5AC7032B4196CE6B1BD92362BBC1E47AFBE471F3AC46DE54B8D990783EFCF
+          7EF5D0352D00C82495E102652482EBCE0F23B7CB154B3E8AF80EF1C26353B712
+          395007A9C80726A290A644AA6165BEE22666252204C6F8F71EDEBFED579A4DB1
+          F320609BDCB6E673803E43F2EF8A8B1C4350FE35B491490C876232307191E991
+          C549BAB1B8DA9E7DE0CE31180D855C7A8C1A8199829810661691A65949A56A1A
+          E44E4B4E6F37E5CE4B295041FEE33EB8ADB2CE5DD6DE5039DEB962DC76A4DDDC
+          2369ECF7050CE7019C4637381D867BFF00AD316B771A4B1061B63751EF9C7B55
+          97157B5A9DA7381F4002CCD019895C8BC70B416DAFD89C6375BFFF00EC4FF9D7
+          3A0FF0ED3C80491FF3F4ADF7C5EEA7835DD621B5B731C91D9065F393F989C646
+          7D718FD735A7E8BA1DDF505FA5958C7E75C382553705CE012793C7615F60E10D
+          752E1F4BB61040E7C867DB0B13889246CA063938E47A56EA7A0027415D6B134B
+          E4EA30CC08B663CB45C0271E87273F91ADE7A1FC017F352EB5A996464618B384
+          1C7D59F18C0F61DFDFDECBC5C9ED34CB2B845814064292A47C150D9DA47BFA57
+          22F78D835E9D0B23A8C893EBB0F3570A4E0C351C30B800359C8A4D15EC656784
+          AA3D2920E2B24F18A728858C51451514D14514508451451421038A3345142119
+          A334514211451450845028A28422B239EF58A28420F7A28A284228A28A108C9A
+          CAE49AC0AB0D3B499EFE4D90C4D230C13B476C90067DB9207E7520A2E21A1336
+          D6E656C0196F615265B29ED65092C6F1BE33B59483F2E2BBFF0084BE150D2F4E
+          6BDD42C89D49CE4437118CC4031C107E7C735D47A93C3AD135EB4B56BFB20D79
+          07F0D648D5B383C0E47B1C9E78F7F5AF2D5BE25B5B7B8348B4968DDC3F41CC7A
+          AD2DB2AD56997B77E85711F0EFC3A9B58E9A8DEFEEA786394EF8E08942E00390
+          738C9CF7FD2B70BCF0CB44D42D145C59092700012AE431C71963EB5D322D02DE
+          CED0240A54C318F88FC87AFA64FF009D53B5F5B98812C7E2380F8F87935E12B7
+          16BAAF59D518F2DC938C6FE5E0BA4CB1A54DA038495E6FF133A634FE998E1B7B
+          28E469410649324A80738CFCCE0FE86B9EB020E41EFC57A0BC4FF07F52D76E6E
+          753D32E4CAD205CDA31C06206383D871CF3EE7DEB86DD68D7D62EEB736B2C0C8
+          76B0950AE0F3EFF435F4FE13734EE2D9B1575BB133BCFF00765C3A8C752710E6
+          C2E87D0DD2CBA9746EA0F2463FF139C37B851DFF00239AE53710B5BDC491B8C3
+          23153F957A6FC27D01ADFA06C4CBF0CB3B3CAAAC36FC3B881FDB3F435A878E3D
+          2115868D0DEC760B0CC920569224C020E49C91F3F7AF3D6DC4C52E295E83F21E
+          E81E0463F61E8B58A04516D41D170FA28A2BDA2CE94257542A18853DC6693451
+          421295B1CE79158DDC9AC5144A21159E48CFA0E2B152C4714D6AA630564507CC
+          05C7C4792081F4CFFC35073B4C4A365128A31454D08A28A7ED6C2E2F03986267
+          541966EC07D4D45CE0D12E3011B263D28A281819CFE5524228C7145142114514
+          508451451421145145085946D8D92A187B1AC514524228A28A68451451421145
+          1450845145142114514508451451421145145084514514211451450845145142
+          11451450845654F7AC5146C8522390E08C9C7B54D5BADF8DEFC01818AAC8D80C
+          E466A4215C7A926B431C42CEE602BB07831F68BEA0F0BB5568033EA9A05DE22B
+          BD2A691BCB91491965EFB5C6386C1C57BEE1B1D35B56B8B28E481AD1CAAC02F2
+          32C24DE3E1E4E3B83B7240CFBFA8F96164C23990BA92010703B9AFABBA75AA1E
+          9AE9EB8B9816E23BDD3AD56751110D09084042FF00FB4E0FCBD6BE71F185AB3F
+          E2AED10F3209EB1113E5FDE4BD07047105F4BF28823EBF75C6FC57F0CED835DA
+          5B69112C62562859F0CBCFF2B2F6278279C5718D38BE9A6FEDD504CB1388D0CA
+          0703E2CFD4735EAEF11224BAF2EE74E85ED2CEC2C82DC966F807C2033107D78E
+          4FAF15E4ED2EF37C972F0C8B32F98C4B95E241BBBE3D8F15F3EA6D0F10792D37
+          B498D783CD545CD8165725846EA7231C66A3E976539B917023564076379AE553
+          EBFAE2AF6EB4F7BC9243146CEA9F8B68FC349B17436CB0F9DF0248490DFD6906
+          E92B865BA5D0AF74CDB99442CAA70146DF8803F2AB601A170C4866008381DAAA
+          F4F0B082B120DC572B81C0F9D4E8BCE995CC5F0247FA6ECF6EF532F016C6BE02
+          C9669037C23771F8FB9E4D3BCB0008DACDF504103BFF004A8FA8DD66DD963C24
+          80E0143DCD45B7B911C4FB9B071C9F6FF98A279856B5E01513A83315C42A65CC
+          6C7923031CF14C6A53A693A45FC90A89E51133A96C77009C126B065B63722669
+          8050A543B1F84126B9AF8D3AEC76B616DA759DE2CED38267C3825003C2E3B8CE
+          33FA7CEBA761627885C32872DCF90DD67ACF01A7C5721BDB83777534ECA15A47
+          2E42F61924D3147A515F6BDB01600204228A28A1345145142114514508451451
+          42114514508451451421142F14514212979CD4CB394EF45DC064E39A84A71522
+          100B027B55AC39553C485F41BC0CEB1B0F163C16D234CB548E0D67A4ED069B73
+          197086442CED138CF70C060FFDCAD9E1973D2F47B4E9B7D09B4FD6EE34FB1912
+          32E65B9DE1D0AF6015558B1249C600F53918AF03F815D70BD0BD696972D34B1E
+          9F718B6BD48792F0960D9C7AED6556C7AEDC57D03F17FC338ECFA6744D5ED9E0
+          BB8AEECA3B86B8B393CC8594805594FA820E41EDC7D33F20F88F867F8FBDED1B
+          F82A6479F31EF9F22BD170FB96DD502DFCECC1F2E47F4F45C9F4D8AD75FBF9D2
+          D639081DFD48E71C1AAED6B457D3CB48AB2EE1CAA293B8738F5F535B3681AA7E
+          E785AD60B45559146E98C63737CCD5EDE5BF9D12493461A4901DCDB7238CE338
+          EFF9579F982B5F660B279AE5F6F616BAAE8EB716B24AD13E0890E54AF3923047
+          E55AFEA1A74572C2DEE919AD55B2DB87C1C7B8F5FA575F4B1B5D39A1B89635BF
+          8A325DED97E10DF5C761CD6BFD537F6977A9ACF05847631B5B08FCA88964DD8F
+          888CFA1CF63DBB536193854E995A4EA11A4F342B011242030C283904639C7BFF
+          00A7CAA1F555A5C69DA3C6863090CF20DB216E0F04E73EA78C55E4B686C22924
+          B64CA2A91B8F04A9C8E47E79E0FF009D6ADAD9935582305CCDE5316CBE703F23
+          EB52231015750E9691CD6A1ADEB96DA45B6FD424105B95E0819663E807BD718E
+          A5EBCD475C9E548E67B5B2270904476823B0DD8EFF009D6DFE35DBC8D158DCAE
+          FF002A32D0B65B804F238F4CE0D728DD5F48F87B86DAB2836EFF0013DDD79676
+          1FBAE03B539C75256371E4D6FDE0A6A7069DD61B6650E2681917B0E783DFD380
+          6B9FE79AEADE0674626A97CFAD5C3030DBC8608E25E58B951927E586C7E7F2AE
+          E715A94E9D955350E0823D4ECA74DAE73C06AF43472B88E789CAAAB36001FCD8
+          EDC9F7C0AF36F8C5AF9D465862C05F35FCDC0EFB42ED19FA9CD7A2BADAE20874
+          695A026DDD82C4A84F2723191F3E09C7A735E46EB5D486A7D4978E8DBA28DBC9
+          8CFA6178E3EA727F3AF9EFC3D6DDB5E879D9827D761FBFA2EA5FBCF769FAAA3A
+          28A5C5E5FC7E66EFC276ECC7E2F4CFCABEA84C2E4A451C629665261116D5C062
+          DBB68DDFAFB71DA91DE8084514AC718CF158DB4E112B14514508451451421145
+          145084514514211451450845145142114514019A108A2B2168DB4E112B15955C
+          D6C7D1BD03AD75BDE08349B433E1C2348CC1514904F24FC94FFC22BD07D3BF66
+          9E99D32D23FF00A8EEAF27BFDC1DE2B69024417BED1F09247CF83F4AE5DE712B
+          5B0815DD9E8327DBF757D1B7AB5E7B3181CF92F2EA4593C8AF5A7D9EBC24B9B0
+          E9092FF568147EF32192DDE21B953B0DD9F7CE40C71FDBA674F745F46F4EC314
+          9A469BA62344331C8515E6539C9F89F2C3F53DAB7BB3D45DA11E48520E3084E0
+          7D3FB722BC1717F884DE52EC2DD85A09C93BE36F2F75E8ACB8480ED759D3E036
+          FE56BF6FD33F73F85A31C9E0A9CF3F4F7A4EA168F146CD12B676E7681C56CD3D
+          E457DF03A243332EC2E704FF00CFF7AA8D4E64B091ADE7654DC40F333C609AF1
+          40976EBB6EB50C04B4E153E9964F70922140E66E36920EE3EBFE5FA542BFE908
+          6D5DADF28DB89201524138F5F976FD0D6CB15EC3A5604722C4CBF1E5B9C7A8CD
+          52DFEAED7B74B0CAC88ED965953239EFFF000FFBD49B32630152EA2C0D871CAC
+          C7D126E2D636B796475E15E0493017B7A11F5EE3DAA9F5CF0B741D7A5167ABD8
+          ADE0189624691959719CE19483CE39FF005ADBB4CB9785A3331C13C6F719209F
+          4F9E7FCAAC6E7A7C4D73F7AB5C090FC607F37CF8F9D469D7AF41FAA9BC823623
+          1F5553EDA9D46E92D95A1EA9D3D1E9ACF6C63F2ED2DD5563445E23403000F963
+          15CFFAE74D93A8B4892D2CF0F1B820E4F2CB9EC7FD2BD1BE55B6A312C12DBEE9
+          51070E99C91DC83EA3E95CF3A8BA216CA6173649B230E7726DC83FA0E2AFA158
+          974BB7596BDB8D25A362BC0DAC6857DA1DC986F6D65B773F87CC5C6E1EE3DFBD
+          57E315EC3EBCE9883A834896CE58A29647076348016539EE38E0E3DBD7E59AF2
+          9EBDA05D6837B2DB5D44E8A18EC91948DCB93823EB8AFB0F0AE28DE22D2D70D2
+          F1F5F25E5ABD2341C06E0AA8A2823145775528C5145142118A54476B6701B1E8
+          6A6D83595C42D6F747C87E4C772A09C1FF000B0F51F31C8A62EAD1ACDCC6E577
+          770E8DB95C7A107F5AA45505E58441FBF97F6524D38D8D8CE78CD228CD157261
+          038AB2D5352B7BD8E01059259945C31472DBFE67FAFEB55B4556E6073838F2F1
+          3F6D8FAA508A28A2AC4D14514508451451421145145084514514211451450845
+          1451421145145084514514211451450845145142114514508451451421145145
+          084514514211451450845145142114514508595F5A762C9EDE94989324E7B549
+          8ADCB6769156B1A4AA9CE015EF46AAFF00D53A409D229216BA895D67FC054B80
+          4376E31DF9AFAA77B35A15B7169209A3963115B673B617C60B127B63FCCF6F4F
+          9A3E0774ACDD53E2974DE9C86323EF6B3B995495D91E64607EA108FCC57D0BB2
+          B1824B05BFB8E22FBDF921A498FC79DA49E4E178271CFF00635F3EF8B1DAAB51
+          A60EC093EBFE977F83435951E79903DBFDAA2FB4075847A57465FD8A4509B8BF
+          0B9919894556DC08C7BF39E71F84715E66B0B85B2B0851A2F29BCB0570723073
+          DF9EF5DABC77D5EDF59B1D2C411DEC71CF26E866B88480D120215C13C36777A7
+          6DA79C102B8CDDDA319C263084E101FF000F3CD78068004052BEA9AEB48E4A1A
+          EA66079776F58DD4E4C6D81DB8C834D40172EC1360381DBB7D2A74D636F64891
+          BC9E6BB1DCA83B77ED9A8925C45652B21290A376453C673C71FF003BD05BD172
+          4B4CAB5D2B5645B710CD19503E12CA71914E6ADAEF991B2A10B100008F0073F9
+          56BF7505CDC4F1A44A5847206773C06E7B7CF0297AB413322901A255F89B1C06
+          C1F5A8060994C13B2CCFD4EB61B12489B72E18067040F967B8F7AD2FA8BC6308
+          ED1DBDBA4B2024072728A3D303D48EF9A5F57CF38D1AECB4A232B18C0DD8C648
+          0477E78FE95C7646DCC4D7BAE03C1EDAEA91B9AFDE830072E464FBACEE7B8B8B
+          01C05B04FE20EBD217DBA94F18662DF0363D7FB7CAB5F9EE24B995E595CC9239
+          2CCCC72493DC9A4706B15EFE9D1A74B14DA07908480011451455AA48A28A2842
+          28A28A108A28A284228A28A108A28A284228A28A108A28A2842053B11E69AC52
+          97B549A54485B168F32C2E19812463B7A57D4BE87EA2B0EB1FB31F40DADB4226
+          B78AC20804B1A04669633E548AC49F4646C1F983ED5F27ECEE1F71C1381DEBE8
+          A7D86BAEF46EB0F02B5EE90D4549D57429A4B8B48D1F6FF025C373CF3FC40FCE
+          38CAE7BF3E4FE2FA4EABC39955BF91C09F2323EF0B7F04D2CBC731FF009DA47A
+          EFFBAD82C3478A580CB146FF0076690E448D82083EF9F9D6CB71D24C9A70B976
+          78C120A228241C9C03E83DFF005A379D334E4FBBA89AC6E25255CAFE1DC07F41
+          8EF57767AB98F4A7B39424F8198D8F0718ED9FA8C57C91CF20E365ED5945AF61
+          1CD72BD5A46D36EE46E17009624771EA31ED5CEF52EA04374EAB1167CE07C3C7
+          7ADCFA83A8ECAF6E234896496677DAE31C2F39C9FCB8E2A9759E9F4371E7A422
+          20E7767904FCF15B598DD719CC327495ACEA3283A5C770FB62113EE94348C37A
+          E1B903E447F4AA6BCDB0CCD2432A468E03966C6DFCF35B275169A9FBB668953C
+          D959785208C806B8B78DD76B67D1E96DB88F3A640BC9C92324F3EA383DF3CE3E
+          55BAD687CD57651063518EAB05D12C12B5AF193A8348BBD3A1B0B1BA4B9BA170
+          2497CA219000AC3F10F5C9EDFF000F240334AC5038AFAED959B2C688A2C323C5
+          714BA4CA4819AED7F663D46DC7505DE9D75395F30C72C511195382431C7A9E57
+          8F6FA5714C8A5C72323064255872083C8A7796ADBCB77507189E7D14E9BCD370
+          78E4BD67E346B70F4FE8D24A976ACE9F8063FF00372323E9F1579249C924F24D
+          48BDBFB9D42669AEAE25B999B8324AE598FE66A3D60E17C31BC358E6EAD45DB9
+          F25656AC6BBCBC884514515DB5422B2A2B1429C5010954514138A928A4D14515
+          15245145142114514508451451421145145084514514212906695B719A4A9F6A
+          CE6A6145628ACD1820FCE8497AEBEC8563656FD13A84BF7A692EAE6FCA496FC6
+          230A8BB081DC96DCDDBD87CEBB6F536806DA53213E74322E542A80C9F4FD3E62
+          BCBFF66EEA58BEEBA8E9C232976B1A9CA81B5D4370C7D723B7E67E75EA4B7D6B
+          758C5207F35CFC2B96C0EDE83FAD7C6F8F53753E2350CEF1F65EE785546D5B46
+          B4F2FDD69F67A74705DB302C8B9E5987E1F956D1A6DFDBA2CC011288D7E1EE0F
+          739EC7FE645505C4C64D46565731819262E700F3DBF3A5D87989841E5E18162F
+          9C1033EA4D705E350CAEA522299EE85326D545D6AE24326D8011C76CE39C54AD
+          4EE6DB5030B491AA83B70D819DA391C1FAD523DA3CE371C6EDC776D1907D78A6
+          CC6136952703D48E71E99A41A0ECA65CE8208DD586A3207819A33F16DC047E01
+          15134FB095DC4848CAF6C1FC3F3A5EC778CA00D231208F87B0A9FD3704935F8B
+          687619954B1494E3701F3E7152D5015668EA32E0AFED2DC9603710D804100815
+          D1FA7744924D2EDA558D8B61CDC380488931F09C76EE57FA9A9DE137448EA8EA
+          482D258502247E6481C12180FAF7ADBF57B082DB5DD4343B7453A5A42989B699
+          087C925703D0640C738C135CBA8F2496AD64D16B4066EB8E75358CB6D7A61B79
+          19ADD06E518CBB03DF91EBFF003D2B49D7F5786EDA7B40409954314DDF10E78C
+          E7B76AE85AA5CF9DA94CF29C18C0C05FC04739C9F7C600FA9AE69D53651CB76A
+          201E54A0B33845E7B9E0E3D87F7ADD440912B99714C904B573CD4757B13A8C31
+          488D14D9D9B1D7FC39E49F9F35A77899D190757F4EC44488B72ADBD5E13B951B
+          B60FBAE3DBE55BF8B145BF69AF6156054AB6E00AF627D79F4A87ADF9616D1924
+          48D190AC51C698E067F11EFD8FF4AECD1A8EA0F1529982365E76A33502D72F1A
+          6ADA45DE8D7725B5DC462951B6907B7BF1F91150ABA578D3A64B05F59DE36DF2
+          E40D18DA7D8E7FCF1F91AE6B835F5CB0B93796CCAE773FE970620908A28A2B7A
+          48A33C63D28A284228A28A108A28A284228A28A108A28A284228A28A108A28A2
+          84228A28A108A28A284228A28A108A28A284228A28A108A28A284228A28A108A
+          28A284228A28A108A28A284228A28A108A28C5676D0858A28C1A314421159514
+          05E29C86304F352012270B312E493FDAA5DB8009CD623886F1FE1AB08AD4BB0D
+          AB9CF1915AA9B0AC752A00BAEFD98B36BD7571782D04E23B631A4BBB06377385
+          C73DC80DFA7EBEC5EB3B73A85FDC5AC036DBE99A7B348DC4BB1D42EE1C1C6376
+          EE47B37CABC75F674D6E7E94EBAB7BDF8BC886785E45523276BEEF5047607BD7
+          B1BC5636DD13E29EB905C79D3A4B1457036B6D12AC844AB920F2391D89C8C7CE
+          BE51F12871E20F3D348FA4AF47C2AAB7B003C4AE39D61AB4FD4974A97FA83BA5
+          A83F75130E23849240C0EEC73EFE806715A9EA923DADEE9ED1C1986791635129
+          C0404E01CE06E23DBB9E6B68BB81359D76E66B28A18A089C84509F03019C601F
+          90156D2451DBC30425973E585623B123D6BCA3B1B29D5697C95A06ADA57DD753
+          96EA58834ADF047B73823DF1DBB5246830DC1866F2B7CCB8776EF83F2ABBD7A7
+          86DA75FBCEEFBBB80893A8CAA364E437B678E7E54DD8B62463162484F21C76C6
+          38C7F5AAB5616204076546976C4A17CB4C20EC4639F95527DCEFF53BC115BCEB
+          E6907E041C0001CE4D595CE6C6391A7215396E39639FEF5A375BF5949A2E9E6D
+          2CE4314932E1DCE37A8F6F97FF0055D6E13C39FC4AE4526EDB93D02C17971D93
+          2583BC703CFF008DD73EF10FA9A59EEE6D3A371E4A37C657F9D87CFD8568B4EC
+          EE6499D89CE4F7A6F15F60B7B7A76B4851A4200FAF89F12A2D9893BAC62938A5
+          9520562AF5305268A511582294294AC515903F3A36D108958A28C514908A28A2
+          84228A314508451451421145145084514628C66842CA8E2B38C66B006296067D
+          6A414652EDDFCB6CD6F5E1CF57EA1D19D4369AD68B7EF61A8DBB82AD19E1C7AA
+          30F5523820FBD68B1C78EFCD585A3AC4E1B95C7B55EC6B5C0B1E241DC1592B02
+          72D3057D3AE88F1374FD5BA752E225FE15D5BAC80B39390464A679C10770E3D4
+          54BD5755B1BBB7DD6F0C7A5CAA32A0B0653DF9EC3FA7CABC91E06F56490E8771
+          697175BF4F96787742A7E2419F888F6CF1EBE87DF9ECB6FAD155789AEE286DE3
+          0CB0CCC37348A07A0F7AF84F12B06D95ED5A0C321A71E4448FBAF6D65C44DC50
+          6BC883CFCD4ABCD1A3B6633BC82799BE23B013CFBFCBEB555A9EA32DB23B4A06
+          E54F8549C64FB7F5A56A9AC5B8556875249595433214003E4FD718EF5A3F5175
+          F699A55AC973786186DD86EC33F2DF2518CE7E9EF59E9B1D50E96892955AAC67
+          3847516B1369562F7575314445F31E6639F2C7727FDABCBFD75D7579D6BA8892
+          762B6B092208BD867B9F73DAAD7C4BF14EEFADAE9EDED83D9E8EB8096E0F2F83
+          905BFD3B56875F4CE09C23E51BDB571DF3B787F2BCFDC56ED5D8D9601EF59A28
+          238AF56B2A4D00E28C5151524514514211451450845145142119C51451421145
+          145084514514211451450845145142114514019A108A28028C51084038A50A4E
+          2B2BC1A6124A14E459C1A446327E94F0F87B558D5595B3F871AEDC74FF0057E9
+          9750C8625F3963939C028C70D9FC8E7EA057B1AC24BAB80C2D668D9993E38810
+          32081823E7EFCE3F3AF0C44AEECA0649CF18F5AF527851ABCF7306CBC2CCEB14
+          2373F7DDE5AE49CFCF35F3EF8B6806F677237D8F8F31FAADB6170EA35080775B
+          62EB17626680C7B6E43333EE233819DC3E78C7CF8F4A9361AC225C5BBBCBB019
+          002D30F8307B718E4553F5B5D18EE08F33788D7685DBB983120E33F31FD0FB1A
+          D42FF52BFB35B559437DD51436541DAB963C13EFCF6AF08D01E17A41781A7257
+          5B83515F3665B76F3A16C113E36FBF03BE39A5CE679C7991943131C36C6E7F3F
+          95710D67C78B0D0A336DA6DAC9792A1DAC656DA831C633DCD6A9AA7DA2B5EB8B
+          6923B34B6B02FDE4552EC3E99E3FA577A87C3F7F5C07359A41E64C7D37FA2A4F
+          17A6CC4CF92F55E9D079B012AC3CF0D8E1BB77CF06ADB42B686C7525BD8F73DC
+          2821958641C820D786ED3C6DEAFB3B8495358770ADB8A346815BEB802BA6F40F
+          DA52FAF7524B3D60436F14A0E264C95DD9385C1CE33DBBE28B9F866FA830BC10
+          E8DE0FEE04AD96FC768FE1A8D30BE82745F5CDA69D7515E46BB36A826DDD8A80
+          CA0633E9838F706A7DB75FDBEBBAB6AB6802171049235D40A55AD9F69C027D73
+          EDC9EE7EBE5CFF00F4B26D34969B535861861472F72839917DB8FF00EF9C7A0A
+          B7E93EBB7B4B0BA9E5792059A456940F4CA8509FA0F7AF22EB5769D5CB979FF0
+          BA42F2854A81AC313FA2E972DE58E9697972D6C2F83AB204638084A90AE31F3F
+          5AE43A84D2E953A5C4B22C0327FF0034F041CE47CFDFFF00AAD8DFA8AC75082D
+          DA66B8F2F202C671BB93CE79EDD8FE75A0755477770BE73289616380B191923D
+          C0157D0616EEABBBAA083A54ED4F5389EC44D6D20956442E246040C8C83C7A0E
+          0FCEB459B526BD086193CC52DF0C8002B9C11907F5AB4BB796DEC844AC5571B5
+          4A8E067E55CF7AA3A913493358C867B289631209A35C08F9ED818C76F435AD80
+          BDDA5B92BCB55AD924F25CBBC4AD60DDA436AE15A5F3A495E41CE792061B2723
+          935A255A7516AABAB6A0D2460AC0836C6A7BE39E4FCC9C9AABAFB1F0CB636968
+          CA4E10773E672B8D33949C73452AB18AE9C272B145676D640C500225268A5628
+          C5108949A2B240C56314A134A39A4D3FE5F7A6CAF3532144148C71462958A318
+          A509CA4D14AC7358DB4A112B1452B14018A2112938A29758C53844A4E28ACEDF
+          D28DB4A1358A3159028C5108958A2B38AC62942114567146DA708958A00CD280
+          E2814C04A52714528F6A4FAD28404514564D109AC5140AC9A50858A2B2070680
+          702980858A00ACE28C51092C8C0A339A3140E2A4922B38AC5294D012428E29E8
+          864819C53683269E45C9EDF4AB1A1564A990420483E20455E5B5C2C36EE76EE2
+          0FE954303329C55D696EA5A385B197718CF6AD61E29B1CE8D9736B37560AF447
+          D913C3497C45F14BA57449233F75BDD423BCBBDB9CA5B46C0C878208CFE1C839
+          CB035DFBED337336BDE2CF52DC1F21A382E8DA42B0761147C260F3C80067EB5C
+          D3ECA77577A1DEF564B6573043A89D1596D2433AA491B06F343A9270326109C7
+          24C800EF563AD4F2DFACD79725E5B899CC865450031273C80463927D3DFB57C2
+          EF2E5D70F355DBBC93FA01E817ADB2A2194C81C9504B7434889406425CE49FA7
+          7CD57EAEF71750CD2C2583640057F1707FB63FBD46BF9C989630EDF064E1B907
+          9C9E7BFBD234BBA5BC91C12F1F9679C76FAFD2B9CE692A555C0609855275F9E2
+          478AEF25DBB9641822A7697AA41750C91A345670C31E7CCC924F3C8183C9F5FA
+          67E551357D7F4E8AE2532DEDB9DBC15E0B71E9C735A275375ADA24524761BA47
+          6FE761803E9EB5DFE11C36EAADCB66892C27BDA86239EE3DA32BCDF10732A512
+          D654877220E67DFEF8565D53D7D6F69E7A404DC29F85647183DBDBD6B8BEB9AB
+          CDAA5CB33B1233C0352B50BD92E199A424B11FA557051939FEBCD7D6E95A5BD9
+          B4D3B660683BC73582DA9B9B0FACE2E7752A1A203906B1B003DAA62DB8539192
+          2B27156685D1D7D14431EE5AC2DB9353367C06B2836F614684BB43C9573C4509
+          CF6A4118AB0990E471F9D30D6FC6477A8167456B5F8CA8A062B38A79622B9DC3
+          8AC797DF150D2A7A82648A00A9220CFA71F3AC7939EDE946928D4147C0A368C5
+          3FE4FCAB3E4F7E28D251A826029358C77A96B090B91DA949100791CD3D096B0A
+          1EC38EDF9D18CFA715606DCE09C64537F771DE9F66544550543C60D1B4FB54B3
+          6E0F7A3C8E30296829EB0A205AC84ED527EEE7F2AC9B7CE68D051AC28BB71F31
+          591C1CD3DE515C8C6693B6884E5653E1ED4FA4A55B8E734CF1E940A98C28112A
+          EF43EADD43A7A7DF653ED2183143CAB63DC56C57DE33751EA0922BDCC76E8570
+          12085140E303D33F3C935A0EDD878C907D693B8E4D657DB50A953B5A94C17752
+          01406C02D07055B0EABD5A2690C77F7285C10D8948CFF5AAEBDBFBAD4642F733
+          C93BFBBB13FDE9A5E071DE940020E6AD6B1AD9D2004C00132302958C026B263E
+          322B2B81C7A5385394D56296CA14D0173D86694294A450062B38AC94C7CE9422
+          5231CD67159038A0A9144272B18158C0E6958AC5284049C518A5A8AC943E9C8A
+          211291B68DB4AD84FA529532334C0944A6C2E682B4E84C76AC84C8A34A5A9318
+          AC85A7446477A5A81B718A0351A931814629CD98AC6CEF8A2112918A314ADB46
+          DF6A2112920628ACE2B3C500225268ACE3BD18A210B18ACAAF27BE6B2AA69C48
+          F2698091309C86118A598BB9F6A7225F848CF3FDE9CDB9181E95A0370B317194
+          DDBCAF14892C4E55E321948F420F15B874DF89FA9F4F11B544AA3F949C03DF9A
+          D4C26C1DBBD20290D58AEAC2DEF00170C0E8FEEFBA03C8D96C1D4FE216B7D537
+          7E75DDE3A85C848E1F81541F4E393F99354B1EA574C853EF3305F6DE714C95CF
+          A715944E0E338ABA95B52A2D0CA6C000E5082E9C9DD312E4B7BD34C322A5B427
+          39CD61A2001E2AE2D2536B8055E4609ACAB95A74C7CF34D95AA60857820ADC6D
+          3ADEEF57D434C7D4670D6FA68468E0690A23B2E305B86C93819E2BB47859E23D
+          AEB561259DF5C1B9D4826E9232985931D88E792381E95E665538ABAE97D7E7E9
+          AD5A1BE85448532191BD41EFCFA1F9D79DE23C1E95DDBB994C4387E18C6738F5
+          273FC2935EEA4FD6D395EC18AF8EA5713C731711A31F2B05471CF1C13C73EBED
+          5324D62092DA5B79636CB77949CF1EE3DBBFF7AE0BA2F8B3A6DC38178D776872
+          49DBCA1CE7BE3FD29EBEF1174ED4C4D6B6D7F3593B70B75342193D06DDBCF181
+          DC9AF9C7F89E220969A2EC09DB1E91BF9092B59E238CADF75BEB1B7B1B986D2D
+          E01A8DD3B84112B81C64FF005E0FF4CD71BF16BA8E1B8D5AE6CECA26B58DC289
+          82E5776D2C30476233FDAAB350D5ADB4B78FEE73C97376AC1DEE8E06187F87BF
+          AFCF15AC6AD7F3EA97925C4F23492377663926BD4F06E095A9576DC576434644
+          EF3CB1CBAE56635C3DA5A39AAF651B8E07149A7719A163C024D7D0A155298358
+          A79D3D0723DE9BDBCD4085205268A515C5600A509CA2ADB40B0B7D62E05948E6
+          09A4388A4F4DDE80D54E2A459432CD2A2428D24AC405541924FCAA151A5CC203
+          B4F8F4F75176D858BCB292CA692291487462A411EC6A3D751D7F4DB4D5B47B13
+          22B0BE11FC7244BF8DF80C318E4FA9AD1B5DD2AD74B9A38219C5CC9B3748E872
+          A09EC07FC35CAB1E274AF4E8683A84CE318E73B41E4A0C7923BC1422839C1CD2
+          36739A96B1804E303EB4490E0FBF1DF18AF41A5561EA1AAE09CF35864C8E2A40
+          8BE1C8149CE7F9722A3A54C3946319A1539A7CA7B609A48032726A10A61D2905
+          07A520D3A70B91EBFDA90C3D07344261200C93592BF2A584E295B46294225334
+          538132D83DA925714A139495193592BCD65473DE94C7BF14008949119278AC14
+          2A70460FCE9F87853919ACAEDC9C8A96951D4A3ED3EB58C53CE0134DFAE3D294
+          2903293E940E0D2F67C39E291DB34A130651EB492296064D05319E6942253759
+          02B200ACE294272938EF400452B159552413E944225271452D547AD0A81B8CE2
+          A5094A4514F15DA36FF5A4B2A8000CE6884A53759C6696173E94A0B9F5A21129
+          A0A4D2C2D381702803F3A90094AC05C53919231CE2B0AB9F614E08FF003A980A
+          B253C8C09E7D2AEB43B749751B75958AC21B73B01D80EF54D0200724E7E46AE7
+          4F4B8B825614E4AED07DB3C542E4136EF68304889E938958DE402BD49D0DD3D1
+          3F85D36A90AB4125FDC19A0171395F3238D8444C430039CB382339E09C1E76D9
+          C167776D6D35D7DDE496187E19248D0954E485DC7D01E719F7ADABFE97B9D17C
+          1CE8A82249D6DACE03BE2016450CDB0BBB907287796001519560727D6AB4744B
+          D1F777770ACDB4381807039193C0F5E2BE2379A69D4D2DD82F616209A2095A6F
+          509F2F44D4752306E6B689A631B3EDDD804FE5DAB9BDAF899631D9CB710DA4E2
+          E645F851F0101E71CE791F9574CF1275887A7F48D424544531A18F05CAAB93C0
+          191824FC873C7E75E6CBFD4EE756109BA6FE0C48228828ECA0938F73DCF2726B
+          D7FC39C3295F5335AB32435D833D39473E5D17178AD5D07B369DC653ED28B89A
+          491DB2EDC9DBEA6ABAE9D232D8F898F014522E27F2632130A80734CD8B46C19D
+          CFC5F3AFAA13C9799A74F48D5C934D19DD8720EEEF4CCF6E526DA1403EB56326
+          D70480302995450CC5DBBF6CD565A0AD4D794CA26D53C66B06053CE39A91B402
+          46723DD690C3071DE88080E4C7927273DA926153527CB0C0FBD2E1814EE1BC2B
+          0EC319A5A54B5C261215C60914968141E05487D818EDE463BE29832107B0FCA8
+          808692520DB820F14DADB803B76A7FCD14DBC87776E2A0405305C9A6849F6A48
+          8483DB8A7F7827E75932760179A8C05304A8E610B8AC103F3F5A79A22472403F
+          2A4088B673EFDE910983D511C05C1C1FD68789B776CE3DA87F84839C639EF526
+          3990A82704FF005A6003851248CA8EAE73C8385A36E463FA52E575624671F2A4
+          671C51B26120A60D654673C71EF4BC0238228500E7B81F2A509CA471DEB23680
+          7228317C272791EF48008C82734B64F74704E31C521A2CE69C4C31C67B50C026
+          4E722944A60C264427079ED49F2B24907D79A7D78F97D68621C923F3A8C0530E
+          2A301B4E4F23DB348246E3814FF9201E0E694B180720E0D474A9EA0A2BA647B5
+          25432FD2A6347918A49B718F84F3ED48B530F1CD347FF2FB560479F7A7D51954
+          A903069D893036E39C7AD48365475C286613EC6B1B0A8381561B08CD3657D314
+          68848542A104C7AF34AD9C7BD4831846CD60927E951D30A5AE76498EDF76738C
+          FA734D985892314F293EE40A78424231C1EFEB520D0547511BAAF319EC071418
+          C019FE9534A9C9F5FA56560C82C5781EF4B429768ABF041A7546077E6A61B71B
+          48006698FBBB231F51ED4B41080F05343934A2A54669F4B6320DC3F3ACBC4146
+          0E6A5A4C25AC4A8B59EF520420A020647CA922107B70696928D4133B4D642E7E
+          B4FAA81DC52847DCE2986A5A944DB496E2A531008CF18A66450C0E076F6A890A
+          6D726948F6A31DCD642E294A3D2A0029CA42AD61D71DA9FD9CE0D0D1614F39F9
+          53D296A0A3E32294A94B55FA5296163D850022424A8C6714E478F4A40E296A38
+          3520A25391E37139E69E4F5351D430E453A8EC076EF5634AA5C9DDCA3FC8D608
+          F849C8A410586067149E53B1A94A88096A7834B53E94CABD38A31DE805042CBE
+          79F6A6C8E0D399CF07B521BB1F6A0A028CE0D2314F904E4521A22ADF2F955442
+          BC15844CD3C91FB0ACA4454F3F84FAD3911F4C67F2A9B42ADCE4E4510DDC9C7B
+          0353A28D2ED08793CB9010BC270063B9C7D2AB6498863918152209CA3E40DC08
+          C11EF555C0AAEA4E16E61FCBF6CF554C664AB8BFE9C974BD2DA7919254986159
+          402386F7CE41FCBD6B5B6B70B9CB0ABBD4B5AB9BFB586DA56FE0C43E007B8F4A
+          ACC0941DABFA9ACD60CBAEC66F08D64F2E43A614B5007BBB28A20F5EFF004ACB
+          8E318C71CF352107F2E0AFD290B19790E781FDEBA1A7A2907754D08383F0D30D
+          1139C0A9F22F94A40E7E669A504F7000F7A896F24DAF3BA85C8F9D209E29F651
+          CE07E66ACFA5FA4753EB2D5A2D3749B5FBCDD48780CEA8AA338CB33101472392
+          40ACEF7369B4B9C6005A01954F02991C2A8C92715B6D9746DF3E986FE1596311
+          1399C8DB18206480FC0C8FAD759E96F05341E8BD12EB56EA933EA3A9425F6DB4
+          398ED220A4862EF80CE7B90131C60E4E6B9EF5A7595BEAF6D0E9DA59962B08DC
+          928E02A9EFD803C0F5C7BF26BCF8BEAB7B5C51B1FC20F79C448F2FEF38E5B951
+          BA44BF1E0911F5BAE9FD28B67130B8D425DEACE50FF0D58104F2393C91FD4D69
+          0B1021893C0EE48CD4974519F8877A4E410403FD3BD76ED6C28D9EBEC87E2249
+          FEF41C9660EC258F2A37CB923E628720C6CC08C7BD470B231207029D48488C8E
+          2BA00CF2518039A6581073E9EF595119386C9CFB734B43D90F627DAA40B73F11
+          55DC3D734836532E84CC9688BEA481D8532F0208C9ED8EC3DEA5E1F6FC6C9B7D
+          0739A892C64927771C60014DC0744309E6544F259C12066B304677671C76A9F0
+          DB8C104E4019C76A5F92A436C01411EB558A7CD5BDAF2519600C0F38FAD3663E
+          FC54EB58090E850EF19F847FCFAD35756FE5A0C1E73C8A916625561FDE850769
+          CD656367E0034FDAC61A5C30C8A9A61E3838FAD41B4F56558EA9A4C2AAD8791E
+          B4A119619C7CAAD56DA391371519F6A6BEEF52ECE1405605401095EC714EA460
+          8C9E7DEA62C2002319146CDB90071ED520C848D4950DAD8E38A68425727B106A
+          CE3DAF903861DF8A3C8F899BB8EFF4A3B3072121548C1556F1952031EFDCFA56
+          5610720F27D054B118CED6E47D283160F1C8CF7CD4342B35F2504C0C0F008E3B
+          520EEF6EDF2AB0573CE57E11C734D3156C71C1ED8A8960E4A41E79A84149F4C0
+          A021FCE9F922049C71F5A202030CF1F3355E9CC2B756253610F620FD694B1E33
+          8FD6A5792EA094231FDE85456C8FC2D8EC6ACD0ABD6A2ECEF58D9DEA5AC393EF
+          8A04201CB6314684B5A8E1323FD69422E40F7A7847C6573807B528427BE29E94
+          B5A8ED16334803F4A9C212A583900FCE99784027D7E7416421AF4CA11D88CD67
+          6902B1B48A723F88107BD20A471949099CFBD2E3C9F4C53A54EDC8E7E9495E32
+          718352855CC8526DE02C38191FDABBE7D92FC214F17FC57D1FA7A5BF8348B624
+          DDDC6A170CB8544190815880C59B6A819FE6F5AE0F6936DEE7BF1DABE817ECED
+          E8FE8FD7BACF4B9350B31A9DCAC53BDD5B5C0C2C4AAAAD0CAB8FC6DBC1DBD882
+          78E40DDCDE2BFF00E3409CF4F0CE550D05D5034ECB6FF1A7C3F8E6B0B6D56C96
+          6D3C2334696D7DF7D324E81C85923792131B820138F3410180C118AE4B3D9DDC
+          36CDE4E229C02720819F6C7F9FBFE55E80F1E7ABAF351BC6D29C95D3ECA46905
+          F4B248A67F888080EF2A5413FCAABDB046579F37F5475D5874CD9399AE562936
+          B347BA4DCEFEEBDF9E31E9EB5F18B90EAF77D9516C9DB0BD9507369DBEB7980B
+          CF1E2174A75069734D75ABBB4AACE42CC64DDBBB9C019C8AD155D80C13903B7C
+          AB61EAAEB3D57AB6F9E4BF9FE02C4A4406D45AD6E5FC441E3E55F78B26D7A76E
+          D6DCC6B1FF006E02F12ED05E7B398F1DD13BF991ED1EF4980796DCF6AC6D0FC1
+          E07CA855382AFC8F956AE7281004290EA1B0230C7804D32C0EDC64F1CF34C79A
+          D19215987CA8131DB8FEB46A098610A5AC4587E2DD8FF0FA5060C16DAEAC179E
+          7BD4549BBE4914B59C608C124FAD30425A5C14C8B6221DFCB1EDF4A6F610F800
+          6EF9546491C1E0FEB4F2B1C820FD69832A1A485285B80A06786E4AE6A3B46A8C
+          DD9B1D867D2B0F33F94CB83F234C223F7E33F3A091B421AD3924A7A558DC8214
+          20F9523CAF8BB10A0D1863F2AC8183DF3F2A4A6301667B65472541FD2A3F9A41
+          F889E6A44A5A4C761EB4C939CAE32691F04D9B6525E64CF19A4ED2F920E3E548
+          DBB72327BFAD6555947E2E6AB99DD5C046C89109404034DA864CFBD3CA78C00D
+          8A47C4E33F954484C1C26F9EE6963F0E739AC63E2C9E71E94B42AE318C0A4026
+          56427C2702B1B081F2A5063920118F4ACB37072735380A1253792383DBE7593B
+          4648EF492C7159FE5F7F4A8A926F04648A4991B77C5E94E2A939E292F19619A8
+          E54C11CD649565E09A4282B9AC290720F7A5A91B483F9714B74F6413EF4A4F88
+          D6061D707FA5361593E74D2194F718393FA52508DC71922939CF7E0D0A006C1C
+          006894804EE46ECE73F5A0B8DD9CD39B03A640E6A39466271807B62A46428882
+          9F1C83EE29B2405DD919CE31EA3E75842EB952DF9525FF00111C927D734894C0
+          4BFC4483C9A480307938F6C5255B63671923D7DE9CF3038C05627BE28194E161
+          A2F8491EDDEA558DC8689A0703FED93FD6A22E48279033CE6B0404F9E7DA9830
+          642896EA1054FF00BE2C56F2450E0B3719C62988265894E46FDDC32B546D8DCE
+          0107FBD6429452327FF77146A2729063408538BC7B3E2F878E298DE187C27351
+          49654393C819029319DCA76E491417CA6DA70A43B7963BE334D17693201E3DAB
+          05492493914952AB9EF9A812AC002C22C9B8EDC86EDC52CABA13BCFF005ADA3A
+          717A4A4E9ED49F55D4751B2EA017108B25B7B7592DDE1C379DE6124156FC1B48
+          0D9F8B20704EAB2306773C95278CF7C540106429679A716E07AD0B373F2A6D0C
+          401DC4E6B2CB16D255CFD2A527AA503A292B2294CED0569B29952A3F5A650320
+          CE383CFCE9E8E58C6D61C8CF7A94CEEA311B2624899064F6AC203DF193EC2A6B
+          A8914E4839F6A60B18F0179E3EB48B60A61F22161246079FEB41F8B9C77EF4E4
+          604AB92690CA5091DF14461008942C5FA564230538FCA94A0E33DAB2093E9CD3
+          01464A8FB319E3F3ACA608C1A758F19A405E78A50A60CA7506E0003C76A9115B
+          2FE119C8F7351532A6A5C7306C330E41C8C55AC8E6A874F249962F2830CF3E98
+          A8A38CE6A5CEDBD8ED391DF34D08B191F88E3D282338430E329A2B83C76F7A7A
+          38CBA6320E2858D80008DA4F1CFA52A4CA91C0071ED48084133858F2B83CD244
+          7DF34B5527900D3CB12B039C83520D951D50A2A47FAD122714F3001B19A494DC
+          32073F2A50987734DF97B8923B0AC8053B734A11ED273C5618B60E0014A21399
+          4DE371A96A2358C157C71CFBD326319E01C52D6219EF9FA549A2144E5249DF93
+          BA85CE36EE00539B140C018F73580002391C5384814DAC8C8CC187E74EC71891
+          739E07CE94E519718073F3A636BC6B91F873F9D1B2067C16241F11CE4E07AD60
+          9F871C0F9D39B83E71FDA9AFC2DC76F622A254C249857B919ADB3A23AD9FA51D
+          4A5AA8D8CCDE6C676CA4B0DBC1FA6E18F666F7AD58CAAAD8208FED58330C9509
+          822B15CDAD1BBA7D956123D47D94DA5C321740F10BC62D5BADE296DA4262B795
+          B7CC4AA8795B39E48038AE7AA0724F14E798AD9C83F234890E09E720F3914AD2
+          CE858D2ECADDB037F33D4A6E7B9E65C64A1630D9C9CD296D431EC69284819229
+          C597606F9FA56D00735032365276E4600FCA911DA3CCC71938EE7D2ACA4B048F
+          3BA4008F4CE693293B36C68C83D4F3CFE55A34F5588559FC2A2CB1C16D136D5F
+          3187A814CACD81B815383CA8A25B62B9619CF6AC2C0F8CFF0071DAA199C05708
+          8C94ADF15C2E390D9ED598ADD18E06060FAD2D2DB081C2E00F51EB4E2C5230CE
+          CE7D0FA9A901D544B80C0280891AE1465B3CEE5C66B0D0B153C1551CF3DEA6C3
+          06C5567259FD07F952A59A38E36C1DD27A022A7A567ED0CC0CAAD86230B48EAD
+          92D80194E78A24579412E38FA77156965A701187983618E47F9D4A9E38CA30E3
+          27DB9A0330A26B80EC65515BE9EB31603838EFF3A54BA6ED2554EE2064E6ACED
+          E3F27D495EFDA933C7B5DE446E4F38F5C51A0427DB38BB7556230AC3800E31C5
+          20B2A23EE07781C63B1A94EDE510EA0ED3E869DF2E3B9C6D4F258718C528E8AD
+          D7193B287E57F0C76FD699DA493CE2AC25B1D899CEE23E5CFAD4078CAF25B27D
+          88A8910A74DC1DCD1E5E71B5B1DB9A13318D8C598FBFBD2ED3CB6DDF16197F94
+          8A7C27C00B46C78F4E314809CA65D060A86C841E72AB58083240047B106A7CB0
+          298B206D07B0351961C1C720FF0084D1A536BE4269ED15F077F3FD6ABE552AE4
+          0040FA55C45166420820FB5227B56F2D8ED3C9E3E75073246158CABA4C155823
+          2AA1B3914FAAA60F2BBBE629D4B4755C3E0E07634A86DD7E2C9DAC3B007822A0
+          D690A65E0F35186E8DB00607B9A595493865C103B8CF1527EE6597E1901078C1
+          FAD20C2176939F6FAD483484B583B2C4518E3272287D8188DA0FA0069D48F6A9
+          19E2B12203FC858E38CD4E30A01D95110F96C558103D33522353EA0303FD29B4
+          8B3290470BDC53E81958803207B545A149C561ADF696504489E9BA91C60003B7
+          A53DBBCD523386FAD21C6D073DEA51D14013B151A6F89B18A43C5B4E79CFCA9D
+          2B9279A5C91B46B960791DFDEAA8995707440442984E720D032093DEB3B814C6
+          47B60528A795C673F3AB0055CA762810727824F7F4AF427D987C52BDE86EB1E9
+          E9AC2F1ECBC9BC09705A5558DD5CAAEE3FCC368C9DC3B601F7AF3C401EE642A5
+          B38E40A9761A85C695789340ED1C91B64329C106AAAF45B714CB0AA4EA0641C8
+          5ED4F126F358D23EFEDAF5FDC6A62395A67BA0C6E21891A46118122CB21F8805
+          FC6013E9BBB9E0FE2668F2EA164977F779945A9D84C9E80FA1CF20FE5EB56BD3
+          BF69F9AFF4F9F49EB9B7BBEA1D2E6D8648A3B810F9850008CE02E19971C3367B
+          938C9CD6D1ABF895E1A1E9BB75D0B47BFB699ADBCBB8B69AFA292341C0F83112
+          EF3EFB865B839CE6BC2B78456E19722EED99A9D391CA0EF1D3D71E4BA0FBD15E
+          976359DA472F3FEF45E6A95C2C6DC7738C1F4A85C313C76EF5B47555D69335D4
+          AD636D2C2ADD97702A0D6B44A82C150819E33E95EFA9D4355A1C5A5BE077FA12
+          B9AC11319569A25D6956EB22DED84B78CFC6E5936F97F31EE7EBC0EFCF6A6359
+          9ED2E2E4C96966B63081811094C87EA49A820046C28DD9EC58539F77C03C004F
+          7E6A2DA003CD4933E663DA63FBE6A7AF10A115F5158527D57FAD3D3A79608284
+          1F6A6D15906ECFE552882AD0642C046DDC8C0F7C52BCBDA7D462961CE39E07AE
+          076A78210770F8FD8E2A4002A05D09844C9A910A04639F887FDA69B60FBB033F
+          30169D823959808D086EFF00A54805071C2CB64025170179E6A3072E4F704F3F
+          4ABBD175B4D22F966B9D2ECB5887B3DADFABF96E3DB28CAEBF55607E75175A36
+          77DA95C4FA6593E9D64E43476B24E6631F032036012339C67903009279219984
+          9B0065576D70C79C8AC13DF3C63D6A5C160635DECECCB8C9D80F15868527DC11
+          B771918A20C27AC4A88923AE41F887BD287C5920D3B2E9F2AC225DBFC3271C1A
+          611195B23B8A8C11BA982D76426DD78248CF3580485C9E05490864CFA52DA160
+          8588F4FCE8D29EB0305411267248E291E6853D89F9FB5121542C0860F9ED4A0A
+          BB703B7F7AAB2AE10147795D89F6A546E4823B7D29423661EBC511C446718FA5
+          4002AC910B1CE7DF9EFEF4B032339C52938C8E0FBD017D33DFDEA50A1292A4E0
+          E06696A79CEDCD6428E79E07A9A53291C01818F4A900A3292CC0F6FCF8A6DD89
+          1B47EB4F08B839E78C9C53663CE7D2910500851F85249EE6B20E58E2A4FDD55F
+          8EFEB4A1660E4AB73EDED510C2A7AC28E38F4FD2B2319EF4F18446A72DCD63EE
+          FC649E3BF14F4951D41462DCE319A52A97383C629E8D5705491F23EF4F04555C
+          F3406CA65C061262538181C8F7A4B460B9E4FCEA742373AA0C65BD7DA94FA5C9
+          F1BE3685E3E207FCAAED1859BB400E542F2F0A481F17CE989012493827E552A3
+          0D83839C76F6A6492D263255BD4E78A891856B4E536B12B9F7C7E9415DBC0386
+          34A08C0EEDC49C761489017E73C8FEA2A1C958164C815318C91EF4EA207E76F6
+          3498D0283C86FEF52236010ED1F2C1352689DD41C63648312843B98E3B536178
+          C6770F734F3AEF07231938EF9C52561232335285106147742ABC018F9526355B
+          7523823D401CD4AC1CE3191EE693B4772A413EC3BD434F3530EE4A2851839CE3
+          E748F2D589EE2A6AC00F68C2D353A94DAB8EE71C0A896C09536BF30144DA3E20
+          0E71463DCE3DE9E82306565E33DC0CE29D9E0C2E59481DFEB500D912A7AE0C28
+          9736CD6EE5245D8E00383EC4647F434CAA91F3FA54C8A00FC8031E9591667391
+          ED823151D04A9F680614619E3E5EF486219BB6DF98152CC52701541F7CD3D0C0
+          8338E41F7A6184E147B40329A525536ABEE1EFDEB0B1B3B1008FA353B2C5B403
+          1E139F4AC24650B004FC473C5591982AB071213A516318C0DDED8A8CD1932649
+          3CD48080B7AE47AD3889BC6464FE552895583A5470405273CE3B527700A49EE7
+          D3DA9C688AB6065463DA95F7667037F047627BFD2A3054A426176B0EE7BD3C22
+          1CE0656B0A76384EC4F7F6AB2B4B42C380A57B54D8D9507BC344AAF68D0F2010
+          68D807E13CD4CB8B6D84AF63EB4D0B639F8BF0FA9A969510F046E9A505B38E7E
+          B4E2C0C41DB9DC3934B8EDD03E172E73E952CDB0889CA961DF23DAA4D6F555BA
+          A01B28522C8C3692197D7DE9015BB6D248ED53258D849B9532A79F879A3CA0FC
+          AFC27D73DE9E9483F0A36FC64104353734A7690063E74FC91967248C1F7A67CA
+          66254E587B9A899D958D237498C0F2F2D9C9A64C8DBF04E07CAA71857B83F514
+          DBDB2B72691698520F1CD368F9C1DC4AFF00DC29E36CDB0BA7C60F3834C1DA09
+          5E48F43ED59CBA92158853ED481EA823A2424BB9C29C85F634EC7229383DC7A8
+          A4470AB3B1693007A81DE9223DA4E791EE29090A582AD1E28C44ACAC0F1DAA0B
+          FE224AE4510CAC0E021229D2BE6216C600E0FCAAC9D4150D059BA447B7D0FEB4
+          F45957ED9FFB48EFF2A4451C7BB6B1C538C7CB240E40F5A90489E4913C0B1E76
+          70A4FE12391514DB9058E73F5A98EC5941CF3DE908C47E2538F7C544B41526B8
+          80A304C8390463D54D63CA134AEC5D9989C9663924D4A5B54327C3B8E79C1A91
+          F73C2310A4639C9FFEE9064EE99AA1AA07DD064FC5C565A2554391CD58DBE9D2
+          955706300FAB38A6AE346B80483192460E55863919A7A2060280ACD260B957AA
+          823D8FB5484DA3BC631F3EF532DB463B03CA429C70339352534BF308FE200477
+          18E29B58545D5D9B4A11443CB5BF9841DC7701C52E59A299481B949E307D3BE2
+          B71D7FC3BEAAE9AD0ECF5CD5BA6355D3B43BC711DB6A577652476D3B10C42A48
+          405638563807B026B5B589261F0FC39C707B1AB8411DD2B9FAF9B828C96512FC
+          2E77903B1C73FA538205C92231B47F2D49B4B3492564C907D38C8FE95B7F54F8
+          41D6DE1FE8F65AA750F4A6ADA26997E17EEB77A859C90C53E54B0D8EC00638E7
+          8F4E7D4512D69009DD565E4CC725A52DBAA46E1E20037620E3151CE9EA32E819
+          1323B0E0D5B20730B263FF007119C7FCE289EDE4CB2C8E23D8308E9C6EF6383F
+          2FA54A156DAA41DD53BDAA9DB9638F507DFD2A4C12F96D87B740076C0E7F5A95
+          A86D8A081FCB94658290C0618639208F98FCA976E6145F31A0936AA091BCC940
+          0C376DC81C13CFA0C9E0FB1C2C053D65ED9895986EA29E2D930F2DBD1B19A98D
+          A5A10400928238D87391EB57DE15744DC78A5D7BA374D4105E39D42E046CFA75
+          B89A48D704972091B635032CE7F0A82D838C1DD3ED0FE1EF45F845A80E9CD0F5
+          BD7DBAC74F924B3D6F4AD42DA268E1954AE245B88DC294756C850AC46DC3104E
+          0546B31B50523B950F97A8E6768CC05C7AE6C7C8728D1B447FEE078A8F25A88C
+          1F895C7B8F5A7AD6F6E6EEE238A59CBC7DCABB2A600EFF00137009C56C5D55A5
+          E9DA4EB97834DFBE9B0466110D422884B80CC305A36657C003E35C03DC0156C8
+          984BBF4DB2E2B4C310CFA01F3A5F94B1B3090631C9C0A9E4A1E368C13C7A7156
+          5D33D0BACF5B4F796FD3DA26A5AF5D5940D75730E996B25CB430A901A5608090
+          80B0058F0323DE9186892AE6BCBB10B5C6894A6149CFA6F34DC7A7A3921B6B8C
+          F3C9E3F4A99711CD693491CB004C118072187FCC7F4A8F1487CC6DDF063E1E4D
+          185635CE8C26469E904C084049CE73C11F2FEF4E1B72410080A4F66FF9FF0033
+          52E3B079119D9490A46E2BE84E71FD8D02D4A0270C4639CD0025DA752A284C21
+          5939DBDD401DBE545858B5D9CA85255BB9F4F6A96073878F1B4839DBC8A92BA8
+          A2F2225E06D38FF9DE9C2ACD47004342817168FB9D87C278387195FCAA233210
+          3CCF873C36D048FAD5CC9AB7F0E55009CAE14B8E47CF22A32AA489B9B1BB18E7
+          193F3A21363DC07782A6B8B532E4AEE50BC6083F3FF99A8691E55BE1F8B38C77
+          238AD9ED16288CB1B9081861B77391CFE9DEA50B7D3649DB7A05CE0EE518C9F4
+          1F2FAD4344E55DF35A3044AD6534E75091EDDDB8648DBD8FA1FEB4D0856D98E5
+          724F656183FD6AEA6135BDD4AF0B6429C8DE324F3519DCCECE24DA198773C9A3
+          485736AB8E4ECAB915B856CAF3EA38153A1D344B1F9923F3FC8231C9F9D390C6
+          A036D50D8EC08A64168B3B772FA1507B8A004179761B84CCD6525B827820739C
+          FD6A25AB33B0071CF19FCEAC6E2296685039E5B85C9C13F2A9575D1BABD8E976
+          BAA4FA75CC1A75D0FE05E342DE4C9C91857C609C83C039E0D40E0AB58FEE9D47
+          2A1359155DD82493E9E9485B062C41002FB9F5A909E65A8916E18C52C476B472
+          AE0839C60D125D85D8172B1B0CE08E0F27B7CB8FE952C2AE5F90133369870362
+          63D73DE9D8F4EE14CCC581F402B73E94E89B8EAAB87D3EDAE21B7D656EA380D8
+          5D2CA8E11B3BA566D9B1113037167070D90A40623B05DFD863C666D5AEECF48E
+          917EA4B28204B98B56D26E50D9DE44E81D64B7794A194107D06720F1553AB516
+          187B80F3C28CD77080D2579A2F74A4B570EAADB703B8C64D36918404001B3EFF
+          00E55D63ADBC07F13BA2B48F3BA87A07A9F48D391C013DEE9932439C138DE571
+          D81F5F435CE235DE08DB804F1F3AB1A58FCB0CA887D40D8A832A147A7963B948
+          438241F5A134B98EE61B5947A8356AB18954A31657C7C2C0D25A03129DA37B6E
+          3D9B1F97B559A42876CED9553E9CDC9E3008191EA6B11DBC880947E3D706A79B
+          57133068F7229E518F63F91A73CB609B508400FE10BC520D53ED4C44A842D9A6
+          46676D8DDF9149B686142CD7196523E109EF56B2467EEC1648B71DDF0C98EE31
+          CFF95458A072EC91216CE4ED1C8E064D10A0DA920A871A451A86656DF8E171FA
+          1A43DC06DD941F3CD594F692431EE29953E83BD2ED3A6A7BA6B95FBADC48D0C6
+          6790C51B379718EECDC70064649E052885636A34E4AA12EA5C9EF9F714F0F2B6
+          0C6E53EF567274EB24314B15D412170CDE5EEC32804F7F4E71C0CE6BBEF82FF6
+          0BF12FC71E89D43AAF4686D63D3EDFE1B78656226BE6F878881C2ED05B96665F
+          C2D8DD8C1A2A556516EAA8602D2DFF0094C332BCDF14786394120A7638101254
+          BA30E70A0F35EB1D23F673F5ADF74F417EFD5BD35A65F5D69A9A95B69BA84F2D
+          BCB2AB231118678C206DEA573BB601B58B00C2B806A5E1CF52F4CDFA58EB7A2E
+          AB6AF74CD1DA48964D225DB03B7F82D90B2293819427BF19CD469DC51A84863A
+          6127B2A37242D66360AA19C2360FA0049AC2E9E8DBBCAB82109DC1586306BD45
+          D0BFB3A7C57D7F47B2D5B50D2E5D2B4CBE8D2E238E2852E6F446C0B02610EBB4
+          E07E16707900E0F15D12E3F650F8A1677D6D149D41D3DF72B8595BCC48EE5E58
+          CA2B361D522645DD85032E012D8CE700D4EBFB46987540ABF96AF12C6AF09BD8
+          B152FF008B1EA3B52E091A33BB6E14F0DD8F15E8DEBCFB0AF8CDD17D5771A25B
+          F485EF54C11081A2D5FA7EDE49ACAE3CD507E091957905B07206319ED827A878
+          5BFB2CFAE3AE6C049D4BD49A67455E310CDA43402F2FD233C091916401065932
+          09C805B20118327DF5B536EB2F11FDE5BA6DA35DE7416AF109B8CCAA863C6390
+          C4D469C4A66678FE139E0A8C57D153FB1D35AB4BE9A29FADDAEECA38A598DDD9
+          E9E9B9F1CC71C713CC373B056077322A974C3361ABCC7E24FD8D3AEBA03A9DF4
+          4D3EDFFEAB9771509A4C6C675CCF3C28CF17242B35BC80BA964461B1D95FE1AA
+          E95FDB563A58F571B67D2CC2E276B289AD242E9B9D3019B81EA7B0CF3FFDD36D
+          6E9B77617B718ADE7AEBC07EBEF0E2D44DD43D29AAE956CB218BEF13D9BA22B8
+          0A4AB363861E62F079F887CAB43B96169712C426126C72BBD5582B0048DC0300
+          403DF900FB8ADCD7B5C24195974904C6125226C336323FBD32CC4E5467238A93
+          15EB023E20D9E0027B53D6905DEB3A9DBD9595ACB7179712AC305BDB21679646
+          385555192492400077CD4B10A4354E42AE7B66620119CFB8A69ED820FC3FED5D
+          33AEBC0BEB2F0C9B4D4EAED3D3A7EF75098C30D85F4EB1DC2631979233CC69F1
+          2E19F00E72B90091B178BBF64AF12BC2196DCEAFA05D6A1A6CD611DF9D5B4B82
+          4B9B38959773A34AA9B4347C87E4818CE48209A3B5A463BC33B78AB8178E5B2E
+          1DE5285ED9ACA408B96C60D58269C4E49C98C7F328E3E758164AC1D94B6D1DB2
+          2ADD2976A3AAAEDA377E014340BF9D6D9D33D037DD602FD74B78E5BCB4B7FBC2
+          D90591A6B80080C220AA412A0EE2091C0246706AA1344BC9236616EE6351967D
+          BC0FCEA2002484FB66B724AAD8E11838FD29C58F078FEB4F2DBB23E00653EE6A
+          42DBBCBC0DAC4700AF3520D51353C54210E53B6734D49128396E3EB57434ABB5
+          B717291E62DE50312012719C6334D3300BE5CB031C7273DFF2A7A41501563654
+          781C1520FD297823E21F9FD2AC858464F0FB149C61BBD38343958650EE391B4F
+          6CF38E2A1A0AB7B760DCAAC58D5D09C92338ED4A36CE472AF8F90A932C0F1C9B
+          07F2FA8E334F6F6DC0489803BB7AD4B484BB43C956C68403F09F738AC838620F
+          23D6AD5111508D876B0C8F738F6356F61E1A7556B3D2773D51A7F4D6A775D356
+          D39B69F5586D5DADE39B009467008070CA719F5151203772815354E16BD6E08D
+          A982477C06C53AD238C28C8603845F5A7A2B30AACB2965957E1D9B0927F3A44A
+          A607648406031F163B55A042A35071515DCC9CC8A580EC40E7E7CD24A26D014E
+          EC7652BC62AD2D6C6E7535995A748E5893281C6D2E73C8CFBE33FA5479F4EB9B
+          3862696D2787CD5DC8F2210B20C91907D46411C7B54614DAF13A79AAF920C77C
+          6186700703D29B48705940E073DAA749387688EC11B20C127D7E753EDD1EEB0D
+          E5ABEF3838FE5F4C9F6A5A4152355CC190A9E0B5925566552C1464903B0FA536
+          B1B365837E5EF5B1456ECAE0AA9565F4ED52A1B1B6B8DCEE3C8907B8C827FCAA
+          5A1506E836642D5F67C272723E74CBC0C106371038CE6BA57477435CF53EBF1D
+          941A2DC6A71C0166BD5B66F2C243B802CD310C912F23F88E368C8CE7B1EBDA67
+          D84FAF7A87A86C16D2CF4DD0344D5981B0D56F358B7BCD3F9728B19BB8372190
+          B290A980CC780BDF1454A94E9E1EE03D55B4AB39FF0085A4FA617972304FC24F
+          960FA9E0564A2AA819DE0F35D9BC58FB3DEA3E13DF25AEB3D43A1DE5C3123CBB
+          4B833B29123236E31A32AE3686C16048618079C734D4B45B584442CE69253E5A
+          9984B1AA6C939DCAB876DCA3D18E09FF0008A9B087896E423B668304AA48E33B
+          4854DC7BF14DF39E548FAD7ACBECBBF60BBAFB4669DA7EA6BD75A1E956B7133A
+          C9610BBCF7F1C71BE252F185C21C6D2BB8E0F98BCE722BA2F5F7ECD9B4E9978A
+          DFA70F58F59CD791472594F6FA7A5AC0C8EA4099D9D4ED547C6E8B1E6105481B
+          5B78C2FBEA14DFD997642DACA6F73750185E09108E595477E48EF4D4B19E793F
+          957BFBA5FF00648758DF68FA65C6BBD5965A3DFEA12C8A9A6411C73CB146092B
+          213E6AABE5412CA992BB971BB903897DA3FEC75D41E0775AEA3A5E8D25CF5B68
+          16A9133EB5A759B14877AAE167085C42C5F7050C7E200104E480E9DE5BD67F66
+          C7E50E654A635B86179AE3848CEDCF6A79130393935B0DC74C5C5A6ADFBAAED3
+          F76DF24DE44D1DF7F07C97DD8224DD8DB83DF3DB0735D82D3EC51E28C577A73E
+          A7D23AAB69F79A447AF412E976ED77F79B5254B468F12BAA4DE597608F83F081
+          8F8973A1CE6521DE30AA6BCD4D82E001037183CD3B15AE573C77C77AF43F47FD
+          8D6EAE7A2E2EA5EBAEA4B8F0F6D6E5249AD23BCD06EEE85CC488B233AC91AED1
+          F079848E4AF97CE33C6A9D77E14F4AF875D45AAF4EDC750EAFA85DDAC6EF06A7
+          69A488E39640ACBE4BC33491B205911819033673C27C3F14595E9B9C5A33E89B
+          816B64985C91EC5C9E57D700E7BD3525B344A59FFAD743D6FC1FEAFE9CD0BA73
+          57D574D0BA76BEAE74B9ADA786E96E36052DC44EC5186F418600F278CA902447
+          E01788FAD68F26A161D0DAFDFD85B797E65DDAE9B34B12EF0A54175523243A9C
+          7FDC2AED54E354ACE2A383B495CDD2DC37249CE3D0D605BB2FC233DF1C56D56D
+          D19A8B4CB049653ADCAC0D3BC3E531658914BB49800FC0154B6EED804E71CD47
+          8ED222E430C9F461568682AA37204AA3874F62C77B907D09F5A54B64507CFD8F
+          AD6C89630B4258EDCAFF002E3E23F4156A3A06EEEB40BCD5D654B4B4B75461E7
+          A95F3D8B00638D88DAD228657299DDB4960A5412020346552DBAD4E85A2FDD17
+          69DEB93DC29C1A7A18990FC27E1271B735B1DB74CEA37C24860B1BAB931A79AE
+          1216628990379C765CB2F3DBE21EF4CC7D35245232989E32A48C85DC38241E7E
+          A0F39A600E48370DD324AA1388D9BCC21980CF7E33FF00314D4A1767C2C0B7A0
+          19C56D575D3B05B22338F364719C3291B7E550574FC3B13845C76C0A7A4A4CB9
+          638485576966CEB95EFEA318A902DA48F7EE4386F5278A99F7291642D1206E07
+          C5DF3489BCD4562597703E9F9E69810976BA8E141FBAB93C900018247734C32B
+          A928405CFF005A945A49DC8476249EEC07F7ACB4522C0095CAA3052CABC02738
+          1FD09FC8D25735C460A882D405CB76EC7D2B02C1A3C853BC76F84F6AB4B7B196
+          612A4727985216B831AC6CDB429E431C71C739191DBF272E3479A2D38EA0D716
+          7244FC2C31C9FC427E1E769C1C7C4C33EF1B8F4A8614C179D952BDB18CF20AA9
+          F715958E265C11B7E639ADABA2FA1FA87AE7528B4ED1749B8D52E9D822DBDBC7
+          BE439200C28CB1E580E01CE7039AEDFAC7D82FC64D33A7A6D72DBA50F5059438
+          1BB43905CBB8C80DB230033ED2C01C03FCD8CEC7DB5BEB52A661EE027AA63B42
+          24098E8BCBAD684FE1CE7DE91F75923192463E6715D5A1F02BAE2EFAA2C7A6E3
+          E94D5535CBE731DA585DDA3DB49330EE144A17351755FB36F89FA76A16F6B378
+          7DD425EED4B5ABDB69D2CF1CE02962639115964C0049DA4F6A45D4C7E61EEACA
+          751CF95CCBEEAEC7E15F9E294228F91939231EF56B268D77A6470C92A1549177
+          A6F52370C91919EE3208C8F6ABDB5F0E3A8EF7A52E3A9A3E9CD525E9D85DA393
+          564B395AD6375D9B834A1768C79918E4FF0038F7A9C01BA3B59DB2B4CFBBB264
+          952CBF3A95045E6F0A17B7623B54A8C1809CAB4883F9803C77FF00434877084E
+          D014703047E1A906C289A85C99FB932B9DE9CFA13FEB4FC7A7B3E7838EDC1CE6
+          ADF4EB88B68F3504A33BB0781EA31DBB735BD597FD3874F56BAD227B69147C52
+          246C63663D89E7B7F5FF0039C00B97717AFA3F909F25CE468E599508DADD8063
+          8A72E2C5A006168C0F500FA56CB78FA78DE90ED8D55F7A928781ED9CE71F2E6A
+          B66B913CCCDB95C63076679FD6A50AB65C3DF98C2AA8AD95410579152A1B6440
+          3E0C86F977AC89012367C19F9E69FB09E3B8B8103DC456DC81E64DB828E4039D
+          A09E01CF6EC0FE66CAD25CED925E13181B540C9E08151664926958722318CB7B
+          F15B9F48F877D43D6DD5B074D68BA65C5D6B37015A0B430BEE9A36C1F315480C
+          57690E08072BCE2BBF6AFF00650D326BB9346D1FA3FAC25D6AFED41D259B5AB3
+          11DFC9B0BB4B14335B412BC6A073B47251C6470467A9714E99871FB26C63E0B8
+          8F0D89FB4AF228B98EDF2BF89B3DBD4D392C6CFD91CE30720F15E935FB09F89F
+          D41A5C6BD39D17D4577AAC4A5AF6D75BD3974B58C310A8619669144A490FB80C
+          6DDA0F20E6B91EBDE07F5FF48584D7DAE747EB1A758DBCB1C2F7525AB793B9C6
+          530E32AC1872083839183C8A197145E74B5E27CD680C7E9D7A485FA0AEA5E98D
+          1FAC745B9D1F5ED2ECF59D2AE4289ACAFE059A1930C197723020E18023D8807D
+          2B95D9FD8FFC17D235C4BEB4F0A7A6E4926511C8F35A2491C4141DA562705012
+          4F2CA013C124E38ECF457CA9956A5310C7103CD7B475363FF1095E6683F67EF8
+          6763D5B16B96D1DC49109DDE5D22F952E2C6789999FCB788A80E55D8B2B3EEE4
+          0DC1F9CD8F58FD843C30EBE86D62D78EBF7F1D9DBFDD6C626D5E4586C530A310
+          44311C63E11F085DBF2ED8F445157FCE5C4876B321546DA89105A178AE4FD95F
+          E1FD9BF99A3F57752E9D2A1DD14CFF007695D18729CF94B901B071EB8EE0F35B
+          9786BFB3E7C3AE81D075CD3F50B3B2EB5BAD463090DFF51E9B14F25A610A8D9B
+          70472C49DACA785C72093EA2A2AC7710BA78D2EA8554CB1B6A665AC0BC31E1EF
+          ECD5E9DBC6BE83C4AE9ED1E79196E63B6D53A63549A062A5E2FBBBBDBF911A2C
+          AA88E095250E4965663BA971FEC9AE82B55BB8ADFADBA9D6D6E62F2A4B791A2D
+          920077287D8ABB8060AD8F75F43823DC9454FF00C95DCC87909FC950FF00B579
+          97A4BEC852F8229790F8433E89A19D416249AFF5BB46BCBAB66180F2C2FDD988
+          04AC7233229270002E19CEB2FD9F3E13F5CF5E4DD6BA85A5FDBF51DCDC7DF2EA
+          5B79A39219E73CB3B43346E8D939382B8E7B0E2BD2D4551F395F56A0ECF5E67C
+          FAAB850A6044617876DFF64F740D9F525CEAD6DD5DAE5BEF69258208EDEDB6DB
+          B96054A83195214646D2B8C1E3040AEFF71F656E85D6B438B46EA1D0B48D734E
+          48D1584DA72ACCF20528CE240498F2A130B16C55F8C81961B7B1D1527DEDC548
+          D4F38516DB516ECD5E07FB4D7ECDEE9793A2A387C1CE87683A8E59006B87D724
+          D90A01D8A4F210DBF90483918EC73C728F0EBECFDF68BFB34F54CBAB749F475C
+          5CDAC709B13A7595E5BCB1DC295421DE61B65915A4326E056331FC25090A31F5
+          3E8AD4CE295DACECEA43C78C9FD550EB2A7AB5533A4F842F1E7D9B3ECA5A0F5A
+          F843A2378C3D2ADADF5469B3DEC246B76D3A491ACD209186E940690025B0C3E1
+          05982962A1CDBEA5FB32BC0ABED1AE74EB5D0F54D18CCEA4DE586B13995D0306
+          DACB2178C8CE47284E39041C11EACA2B33AFAE0BCB9AF224CC0385736DA98606
+          B802BC09AD7EC82E8A92E5A5D0FAEB59B0407E08B50B58EE828F63B0C59ED8F4
+          E3E7CD739EA5FD917D5F6970474EF5C685AA4417224D4EDE6B262DEC5516618F
+          9EEFCABEA0D15A99C62F59F9E7CC059AA70DB6A9BB63D4AF91107ECB5F16DB56
+          8ACAF63D345A4CE13F79D9EA08F1DB820FC4F13857719C676F206480C700F5BE
+          83FD9256E7A3B47BED6FAB66D17AEE09DE4BA44B68B51D34ED98F95B63223665
+          281490CDC96EC3B57D1CA2A7538D5DD41120790FDE546970DB7A7D4F9FF10BE5
+          6753FEC7DEB9633CBA575FE81A84C5C951796B35A6F0492492824C1CFA60F7EF
+          C5734BBFD96FE3958C375B747D3AF6642161169AA41B25E7924C8C840C67D33D
+          B8AFB3D45499C6EEDBB907D3F68533C3E81DA47AAF917A6FEC9DF15AFF005B86
+          0BBD5745D3F4F92C12E3EFB23E7CA9F2A1ADDE34DC7206F3BD4B29DA3241381B
+          BF53FEC9BD6AFF00A3ACE6E9CD5348B6D7D7CC99DEFA69E25995F6958CA088F9
+          6570F8CE797C13800D7D3DA2A278CDD920C8C78262C2800442F057875FB273A1
+          0F45E972759EA7AE5BF58794BF7C6D2750864B58E45909063125B9DC0AED0438
+          23BF03BD6E5A57ECC7F0E34FB2D3B4B9EEE4D4747B5F35A48EEAC203753BCB0B
+          C4EE6E02871826391147C2AF183860703D8745657711BA7124BCE55CDB4A2D10
+          1ABCF727D807C03957CA6F0F6C8DB074952017132AA48A08DC183EE3B8150CAC
+          C54EC53B7392798751FEC98F063567BD974FBCEA3D1A5B82BE5886F5248EDC0F
+          C41034649DDEBB8B63D315ED3A2AB65F5CB3F0D43EEAC36F49DBB42F9F3AAFEC
+          7EE95FDD17D6FA575E6A51DDC91A8B692FAC63956290302CE76952D900A8E463
+          713CD76CD27EC97A97867A5D85B7865AEA748DC416A8B35E5A845FBDCEA1C31B
+          9B4118B6B90E0A286D91489F136F6E147A6A8A9BF885CD51151D23D14196D4A9
+          FE010BCA3E3CFD9821EB4D0ACAF3A87A5ED7AD757B7EA11ABB4FA0E956F13DC2
+          8411AA5DC52DC46D345824BAC73292513E160481C4FC4BFB3FDEF88DD4BD27A6
+          5F783DD3FA67435BDCAD8CB1C1D27A8E977D6703BEE69216D3EE2EA3C969246F
+          8D42823F898EE3E8D51453BEA94C01D148D069385E64FB3B7D84F40FB3EDF493
+          DAF55EAFAF44B7027B782F62842AFC0D190F956DC4A305DCBB0E323B1C0F41F5
+          368B79ACD92269FAACBA35EC4FBE2BB8A149769C10728E082304D5C51592A56A
+          955DADE64AB5AC6B4405E37F197EC6DE34F893A95E5F5BFDA1E658E55D91E972
+          F4F476F02A63054BC527F300037C3F10E0E4002B9EEABF62BF1D6FFA6F54D16E
+          ED7C14D52DDEC9EDAD6EBFE9E4B6B983706CF9063B5511364E73C80707DEBE85
+          515B29F10AD4C00231E03F4859DF6CCA9BCFBAF9FBD09FB23BA5134E99BABFAB
+          3569B507550834648ADE38CF96B9E641297C397FF0E401C0AA4EADFD8FB1012C
+          DD29E24C91C83062B6D634C0C33D9B32C6E31FFC0D7D1DA2AD1C5AF43B56BFA0
+          548E1F6C1BA74FD4AF931AD7ECA8F172C922822D57A6758B18C48CA2DAF2759B
+          CC68C0CEC915107C48BC86EC790718AD07AE7F67BF8F3A26A970ABD171EB305A
+          42A897FA45F432A5C22AF7556712923F085280FC2028200AFB4B51EF2FE0B142
+          D33850064FD3DEB5B38E5D34E403E9FB159DFC2ADC8C123D57CACFB16FD9075C
+          D53C4DB9B2F147C38D6ADFA5DB4F96193F785BCD690C8E4AB28660C8587C3D86
+          790335EC0EA7FB22F85F657FA4D9E8FD01D1D63A5C41A0BA95ADDA4BE546FE75
+          DC1924653823CD593040C63B8F415D750232E2D3E3604166618007F7CFA63E75
+          053A764BC9649EE503C8EDCB360103E439C0FD6B2D7E235ABD4ED09D3E009853
+          B7B2A76EC34DBDECCC95E3DEB7FD9BFE1FF54DEDEC9A7F535FDA5CCEFE73DF5C
+          D8437B70EEE3F88CD23101D99B27B7C24E1718A85A27ECD7B16F26D35CEB7D4F
+          AA2FC108B77ABDBCA2186D70730C10ADC054272A72FE62FC23E0F7F76D8DB7DD
+          632BE5C512FA2C43FB9F5A93557F91B903487FD96AF95A47242F3F7873F62EE8
+          2E845B5BC4D234C8F5D83C9517F63A744AA4459F2CF9332C8824C9C99142B13C
+          E41AEF31D9F933466295A2B78E2F2C5AA2A88FB8C1ED904018001C60F6ED8914
+          561A955F54CBCCAD2D635821A132D676EEC59A08D988DB928338CE71FAF34E46
+          8B122A22854500051D80A5515529AC1CE0E0E0FBD463A65AC96AF6F2DBC52C2E
+          773C4C80A33162C4ED3C64B127EB52A8A10AB7A73A734DE92D12D347D1ED12C3
+          4CB44F2EDEDA2CEC893D1573D947603B018038029FB0D26C74B337DCACEDED3C
+          E7324BE444A9BDC92C59B03924B1249F527DEA5D14E4942C0CFAD68BD7BE0674
+          37897756575D45A0C7777566934514F6F3CB6AE6394E6689DA1743246E7968DF
+          2AC7390735BDD14DAE730CB4C148804415E599FF0067DF4AD97585AEBDD3BD6F
+          D65D362365335A5BEA2B32DC28904812479519E419007F10BF000EC00AD67C4A
+          FD98BE17F594B3EA5A768A9A5EAFE62EE58F519A382F9029DEEE02910CACCD9C
+          A2B20D83E0E4D7B328AD82FAE41043CAA3E5E909EEAF9FDE1B7ECFDBFF000B74
+          9EA2B53D1DD3DD44D7CEF2C37B35DC3797223064114022BAB611A604AADB83FC
+          6F02EEC2FC24F0ABEC6AFD03E35E9FD41D43D25AA6BAF7D16E9353BEB0B5BAFB
+          B5DC932E27668AE4085E331E55E28890AF9254E76FD01A2AF3C4AB9D53CF755F
+          CA53C4725E32FB417D90FAD7ED09AD750EB1A8EA9A26A715B68A34DE9BB4D660
+          BA85ACEF3005C5C05460AA1D932A5FCFFC40F0060F77FB3B782B6BE0F784163D
+          2D359DBC7717518B9D5618279E685EEA48905C6D3348ED82C1BB10A7390A3245
+          756A2B33EEEAD4A62913DD0AD6D0635FAF9AF1778E7FB2F3C3FF00132D3497E9
+          5BA8BA0354B5FE1DCCDA7D82B5BDD444FF00342194075190AF92C47E32E7E2AE
+          3DA37EC9CEA2B0D175AB5B9D63A5A7BE96264B0BF6378D22312AA0B0E11405DC
+          DF81C962305076FA654569A7C52EE9B7407E154FB3A2F3242F1074F7ECBBE93D
+          196DED26EA1D4AEED845682E2E025B4723BA33B4A50181B82C47126FCAB019CC
+          60987A9FECA0E80D4EF666D3FA86FAC74B712797E759937C9210C32642EB1B20
+          6E40F201DBC6FEC6BDD74547FC95DCC8A8521656E3F205E61F087EC0DE1D749F
+          8730683D6BD39A1F57EB0B35CBCBAB2590B79258E476654629B490A08007652A
+          0A81818A3F10FF00665F851D71AFEB7ACC4756D2EEF528C7970D9DC431DADA3A
+          E02F971084E06C1B704900723E2C30F5D51550BEB90F2F0F32559F2D474E9D2B
+          E7D5F7ECD9F0F3A7EC751B46B9EA492E2CD915355B0D2A69AE5E572A62641B9A
+          29506E2240107623E1EF5A16ABFB2BFAC53A5AF1345D5F45BDBF9E248A196EA7
+          9ED15A15462AC62100F2E42C90EE57DF9272581524FD42A2B5378ADD37F34F9A
+          A4D8D13C9795BC37FD9D1E0C68FD29D30DD49D0D6DA9F53D9DADB3DEDCCB7970
+          639AE5114396884A63652C0E57054E4F0456B7E26FECCFE95EA9D1F55B6E9CD5
+          ED741B8B819B677D16DD7C839271BADBC82CB8200DD9C60677F6AF66D15985FD
+          C876B0F33EFF007577CB512DD3A442F923D55FB277C5AFDEA7F74DF746CD6312
+          08E364BBBA8DA5C0C798CB223ED627920315CF600535D3BFB297C56FBDCB06AD
+          268B06F4611EA167AB1F2E36C0C6F8CC1B986739C107FCFEB9D15BFF00CDDDC4
+          48F6597FC750E8BE645E7EC7CD6EDD24367E2469D7EF202AC2F34A9221DB820A
+          C8E41CE79E6BAE695FB393A6605B3D0B54D0ACAFF49FDDA63FDE4B7B21FBA5E3
+          DBF972C896CA230C4944612B33393B3850A41F6DD159DFC56EEA0873BF4FB2B1
+          96341865A17857A53F66CE8DE1DF87FD5890D8697D73D5DE6B4BA23EBF03FDCE
+          140C24112C42601B76D58D99CA9FC4776D38ADCEEBF67E744F597494697DA3E8
+          FD33AA5DADB4F33E91A5185ADA5116D9C471F9EF1A876DBC1DE000C3E2DD95F5
+          BD1549E2172E325F9570B6A404695F3A3FFED1BA3436177BF5ED42EEFF00EF8E
+          6DC41A824100B6C7C390F6B23090E48DB96002E779CE2AE758FD91DA25CA5B45
+          A778A3AE416D00C2437F64972AA09E42E1D00CFD2BDFD455DFE56F06CFFB2A5D
+          616CEFC4C5E42D33F663F84F6FD491EA37F689A9588578DF4D6899124529804B
+          090B0704E72303088028FE21937AE96FB09F845D12D78BA0F4FC9A6477B379D3
+          4F6BA85D5BDDC617618E28AE21951D6305012A4B6E2724935E83A2B2BAF2E1FF
+          008AA1F75A5B469B766AF1FDDFECE1E8A1ADDD6AD0CF0DF6B934924C9A8EB965
+          26A0AC1936B9B88E49F64B26F6DCA42A001718CE5CE349FD987E167DCEDDFA80
+          DCEB5AB3B235EDC5A8FDDF6CF85604436F09C44092A4E59CFC3DF939F5F99115
+          B69601BD89E6A24FAB5BC026CB7C71E7E03C138F6CD582FEEA203CAACDB51392
+          D0B84F437D85FC2DF0CA6BABBE94B0BAD235792E4DC5B6AC5E3B9BAB1076FF00
+          0E17991F0985E036E3962724E30ABDFB1D68BD4777AB4FD53D4DAA7520D56D95
+          2E229EDEDA148EE909F26EA111C6BB1937C8021DC8770CA920EEECE9D43E6C65
+          D53CB1D806527352D750711EF750140CF6C67FAD566E6BCEA2E33D79FBA90A54
+          A34818FA2F2CDBFECDCF0DB59D725D4BAC6DED75C2DA7AD9245A5DBCDA527980
+          2E6E59629CA99490E480AA9F1FE1F8456BFAD7EC9AF07EF41934ED5FAA34BB80
+          772117504F1E720FC4AF0927B7F8877E735ECA83538258B7B38887A176183F9E
+          7152125493F0BAB7D0E6AD1C42EDA64542ABF94B7220302F23F823FB3E8780BD
+          5336ABD2DE296BB616F7907DD750B786C6D83DC44086003B87087701F1852D8C
+          8046735E82D0FC17E97D0343FDD96F16A326E0DE66A13EAD74F7F216CE4B5D19
+          3CDFE63FCD81E98C0ADE68AA2ADD56AC753DD9F6FB2B69D0A7486960C2E0FD55
+          F640E9FEA7BBD46E5FACBAE6217F73F789EC9FA92EA5B1946F2E627B766DB247
+          C95DAD9F878AD87FFDDC7A734CB086CBA76EB53E9DD3ECED9A2B3D1EC352BAB7
+          D35243DA496182589E65E0031B49B48C80016627ABD151F98AB11A94FB36745E
+          53EB8FB32F5FA59CBFF49C1E15B5C59DB27EE767E924B26B1B8566CB297175C1
+          560720A9DCA0F19625EE89E85FB535A5D4775D5BD79D372E9A96661FDCDD376B
+          144FBC21556134D6AC14FF0031F8482C0280AA491EA6A2AEF9B796E97007CC05
+          5F60D99048F55E7AEAEF08BC40EA1B184F46DC689D017F6C66920D6758B6FDEB
+          A979D71CDD4802B8810B6D4404893E0C81B0616B845C7ECDAEA3EB7EAFBBD47C
+          47EB43D50351BAFBE5D5FD8DEFDC424BB0296164B6AC8E48554CACD1FC3CF700
+          57BF29124A91005DD50138058E326A54EFAB52114E07A67DF7517DB53A9F8F3E
+          B8F6D972DF0CBECD5D09E12EB2FA874CE8916933C96CD6F31B402349B7152495
+          03208DBC60FF0031CE7008997DE03F4DDE6A51C82D2D974A8E28E25D19ADC7DD
+          5807566DEA08DE0841F0365777C4C1C8007416BE850E1988FF00DA693FBCED8F
+          F39FFE0DFE9598D6AA4EA2E32ACECE98110217987AE7EC0BD27D41075959684F
+          6BD3165D4F0A477325B5B334D16C6DF147182DE5242AE911D8B187383FC40383
+          E38EA4FD963E356870BCDA36A7D27ADB5E3B2DCDB42E60280924301246140E07
+          084609181C647D617D562DA7687FAE07FAD63F7C445722395B9C6001FEB5D0A3
+          C4EEA86019F3CACCFB3A15371ECBC0FE06FECC7483C2FD4ADFC455B183ACE5D4
+          9DEDE4B69E5B9B5168AA8151D51E26CB3091B28EADB594641DCB5DE7C3DFB1B7
+          4FE97D0FAA74AF5769BA1EA9653491BDB5CE956F341346446A85B7CB24B20601
+          7603E637C0CCBC29083BFF00EF42AE7742DE5FA15209FCC66A1DE6B8D24256DA
+          29166046725401EF9386F4F955752FEEAB13A9DCE7CBC92659DB52FC2DFE5702
+          EA3FB01F87DAAC5633695A86B7D3FAD5BCC92C9ADD9DDFFE327DA4F2EF8197DA
+          C5377B1E431C1AE55D65FB32EEBAA7AA5E63E202BE853DE24F2FDEF4D5975354
+          50E08176C4B3960C0B6E182C01E30057B2BFEA19CBA9685323D14B63FDEA647A
+          F93FF996C57E61BFD68A77F774F2D7FD8A4FB4B6A821CDC7AAF20E91FB287C2C
+          B68665D4F5FEA6D46673F04A9710C25071E9E51CF39EFEFF002CD51EB7FB237A
+          1EE67B97D2BADF5CB08DD898A3BAB786E3CB1EC4809BBD7DBD3F3F70AEBB69CE
+          F668F1EEB9FED9A8175D4CCB394821DF1FA48D9E7F2A98E277A0C8A8544D8DA4
+          4680BE7E6AFF00B2065B7D3EECE93E23C37978E15628EFB47F2500DC09CC8B24
+          841C01CAA8F51D89AD67A77F65C753E85AFC4BD55A7C3D53A249048B27FD31AF
+          25ACF1C9C6C6FF00C4DB608FC59518EEA73F090FF4CA1D6CA85F3D4127D2318C
+          7EA6A70D42DC903CD5DC7F941C91FA55C38C5E004174FA7ED0AB3C36D4904022
+          3C7F795F3EF43FD92BD1571ABBFEF0D73A9F4C84CD211124B6D71BA00D84FE37
+          94A15C8E7050E3E75D33A87F667F87979E193F48E957D7B6935C6A305F5C6AF7
+          315BC971FC38CC65630B12AC6A41C90814B103731C73EB937D6C0E0CF183F371
+          4DB6AB6AADB7CD0C7FED04FF005ACEEE2376E20EB385A9B6941B38DD7CF2E82F
+          D9EDE207813AA6A17FD3FAAA7500B88DE146D27515B19D7B84778E789A3906D2
+          E0AEF523CCC06C024F2ED57C13FB49F4BDDDF4DA874041AA5BDD158EE7CBD074
+          AD51DE346DC855763E40E7E1DDFCC7B6715F57D2FD24384566E324F18A745CA6
+          DDC77003BE54F15A5BC5EB024D4635D3D42C2FE174DC3B951CDF22BE61681E17
+          5C754EB93C9A9F835D53AAF56DC9792E25BDD3EFB4B83CF2176CD13C2F1436A4
+          1DC4A8DCADB8729B58BFAC343FB08F87DD3825D4B429BA83A77A8A60AE2F6DB5
+          FBB7F20EDDAD18C3A6E4C6E5CF0D86382BC63D10B7BBD59953E10700B1C67FA5
+          0F79B13202B9FF000AB5515B88D6A98612D1E67FD4295A70DA76C0EA76BF30D1
+          F6032A9FA33A32DFA4BA76CF4D69E6D4A68E28567BABB9E69CCB22281BC79D24
+          8CA323705DC704F72724DFC70C70C4B1468A9128DA1146001ED8A88FAAC71901
+          87D4FB7F4A42EB96EDFCB20FFDBFEF5CC3A9C64AEB8D2301691D6FF66EF0BBC4
+          6BC7BCEA3E83D0F52BE76DEF78D66B1CF21C63E29530CC31C104906B8E1FD9E7
+          D27D3D716971D07D6DD63D0CF6B782FE2B7B3D4BEF16A261F858C5202188C019
+          24E40C1CD7A8D6FA26EDBBB67F01A5DBDCC57485A27DEA0E0D6865D57A621AF3
+          1D397B1C2A5D428BCC9689FAAF305EFD926EDED66FDFFD3BE1B78A13121124D4
+          F401A2DD796C59A626E2113FF10B1DC0AA2F2CDDB231CC5FF660787BD5735D3E
+          AFD27A8748C9713BBAB74CF50FDE23B604204502E6363228F8D99B0841215508
+          C11EF2A2AD6DFD767E1747963E831F44BE5E9F31FDFBAF9B1AFF00EC7CD362D7
+          6D53A77ADF54834F2C37CBA958417017873F16C96238CAA0E1493BFD304D6D1A
+          77ECC7B9D3FA6345D3CF51DADE2DA5F4726A1681EEA1875383E20E5833B18E45
+          0EE13610A41E707E23EFFA2AFF00F2D79105FF0040B3BF87DBD4FC4D5F3C63FD
+          9CBA75BEA0348BAF0E16EF4D9AED47EFCB2EAA93EF16F6EC76B16F302AC8E800
+          6188141CE0E7BD3DAA7EC75E919947EEEF11359B56E771BAB18A7047A636B263
+          FAD7D08A4B123185DDCF3CF6A0F15BBFCAF8FAFDE5469F0FA0C9073FDF003EAB
+          C0BD21FB2EF4ED36596C3AB3F71F5168C911F26FF464B8D3756DE82311E73249
+          032C80481C1504120AB649C734F173F670CA975A58E87F0DFAB1A0827617F249
+          D49A5BFDE211950D187285646187E72A395DBCE47D47A29B38ADD35DA8BA7DE3
+          D810AC7595122217CD0FB317D903C43F0AFC70D2FA9F4833747B32DDDB9B0D7F
+          4B9EF638A268255432496F2F92F99114EDF397019082CDF08FA176B0F50D8E8B
+          6E56CB4AB8D532124863BB96DED63403198FF8721CF00EDDA3192327196D928A
+          CB7378FBA787D40ADA56EDA2D2D615A274EE85AEF4BC1A8EA5AA5D6ABD45773B
+          47E4E976F736ACB005DDC46C21B5041DDC890B7E118239AE57E26789DA84163A
+          947D4DD11D416CE97104B676DA674DDDEA334FB77321925B3B810FC2C7853377
+          FE51C1AF47D15532B06BB539BFA291A474E969F7CA28A28ACCB4228A28A108A2
+          8A284228A28A108A28A284228A28A108A28A284228A28A108A28A284228A28A1
+          08A28A284228A28A108A28A284228AC64640CF27D29837B112C11D1CA9208DC0
+          608EF42148A2ABE4D50C72156871C800EEE0FF004A5ADFCA403F7573EFB5B34E
+          0A5214DAC1CE38C77F5A4A4A1F8E558770C30690F751472F96CE15B6EEE7B63E
+          BDBD29269EA2998AEE19DCAC722C847F8791FAFE629EA108A28A6E69D2046676
+          00019A109CA66DEEA2BA04C4FBC0EFC115982E63B852D19240F7045446BB9E69
+          0ADB496D2286C121F240CFF7A7094A45F6AD25AC8AA20386F563F3C7F9D25B55
+          B496DC4CF0F99F1189BE15383CF1C9EC79A8D74B733C423956498B7A88C2E3E9
+          EA69165A6F92EC197CA85810C243DC608C63B9F4A9C0855C9950F4FB01661C41
+          88A232170131EB9E0FE47DEADE1D4E68CBB4EA1978DA23C0C73EB9A8105A4919
+          651F191C090F1BBE7F2A6AEE4D8086C349DBDF14F7511DD0B6956DC323FAD66A
+          9FA7AE9658E542C7CD52061B8C8E7181FAD5C556442B819128A28A29268A28A2
+          84228A28A108A28A284228A28A108A28A284228A28A108A2B05802012013E99A
+          8D2DF44AA76CAA4FB852E3FA509295455547A84F2A06FF00CB7CF28C38C678FE
+          9F3ACB3C92B3E657009040538C7CA9C25A95A5155726A4E84E08DBF31927E828
+          1A85CE410A85077CF7A211A82B4A2A9BEF372C18B4D9F928DA3FCCFF005A43CA
+          F8E656F982E714E12D4AF28AD759C063F1727D49ED4DF9CE3277A938E194907F
+          5A34A5AD6CA4818C90334DC9711C7B7737E23B41032335AABDB493BB48F3125B
+          1920E4FD39CD2FEE677105723B6071C7FCC53D296B3D16D6580C64819F7A2B55
+          991B2AC3CC529C8C7BD479E491A2292CD72EA4E7E224FE746946B5B9D15A32EA
+          376AAB206769070BBDF0C3E5F3A79755D51D98481D801F081205CFE631FD7F5A
+          7A0A3B40B72660A324803DCD40D43545B644F29E291D9B6852D9E7D3B7A7CEA9
+          3207C4E32EDC12CD923FAD62399B195071F3148351AD5C596B05B7C775134522
+          004B2A12AD9CF6C64F1F3A75B5CB1404BDC2A00BBBE30578FCFD7E5DEB56D42F
+          2F229A11064866F8CE7B0FD2ADA17668C1700B639E29E91BA41E765263D5E7BA
+          DC446D02862065796009C1E7DC73DAB05CCAA5249646CF7F888CFE94D79BF21C
+          502500F6A4894E25AAB3799B57E1E028CFC43E7EFDA99B9D353CF32AA024E320
+          9C8A704E076AC89CFBF14F28C26E38D9D76C8C7683E9C66A536D64C47B8718CF
+          AD362E140395CD21AED40E0003E549180848561461922A290A0B008CDB8E4FC3
+          DCD3CFAA9553B40E3D45476D609E0F1F5A9094A427552DF059E2C3FBE69B6F26
+          30CFE7322FFEB231516E354887E3651F226A8756D6ADD23382B2647038C54834
+          9502F016D5A634D7F72AB14AFE4C4C1D8B3B37A9E39FA56C924891217760883B
+          B31C015CEBA4B548B4B59673049713C80A831A808067FC5BB9EDED568D777BAD
+          CE5EE3105A80316A18904FBB1E33512DCA931E34F8ADA1B54B650D973F08C9F8
+          1BFD2A05E6B524B6E45AAB42EC40124AA381EA40A866E16303241F400538A19C
+          10EA0AF7A50029EA252D6F1E4452F2331FE6E4807F2CD61A34620E067D3DC52A
+          38B0A411819E0014F08D40271424A3367006738E39E691C81ED525B1CD32C073
+          404A1359C52D187BE29A6CFA52338069A4A689415D809FCBD69B31804AAA80BE
+          C0545590AD3D1DC678A1394B4850124A64FA1A70C4645393FA7A565254C1C918
+          AC34AA46011F5CD24D56DC46D1B91819F7069B8C1E4E79F954B655663D8D2E38
+          9482062A52A10A3A939C924D48B67018E69D4B42DDEA44764A3D294A9009B318
+          6CFBFBD656C0139C0CFBD4A5855696085ED5195284D245E58ED9AC8925507E1E
+          3D013C52DAE36D3134C1D4E4F14269136A0550A9C64FB0E2AB6572AD804303ED
+          C53CF2260F248F9D3391DF18A9010AB2650885F8E4D4DB7B307B9C5458E4C31C
+          F6EF5212F767E15DC4D0810A5AE98920E7391EB9A5C16305883962E3F954F61F
+          4A8E6F5C2F2C47C8534D7AF2B7C40E05472A7214A8A69957647361476DCA0E2A
+          5999CFFE5CA0B7FDC011FE5551E712A78A6C5DB2671C53846A8522F351D4239D
+          143C48A3962A99DDFA9A990EAB34983F775751DD964C1FD08FF3AAE5B92DDC66
+          9C4393C0C51090254EB7D762994978A5880EE58640FD2AC1644750CAC181EC41
+          EF54CA8A6065CE0E73DB3553A8D9CB24E248AE026D3B8479382D8F6F4A500A7A
+          880B71A2B4C8A198B1904D2AC98E4190FA67B0AC7EF59AD72D0DC48C57F94B96
+          04FCC1CFB834F423B41CD6E94551685ABDEEAB292D1C62DD320B6D2093F23C8E
+          3FCEAF6A0442B01912114514524D1451450845145142114514508451452262EB
+          1B18C067F4068425D155B26A1709196103920E08311C1FEB4D5BEB13BB624810
+          719DC1B1FD29C151D415BD15487577999D7262C0C7046DFD7BD35B91C2EF9119
+          81DC5D5886F5E0D3D2A3AFA2BEF317FC43F5A65AFEDD1F699543633835571491
+          2E19A653272738358BAB8B794E72AEE0E4376A211A959C9A8C510C90C7E83BD4
+          5B8D7040CDBA0291AE33248C147F9D571B9620E5863DBD2925A390E5D031F434
+          C04B5156926B2AA84ECDA0007713C60FFCFEB584D67CB07CF404FA797EBFAD40
+          49E2400100639ED487BE4E4727D3DA9C235153E7D43EF236341BA16C646E39F7
+          EE29A17496858C7E62123F016C8FAF6AAD9AF6428550000FB9A690398FDCFBD3
+          851D4AD1F5673317CC8AA463CB3EFEF48FDFB246F9C9247A31CAFF00419FEB55
+          FF001F248A40919C3A1DC848E081C11F9D38096A2AE975A747DF232953F85370
+          51FDB3FD6936FAC4B136667F39493F8540C0F4AAA466014361B0300E304D39E6
+          B10400173EA0D2846A2ADA1D6649276DC11610DDB6316C7E5C54C5D5ED5BFF00
+          C847D54D6BD0CCD020552001E98159374CC4966C9FA52D2987157CDA9DA16539
+          DE476217B5439EE2D6592565796095D71BF6E403E871552D76338DEC69992527
+          B2E48F734C351AD4A9EF5E3957CB737001E5FE24FE9C0A931DF43E51DE8493CF
+          249FEB506177C64C20FB0CFF00953AD1ACDF8E1C37BD385104A79274DFB92084
+          8ED96C923F534DBBCE1B2F0C53A1EE00C1EFEDDA9A3128F4ED5832B47D9377E7
+          8A02255A2AC4EA328A3D805C014865F2B718C056273BB273FAD55FEF165CFF00
+          01B03D6929AA6E24306423B678CD284F50562B75791027EF183E99CB7F7CD460
+          D392EEF26F76EF941CFD2A3A5D498767572B9C07C7158B49D24C9794313D9413
+          4E12994FA5CDC5BE634765520E4F7273F23C536B74D13104B050410CB9CE79ED
+          FED5636CAF3236CB24994771B978FEB914EC56BE64807EEC78B1EBE77144A705
+          40595643BB7991BD49E71DFBD2E2001C86DA07B2F7F9D5D0D1EDCE188704F246
+          FCD2DE3B1B63FC4F210FFF00F4233FD6A3A94C34F3550669109604A9FA706A3C
+          7A6DC6A46422364538CB48319FA66B698D5028281429E7E1ED4AA5AA364F44EE
+          A0695A58D361D85848DE8DB7040C63153E8A2A332A60460228A28A49A28AABBF
+          EA5D3F4E768E59F322F7440588FAFA0A66D7AB6CAEFF00024C07BB263FCEA5A4
+          A8EA6CC4ABAA29A82E23B94DD19C8FA629DA8A9228A2A8350EB1B5B591E1B646
+          BC9D4E085E173EA3753009D944903757F456A73753EA0F11291410938C139623
+          DFD45419755BA9B99AFAE33DC0886C1FD31530C2A1DA05BC9200C93814CBDFDB
+          46486B88948F7702B43778666F8CC9237A19793FD69403E3E0047E54F428F6BE
+          0B79FDE16A4645C46C3FED607FB5313EAD1A9DB1FC67D58F6FF7AD4C4F2A0191
+          9FAD663BD2C480A33F334684768ADA6679CB7F108566DC4283CFEA696AFB10E4
+          E07B0AAD4BC918F741F9F34A49F783B9863E669C28CA9C27007E2FD295F7856E
+          DBB3F5A8C041EB22E7EB4A89A3547D8CB2FC81C9A509CA73CE719C2F7F5C734D
+          F9CCC796231EB8ACAB390DB482BC639C9A5AE5DBE3000C77C508409011CB1CD6
+          00573F8BF5A59B74C655FBFA531CAFAD084F6C403DE801179C5241181EBF9528
+          32E3DCD09A1261960DB42FB60D3D1B8507DBE75143A7F8B1F5A756453ED42014
+          EB1079C0A4EC523F002292369E71FD6B2A76F009C7CE92691F77898FE0A518C7
+          B034B2383838F9D202B03C9CD088482A39A6F18E0761524D364534930597D69D
+          8AE233C6E14874427920FE54D058C13C051EE29A4A70C119F4A4B3A81DC541CA
+          2E7E327EB4A5745195393F3A50895237F1C0CD61666E72314C1BD2A71B456567
+          127F2EE3EE2884A50F78CB9C77F6A88DAA718653FAD4F4863973F84D1FBB223D
+          F8C7AD390882AB45F2302BB319A44C15C1071F4201AB3FDDF1E723040F7A059C
+          2B93C669C84A0AA37D322604AA609FF08C547FFA76DA520C8B9233DF9C8AD8CC
+          6A3B15A6CC2BCFF91A61C54740506CB4F8B4F844712E07F9D4B57CE400302906
+          DD4670E4560C5F063751BA6309C0E464765F9548B59580193DAA2642819F4F5A
+          C894E0E31F98A509830AD965E304E0561AE022E339F99AAA133F3F11AC79A090
+          CC4923DE94296A563E7820D20CA306A089FB9039AC79CDED44252A5B3F14D3C9
+          F3A8C599CE72540F418E6B1B18F1BA98094A74C9F3AC0971581181DCE6948A17
+          D334D25956773DF8A910C05872C29A5C7F87FA51BD8670292614F8ED87724122
+          A4C5105F55FD6AB6125C64B629F5DC7B4873F2351853055A2763C7E86958500E
+          6AAD038072F9FA9A4B4EEB91BAA30A5A95A33C6A3B826A3C93673B466AB9A76C
+          9F88D34656CE324D3012D4A64B338CFC39FCE9879A4718D800FAD34A64C1CA9C
+          7E9479B8FC46A50A3292D1BB0C1C0FA502160BF0AE71F3A3CF1F966B2B73F514
+          D2C29114602FC5C1C76A5A2AA138CD45F3BB9CD27CECFAD2844A9A4A926B036F
+          BD43F3B15912E68844A9795C7BD6018C7A530AD9F9D61DF8F9D24D49F3E351ED
+          40BA4E707B542C16C9DD8142C197C96538A70892A57EF0883619941CE319150A
+          E95EF6EA116AC7F88FB5B70E3BFCE9E74072171B87A8C553C771A8433891610E
+          A8DB94C6CAC473DB839A602813C8AD960E9A99A456B9995829C7C0482C318FCA
+          ADEDB4CB5B4C7950AA9031B8F27F53559A5755C37D1319A29607460A7E062092
+          71C719C76CE781EF53ADAFCDE3C8B1AA48ABCE492BEBC7A556757357B74F2532
+          38522DDB176E7B81DA974942C546F015BD429C8A5541588A28A284228A489118
+          E03A93EC0D2A84228A28A108A4BA0752A4900FB1A55142157BE8D1B39759658D
+          FDD5B14EDAD9CD6EC375DBCABFE1651FDE9D9EEE2B6C7985867B6109FEC2AB67
+          EA48A372B1C2F263D49DA0FF009D4B254096853E5BFB68CB2BC832382304D443
+          77A4B3125ADC37A92003509FAA64C7C36AA0FB9933FE5553A8DF4BA8BEE31AA1
+          F752DFE7C54837AAACBFA2B3D45F4B82DDA486457909184494FF00BD517DEFE6
+          A7EB9FF5A4794E7BE7FA7FAD63EEED8EEA3EA0558042A8994B3784F6C7F5A3EF
+          C7EBFF003E94C343C771F97FF5594801FE703F3A7851929F5BDEFCE3E94B1787
+          0006207D2A38B727B1CFE5FEF5916EC0F2303EA28C232A52DD7BE07CE962E632
+          3E2001F7A89E563D3F539A505C7A7B63914A1395311D3D003F314A5BAEEA1405
+          F7A8C91B633938FAD388A48207F4A14827810D91938F913430079AC2C4707826
+          94222076C7A739A49AC2B2FBE7F3A704B81C669ADA013F1283492CADC7983E94
+          213DE6E739504563E12394000F6E29A0A0E70E4FE558DAADFCDF9D084A29193D
+          AB2762D36028C9DFB88F4ED40DB919008F5C9A124EA4FB7B50D744F05C7D280B
+          09F5ED582919F9FE5426B0B72CC481DC1F42295DCFC6C4FB7340DA071FAD676E
+          E1DB3F9508496546E54B03FF0069A6DE1DC3966FAFAD3846063B63E74DBFAF3F
+          D68493415A204A4A723B64907F5068B8B8BB9C86370FB80C7C3800FD78E69B79
+          147AB5306E5467963F954946559D9EAB756F8DEEF807B79B9CFEA3157D1F53E9
+          ECAA5A631B1EEA518E3F30315A77DEE3C63E2C520CD1B7F2BFE9512D05485421
+          6DBA95EE97A8C69E6EA12448A73B6262B9FA8C734E69F71A2DB8FF00C3BC2A7D
+          5D8609FCCD69E9E537FF008DDBEAA6A4451762B1B03FFA68D384C3F330B7C8EE
+          619BFF002E547FFD2C0D3B5A2C734B68C6550370C72E80E3F51C54CB5EAE9A07
+          1F79533464FE2000C0F97606A1A0F2560A839ADBA8AA3FFABECB19DB28E33CED
+          1FFF00B541BEEB39225261B6455C70D2BF39F9AFA7EB510D2548BDA39AD92EA5
+          92181DE385A771DA352013F99AAA9351D6255C45A62C2C7F9A49437F6C55147D
+          49A8DD327F18C6AD9E523500E0E31CF34FADDDF483E3BD90FCD1B1530D850D73
+          B28727466A72BBCAC50B3B16605B1C9A9567D1D7B1B02F2A81EC5F229F8EE265
+          1F1DD4A4E3B798DCFF005A69351BDB476944CD3123010B9603F5E3352971500D
+          6057DA669074F90B6F03230428EF4FDC6B1636A584B751215EE370C8FCAB4FBF
+          BFD6350429E788A3F65500FE754FFBA2441BA65691B3EF483277299A918685D0
+          63EA4D3650765D06C7070ADFE9506EF5FD19642AF08933FCC221FDCE2B5148DA
+          104885C007B0F5A92B72846040CA7E439A7A004BB4242B87D4B4897FF2ECA6E7
+          3860D807F426AA2F4ACD2E618CA0C73E648587F400FF007A15B7E731498F62BC
+          7F7A712D548EE147B1FF00EEA40428124A444E421622052A78054E69F59DC8EE
+          8FCF217FDE92F0C708DCC42FAF041A722B9015802194F7C81C508098926072AD
+          190DC60E723FA547332A13B8601F439E7E953C98F3BB6F3FF69C5641DE082A58
+          7CF1FE944A21350DBCAE3202FB8E47FCF5A909A7E000CBB4E3DFFDE902501C2E
+          36FD00A712E8A390AC703B71CD24C4270694D200C249063DB1C7F5AC436D35A3
+          EEDA24F4CC8A188FF3A22BD7258313BB3CFB53EB7C403C1CD2CA9084FC970C14
+          030B86F5C46714C3DE804AB2B023D7B530756DA4FF0028C76CFD69B93506639C
+          E39CFBE29008D4A67DE4606D6233F3A534E0AE03122AAE4BA693966DD818E456
+          05D11C5384B52B1FBC6D3DF8F9561AF4E303355C2E09AC79C68846A534DC139E
+          6B02E08A87E69AC8929A52A60BADB4AFBE9A821CE3B1A324D2844A9E2F8FBD1F
+          7D350393F2AC846F538FCE884E4A9DF7CF9D1F7ACFAD4309F3CD642FCE884495
+          24CF9A4190914D81FF0033463E742167358A073460834216460D6448CA300E07
+          B5279C51E94212B7B7BD0256F7348078A334D097E61FF11358DE4FAD200C93EB
+          9F4AC05249E4631C71425297BA806B016B3B0D09A3BFAD6703FC558084567CBA
+          109395F7268183EF4B083DAB2140F4A109158C1ED9A78607A51B80F4A109A553
+          ED9A588DBDA9C0E07AD27CDA1340878ED4B58B19A479A47AD02538A484E88C7B
+          5642FD299F3FBD63EF1F3A112149DA28000CFAD4537071DEB06466F5A2112A70
+          907CA8F3B838355DBDB3F8BB504E5B1F101903E2A2112A779DF3CD63CD1EF507
+          CC00927191C707BD290F192A48FF00D5442254A12A1CE6B2B3AA0240CD308AAE
+          490A71ECDE94E23440723EB44202C49724FE1F5A6964776C118F99A922585871
+          819E06691C37623E740426FCA63FCA4FD29203293C53FF0010046377BF3DE97E
+          6E5402838F634213001DBDB1405F953DBC7F84D6013CFC344A12027AF614A402
+          B3938ED492993D8FD692128CCA9938FD69A6BC8B1C8A5EC07D0D27C9439C823E
+          869A329AFBE43CE58807FC3DEA1DC89D8930B0727D1A33C7B7391FDAA6183073
+          181F9B537BAF139FE138C600E07F514C28A8B6EF75233095922287180496FEF5
+          B968A96B7364922C11875F85B2A3703F3EE7E75A74B1CF712169592241F85557
+          731FA93C521566864FE1CF13C8A39030AC0FCCAF23F2A089435DA792E8E062B3
+          5A5A6B9A8C0B185B98481FFEB72C4FF4C9FD69E83AD6E11D927B45979E1E22C8
+          31F439AAB4157F68D5B7515411F5A583950C9346CDD8305C9FEB52D7A9B4D2C1
+          4DC6D6ED86461FE54B49520F69E6AD28A8316B96137E0BB888FAE29F4BEB690E
+          12E227FF00D2E0D282A52168F73A6BDDC41621E46477001FEF4DC3D352431143
+          75BB3C92E73FA7B56C48AA5172476159DAA3D055BA8ACDA06EAAADF458221F1C
+          8E4E3901B03FA73FD697FBB5236CC7753C63D8B16FEF566028F6A085F95292A5
+          A42ADD97317C31EA171C9E03B1207E98FEF484D535881800C2551DCB03FEF56A
+          003FFDD6768A251A7A15163D7750639C468A07FF00914E49F960540FDF1A95C5
+          C4A0E9F673A8390E632370FCFD6AE760FF0086B063078EFF005A011D10413CD5
+          5ADD5E36F66D2EC9140F84146249FCBD2A3BEA570AC77D8D971FCA207E7E8D9F
+          F2ABA3083DF07EB584B58D72400A4FA8E298212D27AAA396F5A58886D3D61247
+          C2D1C727FAFF00954499261C471CC4E79262381F9D6D06D90B06C6587A93CD64
+          C20FF311F9E7FBD30E0968F15476DA6CCF8679701BF0A98CE7F3A9074F54386C
+          3E7D4761FA03FDEACC409CF039A3EECBEF8FD296A4C34054E6CF8C0110E79058
+          8E29434F4CE77A7D3279AB5FBB478F4FA9A41B55CFE253F5FF00EE8946955CD6
+          E636F856375FFD641FED49319191B00C0F7CE6AD44083FC2696228BFC23F5A25
+          1A553A40F83B99471C0084F3FAD11460860F300D9ECB1E71F9E6AE3C98FD87EA
+          2B3B140C617FA5128D2AA8242DF86539F9A8A4790C338963FCC62AD844BEC9F9
+          01586815BD40FA1C5128D2A9CDBBE31E6A529632BCE5588EE47FF55682D17070
+          C3FF0091AC7DDA400ED9507D573FE744A34AACC6EF4FD0FF00B502CDA453B51B
+          3F5AB48E1993BCC847FE9A73637FFAC5FD2894695571E95283C4483FF5364D4A
+          4D3E40BFC83D38152C060B8F3327DE9B292EE27CC073F4A529E90135FBB4ED39
+          641F55CD02C99430564FC9719FE94FED97FC6B8FF9F2A0093DE33F563FE94270
+          13221C602B12481938031F2F9D23C92AEC04ACC3E60D4BC363B479F931FF004A
+          4147E7010FD5FF00DA844284C928CFC41813EB914D3C12B70DB40F955832C9E8
+          8A7E927FB5240933CC43F2907FA53951855674C0DC91BBFF007629C3A6448384
+          C9FAE2AC82161F147FFF00505644319FE5C7D585128D2155FDD6240798C11DC6
+          ECD602C64E3009ED56DF768F1DD3F36AC0B65FFB3FF97FB5128D2A925936292B
+          1B1FA29C8FD714DEC9B0A7E227D770C81F2C0ABFFBAAF3CA7FF23FE942DA21EE
+          53FF0091FF004A7A92D0551888E486438F6CFCFE7581A740EBB64B78DB93C9EF
+          FA8ABEFBA201C14C7D6B1F77C7A21FFDD46A46854D1DB470AED48D42F6C1C9A0
+          44A10A040149C901719AB916CB8E5547D1AB3F764E7E11FF00CA94A34AA95D9C
+          82A3E7C53C863C7700FB5587DD633DC0FF00E547DD631D82FEB44A7A5425F2F9
+          E7F3C5286D5DDC71E9F3A97F764F65FF00E5595847FDA3FF0075294E14655420
+          91DFB0A579310049E3039E6A42C217F997F5AC8880CF2A3F3A2538519628DCF6
+          3B48EF59312A93B467EAB527CB1FE21FAD61628D49E467EB44A2146556008500
+          8FA536C3270514E7DC54EF2D4F01C01F2A3C843DD94FD689442AD36EA413E5A1
+          1EE09A49B48F767C951C6319E2AD7CA5F5604560429CFC6BFAE2894B4A81E4AE
+          7FF28F6C6039A3CB550C3CAFD3B7F6AB0F2931CB27EA681147CE4A7EB44A34AA
+          C1021519571B5400462B260419F8587AF6CD5979318070CBF99A49503B2A9FA9
+          C5128D2AACD987FE67ED83C62B074D539FE21231EBC55B46A98F88283F224D2C
+          7963B15FD4D128D2A8BF76921B69F9803D6B3FBB48048196C7627B9F9E2AF479
+          78EE2B1941FCC3F5A3514680A8859480E02826B3F73906729C55DFC20E432FCE
+          9395FF0010A728D215379047057158F28FF86AEB6A7F887EB479519EEEB44A5A
+          552F947FC347947FC35706DE3EE196926DD3FC4B44A34AA909F2ACE07B55A7DD
+          A33DC8AC7DDA3FF10FD68946955654F6F4AC08CF3DAAD7EEB1FAB8FD6B06CE33
+          FCE3F5144A34AAC08DCE39A021F626ACC5A47FE3FEA2B3F754FF0018FD689442
+          ACD87DA93B1BF2AB416C833965FD6B3E44783F18FD68946955611876E2B23767
+          BE6AD04517AB01FD6B1E4A7A32FE744A34AAC19C9ED58287DC559F92B83F80FD
+          450B02E39C7D3BD128D2AAC44C451E4FCCFCBB8AB5FBBC5E98147DDE2C7E2E68
+          9469555E4E09C3352BCBFF00B8D597DDE33DDB8AC0B78877F8BE79A728D2ABC2
+          914A00FB7F4AB0F22100E001FF00BAB0218FE5FAD128850029F41FD2B2118FA6
+          2A7F909E840FCFFDE8108E791FAD2944281E51A3CA353FCA5FFB7F5ACF94BFF6
+          8FCE894E157F946B221F7A9FE52FB8FD68F247B8FD68944281E4FCEB1F773561
+          E4AFB8A3CA1EE3F5A2510ABBEEE68FBB9AB1F297DC7EB4794BEE3F5A2510ABBE
+          EE7DE8FBB91EBFD6AC7CA5F71FAD1E4AFB8FD68946955BF7763EA7F5A3EECD56
+          5E4AFB8AC794BEE2894B4AAEFBA9CE7B1F5C5605AE3E5EB567E4AFB8A3C95F71
+          44A34AAAFB8AF2768ACFDDBD3823EB567E4AFB8A3C85F7144A34AAD10151C528
+          4473CFEB53FEEE9EE28FBB27B8A251A540094A002FAD4CFBA27BFF005A4FDC93
+          FC5FD69CA20A8E08C704567B7A8A7BEE298FC547DC17FF00D65294414D28C8FF
+          007A581F3A58B203FF00C87F5AC8B5C7FF009284E13616B2169CFBB9FF00F595
+          91011FFE4A484D628DB4F793FF007D644407F36684E130178ACE00E3B53DE58F
+          F156446BFE2A12851B601D8007E94DC96BE67A2024F7DBCFEB537CB5F7159D8B
+          EE289442A43A229662D3C9CFF286C0A8A7A6A12FB9E59A4FFB59F8FED5B2796B
+          EF408D47AD4B510A3A0154106891DBF0920551FCAC9918FA76A94964A88D8DAC
+          C7B9C95CF3F2AB5F293DC0A04483D41A5A8A61802A7166635F862523D429607F
+          5AC496B1B0C35BB118EFBD8E3FAE2AEC228F514990011BF23B1FF3A251A57FFF
+          D9}
+        Material.Texture.ImageGamma = 1.500000000000000000
+        Material.Texture.TextureMode = tmModulate
+        Material.Texture.FilteringQuality = tfAnisotropic
+        Material.Texture.Disabled = False
+        Texture2Name = 'earthNight'
+        Shader = EarthCombiner
+      end
+      item
+        Name = 'earthNight'
+        Tag = 0
+        Material.FrontProperties.Diffuse.Color = {0000803F0000803F0000803F0000803F}
+        Material.BlendingMode = bmAdditive
+        Material.Texture.Image.Picture.Data = {
+          0A544A504547496D61676588DA0000FFD8FFE000104A46494600010101004800
+          480000FFDB0043000302020302020303030304030304050805050404050A0707
+          06080C0A0C0C0B0A0B0B0D0E12100D0E110E0B0B1016101113141515150C0F17
+          1816141812141514FFDB00430103040405040509050509140D0B0D1414141414
+          1414141414141414141414141414141414141414141414141414141414141414
+          14141414141414141414141414FFC00011080200040003012200021101031101
+          FFC4001D000100020301010101000000000000000000010203040506070809FF
+          C4003F1000010401030205020307030206030101010002031104051221314106
+          13225161147132819107152342A1B1F052C1D162E11624337292F10843538225
+          FFC4001A010101010101010100000000000000000000010203040506FFC40027
+          1101010101000202030002030100030000000111021221033113415104611422
+          32714281A1FFDA000C03010002110311003F00FE7D2222FD2B90888808888088
+          8808888088880888808888088880888808888088880888808888088880888808
+          8880888808888088880888808888088880888808888088880888808888088880
+          8888088880888808888088880888808888088880888808888088880888808888
+          0888808888088880888808888088880888808888088880888808888088880888
+          8088880888808888088880888808888088880888808888088880888808888088
+          8808888088880888808888088880888808888088880888808805A115D501147D
+          90DF6A41289198D97E6027EFCA7970B9C4B1D2345F200247FDBF2444ED3561A4
+          8F80818E2386BBF4A589CE9E12492D2CBE08F6568F21E2EDD77CF2A68BEC7022
+          D8E03DEAE96418E48BBFD42D78B31E7712E05BF056D02656D92F68EBC70B5328
+          818C6B9773F64FA6FF00ABFA209A361ADCE757C29FA96FB15AF49ED8C44DE7F8
+          AD3FE7DD4F907B38394BB24D1A68BED6562764DD82E65D2CFA5F6C9E43803CB7
+          F554735CD24102874208E523225040B75FB1A0B38C7691EA6D51E36B8A49BF43
+          581B00905B7D8AB88DC7A02B683434501C29A5AF14D68B9DB25119FC646EAF85
+          01C09228D8F7042DF44F135A2439BD58EAF702FF00B2AB666B9E582F7FB11457
+          4114F1FF0066B57C9796FA6BF352D81C6AC52D945AF13584638EE6D1D146C04B
+          8868F72696644C35AC1919E8FDDF6E540C7A24F98E23E5AB690804511613C4D7
+          3A77371EAF21ADBE825690A6426289CF25A434593647FB2DE0C6B7A340FB058E
+          5C664A0F980C80FF00293C7E8B1E37F46B4F1F25992CDCC734D75A20D2C81C1C
+          3859E991329AC0C03B74A5884F4D6ED1D7B71414FAFB546D3EC5458BAB1684C8
+          FF00C72BBAFF0027A42A0C78C3B76C0E77FA9DC9FD4A9ED591116BCF9D063122
+          47ED23E0A5B27BA36116BB350C679A6CEC27EEB3EE68EE3F54965FA128A8E958
+          C16E7B5A3DC9A543970004F9CCA1FF00504D83322E61D7F1EE83643F90FF0095
+          ACDD4727266A6BFCA693C700803E7BAE77E5E7F5ECC771169B71B39CDB192D70
+          1D4B580AA3B1735D206FD586D8FF00470B5E57F837D16A0D3B2AFF00899321FF
+          00A9800FE94A258046C01F992B4DD02784F2BFB8371168B7121787BBF79487E1
+          8FE83ECB99950B77B98CCA95C2FA38103FA958EBE4BCCDCFFF00A3D0A2F253B6
+          46BB6973886F7B2B1BA47115E6BC8F62571FF919FA5C7AD33C43AC8CFF00E416
+          33A863035E7C7FFC82F24689E5037AD2CFFC9BFA863D7B332190D36469FCD43B
+          3206B834C8D04FBAF25B452B0200E89FF26FF0C7AD19309E92B0FD9C16404116
+          1797872608FF0016383FF5071B59E3CEC56077F00B8FFD46D749F3CFD98F425C
+          1BD481F751BDBFEA1FAAF36FCC81CE27CB7D9EE1DB6965873B119D60A23B9E55
+          FCF0C77C39A7A107F3565CA8B55C470B2E311F9692B661D4B1A4690D9039DC77
+          DA49FCE9759F2737F68DBB1EEA5518E6EDE0EFAFF3B2D59B528F1410E63CD7B1
+          07FDD6AF527BA3751724F88A1AE227FE741617F88CD7A2003FF73AD73BF3713F
+          663B88B9D89AC3729DB43431DD839DD7FA2DD63DCE7105B55DC1B5D39EA75EE0
+          C88A294AD022C723DCC22985C3B90470B045A9C12F0646B0FB39CB37A93D51B6
+          8B5CE543CD4ECF6E1C0D2CD066412BB6369C6BA977556597F62C8A1C1A2401A4
+          32FF0094BAD5DEC2CAB23F255154504D1A20DFD9115288880888808888088880
+          8888088880888808888088880888808888088880888808888088880888808888
+          0888808888088880888808888088AB23F6349E38F72805C1BD4AAB660E35B5DF
+          7A587EB2FF0093F52AC321920A7378F9E8B1E53FA32EFABB143DCA96C8D3F658
+          F7B1E7B8FECAC4177E178E159465DF438E3F3550E0EBA58D90B9A6CBCFD82931
+          B7DC85768C83E0A822D434340E0DDFCA9ECA89647D768FD1418ECF3C11DCDA86
+          CC05F7AF70A0CEC6FE270F51E2FBA9E858465A397077D91ED7B5A3690DBF7EEB
+          29F533F086FCF455F3248C00D6B48EF655C88C4EBAF635D51B06D61A737E6C15
+          612BF7FF00E8B5CD27A83D16BE5EA0711FC63364F6064E4FD82CDB27BA2ED84E
+          EDCE76E3DBB05BA3206DB25B63B6E5CFC6D4679492FC211B3FEA347FB72A99B2
+          CB387361C46CA2ABA8FECA4EE49B0C5F2F5CC786DA64DFF0CE7FAAE6CFE23712
+          7CA8857BBCAE7CF813C366485CC1F634B5B6D2F0F5F37C97FD3524753175A937
+          86CBB4B09EAE6DD2ECE365C3390237C0E3DEDBCAF2748A71F375CFDFB31EE209
+          8825B2490FC061AE3F55639B8E0D19E307FF00785E1294AED3FCABF589E2F7CC
+          91927E17B5DF636ACBC031C5A6C1A23B85D8C0D7A685A18F01ED1DDDD575E3FC
+          997D75313C5E9D163C7C8664C61EC363BFC2C8BD92EFB8C8888A822220222202
+          22202AEEEBE92AAEC88D976F163B2C3FBC61DC5BBB959BD49FB56ACF33CCDC12
+          05D72D5AD939C60DAC8EDCF71AE05D72B24B9D18716EEA37CB6C13FA2D2D4F2B
+          CB66C1D7D9FEDDA978FBEB25BAD45F2359F2210D077CDDFA505CF66B392D2E3B
+          873D88B5AB23C3CD86D7BAA00BC7D7CBD5BF6D637C6B9941D64B4FC10B0E4E7C
+          B94D01DB5BFF00B4755AFB9A0FE1FCD4172CDEFAB32D135C21AF7552E40B9895
+          1EE94A071DD04DD2BC5396720F4361632073C2AF092E0EC63EB45A3683E59E97
+          648FF95BF8FA863920C8E7B01FE6EA0AF300D2B836BBF3F3753ECC7A7C8D5E31
+          1B846F1F01C7A85CE8758003DB234BDA7DFBAE522B7E6EADD31D0CDCC8A40E11
+          B0309EAE06F72E7D937C9A4560C242E57ABD5D03238B436C50F85500927BAB6D
+          A51454101855B601DCAADA282FB0762ABB4575FE8AB44ABB187B92820378E14F
+          9640BE15FCB20F06C2C64513C52B98236DA571F0A015BB85A6C9954E24323BE4
+          9EA9CCF2F50696D5922C7925351B1CF27B345AEE19F4FD2C00C804D38EE4DAD6
+          9FC459520A8F6C23FE916BAFE3E79FFD5468B3072CD86C137E4D2B3C7A165C80
+          9731B08F791D4B03F50C993F164487E371581CE2E364927DCACFFD22B365617D
+          2BC30CB14A4FFF00CDD74B5F6D15205A9730B0D39A41F90B9DF7F504025A6C1A
+          3EE16C479B3B411E7C82FF00EA2B5D125B3E86739B917FFAF27FF32AA72A63D6
+          57FF00F22AB1C6E96F68BAEC3AACCDC299ED276D5765B9E57E861748F907A9EE
+          70F936A4511EA27E16D43847F9E370FCC2DB6E3B1AD680C6F1EE395B9C5BF66B
+          4F13C81C9C7925F9BE175F124C72FF00E1C21847F33873FAAC7112D141CD6B6F
+          A0591CF69EA413FF0048A5E8E278B2DC12349ABE5419A363B97510B47701645F
+          EAAC4BA8D117F75DBCC6C8CE7389A247DCF552325CFB2E1C74E7A95A61EE683C
+          0BFD5544CE6836F23ECA79D1D20FB1D0FE8AA6760EAE5CC9328B4105E5C7DBA9
+          50DC890900C64B7817C27E41D66B83C5B4823E1596BC0628A3E1C05FCAC9E7C7
+          FEB0BACBFD19114021C2C72109A16A89458C64467FFD8DFCCA96CAC79A6BDAE3
+          F054D82E888A828041E86E943981CD734D807AAC0CC2646EDDB9C6BB296D1B28
+          B0CD2453ED0F05A5BD28114AF1C423BA24DFB9B4DD17454319ECF7052D696F57
+          177DC2A2C888808888088880888808888359D9663697BD80300B243815C6CCD5
+          A4C873835C59183C6D344FDD5E6C57B487C6E0EE369F9F7E0AD4960F298D7557
+          620FBAF0F7DF5662C648F547C4D3E973EFB39E4849B569A68F65318DF66B56A1
+          AE543413EF5F0B879F5F5AAB09A50DA123ABDAD6DC5ABE4431EC691F777256A3
+          582C873F6FDC2DB8F0E3793528701D4009CF97EA8CC35F9C303431A5C3AB8F75
+          8A7CECE99C412E8FB6D60A5B6216B09000E0F3B7A7F44007F8176CEAFDF48C0F
+          933212D3E687388B735B6369E783600BE3B7BACADD63298CE606BABBAB160F85
+          5DA3DD593AE7EA8DBD3F373752F306369F3653A2619241034BB63050DC6BA0E4
+          593EE14CFA84F892BA1C8C09E099A2CC72B76B80EC68AC0C7BA275365DA47161
+          DD39F859750D472353C8F372F2A5CB91AD0C6C990F2F7068E00B24FE8B53AEFF
+          00A30BB5DA2DB89CC17CFCAB3FC410B7F0B1EFFE8B08746D37B46EF71C2A3991
+          3EED80FD829E7DFF004651E2207FFD07FF0097FD9668B5E81E69ED747F245AE7
+          BB12070A16C2B1FD08682E2EDC0293E4F927EC75DFAE62B7A39CEFB35623E218
+          7B4721FD1739B8F1ECBE093C6D37C7CAB08983A0149F97E4A63AD0EA916546FD
+          AFF25C3BBE9689CC3BE4687BB2369E09216166C63480C147A8511C31516D5029
+          7BEAFD98D81A8401B67758EBC74589DABB43C88D94C35C9FC5FF000B2C38D034
+          55022AAED63974F82DDB4B9BDC51B0A5F3CF47A6766435FC97B3F378599B9119
+          15E7457FFBC2D3C58DD8E08120AFFA997FEEA1F9CF6C8592377347036B0823F5
+          5A9D64F663A4C7D83EBDC0FB291905A4B6AFD973466DF48DE6BFE951F52643C3
+          76FC3AED6BF24FD263A032763CBA8FB115CADA8E56CEC3468FDF95C76BDE1A6C
+          6EE38E69409DEC3F809F83C8567C9863AE2120F0EDC3BEEEAB532E170019190C
+          7B8FF374FB85846A33F036536AB815F9AACB37A37381F48FC4DA2425EB9B3D18
+          CF2492F97B58F0D701C936795A98793365E5B239E475DFE0AA055715F3BF7798
+          29BD89E296DC2F2D75D8A1EC072B12F9651D11951C404618E0071E9AAFEEB9D9
+          0DFF00CD3E688EE0FA041AE14E61664C67CC2D8B69B0F02E94B1D1FD2C4C89E5
+          C3FD4575B7CBD0CF14F1B5B4777DFF00ECB048D8E494B83DFB8F42D047F658E5
+          735ACDC5AE75750168E3E49048924FE0DF03F9BFE563AEFF005563B7048C3116
+          106407DC90B4B2B488A6B745FC1AF736DFFB2C111E3CBC7B3FCCE24F45787519
+          71AC5ECF7A3614F2E7A99D41865D0E5633746F6CBF0DFF006F75A53624D00B92
+          27B07B91C2ED4798E90EFB1F71C2D8958EC98FD01BE657571A59FC5CF53FEA6B
+          CC22DC9F4DC885EEDD09FF00FCF216BEDD8E21C0B4FB10BCDE367DAA815DBFE1
+          4DBD68A5707841BD859CE8092C2F73CF66AED636B361827618EFABE8816BCEE3
+          CEE85DB8576B15D56C091D24A1C5DB184721836F35EDF75E9E3E4BC4F498F5DD
+          5161C320E3474F120DBF88775997D39EE6B98888A8222202A4AFD8D26C0FBAC5
+          919D0E2B8095E197DED6B4BAE60869DD26FAEDB6D73BDF33EEAC8A4992C7465E
+          ED801E80704FE45699304A5CD89C59CF43D3FE56C3F5EC28AF637711DDADE8B9
+          39FAB9CC6D34161F7A0BC9DF7CC9F7AD46B66C421C87D105DC1B07837ECB549E
+          558926ECDAAF0BE7DBB5A00FCD4A8B0A428212B93DD4A8B413D146EEAA0DA8DA
+          4A06EB51B8A5284136542B009B7EE8201534B67034F7674C236C9145C597CF20
+          6340FB9FEC395D6D3B47D3322585936A0E8D8F6832CC20DC22E9D06E05C41B1F
+          6E7E14D57000AEEB246D2F706804B8F000164AF6314BA4E9384D6E3E34593965
+          85B2CEE1B98F0EE69AD91A76B9B4DE47FD5DAAF4B204D8E221F4B1E38D8256B8
+          36F8701EA2793DC1F8BE96B739BFBF43890E14F244241112C24B438F02C0048F
+          EA3F5418B26F0DF4FA8075870AA5D8925C9C98A17C44BDB034C6D0C1658002E3
+          D074E5C6CFCF5A5AEC9F7991C5C60145CD2C69751174059BEB5DFE79A5D2488E
+          74989911465E617060AB755817757FA1581CF735C5A78238208E8BBD83A84E1F
+          2C6E819A8C727A9F0CC1CE0EA21D7E921C0D37A820D177344AEAF83742D37C47
+          ABE6C197A7CF2938F2CB061E9F92C82474A01D8C61977177247A4073DD543B91
+          8EB67B578B0FBF6468B5D2CDD0DD8133A1C86BE198756388DCDF870EAD3F0569
+          BF09EDFC2770FD132FDA2829A3929BEBDD43A17B1C4385570B2C78C5EDFF0075
+          668C465712A86CF52B61D8C59ECADE48732846EDDEF69E368A6249144F0E9012
+          47E8BA7959A32318B1933597D3D5CAE70C27772004184EBED5EE56F9BD73320C
+          5B0378357F06D57800F45B4CC32D37BC03DA95E283926501FED7D5667346935C
+          A58DF31E1A086DF72575B1746935013FD2E1CD3F931996530B1CEF2D83AB8D74
+          03DCAD5181B4EE6BB91EF44278519B13119083BA9EE3DEBA28CB89A21716B1A4
+          FBD74489CF029D57EE3BA480C8D70DDD7BAEDEBC72230C78AD3012C76F24743D
+          02B45871803734B8F7B3FD922792DD8C7B29A3AD1599AE20D1F57C80B3CC8A8F
+          A6687EF61731DEE79531CCE12796F21F7FCD54A771E94963B0FF00395BFAFA4C
+          65F32852AEFF009584B883D7852D90381D964FBD27918CBB87C955F36BB150D7
+          B875E8A770EBD95D30F38A91238F404A8040F9571396F44FFF0062A03CF521A3
+          E55DAC67FACB8AC2E94BC9F752D91C0526C319ADA38A2A9BA8F1F8554485475E
+          AAE98B9907655DFF0092A5574459DAB8C8D9481D4FE4AED98BAC1757DF9580AA
+          D949D5863636B2FD447E4ACC642E712EB007FA473F0B50593C9B59633B890490
+          00ECACA8EB0CB8B6176EE9DBBAC51EA0D79AD8EDDD8379B5A1600ABA0AA038F0
+          D079F6E574BF25246FFEF3602418DE0DAAC9A88735C181CD7763C2D312389E4E
+          EE839E7ECB2B4860F5341041A27B293BEAFEC3EAA4EA1C7F2283325ECF2B117D
+          0EC47D9537827D82CF95FE98DB19D36DE3D55DE9668F5100548C75FB80B9CD25
+          A4908657AB3BB3F663B1F570D5F98147D643FEBFE8571F7BBEFF009207B8AD7E
+          5A63B4CC98A434D78BF9E1655C169734DB782395B433E5DA2DFEAEFE90B5CFCB
+          FD31D445CC6E749DCFE74ACECA92C07387BD0FFB2DFE488E8A2D1932DCE80B03
+          0827F9BFEEB136796AF791F729E7074D55CEDBD89FB2D18E6949E1C4ACCEC97C
+          740807E55F38396CD422DEE0E1B40EE39B59593C39713D8D23D8DF05729AD8C0
+          F51FC954F5346C2F04F92CFB5C74DF8F042CB92305A38B5A72189AEFE15EDFFA
+          957CC7B98D697B9CC078693C7F9C28F4D1EA0FEAA5BBF51578A0139DAE91AC37
+          C0A24ACC34F0C16D790EFF00515ACD783F7F85B4627CE01748E73E80F5126801
+          43FA24CBFA176B5E1C77CB6680A0D03A2934DBEA55444D67AACB88E10B89BF6F
+          95B9E858B9CDB1CB7EEAA4D1FC56ABD4957642E71E69A2AEDC9EE88DC0700FE7
+          4B719A1EA5268EFD5860651D2DB2F90ECE10B8C024ABD85F5B43A883577CAC2D
+          8E18C82D94C920A3C3680FD7AAC876C0D93735ECDFC16B0D023AD1FCC04F1A35
+          036C71CFD947216CB836720C51BDAEDA050028D0AB589F0BDAEA2D201EE533D0
+          8F2EC7051AC700E6817F6550E3543A202E0D279FC9360B089CE278E7E53C9905
+          FA7F450DDFB4907A7CABB2777424FE4ACC10CC77BDE1A00166ADC4347EA780B1
+          06068E847B2DC69B61EC3D8AC3247B39BB1F09624AD67BA46821A79F80AB1493
+          34389363DDD6B356EB5147B2C62AED90D7653E612B1B45F5201F65670D8D612E
+          690E1B853C12392391D8F1D0FDFB85651944800E96545B5FD3A85AFE60BE2DDF
+          65760BF8FBAB28CD5D501A3D551A6BE543A421A76B6CFB15AD19438FDD3CC0EB
+          B5809DDD7AF752C79A3D7D94D31B008AE3A29B5AE1C037A9AF92B1C9981829A7
+          73BEDD3957CA4FB4C6C871B70208FECAD8D5911B9CD14C69ABBA5CA7E4C8F690
+          5E482B3E2EA031DAE698C39BFCADBEEB13B9BEC6E6535F1C76D7EE04F568E40F
+          95CBDC05F25C6F9F95B4DCB976F9A648837FFE7DFF00A72B1CEF664B5CF8E02C
+          2397106C2CF565F716291C333A3263691F6E3FFB57830DF249FC406BDEC231B3
+          98F747BC823FD4A821C8048DB258F7B59933F43A53C6C823644D7796E26EE87E
+          881D2B5A76904FC2D3C7D41D138896FDAEB9FCD6D333A295AED9231AF3FF00F4
+          B0BB4EB9BF48B63EBB3C05F1E434B9BD013D9465E5E16C0E11B6591DCFC7E745
+          24CF6C51BA39A205B20E1CD36D3F9AE41A25D5C7C5DA9D7764CDD227CCF53881
+          40F403A0566BC106D6345E6DAAC8C936B83BB836175F1E4C69230EF31E5E3A83
+          47FA1EAB8805F45971E730920B43DA482410BA71D60F65A7B5ADC6686BF7B7B7
+          155F0B6573F47C886482984349E76DF2BA0BEC7177998E7458B232A2C661748F
+          0D1F2AF23FCB6175175761D5794D53587669DAC1B580DFDFF25CFE5F967C73FD
+          926BA73789A06BFD00B9A3E3AFD96964F8A26787362636307A38F242E38757B7
+          DD509B5F3AFCFF0025FDB79179677CCFDD238B9DEE4AA6E3EFC285047E6BCEAB
+          B4FB2DBC2C78656C8E99EFA029A23167776B3D005A2052CF8D218656494D7963
+          83B6BC5B4D1E84770906DFEEC2F906C7D308E0B873DFFE3FAAD86E8D1F91E679
+          FEA06B66C24BBAF23E38177CF3C5F359723C539390D607C388DD91885BE56332
+          321805006872781EA36E3DC9B5A2DD6268AFCA3E5D81F2BB7378FF00F2190E94
+          5E7631D4FEDBB807F3ECB4258DD0CAF8DD45CD34769B1FAACB93AA64E5022498
+          907B765A967DD63ABCEFFD464458C388595904EEC77E4089C6063831D26DF487
+          1BA17EE68FE856042A951BD2D047E6A5ADEA8393C2C90C6F99E191B0C8F3D1AD
+          1650503559A0B8D0164F000EEBD1C9E089F0627BB50CBC6C693635D1C10CAD9D
+          EFDCDDCDFC0480391766F9E8574742D2F42C76E49D431B2F325208C6304ED85A
+          082DF53CBD8416D079A1B4F157CF09EE6C5C71F4AC0C68764F945EF95BEA1079
+          60B7F1014F27A7167A1EDEF63A1AC6BB366B1CD12CDF4AE712C8667F98E68003
+          5A0BA85D0680381407B26A391FBCB2F22595B6C7C8FD91C39151424BACD6FB3B
+          7D8137F255A7870B132AF06499CE6B1BE63F24318F1216F3B06EE4075D3BA9A0
+          69BD0EE59CFF00F4737E964C89037CC6F4EE6C7C015D6FA71FDB95E831343933
+          F47766EA196CD174C8DCF6473CF038C6E9090EF2DB40B9DC1BF4EE22C6EA06D6
+          0D6B074FF0BBE4C79F21F999EF646E30E24F13A2634FA807B985ED71DBB0FA5C
+          68D8700E05618E483C586712BE0D0F0A16B3CBC1C42E736494F1BAA490916371
+          245804D068DCB37AB7D8C98993A46A9A6CB8833339B98D7F9B16FC7DED7D820B
+          0B83BD1479DDB4EEDC6C3768DD93C4D819BE1ED7752D373B4966993E348F824D
+          39F2191B0BC0A7169DC6DDE93641ABAED406C6EC5C4C8962D2A081AC7011CAD8
+          98F76F6D34DDB8970E6F907A86901B7C6DE0E8CDC7F107D2E76462E2E43E164B
+          0BA3F2A46B647461CC14496B8DB8379DBB4BACD6D70599D62BC8E734C7246636
+          C8267822DCCE1DC901CDBE4DF3CD75BFCB14597333166C312BFC87BDB26D6500
+          5EDB009F7AB77EABB31E1493C193A84395E56531FE6358D6BA391C4BC7A86D6D
+          003A101C2896D770B86439D8F6D00318EEA7F9AFFBF45D65962304C2685CD263
+          21AE6EE692D203874BFD41FCED506411C6DFD16F673DFE644C90363A863A8802
+          0346D06E8FFA81DDC716E3F0B0B2469686863775821DCD9EBC7F5FE83E559518
+          CB5CF607114D27AD75FF003FDD5E30D0D7D920D7143827FF00AB5D3C9D5B28E8
+          F81A7BB529F234F85D24ECC03338C3048FE1CE6B1C368710D6D917742CF1C734
+          17C6491B1D62B96FBFDFFBAD4A2A455123AFB8521C48EAB1BED84B5C0B48345A
+          7B2CFE5B5EC1E5820D1277915EFC1FB2BA2A3F09E45D815DCA1DC0D77EAB23A1
+          6C2E70749B8B491E81EDF2566C8971A6CB94E235F838AF203639A532168AEEE6
+          B45F3FF48EAA68D602B78770E1EEA407717407CAC4E790034B8ECBBAF9F7FECA
+          6F713CD5F723A2B28D88B324C60F1148F66F6EC7ED7101C3B83EE123CE031668
+          9D044F73EB6CAEDDBA3A3CEDA201BE9EA07E28F2B0B1965A5C76B09A2EABFBAA
+          9DBBC9E9C74A4D161F728F85D23C03743923A71D8A832968700D003BB06DD7D8
+          9E42C467EC6C50AE0268D8A6C636B4823DC5ACF8D0799BA6789590B013E6C71E
+          EF501C0E48EE45F3C03747A1D41921D1359E5B6DAE2EDF5EA3607079E9C7F52A
+          A5E1E496F03D826FA199EFDE5CE7124936493D543C6DAA91AFB00DB41E3E390B
+          18E8A7759EA3D9503CAB37E09E9CF655ECA1BC0A50651DD03BD8FE4B1DD29B05
+          6B46469EA96B183F2A438807A20B8A4550692F95458159F1CE3B6DD3798EA22A
+          36500E17CDBBB7E856B0501D4E00F4F709A3228BF956F27742E95AE6D3480417
+          00EE6FA0BB2B1727A72534583901F807EEA382E755EDED7D55B78DA46D175D79
+          B0A0A34AC91F5E8AA4B5C6F6D7005349FD794B2DF4F42382AC191CDF636AA1B7
+          6B36A1A6E5E93992E26763CB89951D6E8676398F16011608B1C1079582DCDEBC
+          7355DD36512070452CB1C81B60F20FBAC2496F21D628159187734FBF65654416
+          026C23632EE38E7E55C4723082D06FA8215487069E08E7A2B829E59175FA151D
+          8D9E47C755983D8E69F510437A11D4DF41FDD54C679A162C0B1D39E8B3E958C7
+          0A78AEA8E6ED245F4F656315572083EC520A5F05583772B70D07DC202072B588
+          363F92A680F954DE1D64728D7127E3EE9E864120683CD04DFBBBD051B7728078
+          AA5517F3033A1AF9B5773CB07ADA5BC5F26B85ACF92360F5380AEC56B4ED8248
+          CB98F01C39AAEAB37AC5C691701748D909BEE96085141791591AF15478FB2991
+          A00146C7BAC638590101868FE4AC084B5AEE5FB7E6AD6E473B5C059E7FBAD1EA
+          3F0840DDBD4D2D4EB0751A1AF6FCDF5B47347637C76ECB9CD948046EA59B1BCE
+          DAEF59647FCC5DDC2E93ADF4360B4347FC72B61BA8C78D8FD774D5407B05A6FC
+          E0C7822A5DA285DD0549268A42E74CE7CAE20ED6B3D21A68D1EFC5D71DFDC755
+          677E3B83D9E95E2EC7F0A6AAFCDD260870659313E9DCFC87372DD1B9C06F9212
+          1A361E0D136E6DF06C5AF312EBC599864898C962DC1C59336CBBDC13D79FBAE3
+          F995C2A6FF0075C677E3FF0091D91AB63B9C0BB1CC7DCF966BF45B58FAC6112E
+          121948278F30072F3A4850395B9F3750C7A90303337FD3B831E3A76BFC8AC50E
+          9AE33B7CC8DC62DDCB43B6970EF4E20D7DE979D69A3D7F45BD16A12CCF6B659E
+          856D0F7761F342CAE93E5E7AFF00D44C6C4CC30C8F6ED746D04D35C417576BE8
+          B1F259605ADD8752FDE39223CA8E30D6B5AC1B05510036EBBDD59AF72A0E0167
+          A9AE05BCF6EDCF3FD959366F2AD332380ADC0F03A0550F22C1E85662D0370241
+          A51BDB458F68E7A38750A67FB18C5F3469648B1E6943CC713E40C1B9C58D2768
+          E4D9F8E0AD9C0826CFD98F1CC03984B636B9DDDDD5A3E4FB7DD7426C4D4FC3D1
+          6A586FC79B1DCFB8B243B1411B5AEE9B9C2DBEA1C8E3968BE471CBCBF4AE1503
+          7BC12288E0D76E143008DBB5A2BE7BAE863E9D9794F663C18DE7BDEC2637359D
+          5A2C920F17DC73F65A92C2F85E58E0038751EDF07E56A6231BC068EA2BDC7455
+          8DED78F4107D96E4F8A62C3C69BCF8656CDBAD91BBD71906A9C2B8B1441E4107
+          AD8206073A9CE6B810FE9447457EC63B3D45FC29177D41536032C91B8D8DA2EC
+          7CF4FF002963327AC000514D192F9E9F9A90073CA8A22EFDC8BED63E54341ECA
+          E8D7C990D96740B5D749D13BCAF507796EE6C8E0F51FF3FD56B3B14570573BCD
+          1AD48B23A0737B2C6B1FFD05209008B347B284009E82D646FE0BAA13C573C7CA
+          D86CB5EE168E36438BB63BA5505B4080792BD3C5F5E8649628E61EA164745CCC
+          885AC99CDA200E9F2BA5607454240BB01D7FD13A928D0C78DEF91A19C1F75134
+          2E8242C70A3EFEEBA3096B4D0002B64B1B34643BB2CFE3F4392963BA97B76388
+          F65422C2E02ED35D1428005291C20C904CF85FB98EDA574BF7FE63C7245023F0
+          8A2B920D26FE495D39EFAE7D4A3BB9BE20F3B0CB2305B21E09AAAF95C027E54B
+          9E4F6A5517DD3BEEF7769F4594B4A45CC4752AC1A5401DD2CA0903DD4D9403DD
+          004116529591063DA4296B7AF2AEA38402DB09443481D3AD2960BEA567C76B0B
+          8B5E073C59078F9E159346A867E65368A3D6D7B2D0B49C691CD8616663F58323
+          4431E2C6D92DA476377BF75715C004753C71FC4DA3E1E899B1E2E2E78CF90440
+          E416C6E6362909371D9A24B45026AB75D58A26599715C66B785E8FF67D87A667
+          78AF0B1756767B30A6DF1B9FA631AF9DAE2C76D21AE20385D58B162F95E7DAD0
+          3A91F9AB433BF16664B13DD1CB1B8398F69A2D20F04259E87B197647B831C666
+          30DCE0EC8DCDA241AE086FB01CF635D02F6BFB3EF034BE2BCAD41D2FD3E1E851
+          44E943F25F33DAF707305C6E8DAE707DBE3005027731A7F15AF9C3BC6399ABEA
+          9366EA58B8FAD67E5CB24934D9864DD34925DBDC5AF6DBACEEBF71CD8B077351
+          D273B274FCCD4B3F2CC72C5346C8F071F1DCD6F21F4EA0035806DAF73678E1C5
+          4EAF5D4C9E963341807224CE6438F188E38DEE7B0BA8465849201E4F41C5DF71
+          DB8EFE99A1B638F1E46E9D3E1E54E0B5CD7CAC663E43195BC074A0FA8DB1C76D
+          F5B68E406D24D4F45D4B034CCDD2F4D11E4C50B62CC6E416CD1B324B9FCB232D
+          E18E0D61079DA4B8122F9A7D6C6D3363E30871E1313E4DD94D87CE6B7D6EDA65
+          22DAEA342834935C0E2B1B6FA560FDA0FECFB58C0D2713C679789910693AF4D2
+          BF1E79E9DE648D7912B370001703CD5014472BCE786359C4D0F5190643649B0A
+          6FE14AF89ADF3032EED81D637703AF4ED4688E66466FD6B26972B2259F28BFD2
+          09F4F3D4FF0041C71DBD953030A4CA75B637BF9A606B6C39D638FEBFD97593D6
+          565F47F0A6B1A36B59474FD5E7CB8F468D92E579BA5E0C4FCB85E231B4EF7BE2
+          E01636DBBF691BA8076DAE349A8C19387991E1685307C9E588DD0BA48D86269F
+          53646EE71702ED8EFC429D7C914172A0D325FDDF9397F598AD8D8E11792E93F8
+          8E0EE6DAD3DB8EBF2B04E3CFDF71B890EF34487870EBCF175D8A4E27E8D7A8D2
+          B438BC61979F0646A5A5783FE930DD911C79AF9DACF31A6F63486BDDBDC76B46
+          FB1EAE5C2891E522C07C24BA6C864E5CFF002DBB5C5AE207F36E70000ED6EF9E
+          38594B18E972598B0C8623B8B2227738B6F8DC40164023A50E3A7549725D9138
+          9A5898D0457E16B1A685121A0002F8E6BF3E2D59CE0C39A32323244B33BCC7C2
+          D63039B2EFA6B4506870278A1D2F8AECA5DA5668C319DF493B715EE2C6CC6276
+          C2E001203AABA39BDFB8F717BB363372DE1F8E7CA948748629DCC8F68E1C36D8
+          00DDF15C9BA028590D2BCA7991F88F78DAE686B9F6C8CFAC02E734F246C7103B
+          969E08E0EBE86B67E14FA73F160CBC631CBE531FE54C5CD3B5C4B9B638A0E690
+          7ECE07BDAD476C0482D6D8E6C5F3F1CFE8BD3C9A369D3C594EC493263860744C
+          BC900BDA0DB64258072048E01A6DA7A7A6DC4B3991E8B9D3604BA93306593022
+          900932DD138471F2400F23817C50BE7A049469E2658C764B1C818E8E6680E3E5
+          31EE1D7A39C096F5B3B7FF00AC2F696974A487B2E9841357FAD85B7BF1E501B4
+          0BEDADB14C61EB57FA34D9A3C9BF75D066764E8F1E7E146DC3DB38304D78D14E
+          EB68AB648EDCE693CD9611D7AD2A395A864E66A991959D9B91365E54926F9A7C
+          9797C923DE492E738D9249B364DF24FBAD3D86875E7B5755DFD1F0A5D4721988
+          E858D1932471195EEF2FCB77AA9E5C4B5A28724B8D704F6246E695A5B70B5482
+          0CBD35DA9C4C0D98C3164BA3DC1E1BE9DE0535C05F3EE3BD005B9E870B58D033
+          345300CA88B44B1473C6F690E6B98F8DB2348734917B5CD24751744020859E5D
+          1E21A0E26763CECC891F218E78C3C07C4E25DB5BB3AB810DDDB871CD1E6AFA5A
+          A66C4F7E6330F122871669DB3B220C25B8C4877A580B8D8A1CB88DDE8038E87D
+          04FA3FEF3D2348D4249B062388238735C3508BCE91CC32F97B22DDB9C76B5AD3
+          E9716FA3A078071E56668F9CDB987FD242AED35CF43C5F65DBCDD1069595918B
+          94E6C73C6E730DB83B96BC34D6C245821DD4F23F226B9DA2B5983893C1978F94
+          E959B9F8D8A25DF8E7A0F303DA3975036D2E6F3D4745D360E2B6273DB63868E0
+          9269486463973EEFB345ADECA7EFC78236E1B314B1BB5CE639F7310E71DEF0E2
+          79A3B46DDA29BD2C92754C34F735D6D23AF7E559118455F45208597E95C1A1DC
+          1EBC5F23BF454D8E1D5A7DD5150DBBFF0065140765943B6381638B7EFDB95761
+          6CB1F95B2DF65DE6345B89AE9F6E3FA95060B40574B3F46CBD3768CC8862C8F8
+          193C4D90519A378B6B9BC7420DD9ABFBAE7EC774A24D5D524F62A0F5DDFAA92D
+          009DA491D891D56FE3B25D0F31A72F05921746D77D365C4EA918F60734F50402
+          D7021C0834410561971FCB9DD1B1819B9A1C03BF5E2FE4109A35F758AEB5D09E
+          C96B6E16BA386789ED635E1A0DB9809EDC5F6BBFF395ACEC87BDCD3603980069
+          68038FC92511C6DEA6FDA9403D574461ECC7FA69F124832647B246E54A1E0358
+          5A686DAE43816B81FB7BAD6934E9A133B5E18C7C2ED8F6191BBAEC8A02ECF3ED
+          D159D0D7DC52F8EAA5DB68B4076EBFC47DBB71FF0075022EBEC15F74652F266F
+          E3974BB06CF4BC7402851E450E163A2B3C7110D701138BC8B0474A177C7F9545
+          51AD241BEFCAB20C6DABE4903E05F2A012B31880DDC8E3BDFF0096B19657BF3D
+          3E504723BAB452BA27EF6D58F7683FD0AD974391858714DBD8D8F26DCDD92B0B
+          FD248E403B99CFBD5F516B50009F62C0971B24BFEFDD55B5CEE3C7C72A768E54
+          55744166ED2F35E9693DFB053BAAC8556026D639729B182D6FA9C9B833B64770
+          D693B8F02957EA4115BC117EEB9AE2E91D6F24A8A14B9FE4A3A6325BB5C378A3
+          D45ACF8ED8B231E7984D130421BE87C81AE7D9AF483D7E69719BB6FBDAB9AED6
+          0FBDA79D1D174AD0090DFC82D39731F2F03D03A577587677BB5931E12E27B7CA
+          BE56FA168370241E7FBAD96892426CD3474A511C41BD2FEE56496DECDA2DAD03
+          A775A9320C5F511B0380BB0AA7287468BFBF0B136AA8F6547BBAFA7A7759F2A3
+          6864D36EBD4B5E49DF2125CEA1EC16312B00F55AC6E7071241A1ECB37BF42E28
+          7540F06F8587757DD40773CAC68B8141070A4572A5C180FA4970A1D457DD4150
+          AC3A51A506AF8BAF95174120C91C0E94BB6D53417124802BF350D0D00EE73AC7
+          40D5573CBBABAFEEA97C20D8F38003631ADAEA4F24AA493BE4FC4F2E1EC4F0B1
+          6E201505C9B45B77B0542E26D2D2D4002BA27651C844044B521002B378BEEA07
+          44E8832C2E36685AE9E06696CAF687371C06346D049DC45035D793C9E78EB5D8
+          2E3B0907AAB17971BEEB5CF5E3EC77DF8F0C71B6DE431E0FF147A8466CD0A07A
+          1A17DF93C1AE7523C5339004F1005B7EB786D1E681BAF6FB0B16B160E4BB6963
+          86E8C72EE2C01D3F2ECB64E135D66173641EC0F2BB49E5EE0D8103B061C3CA95
+          901C7CB611E5C3911BA421AEDA4916E31B8917EA03DC0AA5D9D2FC5CEFDDFA86
+          3E7C10E5BA40658F264244AC90F70E1C9B24923B903A755C38C09B1FE91EC2C2
+          C7991B2068B6DB69D742DC0ED6573439A1EA2B23B0B3608A36CF8F2C61ED639A
+          5EC2D01AEB2D2491D1C391D8AC78CBEBA57A1C7C31A8E3E365BF30C7044F103A
+          7F237BA16D97369A368008BA049FC3D40EAC1F026B9E22C4D5752C3D17364D33
+          05826CD9B12173A284591BE477E16743DE892001CAE263E5643266CB8F91E4CC
+          418C1DC00A342AFA345573C557C2F751E2491F8371F2E185F1636A394EC47CF2
+          673242E745B5CEDF10DCE35BD8438B40F4BA81DC6B1675CD27B7871A206C1926
+          6C918E19187C6C7B3717BB83B7D374DABA774343A5F1CE388F118036BA471A6B
+          01A70E86CFC73DFE57B2C0D431F1981B260BBCF6801AF8657C6438B5C039DD4E
+          E164D0A06B9BE879B901AE11C665698DB47751DCD247A85F5E2BEDDEB95DE715
+          1E61B1120FA1DB89E3D875B15FA2BE3C7B9F4E3B4762003CF61C91DFAAF59A8E
+          5E2644F9031A2C887003DCFC6C69A56CE610EA6F2EDA017535B6435B668F0297
+          367D324CD92695C5EE7EF1B839B6F7704937DBE6B8162D4CC1C5730C44B5C058
+          24120823DB8FEBCA4EF7078A70FC0D16D01A3F0815C7F5EE7BF36B6A4C11B4BD
+          A7CA648F2D31978716B7A8BF7EBECB0C986F8A30EA041EE08E3AF5FD3FB7BA83
+          58935DB917C1BFF3A29DDC73D900277968E1A2FA8E9D3F3FF3D9630FF7E39EE8
+          3203F2AA626BBA8E7DC2A8759E3857694FB18CE3B369ABB5466393C0356B69A6
+          8F4B57A6ED07817CD0E532518C621C70DDCC21CE25A2C72483ECA5ADDF55DFA5
+          F096C2E01C76B6FA8166951CE0CBB3C7BA7D0C82812D73C74041038FCFEDCAAE
+          FEA0AA870210B80EDC7BF65459CE0C362EBDD59AFE39079E7914A269CE4C85EF
+          DAD76D6B408E36B1A40000E0003A0EBDCF27936B1EE001E6D2512E89B2024B7A
+          7B2D7931CB41A363ECB61923F63A20F76C73838C609A245806BDF93FA95971E0
+          F31F230BD8D31824875F6ED63B9E7F458B9FB1CBA2D28092B3E5C3E54C5A4FA8
+          7E26F36D3DC1B039580B5720EA53DD437BAB20AA8AA56E07653410400A2A9592
+          93040EFD94A28B41288A00A082557751F85354A1C38411B948BF6556F079592C
+          9FB20D8C3C09734B84740379249AA1FEEBD87873C2DA0E638B753CCCEC28E363
+          A59F22083CF735839B6C5E9B3547978147A8AE7CF787350C3D332DB2E4B2478B
+          DAEDA4D6C361C281692483FEA1DFDD748F8DE7D3D99D06933E662B32A3931E49
+          9B3188CD0B86D2C7B5B7E92DBB6EE2093F0AFE963DCFECEBF6B7E2BC4C5D3BC2
+          7A46AF3604190E763638D3238A3CA99CF792237CDB4BC35CE7B856E239E41EFD
+          AF15FEC135183C0B892E6785BC4FA5F8E1DABCF8D28CAC268C39E03131F13474
+          9192DEF34E6B8383AEC6D5E4FF0065CE9E39E27E97E30C9F0E646348DC98672C
+          99A1B3358E712D3097101A5A2DC45014491D17DB345C43FB42FA4D0F57CCC3D1
+          745925C77E5F8AF221CF9999B90D64AC8DCF739AF7D105F1ED6B58086D9A735D
+          7CBABE37D353DBF22498EF8DCE6B9A5AE69A20F50555AC27B1B5F66FDA0781F0
+          71E79B03479B4FD7E566439F2EA986658E9818D20112EC2D06DDF8D80923D24F
+          2BDAFECD7F612CD3BC29E27D53C4FE1F9E6CA23174FC370CD8A218534CE2F648
+          E65995D21117A5AD6D16BC9B3616EF5CF3CF95ACE7BC7E74D2F067972637C78F
+          2CDB1C1C446D27A73FEC57D5FE875BCAF08EA3903496CDA5432F939B3E419A38
+          22C8ADCC1BDAE0C739AD89ED6C721361CEDAD2E20AF4DE24F01E7699E12975FD
+          4F5B6E1418F9EEC6874E9A598673E4DAD75790D8DCD8C5073FD4F161BE9E05BB
+          C8E4E660EBB367130E6E44D94EDF14EE99BE74954D0658DA030D75EC6C824D5D
+          C9D4EA7A6B318FFF001278819A0B740C78F49C3D3191BA56C1F4D1F9AD977804
+          BA416E6BC966D1B9F61AE3B683CEEF13A943AC6A73C8DCFCB9F73AA478C899F2
+          6F2412081CF5BE3EE395F48D33458B4E7B276E8985ADC79D0BF1211A9CD3C230
+          B23D20485EC746D738169735A6C1B21C1D4BCF6469B21D4A29A58F232626863E
+          174A483200D1BC070E83D2EA68E801E450BB3C7F48F2D89E1687274FCB999A83
+          464C0F66DC77C2E1E646E24178773547670473BB8E451DC6E9F169D8F14714AE
+          7F9A7748D923631ED782F68DA6EF6FBF4FE80AF4F1F9033A3D3E677D360FD4BE
+          491B116CEC85BC6E746E6BBD7405EE0E0D21A39E4AD39BF751D060116065C3AA
+          99CBBEB1F93FC29B188A0C64262DCD3B811BDD2107A5704AE911C885F13A1637
+          24CE632E64627631B208D87D4E6804805DD09F5B7AD742562C3D365D5659B1B1
+          DD0D4264947D44B1C00B68924BDE689F4B69BB892786D92AD9D1CB1BB610F9DC
+          0797E636606373010001B7B5B5D5CF362BA73A924B340E05EC76EDAE606CC038
+          0BB06839BDBA7C11628D2D8CB0C304B95346E1032B1883B1E5ADDCC65DF24592
+          5BD3A173B8078B9831F19907499D23DAF76C691183D9A5A792FF0050E450E9F7
+          228D9863C0C64EC7BDD77B24FC14434B6AB917C135CD0001E4AD964072F28458
+          D8D188CB8BF6C4C73CB455D00E36480D340F503BF54C15C7C70CCD8DB98FFA68
+          844C27653DC5A63B068B858343ED7D0F43EDB57F1BEA3AB781F49C0CA8F463A6
+          69AC9638226E2E2B32D9E617F123FCB134946834DBA80BE0115E631B2A69A46C
+          D9D3492C86210C13CE0E4011869686343AC581B1A0D8D9C55102A9A7E134FD2F
+          D44F1411E4CE22329B91D196904C8E8DAEBB01D42C7367BACDE65F74573257E1
+          EA8C8BCF9B3A2C621F8FF5436006C39D6C6B9C2AC3AC35DD4DF5B08DD4B2BF77
+          7D1B267371E72DB60CA2230DB2E00B1CEAEA2CEEFF004B7A753972B50FA8CD91
+          9F4587040E73E38F15A1CF64564121AF2E749D855B9DD4FBF3A58CC95B90D661
+          EF33894358E89CEB61DDC7426C97341041AFD78B20C8F924D27507BB0731AF9A
+          37BE2F3F15CF6B5EDE5AEE4D1F503F621D4B7B39DA84DA5B21C5971F374DC511
+          4AE9B130DCDD92BE307CB9251135C5CD0D7705C5BE971693C938F231617B23CA
+          9B583A864656E9B22063A413C4FDC45C8E7B034B8EE2EF4B9DD7920DA98BC4FA
+          869B9E3230F53CA85E20F25B2870F3238F968634DD8F4920D117B9DD89BB25A3
+          2E365176839D879507F0679193B7319831CAE15C0065737CD6B380283ABAD825
+          60C63831EA30E2EAF919726950BDA1CE836F9FE55F01AD2FDAD70F575BA2EE6E
+          CDEA4FAA4B27927262832EA8B5D212F25A2C069A77A7A76A3DFD95A38F4D7699
+          264BB2E73A907ED6E27D337CAF2CB7AF985F762B81B0F6E6D59C54D73F0C621C
+          9944B1CD90D73B6B190BC35CFE7A72D3562F9E79AE0AF47A4E4697899E30752D
+          3A59714364F3B1DD97B019DB0B99110F2C05803E8B85D1AA3542B8FE1FD35D2E
+          69920CBC58268D8F95A679BCA2DD803AC38D0DC7900024923A7458E673A598CB
+          905F3BE405F23CB897124FF35DDF201E689BEBD0ABE1BF66B030CD034B369634
+          FA9CD0E7343A8F43CFC7E4A72668F25EC733120C7A6358E116E01F556F36E345
+          C7AD5017C01DB289DC71E389CC6399197385B003640145C0591C0E2EBAFB958C
+          026234F7B401B681BB0492BA7826A90076C9046E734165BF6BBAD1BE4D7B8BAF
+          B2B31B06F6992371881F535A6AF9F7DBC76531192104C72B9B6C01E0F4201E01
+          1FCC386F07FD9647E2B8B44BE92C713D1C2DA455D804B80B70E48E79F63533FA
+          ACFAA8D326CACC9749C6C8C6C13207C18D9992D9A5632CF0E7363635E474B0D6
+          F526B9E34444D2E0F6C2D7B434DC67777BE783CD13C73D85FCEE6978B8F9390F
+          8F2B29D88D746E2D7B63DC0BB69D80F2080E76D04F340DD1AE723F2715B1630C
+          6C5232A3BF35F310F6CAEDC7696B368DA2A81692E04FDE959CFEA26B9231C3B6
+          B4C7EB756DE6AC9BAF8F65D7D3E0D1B27419E2662663B5D8DFE6B65F3C3A07C3
+          54E688C3370734FAB717105A1C368A0E5A6C232E4D96C8CB8EE2E7F201A3C5F5
+          AE07DBFB99AAE4698C9A0C59E6C5F3186394C521639EC7756BABB104D8F9A37C
+          2C58B1E87C3EC9355D2758D29DF43839F95143263367DD0BE6DA5A7CB8C87363
+          69733D56F05CEA0D6D9773C4CFC7D5BC3F9CFC2D571E58A5A31BC643775C6D70
+          69DAEF6FE196DB4F4040E173F2F262C8859B611148D003CB2FF8A6C92E759347
+          9038007E7D7079F3CF2F9AE93F883F9AB977C93DCFC9589CDDF4AEEBCEBC26FD
+          F506564B268B20346A91CEE6EC95ADF486C80D34ED1C107A0E0F0B532BC57AC4
+          F999D3E5EA3366E665EDFA9CB9E474924A41DDEA7BB97107B927A0F60B4E5972
+          5F1C90F9B513C8718E337D01AF73C0F95886347E4BCBA4DB2B48A041A70E6F9E
+          DFF757C3FD0B8D5750123A5FAC98B9D7B9DBC92EBBBBF7BB377D6D6D43A80C89
+          A333664D0C71073A363CB9ED6BC8BE288DA0B80E9C8F95CB675EBC7B2CCEDA07
+          A81E78E8B539951B3AA8CBCB986665648CB972181DE7197CC73E8EDF5124907D
+          3D0D1AA35442D06B2DA4DF23936BA5A2EA6749CD6C9B23C8C67FA67C69DA4B26
+          65825A68822EBAB4823A820F2A32FE9F3F56C9FA285D8B80E7B9D146F943DCC8
+          EC900BC86EE2077A167B2CCF5E95A2ECD9839B4EF31ED686303C07ED1ED46F85
+          6DC7681B89154795B12E061361126364C8E943019593B1ACA75D10D21C770FB8
+          07E16B96C6D342405BEF455E51265716805C5C07407A058ED6E4B0633E187E9E
+          4799433F8BBC534BAFF97EC2873EC4F7A513C03119B4B5DBDE39DCDAA1D883DC
+          1FF65A1ADE5BCB6F69ABABAE123BBAF490EECE23DFFA2AF964903DF8E785923B
+          8BD0E0769A2FF40240F827E14169806B1AD6C66DB7BDC1DB813F1EDDBB958E48
+          C0791B5D1822DA1FD6AF8E78EDDD59C434B4B1B4EA049078BEBFDA966870DD93
+          8F912C40931105ED0DBA69BE7F5E3F31F2A41A67D2483D476214875F452482D2
+          0FE2E28FC73FF656922745B776D76E6870D8E0EA1F35D0FC1E55D1866738B69B
+          C37BD1EAB5E38A46EE2180820F0574063B9F0BE460F31ACADEE03F0DDD2A3080
+          0973A80EC166CD1AADC79248BD0CDD43710D1CD00493FD16174600BEC7A15D7C
+          1C8864CA74994D9B220A7098C6F0D73AEE8D969EF4791CFC751CAF30166D7136
+          DBA58B8308F48F852D241BB2A2959ACEF6B10583BDC572B771FF0007E6B48337
+          9201E9EEB6209447B83A80AEA574E6E7D8CEF7704DF03E161927F3058DCD3FDD
+          64CDD527CC831E07C9BA1C705B1376804026C8BEA45F63D2CD755A0E90B090AD
+          E85848413554ACD787DF65803EAFBA8DD7F0B9F90C92B6C70161E7A2B8163AF0
+          A5BE9AB01D46FA283186924853B15A838D58521B56A602ADA724F54DBC2038FC
+          A8B5521004136139EC158015CA90420A06940DF7536838410004AAF94B500D20
+          9BE128284B40015870AA9482D4A3A953D929000EAA3A2B0E557A20CB04EFC73B
+          A3796DF068F51ECBB5A466E13CB60CBC72232E0E3918E6A58C55388B34E1C03B
+          4FB705B64AE02DDD13CA76AB8AC9C34C2F95AD7EEE9B49A3D08F7F7092E2BE9F
+          E2FF000A68381E198357D1F2355CAC8C3959859ED931D871593105F1BDB3B5E1
+          DB640D90B43980DB1C01E38F32C99EEF0DCCC7C06119730965CAD9B8C8D60203
+          40040680F27B7F30B3C05EEB59D57C59A57EC67C3BE1E8323030BC27ACE649AB
+          9C013C1E7BB2E12F85B2C8C2E3231BB1E1ADBDAD710E345C095C7CCCED1F3F4F
+          924FAC971F25A218E38B26264A7D20891FE68DA4B68581B6C9706D1DBB96FE39
+          7A9FF61E565C68F08EF8439D13E2110F35E1A2479690E70363D20F22C55559BE
+          16FE167C782EC7CB930F1DD8D370C88CFC4823F4FF0011AC21CD711DF8B26EBA
+          951AD788B373F0717133750D424970637E3C51CF92E9591C760358C692760146
+          DA38E07B2D3C1960CFC4C2C39A3746F190F2EC9631CE34E1186B681AE3693C0B
+          E7BF15BE659476754D464CD95ECFFCBB59E5B2369644035A057E1B048AAAB041
+          3DFD9735D318E373637FA1C497161A0E16287E54B3E713F498A63CDF33123700
+          71E496DCD796B448E1E81E97102AAE8000DD59C7360322C686633C26598B9DF4
+          EC24BD8D1544F15479A164F1C81C5FA79B332329C6CFCEC070FA7CAC8C2237B6
+          E095CD14F696BA883FCCD3B4FB83ECB7B11F87E69872301E5B292C6B9F93E5BA
+          17387F0C97B8EDDA09B21CD1C023703C8E5CAD661E4B98D707189E5BE636C743
+          C10383F3CF4F843A83CCCD99AC84C918E1CE8EEC115D3902B920F5B37D6AB3D7
+          3A4ADA716980B5B0B1F931C8E76D8EDD2060E4F365B4036EC0F737C2E8E466CA
+          DF08370B1B4CC56C5265BE776A8310B67DC23A7C61C2C18C3438EDA15BACF6AE
+          34CE6E5E646F8A18606B8B0183796C77403EEDDC02412791D78A14B6F0320371
+          A58CC0D91C0B5E276B9C7CB209040A78018E25A5C68D168A22F9E16351E70471
+          9147C9686EE707481E0C82B869ABE7DABFD5C9AE9AD3B43BAC62236698D0450B
+          E3AFE62C92785F4AD1BC03AFF88E78E3D0B032757CE8AD8D8B1E0194F644DA79
+          90C7B4BF6F576FDA0006B814B81E208199D9B1C93C133247B445213986499D2B
+          7F1124B7827A0154370EA02C4E8C798CEC11A7187CE9E27BA6899231B04AD943
+          43B9F56D276B87769E45F202A011CFCC6E6971BF4301E00FBFEBF65DFC7F0FE1
+          C2F76264C7E63054CF18E7F8CE6B6C10D7969AE1DB88200F4F5B14B95A6E850E
+          5EB0CC38A57E46D7FF0011D18D83636F71B7015D38B1DC5F3C193AA35DAE8F6D
+          BE122DBE9D8EAB37D4DDDF71C52DD874574B99E4B3231DE3F0BA573EA36BB9A0
+          5DD0024706EB9EA39AC7918F88CCD2D27270A191DBA1133379F2F7103D42B711
+          55600B20F4E8BA78B3E9B9391923486EA1878AEC42C9629DF1E539EF11173CD8
+          6B035AE7B78E09683D5C473AF2FE0E5E6698FC2822924DBB24687C6F61B0FBEA
+          39AE94458079E2D6A09079219E5B45BACBC03BBEDD6ABBAE9E1E80ECC687199A
+          C95D2868C67FA6591B66DCC07834411448E7A5F35F4BF0BFFF008EBAA78B3C53
+          9DE1E7E769BE1ACED3E12F9CEB5AAE3882D9B43DAC983B6175BC1D97DFA9228C
+          BDCE7EE98F011783999BA4CB9B87ADE972187184F2636464B71E5BFE6631AF23
+          7B9BEC3937E90563C0F0917E0BF2B509D9830BA22F86491E0090EEDA2BA970FC
+          5F8438FA79A1CAF78EC0F0D78523967D43487E74D971B63C5CECACA2E7E34F1C
+          7139EE6471B9AD7825C40BB1F721791C7F126664E6CF95AB37EB34E988134126
+          D3B85D0D97D08EBE82DAF700AC4EAF5F4B8C59DE1AD566C2C63F473BB02273A3
+          872A2C264713CEE20B84A3FF0051BE9BDC4F1F0BCE6B501D3353C9C1FA8192DC
+          790B04ACE848E0FBFB7BF65EE7C3CCCAF0BE5C3A9BF2E683CEC9884F9303E666
+          463BBCD712D683B77C951EE07D6D16396B971B5BF08E36266E63B172A47BB1E4
+          0D6BB2E36442675F573657821D4E612DA7757740DE5B6547900F9257ED0EE5C6
+          A80AEABAAEC4C4C3C50C133A6CA26DE58DFE1ED22C00EBB241F81CDACB918585
+          8D8191933EA2E8F590639608B1D8D91925B8EFB7B5D5196FA6851BE7F0F0B886
+          791C493239D66CD93CA737D8F45F41A7E63A58E2C69DB91237CDF500D113434B
+          8ED03AF001B3D41FD7CF64E33B166744F20B9B5D01FBF75BA35D998F85F1B238
+          8C3745A092491564924935FA7653E21F12EA3E29D44E76A997366E516363F326
+          79790D68A02CFF009C953F639AD001E548E4F1CA0240A52D340AD44411C2A814
+          54977C2A593D38505ED0775403B2B840A55EFD15A945728240561193ECA1A6B9
+          57122D49052A8F5514ADB872AAA0A96DF450055F2AC495522C28325870EBFAA0
+          E3958C0AFBA17141ECE2C8F1378874A7E4BF57743A64A5B88F86391CC85BB05B
+          586288534726ADA0125C45FA8ADE87C218A3171A7CE194DC432CAD927C679797
+          EDFE50E2369AF4F207F30F715E1B0751C8D3F2193E34D263CCCBDB244F2D70B1
+          4688F85F45F0D789BF7EE9B236710459F8D4448DC58F74CD2D21EE2E686B89A6
+          B41DC5C3D4E770771293163DAFECDBC31E15D53C4BF41A86B39BE01C3C37CB34
+          B9B3C4FCE73246D08413131AF63838D6EADA1CE6F4BA3C0F106BBA8EAA649A6D
+          633DF2E44EE96E5CB9256CA006D4BC38B8C84EEE4DB4D9E4515CECBCD9191C4D
+          6B226E2B4887CA8DB7E4ED1CC9B8358C7175B8B4D93E9ABAABEBE8BE1E8325FA
+          FCD166E90E6E1E3895A729CE2C7B9C1A1CC8227824B8F98FE48A6F1CB5DB48B7
+          27BAA8CFC6D15998FCED31D2C717970E44F23A532C0FA633CD8C8730F98E3289
+          283A9B4D1D40255F55931754F123B57270B299959232B274E818CC19201BDE4C
+          16D8DB1876C634B9CC6116474E87724C0CBD0B4F9B170DF972C91C3E6E642FC4
+          A11398E66F6C91EF2C631AE6B59B9C39A078355B3E2BD0758C28F4FCAD435AD1
+          33BEB58339AFD2B3310796D976BA463E26B9BB0B768FE1968DA013402E72AB83
+          A9E8FA97877224C33E9C880063F1E2711EA21C29AE651702D7815405921C3857
+          0DCFD735ECCC47430C8F9A3324EDC48B162F445117CAE8C474C203637BADA792
+          DE6DC79D7D4715ECC91164EA1A7E38CCC7F362C48E78E41206FF002931B4B21B
+          A7117DE89E0972D277D041065639962C69602D9A376546E8E69C3803B3805AFE
+          B76E2DE1A48B2E01583B6CD6E7F0AE0E6E363FD269F26631F1BE7959E6C81BB7
+          6BA365121AD340DEDDD623E4014B85B66C885F333663BE6154EC56451926F700
+          58367A7D239FF582002B6346D6B374B867FDD990EC76BA2931E430B79747200C
+          75971E85AE7378007A8F3CDAD2F10491E2C9970C61C277796D9629581A41A717
+          0751E0B5CD1D49E967BD6E728E38C8C7F2268A78C63CE4D8947A984FABD028D0
+          04B81377F86C1A346D3358D68883DCEDCD058DF383846DDB67E39BAEBEF6390B
+          5CC50BB0835EF324AE6EF0F8DAE2369A1CF1C51041F9AEA395BF063CF8D31C37
+          F3930C951BF735CD3B8101AD26DBD4D870E3BAED3F88B69BABE668FAA7D6E939
+          33606632310C5342F7327682D0D3B4B2A8B86E1C76241EBCE6F0BC79D3EBB878
+          F859394D9659400DC28BCDC905A2DA5ADB00B813C59147B8A585D91A7C07163D
+          47181C48CB7CC7613CB657B6C935B896F37575F91E41D2C0D7F1F26A2661CBF5
+          61F6D9D931DCF6F361C2C5F0686DDBC5DDDF0B20F45A7BA5C3C7D3355DB87346
+          C7BA1DB33C645BE893BD84753C50B1D38E412219E18CCD5F42975921F1E2C923
+          8366918F7074A2AD86420D90C3BCEDBE8D0792DAE465E56A4ED9048EC8CB7B4C
+          51B2491EE3E5817B6316781CF420557DEEFA74797A888A3FA27B5A048236C510
+          7EE043C9147A9EC0F6EA390A667BD1A99FA7E4C2409806EE1BCB490D1C975102
+          C7C902BBFCAD9D07122D4335B8D2EA585A580D2466E4F99B632D697016C638DB
+          8B43471D48E436CADFCCFADD672F1E50D7CAF0E1063C38AD6C7B08BDAD0C6F03
+          D44D6DFC566A8DAE19C7790E92671B3755EFEDFD574E7DCC44BA474EE7CB5134
+          3C0690C686F4AEDDAE81B1EFF758648B79B7727DFBACC222C61774146BDD532F
+          2226CD37905C600E3E53A701AF737B1201201FCCAEF249EAB2C4DC720F557F28
+          F5AEAB14597999192D718C363A03735942870BA46104BB6F20775AE64EA7A18F
+          CE9042C63653E863982FB3493E9AAE3B9FCD621091D411DE8ACEE60636CF02FB
+          75290B9DBCB831AF634F2D75F65A9C60C2623B55A1648640D89A5F23ADA006D9
+          37C745B2181C2EC0F82A8E8B9B0B779181D039AFF2DC0B656B882D7FA7691F7E
+          9DD6C6959034BD4F17264C58331B1481E71B241F2E41ECEA22C1FBFF004EB57B
+          0BCB9CE717389B24F24958CB3B2C5E367B18B23FF319324A6364624717EC886D
+          6B6CF403D82AB5A45ADB0E630B9840797B006BDC08DBCD9AE473D473C727E08A
+          881EF696B06E775B0D2549CFA185B248207B039FE41702E60276EEA2013DAE8B
+          ABEE525CE91D1C71C8C85CD68AE59B4C8370753DCDA2EE9DCF1DA943DCCD9C91
+          746B68B24F6E2F8FF3AA863B73492D746E3C800F03DD73B251A6315FC9D85CDF
+          859E28E3E378A27A12DA2BA6DD34C11C61F334CB235AF6B58F6B8006F87107D2
+          781C75F7A58E5C71B01736C7406BD96F9E3D6C180C4C730EEFC2782148809880
+          B6ED1C0007652C6ED0458E3DD64612011FD9749251CF971D8C3ED5D951CD6EDA
+          2DE5744B03CFA859F755762364068D158F0FE0E7080B87161A7834B3E3C058F9
+          191895EE782C8C3451249EE05F5F65B31E2BA306DC48F956108E8B3F8C71E482
+          5648F6BDAE639A76B9A45106FA156662B8F245AEC08ADA4741638ECABE4FE8A4
+          F8975AB0E386B4922C85B31C819B3CC6F98C6125AD71E1AEF7A363B0B15CD2A3
+          808FB7E884170BAA1F2B793E918E674003DD30739C5C3D2C21B6DE6EB8A1DBFE
+          16935924927F0438ED007A41B02EBFA93FD5659A1241248A07DC5ADCC1C631B4
+          BDAE687346E735ED04558AE0F079238FFBD71B36AC6A371DF2B01EAF7537ADFB
+          F24DF1D2BFCE472E72D8F1839D288ADAC009E3924D7C736BD16663604FA6613D
+          D064636B19193319B21CF8D988E8CED0D63230C1B769DE5CEDFB69C006B4B493
+          C9CF88E95AA4AD8B2619BC87797F5903DE5925023734802C3BAD100F407F9972
+          B715A395243365BDFE5B71C59FE1C037B01B3F86CF4E9DCAA370F7CCC636666E
+          790390455FBF1F6E97D5765B109F47764B71DA20C67361639A3617B9E5EE6BDF
+          C16BAA9C2AC1AA1CD1AE66D6C1119DD202E77A1976D735D7F8B8F615FF00CB8E
+          86B3159738E578732753D3E3C86F2E38D3BB1650F64AD6BC1A0E1F89BB9AD3EC
+          6815CE8E688B80C97B9B11BB73181CEE9EC48BEDDD61711C1FF0958A688904BC
+          ED3D9AA7BC465D3DF0B1B34926E25BD1A1B62A9DDEFDF6F6FF00BEB89049239E
+          EFBF256F6239DA7E9F249260899936E8C4921FC24B45103B11762FADF0B50385
+          0A6826BAFB2C73EC5246FF0031AE562BE56590D971207DC2C1FD94A2DB8ACBB5
+          CDA2E163B5F0B135E1A09AB5124C5E00AAA4946CD6C6923F25A8F7023A73EE80
+          9208B550DBEA54B740023A274B566D239B6140BE295493EEA5B66D4D7082AD34
+          5656BC007E563A523849E85458B52012880D20528F753B815160208A53D0212A
+          102D2D11000B53C284B4044408005A9011BC0B53BF8280A391D11A54940BEAA0
+          512A1104ADFD09ED83518A773CC661B95AE6B6CEF6825A2BE5C073DAED73C2E8
+          68F2451E746663288DC1CC77915BCDB48A17EF75F9A2BD9EAD9B96353D1F272B
+          4E2E83134C806387452B23998D1B449EA375BEC12D20120D55AE36C6BFCC75D6
+          F1D0347720FE5F92DBD330CC9A2E448C94B6686502488B761F29CD24B8BAFD40
+          168B6EDF620F55B516899071E1CB74129C198B9B1E532277944B402F01D544B4
+          1692074B0BD7F149FF0094AC98F2E9591A0E6C1943222D59C774392C92E29058
+          25B2B4827B1DA5B5C9E78E4629342389061BE5745E5CB1B5E648E78DDB4B8BF6
+          DED248FC1C83C8AF90A1DF42EE914A7D0406B5F76EB344923DBB5761F2A90431
+          C961C646C8450E2FB7A69769C7BF4CA759D2F12394C382F7CA19B5BE66F6B84A
+          F00F98E146DAD04717CED209AB592299E34F883640668CDC4596D7C3B4FE215D
+          09FB9E9CF62BD578BB2B4C8351C2CCD036E441361621C99F3B4EF29B8F3B2231
+          C8DDA1CF690F7B1D203DC16835EA6AF38F927CC9CF93E54EE637AE3618757A88
+          1B98055D0B279E3B92B9F1666D5524F2D982F87CB8659CC91CE268DCDDCD6963
+          8B9BC7E5D8D11CD7458751CA66A2E64EF831E2788F6C8E88796E99D64979683B
+          5A790DA680280B04EE27D5F85FF67BABEAFA078A35A307938FA469EDCE2E9498
+          E4731D3B2361DA5E0ED0EBA22F969BBAE3CDE565C5985DE7CBF5128141CC7B9A
+          37501B89775E00F63C7C24EA757618D18C31DB58D21D40063A803B8F27A724DD
+          8BEB55F0177F4CC11918790E0E706C23EA5A4B7F871F1EA2EA16D04ED0057700
+          FBAE6C5060B9F2190BA23D363079966AABD55567BF35DBA73DCC0D6747C0CA6B
+          B2B4D3A8E3C60C7163674EF0D2D248B77965B65A3A004593CD814B8FC9FC8B1D
+          2F0C78A356F046A0ECFD0F52CDD1F2E384EED431332486701D1969687B39A37F
+          20D0BEA6F573B2B3B225963304F14FBFEBAA2C9788E269697178BBE48E43AEC5
+          8B0E155CEC6D7737478276C4FC731EA11089FBE28A5716798D75B770B61DCC06
+          DA43A8F500F3B9A5EBB360C2F71C68E58A0C890B22C98E37889D2474F786B80E
+          490CA356287434BCFE37EDA7B6C5F0BE46A1E0DF17EAAD9F133DD068E3588F29
+          D832B647303DB19607797B23731E6CB8D03E4EC6B8EFA7789F02785B2F37C258
+          999A6E6C4D1365458F3E297BA3265324DB247970F28000346E7BDA05F167711F
+          47FD9F7ED2BC4BFB2C3AAC1E12930E48B5DD3BF74E762EAB8032465B2460261F
+          277C8D00BAC0AAB02BADAE2E769F94EF0AE9B9DA8E2E9F2C1967222D262C78F1
+          E195AE126D79F2E3F55349735AD786D971DB7DF9CD571BC7DFB01D5F46F0C68D
+          E30106CF0BEA4D126166E53847F52E1B4CD10672E2E69738EEFC3B5A4D85DAF0
+          5E2F81257EA587A96A58B979B9B07D363FD38FA5C281E4303669A76C32C8181A
+          5F6046D17FCC0135D1D73493E1A9C45E21D3B46D661F0FE7FD0BF45CAD45913A
+          46B5C5C4C91C3235CE043DC3782E20C6D69276D2C7E22FDC7E2AD3753CBD3321
+          BE189A5CF2EC5F0DE33257C0F64B3CCD6B07954C8DEC88ED2C0DE5A4BB92E214
+          DD9EC78F7E8382CCEC50ED57C3113CE54D04B3418D9AF763B5A29B2B88606961
+          2D241682E16496F40B534DD1A6D7BC452793AC69C1B1E29CD8A12E7B4343185F
+          E4C4C983438D80C0DF5120F1BB90BAFE18F0B3B58C8CDCAC633C50C91BB244F3
+          CD247249E5CCD2E3088D8F240DC410FF006B0EB6D0FAFE67ECDBF661FB2DF04E
+          BBE24FDA1670D7350D57171B234FD23C373C7206BA47B0BE299E6CB1CC92336C
+          32090B5AF7120921D7CB3D0F90F85FF6659BE30D2BC41AE47A6B468DA1C11E76
+          A792236130C05A5E5CCE82DDFC20074B98BA837757CC3C45E399F589B2A3C5C7
+          6E069D2C8D7B716F786860DB1D92289682EA2003EB77BAF79E26FF00F26BC459
+          7AE6B397E1D0CF0FE16A8D8E0C9C50C8A56CB8F180D8B1DCDD819E5358D6B360
+          6F20538B97C933F507EA19B919730679B33CBDC2360636C9BE1A00007C05AE67
+          5BBD256EE26B4E82198C8E99F926B64A1FD87F29EE077E0F6AAE6C46A5E27D53
+          57C3C6C3CACC924C3C62F30638F4C711756EDAD1C0BA1FA2E587029B805B644B
+          E55779500F3C7F54191452A977CA969B05058282EA50D75936A0A08DC4DD2902
+          940EE9682FD1070157770A3720C8A072A809343AA96BB8282EA09E0AA83DED46
+          E4170A5636BB9E558BB8413DD0AA9360F2A03A90753C35E1FC9F14EB789A5610
+          0FCBCA788E367773BD85F53EC3BF4EABD2C3E04D226D6F1E139FA947A59959E6
+          647D146EC830B9F41ED84CA0179690EF2C3C8E7F1D7238FF00B3A7F95E37D126
+          7633F321832E39A6C761703244D76E91B6DE45B411628F2BD5CF1433E587C389
+          1C3FC632BA28DA5AC85BBE8B2DE5CE00126AECD16DF29CCF2B8AE4697E01D3B2
+          B2268F3355CCC46B266B3CC8F019335B1EF0D73DE44C36D12DAEA092395E9F0B
+          423FB38FE141AF6A10C9A80918FCCC38FE9D9B1B1BDA5837383DEC76F735DC06
+          91606FEDD6D1341D37C53E1FD47EBF5B1A6E560638FDDB838D86DCB7E6C8E793
+          E5B9CC70D87A7ADC3A368F4603A1E16835CD5257F8774DD37EB3EB1D4CC6742D
+          E1BF89CF0F70221A0C05EE696FA5AEDC6815D3C25FD8C11FD064E98F91A49D42
+          1706B248DA1D8E58585AD2F0E161C646FC0A201E38597EBBC19E10D7351F0EEB
+          3FBDD92DCB81A96A3850C5236021CDFF00D08BCC0256873387991BB9A7A1B158
+          703F6A993A66A8ED3BC2DA0699AD6B39710C18F50C9D35B913991C18098231E8
+          2EDC1D4F7B5EE76E278BA1F3CF14606B18FAAE64DAE6E1A94931FA813CAD3317
+          901DB8B6EE882087551BE0AE17ADB8AF69A9F8C740D0718C7A664E66B398E1E5
+          EF8BFF002D891C577E590E699242E20171063EE05DD8B7847C4AD8754393E27C
+          7924666628FA79F4DCA8B165790E0C0C77A1EC70209043A32EB0C25CD1B8AF99
+          E3F95E7C7E7EFF002770DFE5D6EDB7CD5F174BD478F7061C29B0D8D9A79E5607
+          C6E932387B9A082C247BD3BA8241E289E53D92BDA66697A678B1B86C96466999
+          6F92438D9F1442078711BA36CE2C47B03A8798CDA40DC4834D0BE7703C695952
+          69DAC62CF873C12399212C2268DC38DAE61AE847C1167AF0175B46FDAA6B7A77
+          87B1BC3D3CEDCCD120C87644704B1B5CF85CE6863CC6FF00C4DB635A2AEB8E8B
+          D9B3C41E0DF10EA2E834ED233E7D25EC67998DAAE4B64CA8180B8BC3658591EE
+          000691E9AB1F879A365BBA8F138A06546D9B09CE9CC6D2F9A46025EC6F37B9A7
+          D8114450E7ADF4ECE76A526B381047992E44B063303217CB29976B00710C6F4D
+          ADB3C57424F5377CBD7745F0F69F163EB7A06B6F9309F9C719FA5E68DBA863B4
+          31AEDCE0D21AF61DCF66E05B6586C0B0BB3A6B3277E560B23CCC56798EAC7823
+          7381F5349B6DF24533AF1C37EEBA73D794D1AB3E19C78E19A57B639268DD2DE3
+          BDAFA06F8751DD1D807D2EE69DD0070273CC7EAA685995206331A3F2FCD7443D
+          31B5DBDCEE002F365C3D409208E6A88E6EADAC69BA666C90E01CD9CBE2F284B2
+          48319C1C45383DB6FB6D9701EA16D0D3C590B2E97A9B73E164B2E9B166C724A5
+          AE1338B9D6E2286E636C7E17575E3771DD6E75FC1E5B55D4867643CC71B6187D
+          2031A3D9B57C93D6ACF3D4AD6C59DF8D3C7347B77C6E0F6EF6870B06C583C1FB
+          15EFB37C3DE17CED2B124C0873B1350644F394C394D9E27B83E8539D1C7B09E0
+          D03270E6D1BB0B0E2F85A3D4B1B25D851E2E3438CD6BDDF5790C8E620B83435A
+          1CE1E6B817721A3A734003524BD7B478DCACDC8CE99D364CAE964775738F278A
+          BFE8B630BC419F851B208F2A538AC76EFA7F31C1967AF00F17F0BD043858FB1D
+          24F135E0B890C7588FE01AF551E458A3C75EEB9AED2712F98E4041165925023E
+          0107FBAD5E3AFAC35BB8BE20926C980432BA78E32C2DC6940692457A7D3C1160
+          0EC480DE0741BD879F86590E3BC0D2246B5A2498090EF17B839C2CF3D080D680
+          78F6B3CE7E918B0197E9E321CC2EDCE9F25AFF004DED01A006D9EBEFC1078A25
+          64D3F18B326396399B1BA36897F8ADDECB6D9DBB4821D640E08A3641E395AE79
+          B86B61D162EA2F031F520E95F45C735A6321C7F159F503D7ADFBF0BC7CD2CACC
+          9717587B5DD1DCD2F550C385965AC7365C6C825DBC6D6B98E3DB68F491D4FA7A
+          74FB2CBA8786F0DF89265EA9A8FEEF73617371CB23F3DD912B40DB1BA9DE8E08
+          1B8F4AAAE0D3ADCFB234B49D460C9899170C9AB965707E42E946CDB7FDC2F21A
+          7BFC9CC68DFB1AE05A5D57C2F590B5D0C6D6B89208F4923A85EDF83BBD4F7FA6
+          6AEF89B25369A6883CF6E56381AD6B49047AB935D92985EE7D0DCE147E55E49E
+          49C4624909118A6EEEC3D976F7BA9152E144002BE554C8E2035C496B46D68BE8
+          2EF8FD4FEAB774AC5972F53C582130B5F2C818C765B9AC8B9356E2EF481EE4AB
+          4BE1CCB95C1B872C19C76B9CE6E3BF739BB412EF4F068017755F2B3D7527DAB1
+          61E992E78AC683272DCD89F2C8D862B2C0D04B8F176D028926A85FDD6ACD8C21
+          89B279D1BECBADAD24B9B447E215C5DF1FECBB9A6CBA4E0E95A9439316164E5C
+          8C0D664CB2CA1F0D72444D682D2E70DCD25ED207046DEAB5198DE1FC68B6CD95
+          93912B1E2E4C56D170FE6DA1D55401A279248E02F3DEEEAB4DF83FF953309E0E
+          CD10F9EC73DC689BA0781C77E791D6D5269B071E0C4FA6CD9A5D49FBBCF81B16
+          DF26BA00EDD64FBF03AD0BE573E36D9700D259BADBBBA91F34B3B715F139ED73
+          0B5CD75107F94FB2B9D75FB4638F223DA01C6328BB2EB7071F8EBFECB13E792A
+          CEE2780377B7F816FC6C219B76836E07759B1D7A0FD3F4571C34B6C6D2777E1E
+          7F55B9C51AE336695BB8471BAC341A8C3680A1DBEDFE15D0D4B2A1CA964FA4C6
+          6E1E2B68B60966748EDDB4071BA1D48BE82B81CD7385AFDAC9180376BC51F482
+          7AFBF6556C76D3CFEAB538A30795721692D02EB759AFBA3A03111D1C1C2C6D37
+          4B2968FBA96B6C1B2057637CADF88C401520F1C859618BCDDC03D808AE1EE0DE
+          F5DFFCFEAABB76EE047238E0F441406EE852027DBF4561CDACB8F8F264CCC8A0
+          6192691C18C634597389A000546300296D127774AECAF970BF1669E1943A3962
+          716B98F6D16B81A20F7146FF00E16D65E1E2B72B3598B264E5C436B31DC626C4
+          F73CBB82581CEE2AF807A91CFBE7CE41CF730349E8B5F2A4BDA5C6B8DA49E49F
+          F052ECE768F169B931B72F321311C78E77BB1256CAE8F7341DBD402F6970B683
+          6391D8D5733C1D91A7E95A56AF9195872E1E79798B1E3CB67D500D340C91025D
+          187756EE1EA1645D2E1D7CB3171C966088991CCF638C6FE5AE208DD468F2457F
+          F6A632DA6B630E748E76CF4F377D001EFD56EC9813688E6C7A8C9147163CFB1E
+          1B3324945B7D41B1DF3C0EB400228B815B587E21C7C56373D9864CF117C78B1C
+          E4BA30CB6ED2E3C0F4F34077E4D77E37E4F5EA18E73998D8F8F90C963F3B298F
+          639EE6C9B1B1B403BDBF86EC92D177C107837639990E1264CB2B37C6D71A631E
+          6DA5B669A4D0E8001D3A8BE164CECD963D45D92D9592CD21F3B7B4EFDAE70BEA
+          6FD5FD88E173327249DD24CFDEF77364DBBBAE5FEEABAECCA8BF7D31FA86440E
+          C59670E9A58D800682EB796B5A38FF00FC8E95D96A6B391087B4C6FC795AEF53
+          1F0020ED04B4070B201A17479E7926D706590CAF2E3C5F60A1BD172F2BAADC9B
+          2DD91207901A1BF85AD0006F15DBBF1D55F0F0A7D5729B144092482E7D12236D
+          D173A81200BEAB503FDD77FC001CFF0017606D76C8EDC6622312BBCADA7CCDAC
+          246F76DBA6DF268296E73708FA0B3C0DA5786F41C5D3A5D734FD5358D45D6EFA
+          57BDD8F80448CDA276BE1DC5CE00D1682C20B4871B35E235D1E1D82093E81863
+          9A4680236C8F9846412490E21839207FA806B87570253F6878FF004DE20FAC63
+          E513E5C6DC89C989B18F31ED0FB6961208731EC7120379791B4002FCA1739C3A
+          F458E67ADA125BBA0E3E54061AB3DC7752D142CF28E75ADA2B5D5458F65357DD
+          451EAA090A2BF34EC838B400029B51D8A868DA82D6145775097410145A9ECA29
+          02F82A1110022229A081113448357F2A2F8A444D0444534111140444400888B5
+          01111002BC67E55107083F47FEC2B50F0964782354D4F5174B2F8B342DAE6E1F
+          90E9A29F01CE0C7CEE05ED0E7C45E29A486EDAB6BACAF0DE20C6D47123C56BA6
+          972B42F364874ECA11386317DB4C8D6581B7AB4EDEA01658A209F99E9F9F3606
+          4B2681E58F6FB1E08F63EE17DEBC0BE1D87F6AD992784FC34D8F325D4B221769
+          F8D2EA70E2BE17DB4F97E4CBB5D90E00BD971FA9FE922802C3D38B39BE4BF6F9
+          A792646EE63082DBDDC01CD9FF00B2D8C5C5964DD93339C226B6F7B9CD0E7760
+          1BB9C3701C74BA1DB85F42FDA1FEC83C47FB27CB89FABE8D99A7C806E2DCBC77
+          63B683DCC1B9B21DDB9E58E76DA1428FB86F8EF166A2EF1266B7559A5FA8D4B3
+          5CE9724B238E1635F75B5B146D01BD2F8A07774041BF7CEBCA6F3F4C395E764C
+          8DB711231C38601E9E011D071D2FF527BDADA970753FDD6EC96C723F4C864062
+          7BC38C31484B4D35DD1A4806C5DD379E96AAE820C5CC386DC815B0ED958D21AF
+          247A47A831C1A416F2475B2A9919B04D50889A25DA0F9913CB9AE713764135C8
+          35C5557459B9D4C8ABE85AA1D39B925D1419832B124C790CD1B5CF6597551783
+          B4821A6C7AA8000826D608E619326C84CCDDD51832CBBB8A228D3471F0B73C4C
+          FD306A2EC4D19EF76978DBA282696231CB2B773FD7234388DC41009A06834570
+          6F6340C382295B3E44432F1DF03DCD8193B37821AFDBB8F56DB9B75C3A8D8EC5
+          624CE6DA35DE62C79FBCCC2430B1EDDE0B6C7475F3D0F4AE9D5748CAD874CD2E
+          7D3DF343912E498A5C6116C658F5B5DE6077AF979F496D3455DF7D1D247D7E57
+          9504723A59DAD8E3C612176F71700D68681B9DCD5006FD23E02F4D91E24C5D0D
+          FA566E938E1BA9E98079F9D296E5B667B5E4090C32B0EC018E8D81AE3571D8A2
+          4572EBF8B16CBD67C59E26F0DE83A13F52C5C9D23020CE760E3C8608C42C00CB
+          33BFD41C769703CD92434936B5741F1EE27877C5989AB37C39A6EB704513C43A
+          7EAF88CC8C7DAD6B847B9AD70DE4100975D1E7D3C90B9336A6DD4236E09873B1
+          4CF946595EF9C4710FE561171B9C03413B8EE7037D06DB76EC50699899D86DFD
+          E4ED4E39201912E6C7139CE602C6991AD6B9C007B769A2EAB21A786904F9F234
+          EA79704FA94196FC5AFAA9C79B062966EF31FB8C6C644E797DED7379DBDA85D7
+          AB73C39E26C7F0C4D85911CDA9C1AC636A8CCBC3D4F073A3C7931F1D9B437635
+          C1C5AF716B0873CD06B3A1B35CDD7B50832F3B2BE8BCB8B022CB98E14F3B01C9
+          73072C123232E0C7101A06C1565FC9DB4BD34D16578FFC4BE4C930D735174116
+          3694349C2698B3E66318C8715AC2C6B9B40860A6BDEF21848A3BCE3FFAAF3316
+          A93B75BD6269715BABCAEC8FA87BB3374B33FA991FBD8F683BC3897137FEA041
+          0B406971C9991493679974D6E409DF8AF99CE9657398F7BC173039CD2766C2E2
+          D1FCA79E6BDA6A073B4CD5F5EC2F18795E0FD45D0864DA5E2601C491D2091AF3
+          13A08F633AB29C1EE3EA0D3B770E775CF834FCAD270B13498F41D3BCBC6CBCB8
+          756C4C6CBC87CAE224DB087B77BA22D7464460D3B734BBF18233A2DFB3DF13F8
+          BF27C17AAF85BC23958432BC472E4E3E568A2069CC931E28237C6C6CEE60F438
+          17B444D702E2C0D2D25C2FE09E37F159D7B261C782318DA7E1B7CB8E26EE01EE
+          E864702E3EA2035BC570C6F0BDE78FB57C7C3D3C3B2B1F1B40D5642FCA87061D
+          CE905C84741623ADAEAF3097D3595B5B57F21D4333EBF367C8D8D8CCAE2F2D63
+          434027AD068000BEC00016A66256073AD4222BAC9D111120276445400B53D028
+          45413A2229A0888A6822226829690D364077C1508A0CD1BE396489B3B8C7103E
+          A7C71873AAF93448B3F72B13C06BDC01B00D03EEA115D04444D044441E9BF67D
+          E289FC31ACCFE54387347A8633F025FAD8D84318FAF5B1EEAF2DED21A43C1045
+          770483F43F0F68A73F28E97167E89090C6BBCC2F6663A30017BA4DD03652D680
+          3D5D85D1E963E2CBD078374ED45F9C350C46CF162E3BBCB9B2A3718D837B5C3C
+          B2E047E268702D06CB7776048D736FD457D5F4ED23F7769336786CB90D9A3DA1
+          D1C2C682E6BCB486B9D65FC381A673D38A6DAC18FE31D2BF67D8DA97EF66E5E7
+          78A63C69198306E2C8A17C8E2C779C3870F439E769E4F03F9811E375DD172B57
+          F104991AE4D910F98E6B8455B7CB8C9BD918791B5A0135D871D5344D0345D1DF
+          F5396C1AE4A59E9C59D8F8E269208B258F0E241A2074EC6FB75FC7F275333ECD
+          78E39195A93A4863818F334C66F2F1F1DA0EE37C3768B0DE7F08E3E16D6AFE12
+          D7B44CA960D5346D4703263BF323CCC59237B6802770700470475F75EFC6A4CC
+          72F8B4F6BB0CB6573A318E0441A2C73C724F1DF8AE815DB97E5E7063DCD6BBCC
+          0F7BA6B21BCEEA228FAACBAF827B0B5A9FE375FD4D7CEA1F0D6B2E619E2D3B2E
+          98E702F6C4EB6B9945DF622C7EA17572F40F16F8A7127D5F261D43568F17CB8A
+          59E473A630B4F0CDDD76B78A04D0ECBDD0D45D97A80C42D33436218D8D76C019
+          678ADA6AC9BE95FED48E5C6C574E72B14E43268E480B23121DCE7C2FDAD6988F
+          53648ED63D5B9BB8175F05E65B495E27C27A6F85F3B1268B5BCECCC1D4642463
+          BF86633450DAF73B6BDC790E1B435A3A1DDD42F43ADE95A6FECCB4BD372B149D
+          4758D4617B99906763A08E23D1C22DB64B8106C92DDA5CDA2FBD9F3535543DFA
+          A85E3C5D5E69A4C89A49657992591C5CF7B8D97126C92BD4784F50C3FA67E3CE
+          E3F50C1BA1133C3226127D4EDD7CD8A1B28DD5EE1D179445B9E87B9F14E47863
+          50D322C7C28F35BE216E538CF9B39AC774058D0C686936C735C0F3C821DD4552
+          783754C5834CD4F072B199286B1A5B93E6B8F94449CB9ADDE0105A6AA883C717
+          45792C29B043366663CD21DE0F990CA1AE0D1D5B4411CFBF6F9E86B91911B730
+          CD8C65EA1ED74EE0E7875DD923AF3FAA93D5D1EFA1C46C9990C10C6F3238B9A1
+          8E887524B4705D441F4F37C59F6E6B0B63D8E33324832C969631CDF4B9BEADC7
+          9EFC36BB1B3F00F813A9659331395313317190F986DE4FE2BF7BEFEEBA7E1993
+          07CC95BA9EA9918188D693B31E2F31EE241FC00F01D61BD4B6C5FA82F4F3F359
+          F7131EF248751C8D3626418D8ED6CC7D2E95CC64B27268C61E7716536B701428
+          82B9E315AC8CBB6C523C31AF68DE1C0807D40F23AD1E08E955D6D70FC29872EA
+          3E20D4F2F1A1CCD4B131209669325DE992361F43257F2E03D4F6022CFE2A06E8
+          AF5DA965B99ABE499646E43213E546248C014D05ADB6D7602B917F63D3BFC5D5
+          F9352B950E07D60876BD91C8E15B277B1A3B03EA711C51BEBD6FEEB56179C3CA
+          1E65BB6C849731E7D4D3408047F2D03F3CAEE3B2611A7C4709CEC395AEA9E37E
+          46EF31C7753D8360DAD03820B9C6F9FB19F519D86CC56CF2CD938F2184631697
+          B831C770DBC9E378374072EEFB8D76F0C4353C2D3D90C329FE264995F13A66BE
+          A37B1AE0187656E6D8B377EE281692789A968B3EAF079AD961C718D180D8B25F
+          B0BC1B77A5C4069E7791641AE05AEA3709CD90B498E263181C1A666B1838167D
+          5D6C0BAEA6C751C2E961C12E9DE5BE0DF2E38634E44AEC66C8D6B5E48DADBBE4
+          D3851ADD5445035CFAE779CD58F9ECBE16D504818DC0CA32F1FC3103B775AF6F
+          7E17A3874FCBC5D2E274F1BE07063486CBE973AF8E01E4F4E7ECBD578BF5DD3A
+          79B0DF87E18C5D05C60F2E7769B9394DC7D469C5AE94B25717377539A5AC2D68
+          A14D6D107C98924109637F87003F81829BDEAFDFA9EBCD2D7C5C75CDD2B771F1
+          31FE9E793289DEE0EF24C0E029E289B04539B5C706ECF17D16283060334627CA
+          F2E1F35AC99F1C4E798D87AB80356473C123A7CAC9A5BAB707094B9B4F8DF1B9
+          A0348EEEB06C0B1C58F6EEB3EA7AEE56A464C89B3B2A5C831C78E1D34EE7BCC4
+          C686B1AE3DC3435AD1D053471C2ED377118DFA8CFA3644D8D81A93B231448D7B
+          248C39AD796F2D786BB90459FD48E41E72C6F9B54960C71318E3735D109A58F9
+          632ADC0B9A092D155F03B0B21719F2D80D000DBDE85FEAB19711DD5F1983A5A9
+          374E386D8E0C6641234BBF8AD0F73DE36B6B7173F6D93774D15CF5E02E3C40B4
+          1A205FEAB23897B483540F16B622F0EEAD97827331B09F918DBDD1B5D134B83D
+          CD16E02BA900827D811EE173B9C7BA35DA7823BF40B24419E582787826C7FBFF
+          009EEB4E374903DED7816C76D2416900FDC7D96D3640E69E035CB7CD9D7B8338
+          E5A4A8BAEAB0B5E28FFB1501FCFC2E9A8CC1E07DD4096D63157D1438F24DDA6A
+          B61AE63BB57F9FFD2A90D7720D13C5515AC1C7F353F56E841A739B628D1AB1EC
+          B3E5E9172C2E068AD4FAB971242D047ABA35C2ED5FEAC5F558E4CB731F63914B
+          9F565F715D10E791E5C98EF8A6646D7B8161E5AEE5AF24F4B0E681C5515BF852
+          49A3486695B2C2F7C6EF2B6DB1DC92DDC0F1C0F57BF23A771C4C0D7F234E9439
+          858E6D83E5CB1B5F19AB165AE05A4F27A83D4AC926A0C2D390F7EF758DCD7837
+          27FAB9E7F5B589DECCE8650FF365D81C5EE7741DC95DFD1B1B2B5F7FF17506C7
+          069ECF31FE73C038D133F0B86FA6386E7068683B8922852E261E9FF5F23DD2CF
+          84C8F0A1748E1265C63736FF00946F05EEB770D6D9E3A100ADEC2D562C1D21FA
+          762E5C18C324B59919244A1C5AD7EE05C403D2C0A000E01A2795C7BEFCA646A4
+          5DD85A7E5C7A9666363EA59F8D8E5DFF0098DAD8A185A640D8DCE1EBFC5B802C
+          DC28F770E07434ACCD70E3E6C3A4F9FF00FF00D06B71653870DB0891D61AE8C3
+          7BB9A0B687A7CB14011C5F5CD40E2C1618FF00226742E761CC6531BA285AD6C2
+          DE40781B09E779E0902B85CFC471762674D46238CE0F639E5AE673E96C6D0E23
+          D46C1E373A9A5D541C579F6DF6AE56A9E14971B526C391952088445CEC996173
+          439E3F135A1D44D3BD24F001B3D393CEF143B33263826C9D430F2D98EC6E3322
+          C58FCAF2DA1A1C06CD8DEEE70268DB83AC9B04F532B50CBD160C83A3E49225F3
+          B0E6DD08DDE5B9A1A6DAEDC012DBFC2E3B68F4EFE22563E3243BBA5BE87474A9
+          EDC606B9C04C431FB5A09ADC0F175EC3B85F45F1D7ECDFC37E1EF10E4E95A66B
+          FF00F8874F38F0C906BAC85F8EC6EF8D8FDE6178DFB038BE370EA36922CFA4FC
+          B705AC3911995FE5C7B807380B205F257D271FC75E1F8350925CD865D5A27C7F
+          4F1E2371E18DB135AE05BB1EE043771DD74D1CB9FC9DD6B1D5B611F319E07E34
+          B2452376C91B8B1CDF620D10B0DF65E8F1FC23AEF88B2B3F271B4E9B231E3C93
+          1CF938ACF3216BCBBF0B5EDF4B89BB01A791C8E395F418BF62786DC7DD9DA861
+          610C731991CCCBFA87E544EB267843406398D687134FB02B83609E7E527D98F9
+          AF873C21AD78ADB9E747D3727506E0639CACA763C4E788620797B880687C9E00
+          B278057D1FC2FE05C5F0AE4E9536AF2E5606A592DF3B2A092169662628631ED9
+          3CC16F0F79707535A0B59C6E25E437DF66786FF64FE03F0EEBDE17D4FC75979D
+          9C2319388FD2F107D0C59CFDAD7C731730C930898DD9B987D2E95C5A08DEE393
+          4AFF00F2AB44F04F843C53A2C7A345E34CFD708DDA8661920C7C39581BB26C58
+          AF731C47A4BEDA7F8113B6836173BD757E9A9247C0FF0068BA99CDF14E6C2C88
+          E2E2E2BFC98717CF33792D680DDAE79FC4E01A1A5C2812DE0014BCCEFE15F2A7
+          FAAC99A6D8C8BCC797EC8EF6B6CDD0BBE1625DA7A657050B82A03497EE88B072
+          924AA5A969E5516E83D94F6557140504F1EE94A382A2E904DA90DF6E8A96AC0F
+          E882690744B1EEA96501100B4580444404444044440444404444044440444404
+          4440444401C2BC533E191B231C5AF6B839AE1D411D0AA22BA3EBD8BFB5C3E24D
+          17C370EB38A751D4B462E832F2723325749AAE299BCE6472DD8FE1B839A0DDD3
+          98288671CAD4F57D3F2F528D982C971863B1AD11E56417BCD7F374140F1C3470
+          3F55F3DC1CB7E1E436461E68B48F70782174CD4D30CF85C43D8E05EC3DABFD97
+          AFE1EBC79F43EB7E24F1CE6FED4F0CE778A7589F55F11E39C5C464F985AEFA8C
+          663267132CAE7876F686B582B821DC90402EF0EC871D8F97D0D6C81E01318DCD
+          1560B473B68824DF3F8474589D92CCBD35F31CD6C8E6BD9509DC5CF1B5DCDD55
+          3680E4DFA857175AB899865C99CB883E602E0DDA00BE4FC573ECBB4CE6FF00A4
+          FB7AFD63170BC3DE2081983958DAB699144D78C8C7B3BDB2B6DC24DCD043DBBB
+          6114002DE2EF71DDD2F223D3F48965C2CE3A338C4629063492493E536473D8F6
+          901C19C46403740EE2DEE42F2736164410C7913C771C9DD8E0EDA412363BAED7
+          7A49DAEE6A8D5104EB3F2DED66D2486F4A1C01EF43E56FC6586BB65D851E2B43
+          A10D9E50D91B2B7203D800DCDA7303090E2EDA5A1C474E410E047BD8BC4BA3E9
+          DFB263A04FE0AC0C5D4B519DF245E2AC9C89464BA06867F0FE9F796804B453B6
+          BACB6802791E0F4FD370A2D7315DAD64E447A548E89F913C4C63B2042EEAF6B7
+          7F0FAFC366AC826BAAF459DAE6064EA0E9E5821C6D17143311D1BDECC4C99F1C
+          5DEED8DA73DE492E7ED71693DE85F97E46A3433752D35D892418F8F9F336783C
+          D2EFAA6184CCD7BDA26918D8DC78609055876E0D78241A58B027C666A6D13FD6
+          62E1388764BB0E58DF2BD9BCBDEE670D009639D5D838007859FF0069FF00B50F
+          044FE33F1064782BC2A21D1F3DCC7C0CD4B26499F86EF2DEC95B13ADA1F1B9CF
+          2419180D359E9041BD5F0E7ED9B4DC1846367787B4EC8C59228E39D8E8454AE6
+          39EE12B8D6FDD523987639B6C201B2015E59B9B158D8FC88BE9F0F19E6774CEF
+          37CADC1F1EE24B18E7B5CD2DDE4BDC2FFEA68F75E8E5F196ABAACCCD7E5C8D52
+          6D4F120D8ECB1A8EC7E34E3D10C8C0D8C11B1AC85A6CD92C7516FA36F8AD43F6
+          C3AAE065E57EE2970B130F25BB64846938C37337EF11C96C3E634380237137B5
+          A7B003892FED2B56CCF39D982096791ED9064430B207B48BAFC0034837CD8278
+          1445259FD35F56CCF10E660788BF7CC5933E2EAA3D536A8C98BE5C891CEDB348
+          E24BB8759E960002ACB85F85F18F8D63D17CCD174889C3271A58DEED5268E483
+          271A6607B648E2687D3584B9BCB8175C4D236F20F77F663AF66F89F54933F230
+          7172A4D2E66E745E7C2462B27320DAC731AC2D0D7D6C2CF4B68027862F2BFB6A
+          F05EA3E08FDA0EA78BA936213644B2645E3B9AE8B779AF8E66B1CDE0B5934734
+          76383E5D8E167D4B83C2A222AC888882D1061919E61708EC6E2D1640EF4154D5
+          9AE9DAD11011110111101111011110111101111011110164C592387262925846
+          444D702E89CE2D0F17C8B1C8BF858D5E385D2364734B7D02C82E009E40E077EB
+          D07DFB204CF6C92BDCC608DA4F0C1C868F6545BDAA683A968B98EC4CFC1C8C3C
+          A69687433465AF6973439A083D09041AEBCAAE6E96FC4D41F86C963CA919B5AE
+          743BB68750DCDF5006DA6DA4F4B0689144A7B56D786B023CBCE124C7F85090EA
+          A69DC6FA10EE2A81F7F6EEBDDE56A2D9F022C39DE73598B1363C401E4331DAE7
+          191CC6D1DA06E73AC575BE86D79ED070E4D2F0B21AF11F9B3101CC7C6D739805
+          F424583CF63D96D8611D01DB7747BAFA7F0FC59CFBFB6759A4DCF1E63DED7C87
+          D24DEE3C74E7DBB7E4B251C295A6C191A1AE1B4D8048BEA3A11C71EF77D296B8
+          6EDF859A3064A007A8D000775EB932632A973A4FFA40E80765B5851E34F342C9
+          E5FA76D1324CE05C38DC68002F9E07DFE16AC8E0D710DE45F04A79A647127927
+          92551BD95AB6566E3C58F2C9BA18C92D60000B2D6B49F92431BC9F6558F3276B
+          CC8E99C1CE6B5AD7B89240691B6BDAB6803E052D43D109AA696D1F73DD5C9F49
+          1B11E9FA0370B2619748C5C89E5686B32C3E78DD09DE0EEA1206DED0456C229D
+          EFC8F33AFF0086E164F8EDD1A0CCC8F32DAE89C44AE0EED45AD04DFDBE17703B
+          D24127836076F9FF00653BAC9E2BBAF2F5FE3F1D4F5E9AD7CFDCC731C5AE6969
+          1D88A5ECA1F0DE938ED89D1C8FD4DB240C739F2B4C4D0E731A480D06FD26C024
+          F35743A2DF7C514F1B59244C91AD7B6401ED0EF50E9D474E791D0F7B596599D3
+          BF73CD9A0D1EC0014001D8000003B00B3F1FF8B39EB7AF70F279BCDF0A092591
+          D872358D2EF44529E83FF77DFDFF0055CA9343CE898F7BA03B5AD0E34E07835F
+          3CF5E9FF00057B7A1ECA5CF716066F258D24807A7DFF00A2D75FE2F17EBD2793
+          C4E0F87754D4A1CA9B174FC99E1C50D3912B2225B1075EDDC7A0BA357D694E5F
+          87752C21199B0E56F98DDCDDA371ABAE6BA7D8FB83DC2FA4E91F57AA6A1A769C
+          66C81164CAD85B1B0078F53B6FA584B45DFC8E4750B3F8CFC598F9F9F98DC4C0
+          C7C7D3DF95BE038ED7344628B4D071276BF82438923D20102EFCD7FC6B3ACD6B
+          5DBF05785F1BC11FB3FD3F559F2A6D2FC4F913CB9E323144E27C48D91818CCDC
+          D3B18E73F793BA9C03D9CD17578A962918E12CCF63C4A0CAD77997BB93D6AC83
+          63BF3EEB771B2DD978D06142E79C89E67C545C447476EC68E7DCBBB572393DB9
+          EF13E1BE5C69E27465AFA7C523688736C51B1608B3C2F57C3F1CF8E592955643
+          24B1BA40C2591D073C0E05F4B2BBFE19F11CFA6CB345264B5B04B8B3C00CD136
+          511EF8CB4EDDCD71160D7A688241B156B8D939313A38590E3F9019186C87CC2E
+          32BAC9DC7B0EB4001D00EA6C9A87C6F8F9696484DEEBF4D7DABFDD77B27532B2
+          D97C321C58A46EF6465CF77AAC82F680EB02AFA11EFF0075D3CED0B54D330F17
+          5A8CE4FEEE7C6C3E7C8E0E6EFE185A3638D72D340ED3B40FCF5B48C7FA1C9C4C
+          DCB9FE8A06BDB3C6E7E379E26DAEAF4B08D8FA20D87100F20AD1F1E6BB99E10F
+          1CEABA7E2EA71EA1A4073226CFA70FA78B371810E63835B61A4D0711CED78376
+          415E7F93A9C7DAC7735C9B44CED33031744D3B33EB218DFF005733E7323725DE
+          67A1C2368A8C066D6D02EB22EFA05C1CBC08E26E3BA1CB8E612C2247B070E89D
+          B882C23DF8DDC5F047436075708E91E9DCF97347D1B7E9E58DE5AD74CE787125
+          9565AD06415609706B8F52D38636BF45CD3B658E4263700EC70240F7734D2DE8
+          E69245EE1440E2EA8DE6E4F438D2BE46B807924B400013743DBECA591CB99386
+          451B9F2484911C76E27AF6E4ADE9257EB0774CFC7C61135B13A79416973A9C45
+          D5B893446EE9F86C8E16862FA3CC2D73C4AD16D2CE7A75B23A716BACBA286117
+          F8A941880B239010924DADAC4C9387E639A2F7C6F8DC1C6AC3811D3DC75FC82D
+          2350066E05C016B39DA7A3B9E8790BD0629637320FA771C590384B1BA2B0D613
+          B6AB71B651165F67F40B98CC09B276C70C66525C030004B9C4FB57D8FEABA93E
+          4C6C2E1E5B0CAC7FF1666B492D06AADC6EC8A3D00FCF9AE5D7BFA58C7A8F8721
+          9F0A0CB2D88E564CAE8898E78CD3A32DB2D65F3BB775FC2E21D5641AF2ED262A
+          6C87D44020B88B3F1F75EAB1F384B330C666F36C132105DDC51E09E9C7357CF4
+          E39E96A9E1CCBC8F0C616BD92EC49311CE97022334CC7CDB85125B16EDE1A0CB
+          7BCB402EBE49B0BC9BD7C75AFB789040E42348EBD028D4B15FA5C9B0BFCE046E
+          21CD2D357C1E7B1155C958B1E7F385717F0BD5CF73A659B7000F202AEF04D282
+          1DC9DB6B1ED3ECB5A12C9B38EA161320B3C906B825652D68BDAC703DFA51FCBF
+          5557C9B194EA1DA881FD5731AAE77A8FBFC2A6E242DD9206BA369677E7A2D37B
+          69A41EA3B85CECC22944DF17CF45B4FC438CDD938A940047208673D08AE4FF00
+          6E7AAC78F39C4C88A78CB9AE610F6B9A68820F51F9ADE667453E619B3659E5F3
+          BD739696B9EF79B3766FA9A26EFBAE55A8E7481C1E5CF8407385D06ED1CF4E02
+          DCD30E2BE58A39A2903DCEDA5E0075D9154DEDD08EBDC7E7AAF9773DDC90D247
+          04DDD77FEFFAADAD372E4C663E133011B9ED93C9905B5CF06858208BA2793C55
+          8F850747F78BCC52BC09636BA40181B7E9FC76DAB1D43BA73D7AF5B9C1C9C6C8
+          C4CB8DAD85B316B4C41EF7B79DC0101AD1566EFD443400FF00768466BB97A337
+          2319A1FE5E64319C9C7C885A1B20E1E38AE9C820F1D8AD6C9C1C8C72F644C7C0
+          EF2A396D9FC424B80701B9BF878774EB7C1AE6A68F432E97A7E57FE499AC3A69
+          598C3CC7CCD11C4D7105C636F2EDC41B20FA438935D79F29E2AF0AEA3E11D486
+          9FAB633F1E73045931B64A3BA291A1F1B81048A735C0F07BAE9691A8C7A5372A
+          6060CA9248CC7E4CCC749B01702087714E15763FAD90DE5F8BB258256C231A3C
+          79046C32164AE90BC9683765C6B8228704743C85896C570E19E4C0CA8B231E4D
+          92C4E0F63AAF6906C1E561CBCB97372A49E67F992BCEE73AAACFE4B197DFCAAF
+          52B8DC47D77FF1C4995FB32C28F267D371A0C36CF1C3851C76F99CF8D9111E59
+          B6D12C1217D5837B4B48685F33CEF10E7E7E38C79321E31F871858E218E76D0D
+          DE5B75B88005FB05A0F0F8F744E05A41E5A45105556249175926C99B27679D2B
+          E5F2DBB19BDC4ED6FB0BE8393C7CAC60D5FCA22D20888A0222202222B03EE97C
+          222A09688A8222202222C0222202222022220222202222022220222202222022
+          22022220222200E175F4FD6B642EC79580C67AB80EFEE7DFA2E4234D15D38EAF
+          3760F458FA94DE1ECB64D086498723DB2BB125F5C4F2DBADCC3C1ADC6AFF00D4
+          574357D29D82C8F3228C8C4C83BD9B676CBB18796B1C5BD1D5D4100F434B8F87
+          9ACD54C589987803CB8DFBC461A6886D93C0166CF4EFC8EAB168FADBF459E769
+          8E2CB89EC7C25B2B03DA038104B6EE88BB04720D10576F292FAFA1DEC3CA63F0
+          8C643802F05C49047C102AEFAF7AE57632B48CAD0B334F9B50C494472C7166B0
+          47306BDF1B8821C0D3B6DF6241EA0F3DF858B24785235EE71C9C59581C042FA0
+          1C5A68124705A48B1DC5804755D37E0BA7C43990C6E740D7ED792CAA3562F93D
+          473F91F65E9E3AD988EF3B44CDD174D64DAB321C587556BDCCC898472CCD7C72
+          53810099233BAB7021AE21C1D4E14B8BFB5E932F126D374B3E28D3FC49A4E346
+          F7E19D2FCC6C115901D4C923639A4EC07D4D04F5EF674E66DC92C0C74AF68699
+          1C030071786924F53C0E79F6A35CD2F27AC971D4A6DC083C70E14471ECBCFF00
+          2FD7B58D24445E4044441F4CFD857ED3323C0DAD676932EBDA8787B42F10361C
+          5D433B4D91CD931F64A1F14DB5A46F0C7036DBE5AE757345743C6D8983A9FEC6
+          345D724763C3967C4399898D1B1EDF35F0F9514B31D97C46D7BE3D954374B28E
+          4F2BE69A4E8D979FE74D0C70166333CE78C99D9107B41029BB9C0BCF23D2DB35
+          66A8121AA8D40BC3329A36C3C010B5A236DF71B3D3CF1C8EB415C56A49147727
+          92647869F49732896F3C9009AEDEFD5615B4FCE94E3C50F98F11C67708C1F4EE
+          FF00557BD572B58802E8DFC84C44222280888808888088880888808888088880
+          8888088880ACC91D1FE1716FC85552D6EE3499A3A516A7AAEA90B74D767E4498
+          EFC8395E4BE571679C4006423FD5400DDD57A5C0C18F0315918682E03D4E6F57
+          1E79FF003D968787F4B6C113725D7E6381DA3D82ED35A5CD73B820755F57FC7F
+          8A713CAFDD66D626308FB2C8FBB278E7D8527658DC4915D02F5FD33F6804D9B5
+          B104861918F6FE269042C0C0D36B25F0AC105D1B1D7B37107A38F042A079BA00
+          59567301E55A38CDED682E71E001D4950623238751C2973848E25A3681C01D3F
+          3469DC2A852B9680CA6803DFE548AC985B097EE796BEBD20B039A4FCD9E3B762
+          AD96E648F71003370161BEFDFA703EC1616D01F2A5BEB249EDD159114C76166E
+          B36B36D344F65473F6741D51AF3DC7E4ACF424BC02A41008BE42AC818E0DDAD2
+          D7553893609B3C8F6E29437D92547474B93334BCFC2CFC688F9D0C8DC884966E
+          692D7706BB8B14BAFE20F0FE99A9E8B3EBDA464418F8CC11B72B4994C9E663CA
+          E345B1B9C29EC7517346F2F0D0E06F617BBCCB5C62360907E16DE16B03070F52
+          C5F27CE6E74021E5E408C8918F0FA1D4FA08E7FD5FAE3A9FB58F10FCC934BD62
+          63FF00E97BACB01711B4F402F9E071CDFDD7A6C6999E5DC7EBF3280240AAE39B
+          EDCAE2F88B0FCCC76CCD6973986891EDEFFD96D783F548F240D365C6C8C9CC25
+          A311D13AC0ADC4B4B08E49B1441E39F4BAF8F0F3D7E1EEF17E9BFB7734ECE30B
+          A47C418498DF110F01DF89A5A48047069C68F63C820D2EB636878D9BE1FD4F52
+          9750C78B331F6793844B9D2E45B8EF70A040DA393B88BEA2E8AE56A2E1919B90
+          F8B0E2C484C85EDC6C60E2C8838DED05C5CEA1607A9C4FE6B6B0B50FA764701F
+          2D8D1EA32165BDAEF50E288F7E87F3E17AFDD9B11AADCF9497493B9F2BF63636
+          B9E6F686D06F5EC00000EC17A0D17C15A6F8CF4ED41FAD4EED270B0F08887587
+          973E2C398B5CE89B246C05DB25906D243496F985D4EAE76B41F1A6369DE1AD6B
+          439F4CC5CCD2F3431EE748D033185AE2582299CD708E9C46E0D68DED0E06B823
+          CA372246E3CB0B64732091C1CE8438ED7117B491D0D59AFB94BC7E4E6F36626E
+          3CFB7335DF033B1E09BF8BA7E4B3EAE2C6C8B763CECDCF609434D11CB5C03B87
+          75EC576F40D665F14EAB8F1E368AECDCAF301961136D8DCCDC2DD23FF9182C02
+          78001EAB16A58716B2E89D9D3E5482080C10344B6D886E2E01A083B5B6E712D1
+          DDD7C737EC7C39E28C0F0469199A3E1E97B44F164473E662E691365B646544D9
+          88DCC732376D7863401B81BE688F14F8BE5E2D9CB52C78A97596658744EC6834
+          D92191EC9719A5C29DBDC403BDC5DC03B79F6E79B273C0D6490B9B51DDEEDE03
+          8B8503C706A89AB3D7FAACFABF833035EFAFD58EA4FC4CB7F98FF29903A76644
+          C0025FBB76E6079249B04037CD1A1F3B7326C490B5C1F0C83A836D2ACF9BAE27
+          8F50C7BA94EEF56D6B41E03584FEBCF2B1B777A807017563B917FF00D2F0E722
+          571B323C9F9715BFE1EF11677863568752C095B1E545B835D244C95B4E04105A
+          F041E09EA16BFE4FFA31F49D51B9706998C618DF0604D19730ED2D74A012D759
+          FE600B08EA47A7DED7231982691AC2FF002627386E7924EC1DDD4393567F2BEA
+          A981E21935D863C774F1C34E2046F2D8DB648E6FA727B9E8BA5A3694ECAC97B7
+          CD8E02D89F346673B44A5ADDC1A3DCB80E01AB343A90BBF3D49CFDA2D8798D64
+          A64C8926C80668C4EC8A4DAE78365E3790EA2768A34EE6CD7633A765B1F33E1F
+          2D8E95ED21AE918E71268D35A5A4724DB79FF50ED6561C2397919506363C45D9
+          85F1885AC8DC5FE6036DDB564971713F758A70EC939192E7B1D331C4BC47CBB9
+          B00F4ADA3FDC0EE171AA990618865F35F31E4B191B1C1ADB374E2E37D0B63341
+          BEA01C2DA459D6CBD19ADFA8F331A48640035C1E288750BBB1C59B35C573D68D
+          DDCE8A201D2CB1CF1B898DA1EEFC354493B092010481EFCFB2ACB2B717123883
+          BCC95AFDEEDB901ECAA3B4066DA15CD9B2391D3BA4D1827D3F22186294C6F8A2
+          0C05BB6300512EE49A1765AEAF8E3B718DF8A5B03DCC9490D73A9CFDA3D35E9F
+          CCF3D2FF00E7BFA3E268F9586E973B54D431DF1343E4FA2D39B2B22F5B596E3E
+          6B2B8E410392459E4D572B4D919827506B24C9C19669A083325681E73A3F2DD2
+          707B86CA0D037EA1CF1CCB73D4A3CB456E321F3CDC61B60C6EBE4D1AAB1C1F7A
+          EAB3E93978BA6E47D46460C5A9BC03E5C33C87CABBFC4F0D36EE2F80E6F34492
+          2C1D8D4E2C2C77B9FA789A58C8635FF570B77B7D2C739D40D7E22E00F702CD59
+          0B8ED2F963633D3D49340026FDFF0041C2CCB7AF54FA55B23ECD3760241A1C70
+          A5B0BA5123B697B5837388E805D5FF009EE159ADF2E476E01C28802C0F70AC5C
+          E91A686E2F340726B93C2BFE88CD9514126479786E9B2626B5A2312C74E713D4
+          6D6B881EA27BFF0054769F160E7B21CB7C9006EDF3B6C7BDCDBEB40917C7344B
+          7B8EDCEF60EB99034B9B19D94035AFFA90C963DFE749C340268DD02E22F8FC5E
+          EB8EEF5C94E792C07AD76BE69664BFB56295C0BCBAC1BE4D0A02FD96686420CA
+          5CDB739BC5B013CFB7B70B6F0B1C82D98C42681AF0CF58DAD713CED24104701D
+          CDF15D543B0A795DFC4AF3435843662438338A3EAE2AA80B346C55AC889B2F22
+          6CD3FC47BC866D1E6C80B8461B4D61771C06802B8AAE29618079B2EEC895BB47
+          2771B3F90F7FD3E785EEB53FD95F89749F07606BF2E24593A018D931C9C59A29
+          5AC329A6B24DAEDCD2E2DA01DD289ABB0BCCE4CF81A160E3E44B93899796D90B
+          25D1BF8A4FA6C87C8F6ED6D1248A6BAFFBAE53AE73D2E30BDD95E18C3C4D6B1A
+          5304A721CDC47D964B196722403E0BA811DDA79042F1B34EF9E42F792E71EE57
+          D0BF67CC6FED07F68D1E56B5A69D530F0B127D427D334E6320F361C681F29635
+          AD6D0151DBC804D6F71376E5C1FDA2F8CB56F1BF88DD9DAD66499B99142CC6DF
+          2318CD8D6DD461AD6B435AD24B5AD029A00038002E57ABA3CC2E93B1F4FC7D0E
+          3C9667F9BAA4991242EC2F20811C21AC2D94BCF04B8B9CD0D00D6C24D58BD032
+          DB0B035AD69209A6F36011D4F23A9B1D3F40A8B2822220222202222022220222
+          20222202222022220222202222022220222202E9699A962479B8EED5307F7861
+          C50BE2F2219063B8D876D76F6B4D96B9C1D641BDA01E1735106E3B0A3930D936
+          33A699EDFF00D7698A9B19ED4E04DD807B0E8569ACB0654D8C1C2291CC0EEA1A
+          7AF51FEE7F52B120222202222022220222202222022220222202968B3CA845A8
+          3D2787E489DA6E663BC35EE9A588318184BC1F57A9A7A7B020F5DDF0BDFE3E9D
+          87A4E23613AB439785930B1D913E2E39F32004D805AF6836D70613B4D16BB83C
+          9AF9260674DA76436685C03C7FA9A1C0FDC1B07F35E870FC59264CD379B3B309
+          F286B5A591FA0511409E4B5A07B5F4E9CADCBFCAAF71AB784F3F3F3677E1E663
+          EB592D6BA7C98E089E0C7B683C97491B4500E078BA36785E23C6FA7CCE762EA1
+          2E44B93349108E612B8BCC5B3D11B43FA39A181806DB000038E83DBF81FF0068
+          7ACF81F44D69BA5799062EAD8BF41933492901F1BDAF6C8D6BDA29C0B647FA4D
+          8E6C834B06B1E297F889B9DA864E9F179190FDF9D2E0633590B4BDAE0D021151
+          C7C97510DF49A2DAAA2B3AA3E4AB674DC09353CD8F1A3FC4FEA4F46802CB8FB0
+          00124F60095EAB4EF0CF86737330993EB39F86C9642276FD136410C7B6DAE6B8
+          480BDC5DC6D2D681C7A8F6E7CB85069E5EEC67836D2D6B83887385D5906BA8F8
+          527377065D5345D1719E7E8F232268B6369F921AC25DC6E14D24002FB9BFCF85
+          C0D41B8D1E74CDC3739F8CD34C7BCD97577E8382791C74A5D3C8DB0E99904B64
+          13B9CD00970036F20FA7A9375CF6A3F970D4EA67A194E548E1EA76E3C538F51D
+          781F1CAD8C6D632F19858C93745766378DCDF6E85692BCD33E795F23CDBDE6C9
+          02B959DA8EBBFE87546B5FCE3CB4048E3B437773F8458E2A8F4FCC2D0CDD39D8
+          3306C8E05AEB20B0D93448FEE0ADE643A0CBA4CAF3939B8DA931ADD91BA36C91
+          4AEFE6E45168EB5F8BA0F725BC86168BDC09F6A2AEEAB2C78F34EE6C51E3BE49
+          1DC3431A4B89B3FAF758177F49F130D2658322013C793081B5EC96ACD9F6AA15
+          428DDD7CF1ADADEA5A6E74AF76169F362EEAE67C91211EFF00858C1FD380964F
+          D5472517B7D49BFB387787B1869AEF13375F32C226FAEFA7187E5EDFE353980B
+          C1DDF84ED3C751639F2231E2963C97C6F70746E05919A21CC24826EC1B1E9E03
+          79B278AE712EAB5915A685F8F2BE2958E8E4638B5CC78A2D238208EC55554111
+          10111101111011110111101114B9A5A4820823A83D904B584ADAC389AE999BC9
+          0CDC37102CD775AAD750E395B50CA48DB401FEEBAF383D9C0F6490B5EC14D238
+          1ECA4724814B5F4F23E8200E24BB6FAAC501C9AAE79E29672F1DBAAFB5CDD92B
+          9AF54AA59BAD58381BE54B48E9DD6D18C4001EB6AE280562554F299805C07E48
+          A9D5DF0AF74148A8B02D48E7A2A1937073434171E7777156AD0835C949436592
+          7B2875869DBD565A51F92B88D4DCE2EE56723F552E6026D43B81D7859CC54F50
+          A4288C752A558812A1EDBEBC9E9684D02A37F4E3B73CA2B1B9A68D95C1D1F548
+          3C2BE35D3F5397022D4F1F07322CA7E0CCE73239DAD70798C9690E0081560822
+          F85E8250DDCE01C1C01AB6F75C2D734BF39AFC98CD3DADB737DC05E3FF00238B
+          D73E9A8FA2C99BA778A19366787F4738E60619E68FEB44BB9A035BC35CD07D26
+          9C5A2C90E77F28B1C2C8C27E2E5B31E71F4CFDACDFE63B76DB00D9DA38EB75D4
+          74EABCBF81BC4EFF000BEB70E48AF2CBE3739C472C2D787070EBEC41E0F0E770
+          57D13C4BA5614397E5E0C9918D8E31D996D8352A8DDEB646E059C9DCD7020B39
+          04B402471673F07CBBEAAD8E1CA5D8E1F8EC9DB245C13E5DED27F302EAD62174
+          91B0C85C1A0700BAAEB81CF7550EDD6BDD1CC71F4955630AB6D0E3FECA75291B
+          A3318ECB6BD81EC6BD80B48DC1C2C1175C7CF43DBDD4B64F756316464B715A1C
+          E7ED00F1F75E2F53CE9752CE9B22520B9EEBA0001FA2CFAAEAF2EA0F2DFC3103
+          E96F7FCD7397CAF9FE59DDC9F4DC982222F22BA1A2EB3368D96D9185C6327D6C
+          6B8B6C511D477A27F52BDD685E24C2CEF116016E2BB271BCF6EFDEE31164638A
+          0497EDA6F1B8D91B6EED7CD5753C2DAF4DE18F11699AB4114191260E5459220C
+          A89B2C32163C3835EC702D7B4D51690410482BA73D59E87B77C393927EA727EA
+          1D2E4932EE23CC7BDBD5CE3EFDCD9F9BF73ACD7B18E73FEA1DB81F41ABA3FF00
+          3F239B1FA74737261C8C71243BF0192CBBA569B742640493400B69A70F4F3C7E
+          4063D374C76ABA8418B17D237CE718A17E5CCCC78EE88DCE95C5A1BC8BF53801
+          63B2F66A353518717175211CB8B911404B1EE8E595BE639A40758706500E0E04
+          1A3C11D423F5766E716C518C48C164304B4E0C2456EE9C9E01278B23F234CF82
+          192385ED89B0C70C63D0E0E1E61DC4F06CDF04722BA7E679FA86543878720CC0
+          D8B2A321ADC5735CD9A4BFE63C6D00577A26C75E48BB399B46FE6E4B5DA7B33A
+          7C9F3A488063A39C80F71A750BBB7369A289A23A0E80AF2D99E27CCCD635B2CA
+          E7B585C5A1CE24024DB8FDCF72B9D97972E74EE9A676E79A1F600501FA2C2BCB
+          D7C96FD2BAD85AFCF8FF0050CF3248E3C9608A6D8F237B77070045F22DA0D7C0
+          5D7D269D23C6EDDB58E2CA22893C1FBF0BC92EBE8191590237343D801EB7F23B
+          7DEFF25AF8BBF79475B5076E989156C019E86068200E0F1C13F3DFADAC4D89FF
+          004EE97680CFC16E1D6EFA7E9D564C8825C5A6CAC2C0E687D16F24104B4FD882
+          0FDA8AD9CC7C1911F9F8F8EDC5E18C30B5CE735E4328B85924124171E6ADD400
+          0005E865CC6BF690791F65B18D261EC95F92E7C45B45AF6B0380E476279357C7
+          F6EAAF169C65C67CBE60B6101E073408E0DFF7FB8F75CFD4309FE53A37369F7B
+          85F5EFC11D966EE7A58A43AD113BD8C81B94C702019410E1E93CF078A26FF2E7
+          8B0BA7ADEAEFD23E961874FF00A59FCA12BB226739D249BD8DE40BA00558E2C1
+          26C9A15E7F48CD6E9D9AD7C8D2597B5E5A06F68BE4B6FA1FD3EEB167661CC901
+          ADB1B4535B77C7CFCAF2F95C57473FC67AE6A3A5BB4C9F55CB7E9AE7B64761F9
+          CE113DED2F2D739B74E7032C8413646F77B95C6445C864C6C9970E764D0BCC72
+          30D87058D64C689B34EC639C5AD279205ABE5E2FD396D1B0E17D15CB9A302222
+          80888808888088880888808888088880888808888088880888808091747AF544
+          404444044440444404444044440444404444044440444404444044440444419E
+          0CEC9C58DD1C33C91C6E3B8B1AF2013D2C8FCCADC6EBD2B98F6CAC0EDE3D4587
+          6EE23A170E86BE28F279E4AE622D4B477E2F1967C598CC80F631ED63230F8636
+          C6E686B435B45A07602FDCF3D795D63A53B5A99D918D998992442E9E57191B0D
+          35ACDEE2E2FA05DC96D59739C29BB8917E2AD5A37BD9BB639CDBE0D1EBFE52D4
+          B8AF44CD3B1F23CE867F3649F65C42022B70A3C823DB70FBFBF7D1C9D3A16D34
+          35EC2DE08711BBE6E80EF6B2E4F8B354CBFA719938CB11376B0CCC0E735BB8BA
+          81ABEA4FF6E8BA392CC57C18D9116547309F790DE448CA7506BC740EAE782782
+          395D39CEAFB4798C983C87D5D822C2C4B6B3B69CC2D2F3B050240BA1F016A9EA
+          B8F592D901114869703409AF60B22116E4FA5CD8B8ED966A8DCE24089D7BBDAF
+          F5FECB2EA7A2BB4C1724A06E01D1B5EC70748D201DC08B6D7247E2EC55B2CFB1
+          CE404B4D8347E1128A60E9EBE65C9C8833E56E144336212B21C1F2DAD8DAD73A
+          3DAE8D87D06E3269D4E20871BDD6798B69B942391BE644CCA8A38DD1319239FB
+          45877A85104539DBC0E97D410483AA9228888988222280888808888088880AED
+          3D497F207437CFC2A20E15825A7695BFA563FD566361DF131CE068CAE0D6F009
+          EA7ECB9EB262D79ECBE8085BE7EC7B59008031ADA2DDA288BE7B5F3F654F381E
+          E015CE193E63CBCB800E3F840028FD8740A5F3D875595F4E7C9E996EC73024F2
+          B2326F65CA8DE79EE56E09C6E1E50711405B80EB5CFF005BA49D8DC6C8793EDF
+          281E7ADAD2F3C9268D8F7A59DB230460EF264BE46DA00715CFBF5EDDBBDAE93B
+          19DA3AF2A79A3CF03DD6B4798622EAA3628EE00F5FBF759A3C866D2EAB3D36FB
+          F079E15F282F1F3CD2CBE6069A58619831AF246E040E7A6D37DFF2B59260C64E
+          F679AD9B6BB68918EF4B80245827B71C70ACEA2632078AE4A6F0B49CEF318F00
+          B781BB970BEB5C7BFD951B3EC68B7871EFEE15F38637DD23477584CDCF5E169B
+          F240BE79F8556E50E07F759FC90C74049428235E79BE8B5227191F65C1A1BCF3
+          DD66F30B8F3DFD96A75A63297DF45B9803166C59E22266EA26461C7958EF4068
+          0FDCD736AEDC4C7441E288A376392ECA6C57FCDDA8A0CEDAD25AC6EE0416B9D6
+          76907F43F982B1D77EBD2C5D933038F99B9AD1EC3FCED6A9E6B250E06E88375C
+          AE7CF9049701E96B8DED0785111F2883F8AC5AE5E747373F4D9705DE6C60EC69
+          E1ED3C8FF85EA74DC8FABD1B09D3E4C9316406281A6C88CB5E4961BA00538BB8
+          BEA3DCD6A35DE744770041E08AE16A47A9B3409047F4DE7634D4F7309DA48DC2
+          C07106AF6F50B8F8CF8EF94FA5FB77048C703B48E074268AC597A862626231CF
+          7B6295AE21DEBB2F1C57A7A8EFCF4E9EDCF94CCD6F272A490B647471B8F0C06F
+          68F6BEAB4A386499C0318E793EC2D3AFF277D73091D5D575F399188E0DF1B2EC
+          B89A27E385C7EAAF2C4E824746F1B5CD3445DA8786077A0B9CDF770A3FDCAF1F
+          7D75DDDE9554445CC111101111583DDE8DAD4726891E263CF94CDC58F9227BC7
+          922604826AC0E5BB0877506C74E57419B58C31C2F2E6100132003ADDD7B01EFD
+          0F5E178AF0E657913BD8C0E190E21D148D9366D736CFEA7B51BBA5ED34F9F0DD
+          A7CCD385264BDCD6CDF51BFCB6C006E05B46C3ACD574363E4AF67C7D4F1472B5
+          9D672F48C0DB1797BB20BE173CB9AF7343769F4F703906FE3EEBCA6A7AA656B3
+          9AFCBCC98CF90F0D0E790058680D1C0E380005E9FC659900D230715D831B729E
+          44ECC91312E6C74E696ED14007386EB22F81CF5BF1CBCDF25DEAA8888B982D9C
+          1CF7E0B9E59FCC28FD9608D86491AC0402E2072687EA543A8B891D2FA2D736CF
+          7075A2D626CDC9B99EE91EF608EDE6CD000340BE95407D97AAF0FE9D99ABC334
+          5148E2E2E2E01CE018E006F71713D8066EB2686D37D57808B891BCD73D57D0BC
+          2DFB4AD57C038F27D0E549F4B964E3E56182DF2F2B19CDA9A375835B86D175D0
+          95DA757C6D18A49A3D3B18E2B32209839BBA50DB706B81700DBAEBC9360969B1
+          CF65C9CC7C25ADF2A52E3DC11F87920737CF001EDD56BBF548F39AD707C8F78B
+          DCC9392DE7A83DC11F6AFEA65B8D2535C1876B9BB87DAEAFF55DB9BB3D234350
+          843E1126C01C39DE072E1EC7ECB98BBF3177D3CA0B8376B5D6777C1E95EF55F9
+          85C05E6F92497D28888B90EA786191CBACC11492B201212C12480ED6D8239A57
+          F15E9199A1788353D2F31A06469F90FC69446F1235AE638B4D3DBC3858E08E0F
+          65CA89C637078345A6D6EBB3259725F905C666175B9D20DD77EEB73EB06822CD
+          345E8F341F497557B2C2B3980888A0222202BC4C6B89DEE2D6804D86DF34687E
+          6682A2CC72DC709B8DB220C6C864DE236F98490051775AE3A5D7250614444044
+          440444404444044440444404444044440444404445701111011115C044E89698
+          088898088880888A022220222280888AE02222602222412D16ACD6EDFCD501A5
+          25C4AD0CCFA2D04D134B6B47D4E0C0948C8C6FA885CE69706BB6BE87FA4D1AFD
+          17381A148AEFEC7A2F10E2E9FA9644F9BA1E2E463E0F56C5933899ED6F401CF0
+          C602EEB64000F603A2D0C0F0FE467E1E6648960C78F19A1EE193288CBEC814CB
+          FC4EE6F68E6AC804035CF8E69230E6B1EE68755869201FBAD8CAD4A6CB8618E5
+          2088AF6F1CF3FF00D27AA31FD14C651186D93D08E8BE879F3B34EC6C5D20C989
+          262E335A64C6C20FD8F780D2F7173B97125A6E880093B69BC0F23A1E5CBB246C
+          42E4DBB01DA09ABBB17DF85E93374B7E83AE450664D165C8C898E2ED3B218F14
+          E8DAFADCDB161AE21DDC1B1D410B739E67B58E9697AAE46B1E1E9F4B970F122C
+          674ACCB7EA934779104806D0039A0B8445A437CB02890D2391CDE3CCF0E68D19
+          8B50D167D5327F89165E2CF96E858E3E92C3B98016D1365A6DD6C165A0B9AB8F
+          ADEA25B1C587342EC6760C671A38E389B139A4124F99405BEDD4E246EA6807DC
+          715933DCE0E27D43BB859EAB739DF551E8FC44740D7A58C62683A7E831C0C8E1
+          AC3CB94BA5DADA2E739EE7B493FCC5A00268814485B7E2BD3E07C2DC487271F3
+          27876C70F972365863C62D71635B2C8EDC0DB89DB4DA25D601E9E3E4CA2D91D4
+          18492492D143ED438EDDBDD6D41E21CBC2C3971A199F1C7287B66630D0918EDB
+          6D77B8B634D7BB41EC29E1CCFA1CEF13668D4F2639A1C58B0B1DB1C718C7C714
+          C0E6B1AD2FAFF53B68738F724F4E00E2AEC4BB4CAE31B4B584D804D90161CCD3
+          43A264D09DCE2DB918401B4D91C73C8E07B75FD79DE33DC1CF0281555BADD372
+          1B0364744E11BEC35C4706BAD7DAC7EAB51F196137D96728AA222C0222280888
+          8088880888809D11151B98FA818B9702E75559E8BACF73656B5F1EF2C7B43BD6
+          2ACF43DCF7B17FDBA2F3AB671B39D8E36D0737FB2EDC7C99F63AA49683ECAF0B
+          E8D1E56189ED9585CD787135F92D888349AE2CF1D3E7FCFD17A65465F3F80D0E
+          B6B4F1D87DD5A29773DF476D74F73CA8998D249EC001555CD577FB2B458C733C
+          918C37644AFF002C40D1C93C557DC93FA775ADC4C4BB6BA81751BABF6530DB1A
+          F7EDDCD6D124F4EBDD637362C57019393144771693BF710E005D86D9AEC0D57C
+          F056EE6E5E930B63C4C4CC8F513244C7C9344D9181AE735A765BDA092C25C0FA
+          6AC1A2E144BCE18B63B9CDC2CB7C4E89D71B5AF12481AE16F07D02FD5D05F5EA
+          78E2D6B0D8C20B59E9E090F26EEB91C57176ACDC76BA314E8636B38FC5CBCF17
+          EF5C1BB343AF75A793916488F86F72AEFEE8CEF7B3F117B4B9D760DD8F9FCD62
+          7BCC8E2E68F5752B4C1E4DD9FB1A40E735A7AD2CF92E3339D6A86400958AC9F9
+          55009B2B3A6365B94E1641F8591B94FBB0EBF82B4EE91AEE559D531B466249BF
+          D146F14795841BBE54B79B4D307105D6B631207E4C9B2300BE8900B80BA0491C
+          F7E381D49E072B5CB68927A2CB1B8461C40F576A4836A091AC7D3CB9CD279239
+          A5965C5833E30D99A1C07208E08FCD6AE359E1C486DADEDA4378A5DF9F73DA29
+          069B8AC702C85808E8696D10C8984901AD02FDA9608C59EAB9FAF6598A010877
+          2FE5DCF65BBD4E39B7070B3B2064E54B20000715810A2F8F6DB75A1111641111
+          01111512C718DC1CD25AE06C11D8AFA0E1EA2E9308BC195B850C2278A2B0E0D2
+          47F108A1446E06C11D0575E57CF5646E448D89D107BBCB71B2CBE09FB2E9CF5E
+          23AFAD674DAF3FCC686399092C8C4518076DDF24004FE6B88BD169B2608F0EB7
+          D6FF00AE191279A1E5A2311ED8FCB207526CCA0F61E9AEA41E0E43D92644AE8D
+          9E5C6E712D65DED17C059EBDFB18D1116002222A2580B9ED03A934BADAD63910
+          45307B445D1B1349716F2EE5DD813B7A0ED4B90090411C10BD3E8990ECFD1752
+          C6967D83CA05CD61F5C837C75C74E0D1F73C8F95A9F58AF3514AE85DB9A68AF4
+          1A7EB634C6E3E5ED67D5C2F1245BDA1E2C74B6914474E0D8F8A2B8D9B80FC273
+          4921F13ECC6F1FCC01AE9DBEC56B5ABCF579F48D8CCCE973657BE4770E712180
+          9A1FAFE4B5D11637414B5A5C68285B8CD2E77C51B830974C2E260E4BC591D3AF
+          51F9A49A355E5A3D2D360773DCADCD3737C88A785C1AE648DFC2E8C389AE783D
+          41EDC7BAD3644F7C8236B1CE909DA180724FB52DD1263626080C73A4CD73C3B7
+          003631BEA0473C927D27B573D6F84A2F9C24CD32CE2138D8CE2E9618C6ED81A5
+          C4533738920104752783649E5735765F9AD760F9B238CCEA0C6D480163A87247
+          522857FF005CF196BA98088A5B42EC13C76581087AF0888088880888383D2D01
+          1110110D714510100241AEDD5110111B562C123B806910111101111681111011
+          1130111101111011110111101111011113D8222298088880888AC80888A82222
+          022229808839534695109494AC07B20AD1096B257E6B6F074FFAB123B7B43630
+          1C5A6EDC2F9AFEEAC96FD0EBF82B4C8F54CC7412E4458B1D3A573E77B63696B1
+          8E7B807135B886D34772401C95EC3FF1569D8306A4D76891E2E767B3CCC7C97E
+          E71C1693BDA216DB776F018C2F7EE3B4923936BCF45A5CD8D0C8F6C520C911EF
+          F21B11F4C4E6DDB8F6DCD22BE0F65C7CBCA393297B892680167A00280FB00297
+          7F19F42D24A03DC7B13D16374C4820716B1175F24D955DC2CF2B7A6241A4EAA2
+          C7281C1660DB741FF966BCB281E03B9F51FF00085AEF249E492A44CEDA007501
+          D02A12ADB2890E7015B8D7B5F1F2AD291930B637319B9B7B5E0538FC1F7E9FD5
+          52C1E8AD131D2388602E7004D017C0E49FE8B2399340F84FA8116B1AEECD1FD5
+          C0585A378E94B8924663710571EF8F1FA154445C811110111101111011115044
+          4505A295D0BB730D15B275397690D0D6923F12D445A9D59EA0DB66AF9B1E3C98
+          ECCA95B048F6C8F8C3BD2E73410D35EE039DFA9576EB79B1B6211CEE89D11DCC
+          923F4BC1BB14E1C8EAB4514DA0A58F31BC39A68836142241D466BF246D21B1B7
+          9EBB85DAD88258A6C72E648EF341A923DBC571546F9EFD8741D7B70E8D5F65D2
+          C185D16309481B64268820F4FECBD1CF76DF6376460648FD8E2E602435E056E1
+          6B03CD0E1587424034B0BB9E3B2E968C91B9A5A6C1DC6A8DF03AF6524B4340A3
+          BAF937C2C638EE80A9A1D12D481B881C59F734B15D5DF0A68CECE7A755943A8F
+          4AEC56B44DB04827A716B6E0C59E681F2B585D1C6435EF3C0048240FB9DA7F45
+          B946DC4C6984B836C71B87B287441A4FCFB7654864742C22C16BBB5F3DFB7EAB
+          698D690D0E15C7A4765DE674CB14236925DD3EDD56633EC3B47BF60A92802E8D
+          2E6666A3F4FD397F61FF00297AF09EC74B23323C389D23F8F603A93ECBCBE565
+          3F2A67C8F3CB8FE899595265C85EF3F668E83ECB12F0FC9F2DEFD7E9A82222E0
+          08888088880811104BB6DFA6EA875F7EEA11150444501111015A291D0C8D7B1C
+          5AF69B041A20AAA20EAE9B261E44EC8F2D8E18EE70F39D131A6468EE5B756475
+          AB00F75BDA7BE4F0AEAD3C27206669D903E9F20E2BDEC8B2E20F6BF69B0D76DD
+          CC63A8807806BA2F3F1BCB4970753874F95D4C79193319BCD0341C40BAF7E175
+          E6792BAFE24D0323C3DA86A381A8432E9D2C6C27E967FF00D40086BE369F634E
+          61E6BA7BF0BC8AFA0E0E4E8E756C3C1D7669E6D122718E59301AD7E4C516E35B
+          1C486C868F1BB8A2471C5782C963239E46C4F32460FA5C45123E47BACF528C7D
+          94B585DF8413F6597160F3E4DBDAAF85D3608B1ACE3C6E6EE8C35DE6ED92CD51
+          238143AD771EFDD39E7511A1E4C7A4C8EC8930A2C9C81FFA5F51658CE0FAB682
+          2CF422CD0AE87B4C0EFA991AD95DE8603C6E0DA1C9A07B77FD5611EA1F0AC195
+          1B9E7F037AAED3993E873A4C87BE473EF693C71C7F658D5F60748435C36FFA8F
+          0AC31F75D48C35CF2EA5C32D18916491B1B236804BA5BB241F4D7143EFD536B4
+          437B8171EDF9A920C6888980888A022220222202222027444404445701113B2B
+          8088880888A6822226822220222280888AE8222280888AE82222682222682222
+          682222682222682222BA08889A0888A80E16413911866D690093742FF5FCBFCB
+          58EBE51049759F652D2AAACCEE82ED04AF65A169C5FA2CAF61C78E463430EC9A
+          E698C96006B43B9A02881D3736C5B978F8FF00155D2F4AC2ED1E188E3C8D7324
+          0278E788812070B00EEEADA3CD71DBBD11D7E3FE8D8D67C539791AE6AF990E46
+          4019DBE379C8797C8622EB0D738924900347E4B80A5E4EE37767ADAAF75BCC0A
+          0A3A5FBA8DCA770E437A7CA00048B280D5F62AF1B41246F6B28136EBAE0135F9
+          F4FCD53A9BAE5412093EDF9A98DBB88BBABE6859AEEB24397363C73C71C8E8D9
+          3343256B4D798DDC1DB4FB8DCD69FB80563B2472505DB10D8E76E1B450FCCDFF
+          00C2364D9B76FA4D105C2F9BBEBF970AA6ACD1245F04A6E355C57D95837B4A7E
+          2C73BDF96D9658DAC76C644E0D25F47692483401A278E7A0ABB1A99314592E20
+          30DFB8EAACC63A488D34B581C0170BA24DF5FEAB3C81D0E65481D23800DDAF04
+          F15407E42BFA2BF63979DA2E66079665C791AC959E6C4E7308DECB2370F71608
+          BF85A344765E9A185B9139682C0E0DDC3CC21A2834BBA9E3A03C773405DACBF5
+          21D048DF5C8FF4B6E471208A1C57B7A47E447B05CBC37E879445EA350D046A78
+          F8EED3B09904D047B27A9AFCF717B887D134D34E6B681A3B6EAF72F39918B2E2
+          BB6CACDA6C8F706972BCD9F6312222C82222022220222202222022220222016B
+          580BD2E53F4FCA8A6C8C091D044256C71E1C8D25ED6904976E1C55F1D6CDF4E1
+          79C0CF72B2404C4F0E69E8B5CDCA3A6CAA3B891C7143BA996368BAE02BB581ED
+          690E0E0E0082DBE3DC73EDD3F259678A08F1595248EC9DEEDCDD94C0CA6ED707
+          5D924EEB05A28069B37C7A60D1AA500D5ACDB770A58C853054155793CFB2C918
+          B2457E68E8AC72A60CB8D1B1B035D6449C9A7378238AA3DFBDF1DBA95B70C2E9
+          031C1DE860DC47E6B4A394F31714D1638E79EBCFE8B6B11E1B7BA88FBAE9C623
+          33257B66DD65CD6BBA1E95CD83F06CACF972E33F39E7061960C527F871CD2092
+          46B7B073835A1C7E768BF60B59EF69FC245F5AF62AA7268B9DE90E3D7A01D56F
+          D4BA8C1A9E708B7004171E8170DEF2F71738D93D4ACF9F3B7232A47C6D2D8EFD
+          01C412076B23BAD75E2EFBBDD6A0888B90222968043ADC050B00F74108888088
+          8808888088880888808888088881D16D61E4F90F780016C8DDA4BBF94DF5FF00
+          3DD6AA2B2E0EF6188E4936BCBA88206D1677761F99E3E2EFB2D2CFD2E682699B
+          234C72C5C3A27821CD20D10476239E3E0A9D2B587E039DE989C5C36DCB136403
+          9BE370346C75FCBA137D1F10E74DA8C4ECF91AD884D239B1B211B628E8EE2C60
+          EC06E1407BAEFB3A83858D34987332661731C396B8120FDC15D89B026C66C6E7
+          0B8E58C4AC7B796B9A7D8FDF83EC410B845C48009240ECB345992462B79AAAA2
+          7823D9639B83A6612D716D0B3428F079E475FEEB1E5E58C5C69A02D124D2900C
+          96086B4136058BBB03907A58E6F8D6C7D5A580BFD2C76F6969DCD07AFDFA7DD6
+          BE4E4BB25C0B835A00A01A3A0B27FDD6AF5EBD0C98B087C4FDCDBBE8EF6513C6
+          DC73B1CC3BA81B77F70B6315AEFDD590F35B6C31A5AF17DC9B6F5AE473FDD619
+          5CD9B1C3803B9B57CF1DD67D60D6A157B85FB213E901434ED37D7EEB28C82D6B
+          C06B41710775723AF03FCECB3065C5931DB0CAC963324AF2DD8FDE4060E6F8EE
+          4F1DE80BE092089C8803632F0D1F92D67485DD7A8EEB2B725D41A46E1DFDCAD4
+          B3EA8AC70F9CD1B4511D4A97E248D341A5DED4B6B1CC2E739AC936FF00A770AB
+          5B26078E77077D96F9E3CA0E3BE3744F2D7B4B1C0D16B8510A175A480586B980
+          93555CF55A93E2836E65347268958BC60D422BBA6D35746BDD295991B9C4503C
+          F758C154567801D40DFE4AAB208888084DD7C222A0888A02222A0888A0222202
+          22202222022220222202222B80888A022220222202222022220222202222A088
+          89A0888ACA080D222A32C65773449CE70FA12D2EC8710319CD2053AFF0D77BE2
+          B91F9DAE13780B2C2FDAE23B15BE2D83A939D92B8FE3041A2E1CDFBFDFBAD7D8
+          EDBBA8EDBABAE2D749E3EB8473BDAD6099C4B9CC00343BB8A1C0F7AE3823A05C
+          E7B5CC34E05BF75DACFD9142DEA3AFD9474E81587215E1635CE1BC96C762DCD6
+          D91FD47F7506260EB6A47167FA2C8D6975D74E793C0EFF00F0B246D7656C8CBE
+          CB06D6077000B26AFB727FAA0D726CFCA9AB50451A2B235BEF7482BD159A4510
+          5B77DED59F186C61DBAECF4F60AAD6F7ECA8DBDBB880EA0D6B7870681CD5F6FF
+          00ED633B5C0F3405715D54E386BF7EE7068A35F268F1FD14860DA0F3456A0424
+          0690D6973AA857CFC7759E38D86C876DF8207BF6F7E8B5E266F7135D073C0E02
+          DD836F97331B0B5A41B0F7925DEDB476EF7C8EDF92B223A38D2E2C45EC6B37B6
+          E802483C723804FF0073DFBA8F1368F39F05FD6BDD2B20C6CD8E310BCB5AD124
+          B1B897066EBE44405807F0735C056D371E4CB8DE1D0324F29AF9DD317ED2236B
+          49775F60D24717C9EB6179EF1478859AB9820C712B71A16FABCC93779B259B90
+          0A1B41BE1BCD726EC95E7F96FEA351C24445C10444404444002CD22220222202
+          22202222BA249E1402474445474B4FD426317D3995FB1B658DDC685FE2E3E687
+          E8B3751C15A7A565BB1A67B1BB6A767944B980F0483C5F43607239FEAB740DA2
+          97A38BE84B5C5A6B83F2AA79E4F081DCFCAB1EFC7E6BA0969B681438504AA871
+          1D15DD1B981F63A1DA4B7917F70830BEDA43C1E9C11F0B640A6DD5B4F4A585AC
+          D839BF5722FBACAD798DC76D1AE9C71FA2419A37EC649D2ABA11CF5ECB1E3BA0
+          13C4FC889F2C21E0C8C63C30B9B7D012D201F920FD962123E669B22DA4852D69
+          20D7B2B7D93D38845128B2E4C1E44845820F22BB725625E1B328222240444541
+          1113011116414B4037648E38A17CA84404445A04445011114044440444405D4F
+          0D78824F0E6AB066B31F1733CB7B1CEC7CEC764F0C81AE0EDAF8DE087025A2C7
+          B585CB4EDD551EAB53D4FC3FAEE6BB24E0FEED9257BE5963C7788E3B3B8ED600
+          C21A3F0D00DA1EAEC406C3740D1F23160F273D91CEE639CFDF36EA3DBA33DB9A
+          BBEA2AE89F2C8AEABBBE20F0E334CCCC98F06776A38D1CCF8E3C86B00F31AD71
+          6876D04D5F1C13DFBF53C3D86EA8DF4AA593132E7C0C98B231A67C13C4F6C91C
+          91B8B5CD70360823A1068A97E7644829F33DFD47A9C4F5249FD4927F34831004
+          7147ECA0027A72B3473FE22F749BEA8383BF4556BCC8E687BC86DF27D85AB88A
+          069B17C5F72A296C1CAF2816C16C69144F777F9416036E366C9F74C801B7766A
+          95E078612E26DD54163009ECA769419228CB9DE9EABA4D73D8D687755CB04B54
+          B65239068DDADF3D788ED63E4064CC7BE364C1A6FCB905B4FC1588BDB10ADED0
+          471B5E01E3F35A0DCA9031CE0071DD6BBDEE91C5CE2492B77B836B3A839A6366
+          D03ABBB92B59D3C8E6ED2E242D819AC7C2C8DF1814DDAE736EDFC9366CFD871E
+          DEEB03B600769E0F6EEB9DBBEE0C6AE5DE611639AEA3BAA90401D390A1604ED3
+          47E3AA852C700E05C370F63DD0F3CFE4A08444501111011110111104B5A5E69A
+          2CF603A9508A5CF7383417121A29A09E82EE87E64FEA82111101111011110110
+          820D14404444044440444404444044440444404444044440444404444052D345
+          422BA04DABC479A5446F55651EB3C31AC08B1F334A1858D90FD41D10872250EF
+          32091AE3B4B3903D565A7703C1BE29575388E492F7343321B4D90115B9C3824D
+          F7E39E9FDC9F38C7969041AAE8BB716B0CC9A19076CC7F14879DC6CF27E57A78
+          B2FAA30BF05ED8BCC0E6B9A496D070B15F1EDCF5EEB00E382082BD0C503E2C69
+          25A8CC36C69024166EC8A6DD91E93CD1038E962F9F93A7BB2659CC11DB581CFB
+          BEAD1C93F1C7F8574BC626B41ACB08D3E59B091BCB5C370B03B1BE5451EB5C15
+          856479F3FD45C0BBA5014858E22C9BB3C9B51138328386E6F5F63FAAD98E511B
+          46C7B5CE3D43DA3D279E47E4AC8306402E706B5A0068AA1EFDCA86C6E6B013D3
+          B2DD7C5079939C695F2C0D796C6E95818F736FD24B438D581CD1201E2CF05638
+          E10E6825ED1C9E09E83FCFECAC888646EF21CD6D385824D0041A3FF752C3B23E
+          46E3C707EEBBBA6F87CE68C397367FDDBA5CF943164D4A588BE289DD5DC345BB
+          6B5C0902CF3F217272E38E19248E191D2421E76BA466D711D2C8B3478E8AF231
+          B2369EE1BEC076EBFF001DFDD6C412C8F91FB9EF6B9C012F26CF1DFF00BF0B1F
+          30B03F738349D8D7F671AE7F4047EA14C32D6CF307AAC00EBF57C0367A50FEAA
+          5FA58A78BF54D327C5C1834D932CCE587EBD93B1A18246B886EC7024BADA038D
+          8145C40040DC7CBADAD55DBF51C87546DDCF24B6236D04F50393FDD6AAF10222
+          28088880888808888088880888808888088A58DBB5A83734CC56CCF749207796
+          CE9B4D12EE6BB74EFF00E5ADF6B6B92B360C0DC7D3A3701BB7DB88375678FF00
+          85061279AA5EDE78F189AD7201BECACC6EEB04F3D966F200BB52D876B81B57C4
+          D6AED2C71E795931A5645334C8C2E8EE9E1B5B8B4F5AB04035D0D70B33E2BB35
+          CFCAA08AF9206DF73D94BC9A9CB8A18F29E2091D2C00FA1EE6ED247D94451975
+          573CD2CD9E229332793143C62B9E4C5E6905C1B7E9DC4002EAAE80587613C39F
+          5EDEC91581F14904F3B256B9B2879DC1FF008AFBDFE76B230F042C8E2CFA504B
+          AE52E362BA0038FD6FFA77ED898E01C2C58527A1A1A934091BEF4B4EF8AECB6F
+          509C4AF0C14433B8EFFE52D68A374AFDAD165797AF7D5C1535668923B585B3F4
+          B588E90F0F07A7C2D9C6D2AA9D21B37F847FCABE739AC63B8EBC15B9F1E4B68E
+          52222E3A08889A0888A022220222202222022220222202222022220222202222
+          0222B471179A0AC10D6EE56D85A79042EAE060F96CDCE6FAFD88E8B75F871CCD
+          B73092D1D5A3A7F857A27C56CD4D68E162B65C470787F985C0B4B5C000DE6C11
+          5649E39BE28F06F8C8EC389CD16DB35D56E358183D3608EE151CF0E249EA4F61
+          41779C493135C8CC85B04643584F22DFCF1D7FBAD25D6CDD3DF2EE7B1D77FCAB
+          98627B49B6915EE1797BE6CAD46EE2C0D7E2BEC1DCEEFF00E7E6B9E45123D976
+          B022DB8ADBEA79E562CFC4DD1B9CC8EDC059A1DBA92B7D71FF005D35CA4445E6
+          0B444404444044576B43C71C1009366905111101115A389D2DED1742C9269055
+          114B4369DB8906BD342ECDF7F6E2D0422220222202221AEC8088882D1C9E5B89
+          DAD758229C2FA8A5544404444044440444404444044440444404444044440444
+          404444044440444400695C3BDCAA290405A1D3D2F5A9F024A0E2E88F05B67807
+          AD7DC0AFB2F432795E7C82227CA27D1BFAD76B5E399C1E57B79A298C2D925836
+          34D0DCD66D6D9B35C0AE9D2BB2F6FF008F6DD895AD96DF3B18C11411B636B8C8
+          496B4381AA237F5AE3804FF5EBA51E68669D3621C789EE3235ED9DC3D6C003AD
+          A0FB1DD66FB8155CDEF3DA1D74430347249E173B96C0DB04EE24B0F62DB20FF5
+          FECB7DC9291ABB783D94B223B7CCB6917B689E7F4562C2EBA175ECA621C37915
+          75CAE58ACB10F4B8B6EC11440E9D5676B8136435C01B22ABB9EC15E26FFE4A60
+          CC663FD6CB9807DB400EE3AD53BA9BE7D22AB9BDCD1F00CE720D343E368F4C9D
+          1A6C0E4773CF41F9F016F72262B0BF1C894C923459701BAEA80BA140F27F08EA
+          2C83C755AF2636C6B6DC5ED278FE5B02EE8F43CDFBF65E9F0F0617CE25747344
+          C8CB5C725B1D340E8C24034C268FF39041EA0B561C9D25987951C843A1F398E7
+          0739A6C301A0E77243491DFA037F973F392E2E3CFCFA7643DECA8647992E46EC
+          8C86B85904B7E01045F4149144D83CE78A731AD700F6EEAB6F20F3D2EAF9FE8B
+          D1CF97A9EB9A5C78B959394FC6C3DFE4E3C8D71646D7BAEA317B03376D26AADC
+          E1F8BB79FF0010EA2CD2B027C5C630C92EA11EC9DEE6873D91878780016DB092
+          D6F20D96D8E8E20E2F7E95E42593CD95EFA0D2E24D34501F655445E641111011
+          110111101111011110111101111015987B2AA37AF2B507A5D3276E4E1B583F1C
+          43691FD96F30C7E5398F6B6FB38DD85E6F4EC8FA79C1B3B4F06BD97A5960A8DA
+          FA04503D78772BE8FC5D7973FF00C65AE197CD1A3DFF00CFF395491944902BE1
+          6568746E7336F2DEAAD562CF55B9360D6606BD96DE41F75595AC7340A23B16D7
+          15439BBEFCAD9E805FA80EC8E0C7CC000036B6835D4F3576687EBC2CD822089B
+          E44B36DDED8CB5BB48344924F3EDC34F7B4D625872F27227C7C68F021925B662
+          B5E5CD8C1BA682EE481D2C927DC926D4BA591FBA66C6DF4B035C5B1B43685006
+          80AF6B3D493CF279D294EF6802EBBD958B3EC8D691E236DBF8691C1F75CE9F2D
+          F2B8D1D8DFF485B1A91798D83712C6934D27804FC7E5FD1682F2F7D5DC685B5A
+          63C3320DF714B556F6978FB9C642781C00B3C7BEBD0EC42D124818E7B636B880
+          5EEBA1F26812B8DA84A1C2AB926FF25D69DC044EA3B49E2BDD70321FBE671EC3
+          80BBFCB7262463445B384708332BEAC4E5DE49FA7F20B4012D8ADF7FCB5BBA73
+          74BC6AD645B073A4769ECC22D8BCA64AE983844DF32C80082FAB23D238268724
+          7537AE80888AE0222280888808888088880888808888088880888AE022CB8D8B
+          2653A982F9A27FCFB2EB45A342C60F35C5CEEA437B7C745D39F8EF5F4388BBDA
+          4E198F1B73DBCB8DD11DBB2DA871E0887A18CE3A1EEB607E1E083F0BD7F1FC5E
+          376D4D636C748470B2583F0554F0482BBE228D6DDFCA83070401D164DC1A38A0
+          A85D668A9904086C75FCAD524C38A5E1EDDDEDCACCD34B235A08AA1B8906C9FB
+          F1FE7B264A359D1868AE8D1FD163749234111485A1CDDA483FCA7A83F07DBE56
+          E001C2AACAC0F8769B68AA53AE760F3B9983360BDAD999B773439A4104104023
+          91C5D1163A8BA3CAC0BD43E0393064BC06973407386CE3693D687157B7F3A5E7
+          73216C1932B632F7421C7639EDA25B66891CD1AF95F3FAE3C5A614445C811110
+          11A68F407EEAF1F96E696BFD27B387FBA99A07E3BF648D2C75070BEE08B047C1
+          1CFE6A8C74888A02D9CCC98B2487331DB8EEB3C30FA76F142BAD8E792493FDF5
+          9101111011110111101111011110111101111011110111101111011110111101
+          111011110111101111011110111101020E55834F62B506C60B98CCB81D2B7CC8
+          C3DA5CDBAB17C8BA35FA15EBA6707D3ECEE77406CD0EDCFF004FC9795D2A2F37
+          3E0697014E06CDF15CF6FB2F51246CDD4DA2438B787583CF5B5EDFF1FEAA54B1
+          8C944CD91E238C465CF712071EC2CF249A1FD6B85CB9725C5EC25BC35A031879
+          0076FF0073F995D06B2094B8CF33A06B585EC7B581E5CE03D0D009039716D9BE
+          0071A35479B3C1244FDB20DA5CD0F167A822C1FD0AD7777A27D30D91B88E5BF0
+          566870E6763499031DE71DAF6B1D3ED3B1AE374D2EE8090D775F63F2B3086182
+          389C64DCF243831A2C7C827AFB763DFF003D939395A59C9D3A2CC11404833321
+          9CF9333D85C5AE3476BAADC011EFC7537CB55AD867EAC885C4EF2DDA0F6E3DC9
+          E9C717DBECB7C6AD0E3453C271E2C9739BB1A652EB61E9C6D70BAED608E076E1
+          63946563E1CB8A32A49E091F1CF2B5921F29DB41DBB81EA46F207B59AEBC6395
+          C06380E94C2C6B0B1C18C237104103E4F0D77240F8E14DD1BF36AD345E4C53C6
+          D6C8FD9BDEE89ACF301F500E7F52082D759F83D82F4DE22FDB4695A9687A76ED
+          14C9E27C42F84EA2D9EE3106D0236B41048734B7F17269D4D736857966E7E43F
+          C39AA69EED45F036207263C33216C0E71735AF203A403CCDB40535C48E3E4785
+          5E7EB2ABD969DFB61F18693A06A3A1E1EB3241A56A2F63F2F1845191396BB70D
+          C4B493CF357C9E4DAF27999936A1973E564CAE9B2277BA492479B2F713649FB9
+          25614580444441111011110111101111011110111101111010222B0668CD72BD
+          5E34DF518101EB4C6B6EABA71FECBC830936BD26833B25C37C47F1B0DFE47FEF
+          6BD9FE3DFF00B5895BAF2E99EF95CE2E73DC4B8B8D927DCA6CE0A9AA6F009E79
+          2A41A15D57B64461006E3C86F04D956F24C6F99AEA91AC8848ED8F03AD6DEA3B
+          1736C7DFA751738CE7CC221EB7966FA67240A279FD17B4F02EAF89E1AD5B17C4
+          59FA64DAAE9F8D950C79587107C38F334384818E95AE043896586B40FC3B81E0
+          AE1D75FC23CCE362FD0E9FE73F19CF7CAD7B77398D746E1CFE0241BA2392D20F
+          E2E95678B9B8BF4D9F9103093E5C8E60B1C9A2476B5EDBC5BE288BC6B999B9B8
+          FA2E1E95912E54D9B34584CDAC8DB2C8CA630B8EED8D27686971EA0DF55E27C5
+          BABC9A8199D23B799A40F73DE43DE4DBBF9E81AF51E9C1E2EE815C36CF75A71B
+          509A374618D3B9DBAF8E9DD68222F3757CAE82E8E8AF1E63D8E3D688FF003F45
+          CE41C2717C6E8EEEA1288A227774E9F2B84A5CE2E36E249F72A15EFBF3A41111
+          730444480888B40888B208888088880888808888088880888B50111151DDD0A3
+          6B715CEDD65CEA23D974B989FB875ED5D971B47946C736A9C07EABB2C25D401B
+          27A2F7FC797865880A0EB17CFE237C75E15DAE1CF7A53B0CB310D24F5A1C9ECA
+          805123AFCADC0DD6EEBC29710E54DBFF0074E8A8C8D0D21DB8B8000D168BE6B8
+          1D7FCF955606EC75825F62883C01CDF1FA77F7FCA07423AA98C7AA875F9505DA
+          39EAB331BE9FEEA618F73A95C8A716FF002AED20C2E0474E8B139E0D8EF4B313
+          EA2B048DB3C75F858A230F3DB89900BD9BDA41639AE17C114EAF635DFB2C3910
+          412E016C818E73BD6D7467D6D34E0013D2AE891D790A5AC1E65BDB63BA50DCC1
+          B8379A147B7DD70BCEEE91E767C69319C1B23689008A36083F21635EC3C51E15
+          7E1F84B4CD6DB2E3CAC9733230DEC832D933A10D0C747BD8DB31EFDD2ED24FAF
+          CB7D0F4927C7AF9F7EEB42222808888088880888808888088880888808888088
+          8808888088880888808888088880888808888088880888808888088880888808
+          8805AB80395760EA8D6AB016B43ABE1F8EE4C9937B1BE5C7D1C092EB2050E3F3
+          E7D9759FC93ECD1CA9F00F85337C4B364B3036CB92C2D6B31B6BDCF96C3DC76E
+          D04001B1B8926BA2DF8A031E99A84C25C5A73A38BC991BFC678B2E2E8CD50A21
+          A0D104878E08DD5ECF86CF1B11CB9677C84B19B831FE9F2EEC9FE9F2B5FCB7F9
+          EC8C3492F21879F73C2CF0C065DD26C6BA365D81D80EE40E472E1C9E17A2CCCD
+          7EB19BE6CAE89B93B582E38983F080D165A00BA6B79A37766CD92A4799645F4F
+          3BA531EF734DB059A3DEF8FC940803EA49059BA008A6B9D7D2EC50AFF6F7B5E9
+          F5DC6899A540637E248E333DAE6424F9F1348611E61755B4D70E17B68DD58BE0
+          E516CADC78E221CCA2EB00517126CFBD50039BE41ECB32CAAAC0FDB235E5EE88
+          38EE34D0D147AD36C0ABFEDD385D3D021D37509A66EABA91C58598D2B9AF30BD
+          ED6BDB1B9CC600D0797B9AD60268024136012B86C2F6798E141BD6AAC7B743F7
+          58351CD8D98ED82387CA99AF76E949A2E1C5023B107774F7F853A231EB1A8793
+          17D0634ED971C86C923DAC00B9C5A09693D4869E00E96091D571909B25179811
+          114C04445301111404444044440444404444044440444404445A825A7695B783
+          96FC49C4B13B6BC71D2EC1EBD569816B2378F8567A1EBE39E17C41CC2E7070BF
+          5715CFF5E158CE7CA2C14D6F5AF73CFF00C95A5A162CF9782FF26A7F5518D809
+          7B2BA76AF559AA37E93F9E46EF73B68E4934368E495F478F93CA338D98E695BC
+          82656D18C6F6EE14411401B00F5AF63CF6594E5323C56B4C1C46D3BAA5203CFA
+          A8B85F51B80E2B807B92568999AC24B5E78E9F3F75998C88823227870D9BB689
+          67DE76903A535A4F363B76FBACF56458DCD326FDE798D833A67C38D28B927861
+          6C8F89A2DCE7502DF4F52EE7A0BE69799F12EAB0E6E59C6C2F569B8CF7B71A47
+          C4192CADE81EFE49B2003B6C86DD0F9D5D47547E64AED9FC38AB6868A1607BD7
+          55A2BC7DDDBE944445CBD8222280888808888088880888808888088880888808
+          88808888088880888AC04088385A1B5A7CEE8325AE1547D26C763C2EFB6E8D1E
+          DD1799602E22B92BDCF880E19CAC3183A70D35830319B2C5E73A574933626B66
+          9493F877C81EEDBD1B75D977F8BACBE28E4091DD3B859E6F331DFE54B1889DE9
+          7511CD1160FD8820AD7C994905A4F43605745866C891E23DE490D6D59FB93FEE
+          BBDB9531B4D775AE47BA937562A973A4D4D9102180B88F7E8B5DFAB48410DDAD
+          BEEA7E5E618EDB471D79568C06BF7753EC579C6EA53B4DF984FC52DDC4D5CBCE
+          D90017D0F64E7E5E698F4113BAB850A1744D207EE7387C76ECB4E1CA04D48F11
+          30F0E79E4016A5926CDF67BF242F44EFF433586826AD6B9F49049007CAC9E635
+          CD6F1543F55AF26EE4816166D162E0584837C5DAC75BC305D03D1C288BFF006E
+          1648AB6BB7F2036853A8FB7E7D6EBD82EA683E1AC8D6A7C8C52E9F0E1116F766
+          98DCEC6829CD2F7CCE6825AC0C0E7580E361B40DAE1DF5399B564D797D4729CE
+          C3D96089A52F71EF6D1C77FF00A8FF0096B96B6337244F235AD004718DADAEFE
+          E7DF9367F35AEBC77DA8888B380888980888980888A02222B808889808889808
+          88980888980888A02222022220222202222B8088880888A02222022220222202
+          222D404445414B54296F4417029646901A5631F2B630A738F93148002E63C380
+          70B160F0AC1DFF000F37E8D8E90B419A5063635ED0768229CEA20F41C7636E04
+          74E7672F6B257EE6099AE000E6B6F4276906AEB8E6FA9E2E93232E6CBCC74F3B
+          DD24F2461EE95EFDE5EE71DCE713EE49E7E4D1E56E33146AF0B1AD8F1209A225
+          B4C9446660039C49739FB6F80077713C595ECE32708E28263E470B75C46C73A3
+          B34778703640F626BEC781EFF2B4248A48CB9AE6B9BB3F158E8B734F924CAC8F
+          2CB985E4726695AD65571C922BB0E4FC252333357742E607B0EE68B3B81A3CF3
+          D79F61DBA7EBDFF1C78B748F176AF0EA7A3F85713C3E1D1B7EAF030657CB8F23
+          D8DF5BD8D75BA2068B880E2D166A805E55998C85B3074CD31B8B1CF66EE5E473
+          CD1EDCF7BE7E38D79B52C6C6C49463CB23B2CB8B03830797E5B9A438F3C871E0
+          74F7E4DAE3727B55B5BD670F2F267971301B84C7BDC5B1094BC3184FA459E491
+          CF24F37D02F3D3485E492559CE2E249503BAE56E8C6D176802B8680A56463A40
+          DB592B84E88311148B2154D9C5A084521BEEA2AD40453B784DA82114ED4DA982
+          11583690369055164DAA3620A22B6D4D8A8AA2B6C4D8A0AA29DAA29501C2B82A
+          BD13DD076747F17EB1A169BA969D81A8CF8DA7EA3E58CDC463C88B2761259E63
+          7A3B69248BE8791CAC2DF1066B26133662C95BCB5D565A474209E87D8F6ECB97
+          D12D25CFA1B2ED4B29CF2F3912971046E2F3747AA6A3A9E5EAF9D3E6E7E54D9B
+          9990F324D91912192491E4D9739C492493DCAD6522A904225220222202222808
+          88980888980888A602222B808889808883A260222260222260222202222A0888
+          05A0B35A9B7AA96AB208692D20B4D11D16D41A83E3737782E6378A1C7176B580
+          A515CAB2D9F432CD9724CEB2EFC82C62471145C6874E54520149B6882A8B26D4
+          AEAA0C69D14D2841B51E639D2445C437CBA228D5907AAF44757D3B23134E8F13
+          11F0654106DC992593CC13C9BDE4BC34801A3696376F3F849BE78F26B2E34A60
+          943AB70EE3DC2DF3D59747A31339FE631CD1B4BB77E10083C8E0F61CF4FB7B05
+          9E188C80BA301CD69BB22C0FB83C0E481CFBAE547A8425CE76E310712EF2F935
+          C90074EA01BB5E8A3D5BC2D378532A19C6A4CF1187C5F499113D9F491B039DE6
+          31F196973890438383DA017105A400577FC924F498E7CD23315EC8A461F349B2
+          23787D3090680BE08A7753DC74E6E64F1765787F1B5CD3B44CDCAC4C3D523FA3
+          C9746F7C0EC9C76BC38365635E4104B5A4B6C8041EBC15C4CC7E2C5216E34B36
+          43413B65958186ACD7A41776A3D7B91CF53A534CF988DCEBDA287EA4FF00BAE3
+          D75E53158914D201EEB98844211011110166C58993C8237BBCBB3C3CF41F7585
+          65C4C6972F2628208DD2CD238318C60B2E713400414923313DCD3D41A555EA35
+          9D519E228FEAF529269B533146C74C36DBCB40636C50E8C6004F249E49EB7E73
+          2216C2400E0E35CD76E53052ABA28DAAF548420C60210AF5C28FC90551490A3B
+          F28089488088A6904220E5101111012A94B505736821149508088880888A6022
+          22980888AE0222040443C708A822220225201680ACD4014D20B059B0A86546E2
+          2DAD7071E01E07DEC7EAB0014B2C45D676F5AA560F421B1BA3CC7B6882F2232D
+          B2D2377F293FEFD951CE2E739F4003D9A280531C7E56244DAB0075EB5F291FA8
+          52F77333D32C4480C7B9C0D004B803563AD2D4667462290D383DDD1A071FADFD
+          96EBF223C60F7B99BE9A401600BED760DFD9711CF3256E3C0E02E5DDCAB13776
+          A84817EE84D0E3A286D736BCEAAD2551563C85000E6D304229A50980894A5A3A
+          F2A608452694202552220528A0A514114114A520009488100222202222022281
+          682554B55910576A8AEA55C70A3AF44151C28BA255B6A06A0A522B909B1057F9
+          5035580A14AC050418F69514565441894D2B5514B41018A36F25581A52055A0C
+          7494B2514007B20C6A5AAFB451E154348411D4FBA114AC1B6A69050716A7AAB5
+          0A501A8211580F7401052BAA8572AA45F441088805A022B528DB5682114809B5
+          0405650055A9412D565517D9482825114744128A01B5280888829D9540B574A4
+          1002B00805294059F1E06CC0973F60079205D0F7EAB5EE959A6906D65E08C46B
+          4B678F21AE1771DF1CD7703DAFEC7B2D3DAB666CD7CD8D1405AC0D8C921CD680
+          E37EE7BAD75446D42A529415A552D591472831A2B10AD0E3BF21E18C6DB8A7D8
+          C60595BF8D86EDAE91B308A48CF1648EC4D8238EDEFDC52D9C4D31B07AE577F1
+          3A7B347C92B1E76562498B0478CC99B2B4BBCD7BDC36BB9F4ED681C717764DDA
+          DF8F8CF63672B3A2C08715B8393E764358D7BB22363A3D8E73412D175CB492DB
+          AE4826C822B8A075564580E3BA76514500A14809C20F653482368505A28AB282
+          3AF2831D152D1CAB809482035452BB47550420C748012AED1CAB20C54A436C2C
+          802520A06FE4A4378F7564415D9C28DBD55D004C18C840DEAAF5D9290536950B
+          25F551C20A2292119568229295E88E8828FC1414AEBF0956B26D4AF74140DE14
+          ED56AF64A4142D514B20156A0B50437D9100AB5210405205AB281DF841202E86
+          938BF5190D65ED1F88B8AE7B4D2F41A1C5138B491B8D720FF42BBFC3CF97436B
+          223DE01FC35D38367FCA5785F03443BA23B9A5C64DC6DAF1D800288FD7BF6539
+          0E3D0F0DEA09EEB4E49D91025CE0D1F7E7F217CAF5F591972B3E197CC9252CDA
+          C2E341A4D0BBA1C927FAAD3B5966C992779DC78EC3B2C47A95E1B9BE9A2D40E1
+          11604D5F4509D11344817DD36F5E542268B368037D5451B5080AA2E1BC2AD55A
+          59A50824D2844504914A12D101110282084008528823EEA545291CA022220222
+          20AD11696AC141081760A81C27BA0EFDD02D4B4A0E428A2105BB280A2D020B22
+          2AD5A0B2281F7440EA83A281C29B40AE14B4D823FAA81D138082DBBD24050D34
+          140080503CDA09455E83AA81F082C4D28BB4A51D1039ECA68ACB1184B1DBDCE6
+          C9636D0B15DD61F74C121C9BAD402138EB682F76145714AA0103E15811482A5B
+          4140E8B25714A2FD90403D53AA91C851548243500A0548E8882954A4293D1400
+          824745207B280A42405038B52882005288808883BA60252220522220257CA224
+          0444404445411114114B6B0729B8EF05C0802CEE67E2BECB56D2F9565CFA1D0C
+          AD59D3C723033F150DCE712E0076155DB8E568045096DBF6269452908A0290DB
+          562C03A94EDC70B582B4003DD40295494A09402D00E2D4804AA1D3EE95D559A2
+          873D509A07DD51402AD392AED650E55880983135B76A4B15DA29411D53052902
+          9E9CA9003BE1415AE142B9670A9480802968EAA6B8E8905691588E15694C0A54
+          2296468E50B784C14AAE54D0521BC201D5410384A0558378E0A8A5701111040E
+          14A204815D7B8453D54208A4214A528088882405D2D3324C5230035479F62B9A
+          05F0A58F31BAC1A2BA71D78DD83D2C72643642213279818EB31B8DEDA3BB907A
+          16DF1ECB1E4E9832F45972C3C79B8EE6DB4BDBB9CD362A89DC6B683C0E96B991
+          6A9B9A5B382F69F9EAB761D460C78EE20E0EA040B140FE9CF16BBDB3B9EAA4F4
+          E29340AA2D89DD19276B4858179EC55E27462F730BAFE7A24AE6B80DAC0CAF9B
+          B54FEAA76A7E85512A916011029E9F2AE0852D147DD28F28D07B755609F7A555
+          91AFD86CB5AFF8728780E712D6ED6F604DA0A22B06D0BB4A06E905514EC3575C
+          285011294D70982145A5F5F7523A2829679523A15348055A0205288088880A14
+          A20A8E107556A5154816A5129054A91CA0E14A022B34764D8795705542908822
+          94A842A05A940291202222A0A00DA14A28200EAA281565050578E69294B4004A
+          921050B6BAA8A57013620A8BA4EAAD454814803E0DA51F74AF6E100ABF9412A2
+          B952881D945A529A4103A29516AEC6DFD95C15A452452009821294D73EEADB6A
+          FBA482BCA856239BEC957CAB82A8A48EAA140517CAB528A4C0EAA76F0A11401C
+          A2220B50A55408AFD8296A017D53A2B008A50A6F850140515CDF55602D4ECE0A
+          60AA2B3587AF09E59F6570553F25711FBA90CBEE9200E3B5A582B2BE17B1BB9C
+          C21A7A12382A8002B782368EFCA0566B6CD2C8EC79226EE730B41E8484C1880A
+          078501B5CF45905ED2128F366ABA14C18EBE54835D82B3B80383EC8D20763FAA
+          090E0E147856F2C7DFEC90B0CF235801E4FF0028B5932591C07631CFF3070E69
+          1FEEB527AD181CCAED4AA5B5DED48712689B0B239A1A49175F214FB1852AAD5F
+          852C88C961AD7388E4802F853063A501A3956A20904280A08D801534A43494DA
+          9820744630BBD94FDC74560FAECAC82A5A7955FBAC9E67042AF054C142DBFC95
+          6966650B07BAB5309363F3530600C3D14552C86DAE349D6ED30630AC196393FA
+          2B00A3A20AED22D437AAB104853E4B8343A8807A1A411B540675561601B355EE
+          9B87BA082C40CF759638FCC2403EABAA2B63F7764590D8F701CEE69E0FD96A73
+          BF4349CCDBEF4A00AB5B32634D1B3D71BDADF90B0853305433F24119E7BAB8E5
+          08A09829E5A80D22E8ABED37FEC8A60AEDB1C9A28D6817B96423D3C8FCD540F6
+          5705400074E546EF85908205A81175B078E54C18FBA9E2BD95BC9E2C387D96CE
+          3E97364C65E000074F956736FA8351A3E2D4803E42DE6E932165F98C6922C03C
+          2D6F29CC753C385F4E2ED5F1B3EC5074E540675A72DD8B499DCDDC4534F238B3
+          FA2CC745981ADCCA3DE8DAD4F8FABFA1CCD9DD01A5B9269B911BCB7CB2FAAF53
+          0582B2C1A34B28F5BC467FD356527C7D5B920E75F354AA6EEC2EB7FE1F7026E5
+          B1EE02D3974F96279681E67FEDEBD48FF652FC7D4FB835DA6DA6FB2505964C59
+          611EA639A3DE96126AF959BEBEC0051EEAC1DF9A0B73A80364D001415DA54552
+          D8931A4848F306D24F009E55A7C09A0FC4D25B57B80B0AF8DFE0D44002B88FAF
+          B2067559C1445959019376DE48175EEAA22711D38570500BB520290DA2AD44A8
+          295C252C9B48163A28ED445AA31A2BEC1EEA4447B29831D29A3ECA68834AC3E4
+          7E6831A0E164005296C123D85ED8DC580D6EAE159055AA6CFF00D91ADE39EA87
+          8B01056FDFA28591AD73EF900855DA40E879F7EE82A428015AEEB8AA576FA930
+          630D241514B3007B2B06B5C09E853060A514B6A38B73F6EDBAE4D2CC34B91CFE
+          006B5DD1C4823F55A9C5BF43407E8955F2B6E6C374269CE69581D181D0FDD4BC
+          D83181C1E142E86169472DA1DE6B5A09E83AACB2E8E19C33CC92FA102BF35A9F
+          1F5668E5522EAC7A0C85A0BA40D27B0E56BE569CEC67B9ADB91A3F980FEEA5F8
+          FA936C1A548B2F954769F49BAE5671A6CD62D8EA2DDC368BB1FF002B339B7E86
+          9A90DB5B71E9C4C7BE57F940F4B6936A9263B217399BDC48E8E0DFF62AF8D183
+          61505A42CE71A5635AE737877E1AA36A7E926730911B881DC053C68D70DB4DAB
+          33613D08A35D103459B4C18831362CE182AD4984ED2EBA1F2AF88C01BC72A402
+          164F29C78A27F246C3D7B260C7D2ED578AE0ACE61007B9550CEBD8265146B785
+          3B6AF8560C3D85FCA83DD3056947C2B727BA0E8A0AED40CA5700F3DFBA82D357
+          629054B5000B2451BE434D6D9F65B274C9C34B83370FFA795A9CDBF43436A6D2
+          B67E9642FD81877760452A3B0A60EAF29DCF4A176A78D1840253857F2DCCE4AB
+          885C632FD8768EAEAE14C1868FB2968B561C25A82036948675591847716B61BE
+          5EDE5847E4B739D1ABE5DF085B5C10B31DA3D82A97593DFECAE0C402B35A80FB
+          70ACD759AE07DD402DAE8AA6C92B2C71BA57EC68B7761EEB68E0B4DB4324DC47
+          1C8E7F50B539B7E873AC0535F0B70E9B2B9BE88DE48EA1C296B9C696304BA370
+          00F5A52F367D8F4EF635ED2D700E69EA0858460E3B5D62165FD96C22FA764BF6
+          CB50699087EE17D7969E4152FD3E29000EDC6850F5745B48A7873FC1A27498C0
+          F4BDC0F63C2BC5A6C51B5C1C0484F770E8B6D149C733F439D1692C3626637BD3
+          987F4E293F72C4010247D15D1453F1F3FC1A71E0FD35F91B5B7565C2C847E970
+          492190821E4D9AE96B7115F0E7E873868910797091C3DBA70B6BE8E37376B9AD
+          737E42CE8938E67D41CDCBD299E55411D38F7DDFF2B0438B9588F2E632C74A04
+          72BB28B37E2E7760D1C5C26C9037CF66E78B1EA0549D2318B480D2DF90E2B751
+          6BC39CFA1CC3A1C776D91C3EE2D51DA2BC7E191A7EE29759167F171FC35C4FDC
+          F35D1AA3DC1E8B345A20F2DA5CFDB203CF161755127C5CC35C57E85273B6569F
+          B8A588E8D9001E013DA8AEFA2CFE1E0D70C689317517340ABBF9F6591FA238C6
+          3639A1DF36BB08AFE1E0D7362D123F2C7985C24EFB4F1FD95DBA442006936D1E
+          E059FCD6FA2D7E3E67E86AFEECC6FF00F90A585FA263BAE8BDB7EC7A2E822BE1
+          CDFD0E5BB428F6902437DAC2D86E1185A042EF2F8EA3BFDC742B71127C7CCFA8
+          34B270C4AD05EC12383F77A4017F7E7FDD6B4D88657B1A6060881AE184103E28
+          95D6452FC728D3C3D35B884D3DCFE6C5ADA7B4B870EDA7DD5916E733999073E7
+          C0C895C48CBFFF00CECA0A874FC82C7348C777140ECA23FA2E9A2C7E3E47363D
+          123DA77BCDFF00D3C2A3F43EA592FD8382EAA27E2E3F86B8AED1A71DD8E1F04A
+          C7269990D71FE18342ADA7AAEF290D2EBAECB3F87935C6C0C22E9089A276DAEE
+          296F1D3A2F486C2C0DE975CADD6C44DDF01487B58081C9EC56F9F8E486B9CED1
+          58F04876DB3F89C012A068CD0DF5CEE9483567A01EC05ADF26FB92A13F1F1FC1
+          AD160451721A377BD2D8AFD3D94A2D4927D08A5288A828A1554A510558C11B43
+          5A29A3A0521A1BD001F652880B14B8D1CC41736C8EE0D2CA899A34FF0076303C
+          399248CF806ED639B4682425C1B4EFB9A3FF000BA08B1E1CFF0007321D2FC96B
+          C796C7DF726CFDB909069FE56407B985D7DC8068DF5EABA68A7E3E60D0CAC193
+          29CF71735D4DA60703C1EE7FCB5B1898E31E00CA16793C9EBDD6745A9C497473
+          F23478A60361F29C3A90382B03744706B81732FB1E575D166FC5C6EE1AE7B348
+          63056F71E9678FF8553A2C449A7103EDCAE9227E3E7F86B4E0D3628E2D9231B2
+          3B9F5552ACBA441239CEF5027DBA05BC8AF873998399FBA626070B7D8FE60395
+          88E8D2063B6B9A49E849AFF3B2EC22CFE2E4D6943A563B58CDF182F0059B3C95
+          5974963DAE0C76C27A7A47FB52DF45AFC7CE660E1BF459EFD263AFB94668B302
+          438B7EE1DFF65DC458FC3C1AE47EE27006A50EBF76ACEDD29806D2D04575BE86
+          BD9741159F1733F439B1E92D8A2938123FF9770E07F5593F7646F672D6B1C68F
+          A4557BF75BC8AFE3E7F8395FB8DA01F5126F8A3C57E8AE7456F004CFA1D88B5D
+          2453F171FC35A2DD1E00FB22C7B52C91E9B0457B5BB6CF50483FA85B48B538E6
+          7E8687EE98C38B81B71EEE17FAF2A59A44207AEDCEEE4703F45BD4A43494FC7C
+          FF0006A45A743092580B5D761DD484FA16B8B8BDEE7EE1CF0073EEB7DB00AE5D
+          FD14FD30AFC4B5F8E7F135CBFDD513DE5D253F8AE016FE7D555DA2C07A39E0FD
+          C2E898DC3B1FD142CFE3E7F8BAD1C7D33E99E4B2670B14680E56D360631BB45F
+          DCB8DFEAB222B3993E86B3F01AF24F992F26EB79AFD15BE958D0030960038682
+          40FE8B3A278C1A52624B476793607A7D1547FAA98A3CC1CC9232ABF0B07FD96E
+          229E106ABE095C3F865B111D1CE1B8F3D7E16B7EEA7492132C9BECD920D7F4A5
+          D34009E9CA5E25FB1861C48E036C6EDE2B85271DA4F41B7FD35C2CDE5BBFD254
+          F94EF65AF19F588D1934D638481B4C0FEB4395A0ED1F219F85CC75F51D177842
+          EF84F25DF0B17E2E6AEB938DA5542E12D092F8AE452D98B05AD8DCC786B81E94
+          16F790EAEC82037CD2D4F8E4FD1AD0769B11AA2E6B87F303CAC4FD28B9FF00FA
+          BE927B8E7F55D5F207BA8301EC52FC52FE935CC1A3C3CDB9E7F355768B1F3523
+          87DC5AEA185C3B5A96C163934A7E2E7F8BAE33B44E0D4B67E5B4AACD1DCD34F0
+          1EDAFE4751FEA1771D0D0B07F558C31C7A027F253F0F3FC35CA66891D9B73C7E
+          8566769111876024590771AB5BFB1DFE93FA2911B8F649F1733F46B950E98FC6
+          2E2C3BAFD8D2C471F2584931820F5F482BB8D81C7D82A989E3F94A9F8A7E8D72
+          5B0EF71B89EE79EBB811CFC7B2DA6E9D136CB4B98EF70E3C2DF6E3922C9AF853
+          F4C6B875ADCF8E4FB4D6B471F96D02EFDC956A59BE9CFB85530B87B15BCC1AF2
+          62C329B746D27DEB9583F76318418E4923A3740D85BDE4BFFD2AA41068AC5E25
+          FB8AD3383C1DEC8663F2DDA7F5E560FDCD13EF730C767F91F75FAAE9A29F8F9B
+          F6392ED05A1C3648E03E45ACADD276B1ADDF601E473CAE8A2CCF8B89FA35CCFD
+          D4C1E931D827F107F6507418FB4AE1F70BA88AFE3E7F839B1E8E1B61FB5CDF76
+          821CB04FA4F23CB89FD79F58E576514FC5CE61AE461E0CB0E407B7F87D453813
+          FD97506E0DE82FE0D05745AE789CCC831B5AE607124B8FB71FF6586594D3B746
+          EED40349FEC56D22D602222A0888808888088880888808888088880888808888
+          08888088880888808888088A437F21EE821158301FE601360E7D415455112891
+          7D94511288175C22022201680845292D2DEAA406D736A896461F7EAA4F2C876D
+          B52DDA3B7F5567BC3853793F0AE22E19FC3DA7858DD0102C1B595A091C8A2A4F
+          75AC4D6A22B3DBB4AAAC3422228088880888808888088880888808888088A5AC
+          71EC55108B3B60696FFD4ACD81A1B4793EEAF8D4D6B22CFE437DCA7D383744A6
+          5358116C36068F9FBA911B40E813C4D6B22DA0D6FB01F921683D82BE29AD5402
+          D6D00074E1293C4D6AA2D9DA288AEA818D6F409E26B5916CEC6D5570A044D1D9
+          4C5D6BAB46CDE68DAD8000E82915F14D6130381E05AA6C70EC56CA9B4F135899
+          00AF55FD95DB13076FD55AD2D6A491121A0741C7C26DAE813728DCA8902ED4F6
+          51B937205502A13725940E3D946D6FB0442682831C9B5A2A8595840B599EC73F
+          DA94C71867C958CD698BCB77FA4AB3603DFA2CE1480B5E29AA06347F2856A03A
+          29014D0551550A4A8541111048348A1104A004A03484A08444405238401486A0
+          55DA6D535488005222827840B5544405205A8520D209DA1406017C04DC96829E
+          435C49E53E9DBEE5594834A6418C4005D92557E9CF620ACD6A14C8BAC06170F9
+          545B8DE8AA5A2EFBA9E26B5516C86379E02831B48E9FA29E2BAD74567B434F04
+          AAA8A222280888808888088880888D009E4D0F7404593647FEB3FA29105F4770
+          AE23122CBE41F70ADE4FFD43F45729AC0013D05A9F2DDFE93FA2DA6F03936549
+          2295F14D6B085E45D29103BB90167B50AF8C3584E39F709E41F70B3834969E30
+          D611011DF953E51EFB495911321AC6D86872014F27EC3ECB22264358BC8F9FE8
+          A4C036F0795911321AC3E49AEE4FC7455F29DECB641A509E30D60F29DECA5AC7
+          B47459913C4D563245FA48FCD5F83D428455137F0A3F2088A8B0A552D1D28522
+          20A98DA7B2B06868A0384DC01AB0A2EBB153D06C69EC85A0F5E551C5BEE5A557
+          7903FF0053FA29B159B681D87E8A42D7F35DEEABB9C7B92A6C31B575DD633280
+          7DD60453C9712E759F65088B2A222202296C6E7740ADE4B9545110820F28A288
+          8AED89CEF8FBAA288B30807736AC2268ED7F7572A6B5D28ADA0D03A00115F14D
+          6B0693D8AB3212EEBC059D15F1350C6ED15BB8FB2B28455128A14AA03850A502
+          084535F2A10111104A02A1104A285282114A8404444044440444404444044534
+          821111012822280052222A0A41A508826FDD2D4220222202222022220222209A
+          5202AA94164554416504A850825422202222022220222202222022220950E76D
+          6928A08DC083D14188CE48E05158C927A9B567465A4F75143DCFE8B9FB690888
+          A2888880888808888080D144416F30D7201FC94120FF00280A0349E8B2361247
+          24057DD450349E8AC03C74DCADE47FD5FD15D91ECEF6AC86A8C2F268DFDC8595
+          116E7A6444440444404445411110111101111011110111101111011110111100
+          807A8B55F2DA3B2B228286215D02C5E53BD96C229917581AD734FE1FD42383CF
+          505674530D6A90422D97343BAAA3A11DB8531758515FC877C2B360F73FA2986B
+          10167934AE1ACEEFFE8B2085BED6A446D1D9591350256B450B51E737E55F637D
+          87E8A0C4D3DABECB594627C81C2A954309E80ACE226B7B7EAAD4A61AD7F2DDEC
+          A446F1D38FCD6744C358C3641FCC15DA08EA41528AC882222A0888A8222209A4
+          E8A1104FE4A11101111011110111101111011110111101111011110111101111
+          0111101111011110111101111011110111101111011110111101111011110111
+          1011110111101111011110111140E7E16BB8B812092B6141682A58B1AC8B3F92
+          D55307B158C5D62457F25DF0A0C4E1D9305514EC77B1514476456D257E688BA3
+          050F651B47B0528982BE5B7D93CA6FB2BD2514C831F90DF941155FA88FB15928
+          A529831F97FF0053BF54119FF5B964A294AE0A86D7F313F752A68A5260522525
+          14108A6928AA2114D14AF8410A52BE128A82114D1F64A2A884534528A0845345
+          4D208A4A535F2A28A052529A29482142B526D415456DAA2904229A534A0AA29A
+          4AF90A88453B536A084A53B536A82114ED4A4108A76A6D544229DA9B504229DA
+          9B504229DAA76A0AA29DA9B504229DAA43505515A936A0AA2B6D4A505515A92B
+          E1515456141105514D7D92BE504229AF94AF94108A6BE52BE504229A4AF94108
+          A6BE4252084520257CA08452882114A208444404529F9A08444404529482114A
+          8404452821111011110111101111011110111101111011110111101111011110
+          11110111101111011110129114C002911130111151FFD9}
+        Material.Texture.ImageGamma = 0.699999988079071000
+        Material.Texture.TextureMode = tmModulate
+        Material.Texture.FilteringQuality = tfAnisotropic
+        Material.Texture.Disabled = False
+      end
+      item
+        Name = 'moon'
+        Tag = 0
+        Material.FrontProperties.Diffuse.Color = {0000803F0000803F0000803F0000803F}
+        Material.Texture.Image.Picture.Data = {
+          0A544A504547496D616765CDD00000FFD8FFE000104A46494600010101004800
+          480000FFDB0043000503040404030504040405050506070C08070707070F0B0B
+          090C110F1212110F111113161C1713141A1511111821181A1D1D1F1F1F131722
+          24221E241C1E1F1EFFC0000B080100020001011100FFC4001B00000203010101
+          000000000000000000000405020306010007FFC4004B10000104000502040403
+          0603070303000B01020304110005122131134106225161142371813291A10715
+          334252B12462C116437282D1F0F125539263A2E1343573748393A3B2B3C2D2FF
+          DA0008010100003F009CBF0566CC2C15AE5C2689E15092E81F5B0A38512BC2AE
+          07CADE92EBCCDD6F9294927FE56CEDEE460D77C35E158F0CBB297263AD206B3F
+          BBD2E26CFF00FC207FBE18655E17F09488A0FC2B4FA5CE253F08A1B1EC3A7B7E
+          788BDE0AC84BDD08A9458DCF4A134E9AF5DDB240FAE1BE4FE00C85A4A9D7A3C6
+          9493C75E2B4923EC948C5598780189457F0AFE5505AF56B296491F7524E13C8F
+          D9768696EA33D84B237FF1309A6D3F9A74E303E2090CF861F52163C2F98389E5
+          2CADC709FB26C7E780078E644B64A6178772D458042BA0A06BB500A04FFDED8D
+          2784DFF16499C5B73C039B25B4FE290E21C6D947BDA9143E9671B4CA25352B31
+          FDD4D35163490DF53A929C4A127D9169255F9637195783254B612E23C5B92C71
+          56A41CADB5EDDE8A8A6FEB583730F0EC16215A66B93D55F8E2B4C360FF00F69F
+          EF8C82B22C9E44901DF16E650D4A34191263DDFA6C0E0A1E11C8DEA6D3E2ACD1
+          C2363FE29824FF00FD2C587C0596362FF793EE8EFD68EC39FAF4C63399AE47E1
+          28AF2B578BF2A8AE03FC370323F4041C25CD9BCAA2325D478D592CD6C18CAD4E
+          24FF00CE924FEB8C76619D3ED3CD0CBF2F979B878FC95AE2CD652E7D353B47ED
+          83217883C401AD52BC0FE196A38A0A71E507169BF6EAA8FE98631D505E77FC5E
+          4B0D56796004FD83603849FB8C4B368193A54AE9E5999456E8143CEC06C34AFB
+          900E2DCABC399748CB533FAB954A694A234B4B90CBA2BD69D48186D90E5111C7
+          BFF4E8B382BB12A92EB55EB654A07ED7866F4DCD60B8E36E3992B6D0A427E223
+          826FD0DB49FEE70D20C5CF9E787C5C7CB994A3F89FFA4BA02BFE1DEFF4C17261
+          C94A1E78C78296D9AB49CA94B27E9EBF6C0ECE6A1A6F59F0F46524775405B3FD
+          D27057FB4115ACBFE324658DB4C173424B597172CFD76047B8DB06A330EAC70E
+          47CA6269240B7DD619FD35157E98A24E632997DC67E07234691F89724D1FA7CB
+          BC45F939938943916064121B3F8895B9B7D006C83F98C12DB6FA997162365648
+          1E51F02689F7255B0FB6231634C5B255362F87D0AFFDB4432AFD49FF004C27CC
+          10FC53D596CF8563B2782B867FD523FBE164796A9724223651E1E90D93563257
+          6CFBEE40AF7BAC35E86548EA225E5DE1F8EE37B96D7953656AEFB04BE7097F79
+          F87E42B4C2F08C49EDDD179BC9529427EA54E8007DF161CBB2290EA59392648D
+          ADC160B796752BEBA1D56F8419DF86720697FE35F8109B70E96CA32B5B3BFD54
+          93850C7ECAD59D079CCAA569693C3CB7D96DBF6F7C37CAFF0062ADC764B998E6
+          53CEDB7C13A17BFD95587796F8260640DFC4AE7A24B405F4E631D557E41E1818
+          7ED07C30CCB722B795B72168D8A59C9560DFB1EA9BFB0C3DCAB3E872D871E565
+          D1596C0B6FA69DCFB10A2003F7C3C83983325AEA40632D6D3564C840A1F76D46
+          B1645F12E58A98D416CE58B92AE46852523E8A245FDAF10CDFC43322E6AD4185
+          172290A5FE26D2BB740F509BB57E4305B7E30C9E2E6CD6559810253C404B6CE5
+          AE122FB9BB0061DBAFE5E5F5329CCB263A4805BEA37AC13C58D62B152A145916
+          5A96D3B469423BFB8FC97B627FBB621414349B23957C53963F370E15CB397C07
+          16A7E701A7F94AD6A27FFBEBF4C2599E2C92B75A465392670EB4A5517D5967CA
+          1F7BDF04CBCC73F5216510D4DA529B2482DA8FD006D5801CCF73D6A307E142F8
+          F005B897A4B48AFCC03FA62FC8B3DCE3C46B5C58192B31E637FC40EC942503FE
+          6E92C61C2729CEE2465BB9C2E1C723BB529B527F3E80FED8CF661E32F0CE5C0B
+          5373582245D04A3AAABFBA583FDB02B9E248D2901C89114FB66BCCD4D79AE7D8
+          B03033625E6AD2DC8EA5C2640DDE5E7A5C48FF00F9609FD30744FD9766F9CC70
+          FF00EFF4662D728D1356E807FE650C0F2FF6739AC36CB4AF0F4B74A4D17430B1
+          FAF5ABF4C649D9D9A66B0E423C2398E7390496956A5CAF13C864343BDB4B355F
+          7C69BC03E29F16E5C911B3BF100CE91D1EA10EB1D575241DBCC6D5B8FB56F470
+          4C9FDA54C3F1A92A6F4B4A2595BB09BB526BB253BFAD6F66B8C2763C6D38B0F3
+          B3DB61F25B2A00B6D8701BD804D6C2BEBC1AE300AD73730CB03ECBB2C27A649E
+          9485C478AB7F969516CA6EEAC51DF9E4619786066AD785DBCD3FD9F766362C22
+          429A53B217BD6E50F04A80FF002A40F6C65FF68AE3F153F15233BCCF2D652774
+          3495A7BFE1DF593B7B0FA619BB96C1CFFC2AACE26E5D198650B4252643E95C87
+          34800DB2AAA27B58FA018499665B07398DFB9CCA65B8C824B1F1D08A07FC20A4
+          83609E14473867E13F0B446990332CE732725C44B8D310E590943E9BD8A40BA6
+          B7EE4EE3918D3ABC552DC0EE590986329318751458703A54DB641EF5BA86E2B7
+          15C6146679AF88730CE846CDF3ACD22A156B43CC3A95A994DD58161249046C4F
+          D37DB1F40CBE46511326E9E5D96A332CC7A01214EB2A8CEAAB625E12166AFD09
+          1DEAF187F1CE499F663964C6B3D80CE50DA123A0DC092EBDAACFFBC49474F4D0
+          E702813726F0CFEE9CB55255973090EBE40095BD67F02036902CFA2483FA8C0D
+          947EF18DE209A20E570D969D6F5371653C97058FC5441346EEDB03B6E7B63991
+          E739DA73279FCD1E6A4209296A36A7998EDB693BE9E914906B49F99637F5C5E8
+          CEFC2F9E32EB72325CBE1CAEA7CB398EB738AB2DAED2457D40F4BDF0A2446764
+          E58DCF6332799CA7A86E2658B6DB2B093B8E8A8B8A06C6DCDD83587997ADE564
+          B266E4305861C908F92E2A604BEDDDEE0AAD407B2801E8305FEE8724E4CC2DF8
+          F96CC544743925731F0A754AAD5441A4EDDBCA3B7DA632FCB732425F9CDB1053
+          195ABAE1C14D77DC03BD77DBBEE060A7B27665B91443CD65E63100A4974DB2BB
+          E146C74C0DC6F476D80C0A8C8FF76B72A73AEAB2C8AE3DA56978274A76A05BD2
+          A09009F507E98204F80CE4AB47C2499719A6B529D534E33AA8D2EEC8F51C01F7
+          C42017264F32A3E5D01603683214A74AF4A57FC35B64A45D0BE0D7BE1FB50825
+          A4A5467388D1695B79528EDE962C0FA73F5C0511ACF44B71A309B661A000D499
+          2038EB849DBE52774EDDCED74310335FCAD2E0928466A5870B6EBA23969C50DE
+          8EEA009076D857BE014E67133A7E08819429DD4A515C8790EB2DB2C8BB5124D5
+          923607737636DF0FD5E159F99E50B7105FFE965C70F4C115F8BC8A040E7BDFD3
+          17B590E4D063861B7552263090AF8971B42963E87735FF001138C7CDCE0CDCC5
+          7966571A584BABE917DB94DC46C104934E04D5FDC13DAF06CA9EDE4D19A84994
+          A945A5DBA1F714E126B705C2E6AF4DF8F6C7B2D927C4A64F4E3E610A2B234A66
+          31214029C14484806ABDEC9C44C19514D328725BA4971A79B70F5526C7057678
+          EE38E00C57E38959E436FF00FD6709B664BA13A1A67ACF127B0F969237B1566F
+          DB06261E5B12743648CC1131C6BAA1C536D47013F45248D476DBF16FC6273A46
+          A5345535B67A6ABE9C896D02451BDBA400DC77ABC209DE2B9E73A8F976539565
+          D3A63AEE965969497928F571D2D01A47BD73C9C683C41064BD0CC67B307D9525
+          3D55468A545D70D590DAA9474EC78036F4C06B9D9865F97C665B5444B2EA8558
+          5021BAB3690751340D9D23DF02E5F0E27C43F9CCECBD8CDBE58A2DBE994C9DC8
+          D2868D8BF5BC30CF92EE619796E341E8472D96FA0DA5809DAF6169B1FA0C6632
+          DCA6165D3232DCCD9F79C6D3D3F870F7CD6D2794242480143EB5ED860E652FAD
+          2931950C30A6897449B5497157B1569B02FDC501EBBE1948839DE6DE1BA50811
+          19E9516E1B63521C1B9AD22D46BD08AFD31A1F0EF877C3E982A8F97F89DF972C
+          5DAE692C103DD5A46AFBAB7DF7ED811684785A34BCBD59B96A2ACF5DD4B0D2D4
+          923B693A8A7727B6E7ED8CDAA2E5033E673B872F3F72569B4AC4675C00F61A1C
+          674F7EE476C5994E6DE2B89992DD6B2CCAC658F59026A23B2F3AADEFF0B9B28F
+          A52B1A844B973214965C9B061ADBAA6C8080ED8BD828DED55743FD702F82B3FC
+          CF36072E7559DC67581A5C991DD6CB240277502D129278BBA3EDDC2F1066B9E1
+          CBE71C97C44E3321A594954898D388DBD834289F7576EF8BD13DA97E1C6254EC
+          FB379921A07E29D8CDA1B6997077DEC0EFB151BA34300A10C49714F44CFA74F9
+          0957CB53E121A68804E9D0A2357E1576ADB0DB21CF7C5935B397CF9D90890101
+          C06330B592DACD24E8404A2FDC28E02CC189596A5A8487DB39AEBEA11F0E973A
+          9774292363EBBEDEB80F37CAE699F14CACC5B79C76FAECB5D1D4D800D86C3BB1
+          35DEC57BE39063E43974643B96BD25A75C145A92C3CEBA557C9145AF71B557AE
+          08933D3024B6E663098CD62F468C6290D21E511B28D26C1BAE027D30EF4F8561
+          4868E71E1EF87494836E476948209DAAC0B1C8DF04B0DF85187DC7A2E53114C2
+          EBA2519684823BD2D29527BFA8C209B9B4382654793936679837ACA9BF808AA6
+          740EDC1049FA0C61B37C9519B38F4B9904E60213FD35B6B929412900805A0370
+          2C5DA93B9045E18BEEAD1194EC3CF5A9816DA44744A86A0A5D9DED0A0349A15F
+          C437BE17E5B98C9CD02849CA63E5B3D87105A315CBEB8AD838D9E2C5551BE2BD
+          DA864499935E6186CBEEC63D54BCE69B22AB73E94AA076279DF7C467B463E6EC
+          C4F855CA61F628C970ADA57542740207F31E4D0E6C9ED8E3B924A8F032D043AD
+          A94EE972746B4128B255AB7DC0EDC5D0DFD65E28CBEC43930A4B99ABD14325D4
+          BC8545712D9246A4A95B83F9A873DF1E5C065FCFA2154A761EA714A71E54471C
+          6DA7401A3CB564F98D1BADAEECDE20B5FC178821BB96BECE63963EFA187DF475
+          6339E50B36AB048077A0080ADBB1C4B317A3256E2233C877306FE624B9A40681
+          0741A513D4AFA72062EF06B9220C66F30CEF2F6864AA4C72FCC93151257A4050
+          F2EBAAB505F981A482390003778AF3686F64EE43F004E78B9D43D57E328B2B00
+          DFE271240D3E834A869E36C34CBBC4646490F2E86FB0A90B054FCD4EA2DDA82A
+          F4829DC8091BEC4DEF578172E65D6D0A6D92DCA2E39AD663835A891674A89028
+          5EC2FB1DB033B13315B92E44C953195C765210CB527A0D2D21645B8E6E46C94D
+          1D2A24126C5DE341E1FE967421E650734783ECB252A663A95C287E05174A89A0
+          012401BF6E70B62F86B2EFDC432C5A725E9B5D453B39E0B52D5A892144F574A4
+          DF7BF5D85E33BE308F1179546CB726CC24678B4384487A6B2965A68F97CDD4F2
+          EA000155777C9C6CD89333C55E0D644BF10C3CBD013AB300E31A5D580074E9A4
+          D245D579B91B7A6177EE9CAB2D704EFDFB1E67409752CC996DC48E9552ACA9A4
+          FE23775AB501676F5CF7807C4ABCF73BCCF2A73206AA3B4E3A65A405B2A00DA4
+          28F4ED5C8AED5BE36F9446CBC30FA33ACD223AE9A288A86DB1C8DC28576E6D26
+          C106CF3821B533972106144712F25253F3969015DEC92A24FD47A6D8B8BA8CE3
+          2990C496DD71FB0DCA116D456A3C900DDD7BEFB639943CCAD85479B93CB3A4A9
+          B0ECC07BEE5BE9A944D6DC8007A1C2CF103D95365C6DA87962648D02D349709B
+          3A6D437006F7E83EB8D16465F53B1E2AF374428AC925D8DA8BA902C8D209A29D
+          FEBC7182B3BC9BF75B4E4A73305CB1B9710904A7A69B26C28AB7B50F4EC3D308
+          737CBB318E882B564C65E5DAC38F38EBA90A8B5FCF46B837E847B1C6852C64DA
+          FE1A7C86E3CA5A3A9A1B6CEA786F4B03734003BFD78C0F9048CBDDCC1DF0A339
+          8C8988920AD1F1490C9DAF5145FF0012B6BD3C7B77393FB3E8CDB1D7913E7BAE
+          A57694C74A5AEFDB7BFD6F19B9994457F3757C0F8812DBADA8FC5C37D296DF0D
+          A850DD46C720D93EB8F67F924ACA9D6B3380A84DBCD14B6DBAA5A1C2DA37BB0E
+          2883B5D6D7679C0599782E4E6696E766539C7B5A52E865990A438D13C8EAA0A8
+          8E784903073EF66E97500C90B0DEA203912C1EC904F3C0A26FB9DB19C44B6A57
+          88A443CD9CD491A9C65A719296C36002A236246F66C91F4F56B9DA196D872044
+          6D969D08D4D8933DCB366AC0A24D7F4D8EDC6C71939326334DB8588D13E21B67
+          A7F11218AF9966D69D5A811B115676AFBB0F0B67EFE679E4A88B71C8A84B60A1
+          F71C4BADABD76013B8FF00BABC193E365D1654A7A0C975E93AC32E19494B6DA9
+          7AEC524511C1F3D13446E4E296E3E76B6A239984B86969D0971D8C5E528124EE
+          DD0D88E459BFA1C0AFF572D71C92F488CF3AF6AE93242C6B052069ADCD00363D
+          ACE08CA60BE8CA43C98B21E68228B465755C680BDF4B7E51BFFD8C663C3FE29C
+          B24E731BC3AAF8C92A69C5164B6D890C03B9A59D8A4DF7DF8DFD717E75986610
+          A2FF008974AADD1D543C9B71014E576DF607E9F4C6B21B79B4863F77261B7D16
+          55A52A6C7416D920D2C0E0D807934791B7252634ACBD92DCB81A0A9E1A4B6849
+          5AD35E62A001BADC800851038BC599DBCECB91163F84D4EF55B70759C755A505
+          29076BD5B5DF0403EF630AA06792DECE9E666CC4B8D32A4215D7785948DFCA41
+          01C3B6E6F7F6C5BE208CDC08CCCACB9E8AF2D054146634B70B60DEB161D57A1E
+          C702CB7E23F953335844771E69CD262B2D84B6BB3A356A29E38DB7FAD9030BC4
+          80222E54352649F89A5536A5828BFE42383B1237ADB0EB3ECCE340C96465F0F3
+          36643721D5BEEAD5314C2DA201AA402127B773EA7BE331E10699C81522464D9C
+          4354A98BD521DEAF53524F22F4D136761B9ADFBECD3248F96B3E2588F392D122
+          1BC54D2E50EA75D2149349D156D804ED436B1B1382BC5594CA813F5E56D659E2
+          16A58714BF8D610E3A850036AB4BB775B1A03EA71A1F0FF87F39F0A786BAAFB9
+          19B6E50F88762B6FB8F36D297B558B08F7A2783DB70A731CCE3C0CB1D9998E52
+          D2E544502D975C2E84B2BD8AADCE09B3DB1ECF5ACD910933212DF723AD210F34
+          EA28A5BD2376C1B209B46C056FDB0544F0F3F1DA6DCCB99322457962AD34D117
+          BD0E757A91A79DEF738793B369796E4BD777C3A836901DE83C9795EBD86BA3EE
+          2C5F18C5E4398E41E23766CBCC988301B6974DF422079C5137B2D4085249EC14
+          DFDF00B92F38819A25980FADA8AEBBA54ECD5380259B2142FA85546E880DD7D3
+          1CE86553323625CEC94A6532C2DD90DC4692EBC0DD15ACDA49DD5EBDF6C29C89
+          94379943CDF2790F2B2D690A3F084A9487011B1D249D35B0D8583E978303D952
+          33B0D3C80B40415A836E04942B7144771FE6BF4E4EF8B92A667788D193657062
+          2C371D4E38B90FA5A46DFEEC102CAB7342AFDF6C0B9A23315E749CA5D61B6946
+          DFEBC54A56D2457FBD2A48AB4D84957A0F404732C7A134EB3E24990E63F96B69
+          2B111992BF33894D6A51364A801402880AB3B9E04CCF78CD763F5C0CBCA08445
+          9812B29095DDF507A8A02CAC5F7EC44F0EB6FC4CEA6C99C94232F71D4BB729DD
+          0D525076D3C870150B3B8041EC05D90E4E7D133B6BC3CA69714CC78BD1224D8F
+          A045714E0F981448A1AABCC6C7A8DF04789F2D9B97BAC1CCF28F8F7A3A8F4BA0
+          0EA6CA9C7024A761D4B4AB6B3F4DCE1A3F9F67AFC57E0C994F66AD44D318B810
+          3A82922923D393F885D602F08B90F28CCF347A1E68A4AB3020AD6D37D465C22C
+          0B1DA8EABA48E3622C8C38E847808532C474C453B286A75A7294FD816E006ECF
+          6F302404EDB6E485CE7F36F0FB996C36830DD9EB3E970A6D09511BD9D2ABDF70
+          0FAEFCE01CD1F8197E4321C6D95AB3B98C08D72E3A5D88DE9F2FCA551525BDF8
+          FC47DEB09D7122E611633797C57DA8452E25F9922895CAA5A12DB6A6FDC2AACD
+          9A1DD402CA7A4379B6792A1BCC7C2496E83AD3CD2509D92437F2D7494DA4AC80
+          2B8AE4560B8D98B32224D9F4D32D8674B4F374DF5BA7C5D8A036EC2F6B15CE2C
+          CAB2CC96664E93322CB733365B5BB32DE594A92140243484D6AEDB513EBB55B3
+          465997E6515B8DFB95982DB67ACE3C4A14F040D7428851E7D76D8E1C408F265B
+          2A8511B56B8E90B78AE43B496ABD091CF1F5DC038AD8CB1C5B8F4B941869D713
+          64B76A3B01B1248E4DF00FD4617CD54F8397CA6E652154D98FF0B04B864837CA
+          2CE9A200AB377F9B7FD9C3AB9DE1F4CFCD21CBCA7ACFBCA8C3AE870BC9BFE20D
+          8E9DEF63E9C6F87F2326CAE6FF00FA733F16DAF90B70D288E2EABEB58127642F
+          44A9795B91E1A994290DA50C252522AC00AA248F7D8DF2718FF1A64599E64EC7
+          12B3592E1657D561CF89B08510405D690A22B7D3A80FAE1DAA6968B11FF78C89
+          8C4A6525529EFE6D85E9E6B8077E0F7C1593C9859966695487FF0079C74500CB
+          2E27A01ED566C9E562B8D5C1C6C9E632A9B98895223C692F46D494BCB425546E
+          95BF71B56D8CBF8CF34F0F4109565DFF00A766921CE90723B34B74020E94E9E7
+          8BFCF6AB06E7263A4B21BF1266321694F50B4CC56D2EB839212929BAA06F83BE
+          C47070E51D1F10CBCF1A8ED499EA6DB4224E66F7594DA527E684B8366D46C0A2
+          28106AC62E9D98BF363488819650C36D1A666212A1AAAE8E903CBC5EFB8E7DD3
+          B0B889CB5869D9AE345054D86E3A52CA5C584822C035576280BE0FBE00EAABA4
+          198B2DD6CDFE225252DFF98D6935B8140124FDC89484B289C8893F3098E47710
+          A6CA507751DC8201276A04D7EA2B06E60D7C546F897B32716D6B0036ABF3806E
+          8026D7B11CFEB8A23BD12438EB69CC971986DB55493A50A00AC8F25F167720F6
+          AC3AC99F8B2DC536DB4CC8281D32FAC157528921B1540703EE0FB62B5E5F0D19
+          7F514C925C73425A2E16C3652491DB8B1B1DECF06B0132FC17C2A5AA215BB189
+          4AA79DF6ADC581B91EFB9F5E70C9ACA10F430B88B756A75920BCF03D402B8F7D
+          FD709988883252A7A5C671D04BAE1537A1BB4D1A048215764528D583DE86299F
+          E1675C99073BF89903318CE6A7198AE74DB2013B035AA8EE36228E2398372E70
+          5B73A098C5C500E4C27A7B8DC228EE46A3544FDCE34591A731810E265CB75C71
+          D752D886B052EB6494D802F7E41A048D37EB58BA3C9698F1698B9D3998A5C98A
+          5261B6DE9523645AAEAD40DFAD015EF85B963B32265F99B0ECC0E3A6FA6D692A
+          75D00D6A71DECA1DB7A17BD62AF87CAD7093159752E328E992DB290F0D4371D3
+          23F0037F8AEB6F5C0D94C54B538350DFF8CEAB869A5FCCD006B3A057E158AAA3
+          C0C14CA3E1B384266368851A4B94FAD0D28F4FD1478206FDF6D8F3DF5B1A0660
+          E65095C3931C33D424B8D149294D9DEC73BD0E70349CCA7B1943FD289202DAB0
+          03893D4776DB6D3564D81EBF4C25CC93E0E5B52226690A4352DC368E8B34F871
+          3413D323706C002B6B18CC780B2C919365CE99B2CA85A8C28EEABCD1C2A8A7AB
+          564AB7ADF64EFBD134E7C3B31027298CDD09990DC92E10FE8365C2D8AEA84EC5
+          34104285557BE1931359CAA0AA7467FE099B425E430E9421A0A205E906883B76
+          B15E95724B91139CA5F90DA5E602904A9E49525B253E52E7F4A7F128772477BC
+          533737F8CF124A8D323A9E71B29790F229E21BFC04EADCAB927480361ED4486E
+          14E6FC71184161E71979D716A93097F08A8E9A2A017A7485EDDAF571608C4F3A
+          6179AA9C54ACDE62E430B22838A69C4A7A60EE9146B73EE7F5C460C185132F7E
+          2E52D3710BCE82F15538A768114AD564DF9B9F4DAB0BF33CA50E664E674D4B72
+          228A6994B6CA811E809483AAC9ADF6143D70A73E859884BAE65CB6DF6D3452DA
+          941B0E0AE439C01C8EFDC613C17F35FDD2D66395B0A31A432E11A990171C950B
+          4EFBB809077E05ED7C0D064EE787E4E58CC6772F57C7801B1D5694E29ED8D904
+          DFBDFD719BFDA2E57934B6528CB21C7767A8A921C8886D05246C774EFB7A7B1E
+          0E1AF871892AF0F23279739D94A71C4071696402B46B48036E4F03D6CEC715F8
+          8E5B50A52189715B8B23888DA0D160A6F7B0DE978FE0504EC363E8305F8A2278
+          7040B93316EB09421A7134F36E2D546FC83851236E400057B66BC30E4E5E6EFE
+          5CCB8EBD0820B10D97DC0A97D3706D4134542F6A3740E3499A64B3E3E5EE333B
+          2B52834D212CB29713A949ADC2ED49D5409FE6F5DF7C56BF11C5CEF2261E9D34
+          CB4B49D68432DF4886D1A93D3242493B8202B8A3BD8C18861F6E464BF0AFCA58
+          8CA43725F8E34F60541D29B5383F05D03B0DEB6B03C299B6631A567B0F2A531A
+          75044C6940381ED853A9F28253BD1036E491C9C78B0882A762B4B5C46104CA20
+          82A08715A4A8A53400076D87BD6FC1B0DCCD7C4592B01962449672A68F45F6C0
+          3F0E427849D89B048A55EC5542D269364E5D919030F400CC97DF59E83853AEC5
+          90DA5409A045576E7B61A46766655998C9047534DB51FE2A565AE3C1D52DD529
+          212EB6E2411AEC1D9357EDCE2E4348C8CC5CC9798AA5E7F29C61C79A71B70BA9
+          66E8A7A84F280AAAA175B0EE4E912C3B9349992E62151904A5303E17A9ACEE42
+          F48A1E6249B49E7D4E0ACBB25992A23CDB5282A5C503530D356DA166EC75073B
+          2BD4935B938E666338CAB299C030B5BA90A1D4D23A8EA0704F6DACEC3FAA85E0
+          99F0865EDC175998F666E2990AEBFC425B6B4117B0DA937B01677DCE17785B37
+          7731F1ACCCAA1DC6661B04194CB969E6CB46C7E2D89079A07D157A9CB23FEEF4
+          BBD3D3204878BA8538A579547929D8F3ED439389FC24D879A35A5C4210AD525D
+          610BB0E5D27A8E1D3B11B56D66B915BCA667886B5AC4C871834D973A9A7B1D5C
+          126FEE46FBFD9531E2C8CFE72CE4D2D892F4EF8753C81195D4E0F6006DC83BFA
+          D7BE289B99A199ADCB96EC84194DF4D84AC2803478DEE89078AE6C738CD4ECD9
+          2EBCE65CECA67A4F2947A4D95848094D973D686C38B27ED837C3DE2885E1ECAE
+          57420FC52DB596DA693AC25B715609A5F6EE4D773EF81326F1BC0F876D128CA8
+          6D249538427CA4DFA8FAAB7DF0E0E6087B366243525BEB3650A0A4DDA39D91B6
+          D62EF71B5E34B124E451900E6F19B505B4E212F6BB2E8D5D429503FCA081B5D1
+          D3C1C579AE791F334266AA387565A2B69C6ED00B647A7DF83B73EF8C930EC995
+          3AE625B72338E0214EB61B5A5202E8122C9DC247FA7A4F28CB3A798BAF438BF2
+          4BC633809F2B8DA802A583B6D64F3E9F4C0F09B8EE2D6DE5EE988F2B55B05A53
+          4A21B3A6B61E715479E316C996633CD2DC534CB9AC20861B0B251DC803F2A071
+          74652A230EFC5B6FC86834AA92B14A6D06B606B8B06FD80E6B0A6665B05F7568
+          69E94E3895E990C840F2922F491F892688F7FBE1BA2566B0F4C582C3850345A0
+          827A494DEB04F6DAA8D1E7BE18AA2BCE65896E636A4AE49E9A4ADB2D8572A039
+          1742F707D4D602F144C979564AEC919A456E1C765C417DB51712858000040490
+          46ABB37B0364EFB4BC3F98F521B6E29C6108714425C929F29E52A6E8D8242904
+          6F5E550E793DFDEF952A136C2B29EBB333A6D38CF47A5D54B4B506D37F868822
+          811B8BDF720139A78872E89272B987250DBCEB698A7E19A07A27A801B6451DF7
+          E3702B602C1D6A865EF22434F4D86A690EF4422879CEC4800FF35103923DB0BF
+          26921B85323E770253A5E78350188CC0290D24581BEE15C9F4EFDCE143390E70
+          53994B9119F692D49072E79D6D913024051525C2D52541455B01BF378CFACF89
+          B2D744A61525D7DDB0FA458D035720D1D5F84129BEE3715B314A532F29439953
+          8F3397321C6DC65AEA36A68951529CA51F3920D916A0A34411778E967C42971C
+          115F54A84D36E3CDA4101F0E5907B9146FB9B1B5DE0081260C9CB407254B2F90
+          47554AB208DEC7604F52B8DF6DB0665D9034222E5A65154C94D85B861B9D3A20
+          1241ADC13C71B5FB51AFC431F2E7A2B7FE3F346DFBB4F5E4A774EC1541608728
+          E9BBA1855060989196EC978E66A37D579B68BADAF80802FF00862FB026B7DAB1
+          0F88664658F4389968743CCB818743DBEB02B537CEDB03DF717EF8966AB77226
+          A5A32E7213AFB8CA63466DF64A486D5A7526943550569049241B18D5787B30F0
+          E31E1667289797BB954A851D09D4CBC1FF00885A86EE9512955D9AADC26884ED
+          B631DFB9D59BE6B0652DF111B7252D0A65800BB2D280086960A850346C93DB8B
+          DF0CA24B7E2B39A7885C4BCB81194E34F3A8F99A08DCB6E122C8D2A491C802EC
+          93A71ACCBE664ED4D8B072B65F11E6282D4641DD248FF7640EC40143E94306E6
+          F09B5B2EFC03B11875B500A498EE2028B628DF9B935CD5EDB5F6CC65F9919594
+          A73099974B62295749452DA9692848A052424DD1EE45ED60E025A4FF00B32445
+          52243329F6C8E90EA24B45C340806FCBB11B5720D0E02D1D24B84941D2E9515A
+          5B2469B269C02EFB0BDBB7718B72C9ECE673CC02DF49F8C90A72295FE315C825
+          26C59EFC0C7A1E512F31C9DBCE1D643511DD445292A56DC0293415DEF71C1F4C
+          66BC4F026E519799D2A5C7D2CA85475A54D9293B821449A72857B1DF7C7D1198
+          1970F0EC2991E1B8861F6FE29AD4D8521B72C93676214927F41EC308971A04F7
+          BE124171ECDE1752D4F0D4125C357A55646AD5E957BE2DD2963318195B118EA0
+          C875B7233EB21A2A4870150DBA7AB51208BDEF18FF0019E47F159EC463C3485A
+          E6B6145F2DBC4749C0010E024DA4F9AF9F4B1BE1FCB7E3BF1B25666A254B43A0
+          21B6C3EA70B4E3757E451FC3CAAACD0BDB6352F1065F1E76451F2F809703D05B
+          7036A6DDA0C824EB5023CC010A5582382471B63C253F2729CA727CD9B428C408
+          66438CEA6AFA600648A1B594E900513B7D31D7F2C4995125B4D232E7C3252B53
+          4E29763500491F7077268EE08C4FE1FAD35CEA2E7088C82496560D2AC84DDD8D
+          B49B4EC47EA6BC9E019CEC75B52D31E1A5A6DA9F1A55B8E3CB1B8F227B581C9D
+          81208209C159798C32C9464E47973B18A9DE934F395D00361E6DCE93A4A81154
+          15B5EE4A9C8984E4F98A72D2B3273467AAF3528385294B6E0214DAAC93A93A81
+          B5150D24D8DF7D0C7CACCCCFA17F8C8EF495911D25D25BEA15D90286D402784D
+          79A8D62D9996AB2AF0D662969D69D61B60A9F6E628B6CCC214E25CDC2826C824
+          59B3B8DEF7C31809398989E2896FAE1B6192EB515A67A48E9AB82E0DEC8E4550
+          17F4C384668C4C68144B8AB008216027720D8ED803327B23722B92DD87F0EDD9
+          EA38DB2141C48BD474F3C8AE3DE8E2B7A54A89512334D45658502969A6FCA071
+          6001FAE399729D7662E63D38300216D252CA4A8383512927FCC9160EC0F3EA31
+          ECDB316921A70C8710E27CBD6A5580A07750008AB3C1E39C66F36CD214A7DCF8
+          396D5BA8034BE092542B7DBF0716477E28738532F32CBF2D98ACE50D36B9723E
+          4A5C5ACEA4278D3C557E57DF03CECF666619574D607EEC16942106B52C93A857
+          F2EFC6FF004036C2ACB1B69C538B90E84003CA5D36A23D2F93DB053B11811806
+          96438E2402927CA8AF6C54B69B117AAD2294D01474EFF6C2E893B328705E5439
+          4F2D2E029713F88511E9E801AFBE16B4A99A1654FA94A362DC2051EF47D71A2F
+          0F4971088AA0D3AEF441EA283BA140EE2C0F5C6B20E7597E60C957C23301E2D8
+          5A9A0E81D5511BD93C90455FB628773482A72432D3422CD2E02AF2934A077209
+          E2C5FE43034FF13B10CB4D4E9C10F0082B6E35B9BD7A9E061447F10359875D4E
+          23A41B57CB74ECA00F6A364E0BC8FC62E2D2BCB1996E850FE1D36849247724D1
+          3F638E40CC7396F3C6973D3FE114E8D6D3D54E7AD1F5AFED8FA3F83E4B0ECD7D
+          E7FA3D048DFA2542C92289AD8F71F6ED86D9948622049CC9D2DE54DB5E48A923
+          CD5B5AB6E2BB03DF7DB182F1FCE893D81093E15530DBCAB61C5387A6952772A2
+          9142EAAB6EDB76C67A3F89E6E5192388CE9B1362B20A94E748365BB707E1D22C
+          69364703EFC494C4896A8EBEAB739B6DBEAA584ACA42AC10156059ABB1C8DBBE
+          0CF0F6A69B694FCE5975B97D6536E83D465B3B74CAB737A8122F73A8815B53DF
+          133F91F8490CAA4B4DCA9D6B75A4136A2A24F9DC35E5EDFE9DCE16651E395C9C
+          AD7325375362D299782B4F9B8143E87BDE2DCB3C7D9F4C97465C66DBEAFCEB6D
+          5453AB9046C4EFF7FD4369D9DF887348C8662CC5B01C681EBA1A4A54526F7048
+          A40201FC57EBEE428F9B6705D63298D36530B1A96A65DD009084D28D5FADD76A
+          E4573C3E279F1D80DB91913E2AC16CEA8FD242EFD091CFD4D1FA61765599A5E9
+          125196C77595485865F696523A2E20DAC8AB0791C6DBEDBEC5BE52F3A2707C97
+          034B00751F56E81408215C9F4D8F23F26CE4B8A2110979B6DE7075024A755115
+          7B8146F6F5E7EB85596C37604E95D371B64B8EF55C4A46A59EA6C4F9AC0A2817
+          478178ECF8B0DEC99C61C0E33D54AD6D971A36A714014B9D4DBA7A82BEA3DFB0
+          5E264371E02A1B91E54698B6C0525E4A5D2B712003448343557357B117821D8B
+          2DD8F1F2865E892DF705B9D2069B74B40929D406DBA1606FB03B1ED6CC98DE79
+          93E6E4B0D45CC610240F352B56B3492DDE927D79DF70483813359331FC9E2CA6
+          008ADBEC951790D79AFA7E60A5241EA148A48FA1E2AF06C479529F5A5ECDDC8C
+          1B4B6A744A1D47147A7D4D7B815BF6F7DC56C6D517642223BAE4B2A2DAD9703B
+          28A92E1DC0D41429B06C1FD31443725A179864F39F723B2D4453EDB51DF3D374
+          035A41AB42892292001CEFE9E8DF01172E5B31222DB6195861C648AD2B491B9F
+          73777DC117CD63319CAE474A2B2F33161ACBE968B8CA292EA4FF00981D24292A
+          1678AC4A1FC1AA6E5D0D0C28BB1187032163CBA490D80540937BD79B63BFD9F4
+          169B596E0C5CC1A75996F38D74B67034EA371A2FB12791F5F628F3D61CCF60C8
+          94B97F172995543497E8254361CED7A86D7AAEF626F662A52E0B6E0766194CA5
+          B69D324F0F0D3E6514EE028008E79BAEDBBB4E7511ECF9D82D7C01794DB0DB6F
+          219E9BABDC0E1567483BF73C8E3917C6AE4ACAE34B930E507588E42FE19D4F4C
+          BD5D92B075027B55E17B0C08B1842CAE34A43D24EA6C2960B81C2458240DC850
+          37C8A236EC1443767BB3D61B71B6D2D38F27AAF51703FE55693B037F881ADBB8
+          ED6CFF0077319ABAFC46E6A58881E0F35216DA7E35B5A969052D90680BBA2003
+          6A38699846CBA53CB0C3A1C716870A74122C01BDAC735F958AE7603446BFF419
+          F9648CBA1E60D3E5C901F7540924841F30DAAB63C8AD5EA6F10F0C459B0723CA
+          62CAA905141B7D6DEA53CD68246AE40A5109AB3D8DF355CA65A1A7E1E5490ECA
+          D0F0D6451297360477FE7A078355D8628CEB2F90F15352CBBF0F1D9E9809F94A
+          6521B0E2816C51DC6D75E9CD6F284D331337916D44546885A6DC71A2904A4822
+          85EE4DEF7BD51D80C32850DA62149932016D11A3301D7CB01C0DA892E724DB6A
+          02CE948ADCFB618E53E1830F3E9722481A9B640095AB569782802B15B2282B4D
+          27F11BEC9BC19E244C89D1E6E59116A19818CA786A2012902BCB7DEC81B8F53E
+          B8F9FE5D964C2C21A759E8BE4949A3640BABDB9EF8DD6571571328D22516DC68
+          FCAF31214AA15AFD8EF7F4E7D2D44B819BA1FD2F06CB66D6CEB04B75DF6F6C67
+          A5E76C30A761B25C77492438D8A493BF7BFD46F815B9F17332FB6E077CDFC4B4
+          ECAF6BF4C0D072C86CE5EDC8719115D436D105246EA5DF51B20DD047946AEF67
+          61582CE46CCC77514BC16DA3F8C1B1B27E9B0E2F827EF8EC9F082A23091D453A
+          E38ED95BAE01C9D8503B71DB7B3585F9A7875C8ED2653EE175E5D871A66CEE0F
+          6EE4D59AF6FB6203C3B09B87226670EA60349A4D1748E77ABE793DF0224E54D4
+          64CDCB5F4CFD4F368E9A54404ACEC2811BD1D3E9DF9ADC46FC6510E61121A20A
+          ADC508CDBAA1694B876BABB20FA9DC6C7600E342C64D95BFD2727B81E016E28B
+          CA0921343F9C83C56E36EF85F9C65F98409CACBE3644B723F500324281BB3555
+          DB9C53221E5CC4B5B30DA0A53629E1A7CC7724D83E87D3D7002E5871D5B0CA15
+          29C0AD2D8A214E2AB8006E7838B63650D4A42CBC00783803AD8253D1F40BB363
+          DBF4C052613675351024B69DA922ABB57E985E9C996A916B0D8DC002F7F6C687
+          2E8D1D88459773375FBB023C6F3107EBEBB637BE1551CA7235CC0DBE1CA3A63D
+          795A27F989DF7F7DCE299798CA1953B2A3BED991AACA9E6C936392491B7178C1
+          46673894B9F9A9D45C980251D3FF007681E6A23917605FF94F6DF0064793E6FF
+          001729284BCDC2315D4BE85C826DE569D349B355E5BE3657B6357E151272F2E4
+          6436E74446EA4B64007482E9FE1275120EEBD3449F2EFEEE5B8196CA8CE9CA5D
+          529A26CBAA4FCD37AC577A50EE459DB6DB948726919A37D17419E0120BAE1D4A
+          6D7745054A3ABFBF1EF8AB2EF0FB6C654E2A4C42CBC908075D16CD93BEF54000
+          7EA7EC70D61642222232E4A5D71A2C12E24321291F339B06C6C6F71BE9DEB81A
+          089963421B0DA92A69BAA69C4A453E904F986E373608B1D8FD0AF84EE60DE651
+          DD4F9A4B8DA92DB052012DDD9BD86F4DD6DB9A3DB0B5FCF14EE4815032F6DC75
+          0B5070343A84212A5D8036BA07D2ACFBE38CE5AC34CA598A842DC98EBA048510
+          69D36A2B040E39036F417B918B72C432875892E2131DB64047CB24A1C6E81255
+          B9DC6E01FF00C62E8C4B4A8FA5861C2DAB5798947C4F7177608ED4373B7A60AC
+          CD4E1421E5B6990A7DCEAF55B5D51527A668D51DA8107DEFD3118E847C034D34
+          EBC8965C0A407176CAC11B050EF400D87EB5887C0A64C2E947780438E169AB92
+          B3D448DCD03DE86C46D766860D890A24886F36879E69B516C80F9EA0494FE20A
+          D3609D36082083DB8DE9CAA3BADE50E3D29DE9300208A7920537B02DFA2486C6
+          DEFEBBE05F83CC10EA16CA15FBB0B6AA503B381495B6E0DCD1E092393D89D861
+          D41C9E3E6711D94B98899D65A1F4375436E2EEC94A86FCEC17DF9C2ECEB2E2EC
+          C70429929B79A4B81092D85070A88A6D4469BE4D6F7C8B2300410EE7595E62D6
+          648315E6E5BAC28B6486D1D34A4EAEC68DFD80382E5B32D9992624A5B76975A6
+          5A71A7086CEA360D28EC7CAA146F835EDC5B0CCBCADC979B406C2D86DA58603A
+          9264D0F607709001ABBB078BC0CD65F70D701C436DBA8921F7091A54C9EA105A
+          3DF61D33BF65FA60F430E3CD391CB210CBE2D4D857E3709B0E5FFCA077F7B358
+          8E799716B2D92EB0A716E4BF23918D04BE901496D2A51E0909201144EC28F06F
+          95110CCBCB432B8D194C8D41B0934A1AC0FC3E9A920A88E34FA62B9D947EF091
+          21530C29426C23F104364A9200145ABB22C9276F4FC8A5B30DC5BEDCB7DA4AE1
+          B6DF4074FA8359D42D241B240D3B0ABB07D3014B812DE772F68C869C75F0A53C
+          2FF8000580E9701D883B6D7F7AC7BF7243437162B515B2D757A897B4F9839BD9
+          3EA49FEFCEDBB0859336D299447003282A534E362FA62C1241F52A21563D05DD
+          038E6610952B2A6DA6A32D298131A7C9456B73E77549D81F37A9145415B6F781
+          A34712B44F8C16FA56950921A4DB8CA95D30535B92BD21248A35D303D0E2E86C
+          CC87E0B839A454A5D8CE8752D5A88D284A8A6966B6736AAABDB00417C2BC31FB
+          E18CBD529D90406E3057CD6C059F377B076205510391670C27C46CF88A44D96D
+          B929E79B68D24D686CD115B73AB52BB1DFBD0C0399B087E0B2865F43B326F4D9
+          7832E696580547A9A85581556A041A2689DB1A9C9DE6A06569931141E9F192A4
+          052B7050B0681FB281BE47E608797B8EBF225A695F149E93EAA484B07B04EA3C
+          2B6077BC24F15CE7830B8A145B6F48D5EAE0EC09EE45F7F5230862A831D34B61
+          63A9C902B072BABE6EA00DD9D144D8231161D6D2874C9277D8761FA6015C98FD
+          3799750D2CE8B049ABED430CB20F0E487F284BFD229715BF4E8006F7FD077C1D
+          1F2244591D69890E381760934A6C016A1B1DC6D75EDF6C45C9CA83197380020B
+          3B212D8FE228FE0DB8000B3B8BAAFB2D99E267674749888439A123A8978EB53A
+          A006E6A923717B0ABF4C14F67B1C654A5B39706F300A1A43B4AE9851F3115B70
+          07A6E4FD4E673F88BCC9044A6572672C95071D3E5DFD47A8C5192652FB709C8B
+          210CF040B1438E0EFB7D46FBFD30C7224A62496651850532DA3A7A8A6413C7F5
+          735F435878CE6711B580FA69B6D5E4E9A2902FE9E86CDDF7F6C68E0C44B2CA5D
+          7080D29D2E9294D929501DFE806D5DB9C2DF106451A63C5C8DE59096EBABB1AB
+          3BDFBD61142CB1A88FC491F123E2ED40A9B1C55A560F377C7DF06B794E5CD97A
+          4A34CE9131C49EA0593B0050915C500A3F4E77E717C8CB20426D88CFC7492EA5
+          B438D86CD0BFC36781B7E5F7C12EF87E349901E8F16338D1668B610DA9BE7D78
+          276FEF80E1651221E61D18511A8B1961C53AE86AA8A45D0038B340626DE7999A
+          A02DC7E1498C956A0A254E5BA124804236E451A3EF5EB8B32A96ECDF0FB1227C
+          44C46D6B710038D8016012124058B1A86E01FD7BF5D8909C754E300C52F23412
+          93A6CEC37F7F7C0B96E65222CE5C17901D05C56A5A5202ABD05771FF005C0936
+          718CF6646296D45A610E2DA00853C6CEA6D240201D87E6781671C119CCABC432
+          60650C04B7252852980EEA086F4ACD50DAC68BD81245738D1E473D3272E7A604
+          C5542698D69718574F4EC6C1BDF652483BD823EB8A7297B5E5C1E5B634B8E948
+          E98293A7702C13C9B5123F5AAC5326538DA8CB754A6DB69D0A5909DC29C7282B
+          A64EE293F6B18EAD6B74294D3ACB9D34D32DA813FE6200F4DAB7DFD0EC062D6D
+          DCB8E5EB7E6BAB2E9B8C8502A219276503B72401B93853E1A8D11980FC54B83C
+          CEEB4B05CD6D36922AEBB6ADABEA79DE9C2D988B8699AD21A538F3D4E852C9A2
+          079504820826CEFC7077DB1549CBD39843694A8CB4A5E601D0564510959EDD80
+          1CFB9EF8BA4C37F2BF0F65F99B28626B6E27508E8BEA041DB48BFF0079CAAA80
+          FEF8AE5C461882D4211D5200729B7439E76EB95F7B50A07B11829F6596DD5B61
+          2B648520A555C82476E0D557FD314426D2FA9D88A6DC4B2D4BEA6CA23A6B049D
+          963DCF3FDB718EE5B123466E3BD294E0E9B4E34EA81235071C528150BF350B03
+          DB9DCEFC94965AC95C97324ADC6E4BEA1199174D00DE826B9AB24E9E2F01CF97
+          9B33053984698DBCCF4ADD8AE37A0280E48278DEF93DCF17B336910CE5719D54
+          5510C940574692F2686C9B23524D8F5E2F034D99984B79488CCB705C92028497
+          09FA03B7702F6FED8ABC3596C743CC65CA9AEAC175C7E438F9538B5D8DD64003
+          73C7B7E67173ADBD98B8A656F3290DBAAEA292AD4949D4BA236E0845EE3627B8
+          C772D6DC9459613D278B213A451F962C240041B17476EF7F5C111DA65A94A70B
+          8DB8F2D5ABA8B1BA92A2A04ABD5548DC9BBDBB60AEB255A4BAF252EB2C2B50FE
+          9A036237B3FA7380A33CA69515CE891ADB0A54556FD33452402375287508B1BF
+          E75862A6FA6D410A90DBC92F1D6E7E2B6C90051E48B3641DB7560688CA172848
+          7D49757210A430D29B22949529B048A3C12403C52C7AE15B52E4CBCCF31930DB
+          5857450632920745CFE6EA00762428268DED6373DAD65A7A0BEEBA134D879CEB
+          34B51294F1F292A1BD750EABB237577BC71091132A4BB32632EBAB7543AA1BD1
+          D45EA5E90686FB50BF6276C099B33254A9D4B4262B6D1115B74240A14A4DE9AB
+          BA707206E37B1870E47329511D5A9D11DA65A7E390AFF7653F8091C8B041E2F6
+          ED8459DCB3173A88DB4E3A92F29B69F4A4808F33942C1E0EEA20F36001C91883
+          5D130101B8E196D01D59437E40AFC740F360A4817BF37BF725324C9CAD654C36
+          B7DD692953777D368006851E41AB3CD0158E3D34330DF71E574D31D0A69C501D
+          4DB9D5F4292A1B9EFCE08643ACB61A119E0B68F546AF2F52F826AC9DC906BD47
+          D70AB2792A69D751D7536B706A7297616B0281DFBFAFFD9C3472625191BB247C
+          511D20E38DA1C1D40450D2056E68FB7E0C671E80B71F96F172326334B21BD048
+          D7401201E2B73BFF0090E10CC714232CB529C3D33608378184F90A02A49B0904
+          D93B7AE38EE72D399AA6274D616184AFAA774AAC9B03E9430D9B6CCA8F4B4800
+          7A2F6186BE1E74898B8AE4B7036B1BA12B3E73BFA77D87E78EB9FBD1E53ECC88
+          C94107520EBA28048206C7D6C1F5ED80B38969732F8AD393D120B9FC2D4476B3
+          BFD41C2180FF00C1E64B4C65B21291B04AAFB6FBF1866DBAEBC5416B0925BB5D
+          726B7C16C25D42165C3D4710ADBCF60FAFD7066A784C49491DB40AD97ED8F33A
+          9C91A02034DD2C941166FB8231D8E9092213C80B438E50EA364E8BBDFE83D7D3
+          1ADCAA4CBCBB2D1974997D46F40A734574D09E4DD1BAB1F61C625E26CC3E1D2E
+          35A9C43D22DB6349000A4EEBA3B6D77F96D8072A8D35D42652D5D20A3AD85074
+          A884E929238A1FDF7EC70D1986DE5596054465C0D6C9480A04104EA26CF06F7D
+          F0237362BD31C6DB90D36E159407946C1DC761DC56DFDB0664ADB4DC392F894A
+          2E06C073A6371DEE877E7B59FBE1834EB717AA1C5875D200568BB55FB71FFE31
+          C8AA518B450E25A6413A52D03AAAF603B83FE989C69AA761CA7137D44874065D
+          4EEE004591F98E3B6124E7DF83054FA99536978121CA05449FB7355F5AFB15B2
+          9C75327E232E25DEA32103A6D8EA05136A02F91CEE76B3F97A331F111E136CE7
+          01C6FAC19490492AE17BDEF635239BFEE30D1086910995CE61C509412E17839D
+          3523539A7A742B90E1DBFA9CDF72317E4F01321F1A9A663B21C0196C00B09A29
+          F29006FBEF5F7E30AF3B79A44A94F14171D92E91AAF428DDD281EDA4B75F7380
+          D6C370A3FC64A411190A2C978AF4B89369009DAC104014771C1C5B964669E7DC
+          282592C02E12C3000752A34428DF00E9AF62771B5B9CAD5162E42B8AE4C6E2BA
+          9348D6DDA9C3A890529EE77DEB7147D8E3399865A95F8A652569263745BF229B
+          D2A7283A01A35C12DEC79009DF6B9CB65E2660434E326535D221A340A812003E
+          E48246C6AC6E38C74B523E2430BEA8A4901CD54424E9053F6169AF43EA715C28
+          919F135C71F48E8F9DBF9B62AC826C1AD3B11BEFBE02CB96DCBCB18EAB8101C5
+          8797A97E52E26CDDD58B49047B9F6BC3279B6F30D6DB8C2DC92FAC9586B62082
+          55BF1B800D01FD42B7B18A8299979FBB3D88315853454DA5A69A4E95BB7BD8B1
+          69B479411FCFCE0FC8D0D672E48CB5B9820FF8675E9DD3482E3E161252946AAD
+          27CADA6B905076B249F6519BB8DBB2BC30F468D21C8CE36DB45AB694350DAEEE
+          E8E906ACEFDB1C9057342F2A0E3AD2597035986BD23AC85248013409276ED5B7
+          238B14CA729E05D2CA1DB69D70236DEEC13EE51FFD9F9D91E333190CA8B6570C
+          B8DA5B6994EA34084ED7447953BEFBFB6E71365E6E5E62D3911721A85143222B
+          EDAE94B5538140DF6491A6E93FCD63704D719C712B587DC40F8A49252D294D84
+          74D22CD9EC549A1B937678D85DD77590CA90B52C287CCE8FF31D8023DBCA6870
+          793DA8CCBE72A33EB0B4B0DA8B813D579B4820148A37DAAD22FEBF69C48FF179
+          6418AA412EBA5D96645EA09706C13B91E51A5342C8A47B904589252CCF764458
+          CD2E2352D0CA12A68AB5A8901C70107F860D71B790F16307B6E6B9B2590A7501
+          92A90E755D0EA810526BFE11613B7FD0E2097DB5A27B4D34DB4194A5C692E279
+          503DC2B6A2352BDF6DF82418D30B50DD7250529F4B9F20A39AD9279E14458F5A
+          1C5E38D4C8EDC3325F90B2A2D53AB17A412002AABED44EDE86F8C059C3D3FE09
+          FE816DC931DF2E301C6C527FA6EED3477240E28D56D67AA4C775A3263ADC71A5
+          0D3D648D8B7AB50DF6DB91C63897A1B7065B72132FE15A6888FD177579810527
+          A7EE02801CF71ECB5191ABE19B6244E5486C4B2E3C87C805E013B240BB34686E
+          48D85DE0E765B2B86E2A6251AD09B755C907CE1375E8504503C002F002220CC2
+          74E8A5F211ADB5BEE3269A53490082DEF6ADC76EFED7864F8449610D86D6D34E
+          AF43A9500A2E01DD43F0A89208DC73DBB617233459CD26478EAEA06A3A9F42CD
+          80D1B0DF4FD01AB3B11C2B6E6A71DD635352E2F4FA57A01DBE68BFEBF63CD6C3
+          0DA647E9E5721F6D48F2B85E23F12BD001EBC7F7C7CF1E323A6EF5A4B5F30EA5
+          047BFAFE98A10D2834B65B71274245A87F7AC2ECC239698F960A891D859C421C
+          B661BA84B4A43BD351BD5DB9C368D3199214AD54A50DD247182B2C98CC59224B
+          A74848E457FAFBE2C7BC52C25A9329B6E5265827436B48237EE2B9FF00A63379
+          CE6C9952D252DA12A69B0D24006ABDBDC8AC38C872F6CABAEE74C2CB49574EF7
+          DEC5FA7230D9868472E34BD3D6D8A6CF6EFF00F7ED8BE23C1C8E821416E8049D
+          3BFD716A1C43690E15D510458E3124C9690B5A1C1A1041B581BD727EB8EC05B5
+          350A71AF31AAE6B7C6832D538B4FC309485ADB3A1D20925B3436DB83BFE4701C
+          B2A5E6931E93A4ADB68B4124DA4B65BDD68F7BB1F7EF8A06792635065BE92C02
+          A6FA8BED5406FCE1C645E2344A8E9136246E93E74BAE2962B93C8FAD9DBD4E12
+          E7921ACBE4AD11A2BD21A7376F61E5A277B1CFE98B5ECDE5C3811A541790DB4A
+          B3FC2052F550DC765727F3DF8B5D95664E49CDD0FB71974A214697406FB7FAFE
+          58DBCA9BFB9DB69A71832D2A49527A645172C00288D81B3CF180A5C04FEF4859
+          F16DB61E6D3E52A70A4A02A839DC8D88A24D55E17E6B35C970DA2425C75B0496
+          9B3416AD436A1B6C37276177F4C20566494B6B4C2506DD88FF004CB4B6D36951
+          2DA801FF00CB577BB3EF4D60A865EB5BDD371C718D29437AAD4E84D24E8249DC
+          93CEF7BF3D9C6593952F307D8969E9257A94DA41BD69BAB17F885D0B1B0FBDE1
+          8E411842859A3931850928914A537E6096949D88DA8DF9877D920633F9CC08B2
+          7C5CFE5F1A53872D4B21C71C49AE8BA17B513B0BF99DAA8FA1C059CCC0C893A8
+          B9261B8D25A92D1B214A0176ABAB1642155DB4559E71636EB595475CF2E3BD58
+          CE29C72DB4EE4A40360EFC52EBDCEFB61CBD9BA63B8CCB7E3437586925D76D62
+          EA81E146AF723E958EB0C1CDE6BB362C50C92E74D45C154ABD542CF002923803
+          8E49D9729E6CA9E794B76336970B2F90A4928534375279BFC40003ED4381D87B
+          A92C25A75B92A6D61C242E93D42E56820F3609D86D63B5E174B88CB4DAFA8D74
+          DD94EADE79C50FC1E5D2680349DD3BDF7BB34715B6D487DB7DCD90E34BEAE909
+          1A1D2795903602C1DC003835BE19C6FF000F2030DAE8B207C324AC1D5D80AE0E
+          C2FD77DB9BC531839964C65C80E7C4BD18877A8A4EA1CFA5D55278DEACD51B38
+          F3D0D2657C54C7111DC527A2C74C9F9635DEB22EC825081DB9E6B16BEA7E64C9
+          120A1933002A71DEA597022C80280A51200DB93F6C1A961E1243D10B52F43CA7
+          1C4BAB3B82E8D5637F2E92E703700038A1ECBBA4C4D7038E29EDC8641040D85A
+          4124927922BDC0181415C5F81691AA616648B66FF002A1D31AB8B00D9079DC0E
+          71386C3AD3A8CB54D820B71838A6DBF2BBF875D006EF906B7FBED8B5A8822BCF
+          32F8434D368538D8707CC1E72000BBD8D6C3D6F9DB73CB4E7C2341C7E32FAA48
+          2C21047CCDDC3439E413C8BB3C1C4F2F6931F52152FA4FA1EE8B497592532149
+          4EA2A47B7988DB6F29EE2F1C8BD06D3994A9010EA545E71F497FA6D525A3A46D
+          5BFA9357BFBD2E8721B60B21E516DA42C3F199702BE5A0A76D86FC17363C5F7A
+          186AFA94A7A4496A2A9A2428BAE847994A14934AEFC0DFB803B6F8150868153A
+          9729BA6F53828FCBEA529B09E4A82535446DA850DB1D75D61B9896E48497002E
+          A6ED214AFF00DCABD9037037AB3E870B3218F3673935BD6CC5796C0619516929
+          0908DBA8117BA82AF73B2B6DB164E8715A53B327BA5197B085C3080541B0E809
+          214E11D8859FD6F6E63E1A696EE5CF34AF2C669C7032E6BF9A5A0690081F7E47
+          607737865AD94B6B8C52CBB114C292E283448D241A1B6C6C5F96F6F537805B9A
+          88529A8ADBEE2DA5B21E2103584E83A08041DCD8E0F3BF35B2ECF1971FCC4190
+          E29494BAD843693F3084A8A8FB5120851E68D0A24E2CCA23CB899D29C8CCB4F3
+          8E6A71D68DF4DB490D8728F63DC702FB7367CE930DC6DE96E491F029410B7548
+          3B0ADAC73544FB0167B8C52EC55229A752A68BA7CB20D1B2B344117B8B3CFB81
+          BD62CC8224184D88E1E574829D05CB02EDD2B709D81B2A47D0591C6D8BB337DA
+          8CB75B6DC24F4D496DA0404A06FBD5737DB1F3B7997573963E1DF7FA8BABD343
+          EB67FF001CE0B8F027331D72592CB8DA79B72EBD091FF7785A5B5B8F29C72582
+          7F9AB8C7654388753C028A946C9693764FA5F738F30C311569E9B06428B6A702
+          0BA3D85D77DF06084EBD97BB29E65B0842FA610D9256927D07A6134D61A0F169
+          D4BB557687689AED40FBE2D658785ADA61B75D52A8242AE85FBF1B1C3ECA965C
+          6CA1C945840A3495735DAB16BEC90E174486C80764846FBFD7D71D506232DA0A
+          774D914E058028FB7A60554B2FBCE2509FE6292A5EE6C5E074168BF21B2A92E1
+          6DB2E9A46B1CDFFDF6C69BC3EE4184A5B28790EB01AD45E6DC0522E869BE01EE
+          37E2CED5BB687D28F09E92FF004838F5B834B85C2E6C900935CEC40DF802BD95
+          CF90E34A9501B8C4360D073D500F6FA0ABE6ECFAE29CAD1F2FE21E1F30228028
+          BB046DCE07683864F4DF5202160AC146C06F5BFE782BC46E2D397BB090EA0250
+          800949B593BEF7F6C15066339A34B8AFC64B2DC60860E8B03510093ABD06D77B
+          EFF626A7266A0E971B48753D2B69000B1B58D6BBA24FA7DFDC5CECF8F13A929C
+          65751F66D9E91510D93B281B009DC1DEA85ED86CFE5EECD87D18F211D1AEBB88
+          70D14827F171629546EFB6DBED8A9C565ADA1C8D06375DB8812B9055A428A352
+          858FAE8200DF64927B5E53C292E246CB1F6E1C4696A71F36569090DA812541C1
+          40DE8ADEB726C6DBE1EE5B993198CC5A9C8F29A2E212A8BB00A3BEFB0DF556F5
+          ED8AD66B4353449498A1D891DC40A536D55A57EA6CF4CD9354950DB0F3C24B59
+          652994F759F1D569AEAA8F992564B609B1B8AABDFEFB122AB2F97D209840B624
+          A8B89EB2BA7E6D546FD4D03F9FB6E222136D75BE25F650DD00EA0B6A528AB513
+          B0DA856C7EDEA71D8D0A0495BCECB71B713F105A04AC94BF56915BEE0D550BDC
+          1E689C28CFE7088CB797B0988E2B5751E42920F52D54509BA202457AEE09C0F9
+          44C94CB8A4B6E16E2AE45D0E508B00D5826F6BAE286DE988B2B90D07E629A438
+          BD3D441713A42DB6FB8BEC34AF81EFDB76AE225E5D9CB715E0CBA4C3538F29C4
+          004749369D3BD8490A3B7AACF1DABCC2436B2CA694E32F3961C741D891AD1A87
+          036D5B11766F71CF24214E290A68061AA014CA1051D401C06C8EE6EBF4F718BA
+          34640CD14D2A39202081D22160FE3D49DCD511EB7CFB8C56A8EE10432D068A9C
+          432AA1A82B72AD1B9DCDD0BE2EAB127624429697D671F73A46DA02801E7001DB
+          80073D87B938C86679B861F724C292E0735A94750205DD5717A49355DEFD39D9
+          780A6C6CDB2D932A434F457960D0160380FF0028F5ADCF6DB7BB070731D179D6
+          DF8A5A694BD0A6F6D940927BED401DCF3B7070B7326C879E78B6005C88EDEA49
+          05D252A5A9247B2838527FA8ED42A89515C327258F96BCC3DD36E42D69525652
+          6C2C8292BDED5754AE46E3B5E099F0587731121B2E4CF8598660165235EA0687
+          FF002E7D178A3E1B31664B6B69E8CF3AF3AE90A22D2136BD24D771FC3F537BE0
+          D73A139B82E30F3AA658E9B9ACF97F080A40AEE4794D7A69BF4C4DD7344A4843
+          6A2D94EB3D3490A3564D81FE5177C0FCB01ADA2961CCC42A34953F119E8CA7D4
+          6CF4CB8480917C1524DEDB8EF8E32C8CBC2BC3CDC754A28F985E02A8050208AD
+          836492056E06FBD1A0C99315F6C38F0D49E929E5D0F2BC2BCD476B37F6A3BD0C
+          1AA85D79F064CC93D231A39574DC1B80004A9CF5268D72689C73368EC86D265B
+          D15A65D750A055BEC0800055ECA56FB8362B8DC0C0EDA18CCE02F4C80E3AA511
+          451D36C58F2ED66EB6377E9C718F2D2888ECF0AD447447CD077292A709360D51
+          24803D4D9C54A7A3B2CCB89D54A1D712BA0B5E8A2490A248FC22C81AB7E08F5C
+          7B2E9111DCB62B529F2653CC0A5384242FA7B3955EA77A3CDA7E985F9974B30F
+          0E2A2C4538A99242C892B591D1451046ADF6F2EE3835B9DB0665EF371A5BA51A
+          C435B60A9D56C45A81049AA07CCB249E2F7E46298CD7C743CCDC71AEB02E10F4
+          7D54DD323494EDE61B83EC783B1186D98B4F331644E6846480D25B71D0D00403
+          600A1C0DF5503557584ADBAA7A729B6D2D8532141E2EA09B0B5AD683B7A820D7
+          A948388CC61737290F05A1323A3D3075D00BDD175B73A4903FBE10169EEBB6C8
+          6DC5320A0A34595368D7CDEFBEFF006FB56187596871C891B42F52C9716A474C
+          9E46E09DC7B9AE719D31BA92961B702D00EE6B40AC318688D19B5B6EA42EC6A1
+          43F1F6F5DB9C0EF25C8135529A516A328DA096F514900EC2F6AFFA7D304652A9
+          CFB4DA14E3CE8F9BD3AB4900A8DEB04717DFED8CEBAC08AE5EB7B4EFF8412136
+          37BEF777BE24D2DA6982E344281E7E9FEB82B2EB7E5ADC6805AD564049BDC1AE
+          3B60A82EFC4EB4E9575EC01B6C40F5FCFF005C53283CB0B6CB9AB43B400EC9A1
+          57BFA8389E5DAE1BF25692A6D214A3B8FC5CD73F5C1190667162B72A23A4871F
+          5101DD3BD11C7E9874E350A441E9417188EE3EE825028D9580013B6E34737FEB
+          80FC2B94CD69A433F16B441794E7494157ADCAE3DDBA24EAFA71DDDE6C5A6DC8
+          7ADB6D922D2BAD9257ACF6F7AFBE0377314494A496D4DA2AC9473CD63AE41211
+          F31C72956EAFD491C1AFCB023CD256DCB79C0A3A192DBA49B24ED55F9E0AFD9D
+          E5CCCB79D9E96CC779803A814AFE280E5EAAFA200BE3F16377012A4660B90E34
+          D29B0A503D4075EDB7A5D5157DBEE3033CB620469398BA80B5136CB69BA0144E
+          DF4BD81E07A7A819AE6AFBB220B08EB95B8E85963A677451A040B07CF5B9AC24
+          CEDF4CB3360BB2551D114F50BCE0D9C7B5104DA081B5A07E5DF0A622A1C384F4
+          625B2A53BD552BA9BA9D2929042F74208E00F448B3BE1A37316CBECE69154F6B
+          61901E69BF99D322AC827EA6947B85774ECFF299ECDADBCBD97651694D974B94
+          404FB58DC8A3C0E6F0DBA4CA088E9507596E8A5F5109E9D05F3F7D859EFCED78
+          8F839ABCB5995D76DA4BE85BC9616A212DEE7F87D80B009D81FBE16F885ACB1C
+          CB1DCB9650F4A54475C1F11B1B0E83A9A3D89E9A4573477AC20F113DA72C88DC
+          55BB2196E2331C32A6BCCD389480AD4001B92144FD7D714FEEBCC1D910253CE2
+          5E92C86D0935C9DF559EF4285F26AF7E706BD1D9F8F6836D34CBA7A8A70F5469
+          281C2747DBF4FCAE7505D8CA5741C4243686C055B87A649248E693EB43FF00CD
+          4B8610E821B502DC6704B0EEE9DC9A427BD049D277DFB5DE26F2653719F6D3D6
+          32F5079A3BA7ADA1BA04ABFA814D124F6C46236553436566CF510594DA50A528
+          04B7BF70145B3BFA7E7369C799CD8409722E432EA1B7D2056B51528216D81C24
+          FCCB4FA81B5562D61C6D977E2FACD38B68A682DC2A0E2CDD03D81AD77E87DF16
+          371E538DADA6C0727BEE7C484B6E025D6869149E370AD7E5EF7ED8CC319732E4
+          A6653CDA5C82D38843AEA9BE1679091DC7627DF9BC3BF0C064664A762757E543
+          D0CDA6EECEFF0050346DF53ED47211A262DD8CA6596D214ADB600DD81B73DC6D
+          EA3D31292DF5112820A53A3438E94A6FAC482528A02EAF623D3ED8929F710045
+          CB509E818EDA4A5361C0F6B48D3EBBD39637D8A68EFBF72C759710C1439D460B
+          9649B0A52751143EE8239E7EF8EFC1C827A9195A1D0D38545B3FEF09D413EA6E
+          86F5B6FCD8218C749620ADC1D04A14474D929A406FA63CBEF5446DC8A38B9A79
+          98F247C4BCFB45F4A902C9008DC1000DEC8BD87A7A620CB6D3285B1152DA9842
+          4F45B3FC95763CBCA40B1F961766AFABE0A26611DC4466E416D0D92372D909F9
+          86F7DBAC494D0342FBE04F1536C31E18CC7AD2154C6A2E79B4AFA66C28A7FF00
+          A80015C6E457B1B99892633335BA75D0C90E21B514975C4A7B73CE92003CDEE4
+          1AB58B70A9D86C2DE65C2085C669FA490B715A4EFC109D4544A2C0AFA5F24494
+          E4BE2A723CF5A64FC52156A483A9052AEE9FFDB3A88049BB35E871478CD486A0
+          9991A42B504B8A4D360B6A503C6E6B93477BE771DC77D094476664A69D66D635
+          B8EEA21B4288A680F4D49093589A22CE6E47C4466B54466818CFB9E6EA725B14
+          09AB08A1B73C6F5886570DC4B53901C4365E90EA92C74CAC8500A0B0011B6A51
+          DF4DF1B5DE0A9919E541932E5B2EA731928407A2A08091A45D1A1479DF9DFD8D
+          60B8CDB53A3244169D696B60329200F2250EEF7B1BA2E1BDBDBD3023A5B01A89
+          164B6A612A425B0A7ADB0D8045AB63CA6C6C38ADF12C972C539F14D1CCA2B7D4
+          715D234A6DB538E38084806EAEA923B94558DC62FC944654B6A032975B4381C4
+          3568F32949B04EFD93605FAEDBD613C85B8A2FC549DBA80B9481C8EE7D47FD06
+          15CBB61D5A0A9A74A869B56DB7FDD5E2BCEDD623B8B692E7505EAAF7AFD06DC0
+          C2E61C5494971CEDC6FBD61DC25BCD3603AB716102F7C7BE2BA2BE9B4D800502
+          422AB71C6037F2F12E7F54ADA484A4935CFD77E06174CCA928929934A4AA8268
+          8D9547B8F5F718BD861515D1359D0836128E90DAD44DFE6483DB04748BCFF516
+          535ABFDD8A37DF7C08B6D495385A96DB8149D3E4362C1BFF00AE2E9887C47016
+          80A77400491CF3BE335342DA71C4804ACF35B0040DC5FF00A0C6B7C1F1732194
+          CE448538D30E9095007769BA21C3AB81C557FD8D765F212088D158FF000CDA41
+          2DA76F2EE3E57605251B0FBF6D91E6B09F71EF84EAD3BD40F2BA8EE9D815D55D
+          80483B827B0FA80DA6E74196E30EF4CC406D2E85DA347207A81B2B73E87D3163
+          D99BAAEABD1DE42A387074CEA00200EDFA8FCF1CCBE53B3DF4B4CB2E169D5D38
+          E2894A08E4817BDD7F6BC683F67D0A3B6F486D875D725AD082E1757DB52F6046
+          C05EA3DAF63B1C15E23CD9844265F0E258E93AE242100FCC1D95BEF823229D17
+          C54DBE1D8EF45695E50A7360E0B2451DAF91F91F6C3695E1E397BB23325BEE05
+          BEAE9A1DB160D0D4E6D55B246DED7CE3E61E299EEFEF390C21B790DB87A9D208
+          A3476BBAF4037C065D5CA8DF081A6DB6C007F059BC590D97201EA978F581D8A9
+          5D8F3B77EFF638D2E54CBCAC9552C961C525BD4AA3FC3A00F9526FB972B71D81
+          E6F1A0CC2714992F66096D890D92D0176D799274EB07720104F7E527EACA0447
+          6532EBF14DA9B4B8A2E01D3097942E922B8A15F537CDE17CE8719C90C666FCC7
+          9B2E1710DBAE108E8B468E9239D8A2AB90001784ABCC1F726A207C3234CA0742
+          19D348294D9BF406AC13DCEF577862E4B9457E6734C68CE360B68A2BB3B583C0
+          1EDF5FA8267AA24F61C5B7D35B96100E81CD5F27E839DB039796C3694416825F
+          6C2483B02E2AF7FA76FD7023331F6252D72A325E429B70B8D172C36A29BDB90A
+          36680EFEDB609813350D09529D6A2B686195AB673500BD440BB03574EBF33BDE
+          2D7A94CB84BC9431FCCF2482A1679009E689DBFE9B2B750EA663931C2E027A6A
+          5BCD90A706ABD17764B89ADFD2FD2F0288D25B6A43AD38CAD874A8A7A6DF95D5
+          1EAEA51FF99CABFCAAB0D3287FA9016C90A92DE840597569D4951A0A2AB06C1D
+          EA858B3C5EE3BB94BD35E7233CE96596C0714D81A40234F92CF20900DFB8F4C3
+          B4B7F08FBAD2834D2035D2424014069A02BB51B077375ED81105A4666E8F88B8
+          CE3A4B4E6A015D122E94680BBBAAFEF8AA535D08A52972DE794A5B4EB43E5A37
+          4FE40F9BF4F6C1F96947C2AC3AB54598BB72338059082AD8511EE6F7DB0234D4
+          48E5315B53A0171C5360A40480544E9FCD583DC8F15C8098921D71B0EA85A924
+          129494D9045F7BDF6DEBBE2662C74B4A7B4892943C2B755A54546C93F5A1DF82
+          3B626911DD622CC92CF51CD41C62EEC12140D0F4A1F6B3BD1DE139F71E62308A
+          1D86EB5219D6520071412752813606E08B1DF8ABE2C9727E261CB538DEAD6B50
+          750FB654DB80AA89246F5436E78360F64AD0664BACB803CE08F29C090FEFE7EA
+          D023D6ABEDC6D586CD36869D2E7514543864723F0EEADF803717EA7ECB336720
+          BD39944A7A428C3469652EEC1A59D8DD576DB036701CCAA0B53E3B31838586DD
+          9321F02DC4E9D4020DF60ADBB7978ED8BDD465CB105D4B4E364AD0EB6D16C909
+          5286E77ADC5576DF9F4C767ABE15C8EECD8ACFC2F5015A99F9853566FF003A35
+          5B6F5471C7CAE32D898F4C3D279BD0F3205EA7692410782A1B501CFBED8A61BA
+          F32A90FE5ECA82229D3E53AC936BABEE2EF9F63E80E091F39871A40E9ABAAA68
+          B9D3DC01C924F00FFE3022838E6408D296521DCBFA09536D94D2D55E640F7ABA
+          BDC8491EA28699F8607338ADAFE2D6A0CBBD47012E3657E602BCAA343737D810
+          6AF1D9E3A32D0DB8D08F11996CB6FAD06DD243A540A5447F2EBD5F517DB17786
+          DE7919A3535A88E4A8B1D6036E8AB7838348357BEFA8DF7AE3B997881998152E
+          44225C5387A80B640E993B8E7BF3447FA0C6424301B2EB0D2D21D2A71629B005
+          17166EBF92F9AED7EB883B0D6DA3A6F24208EFCFDB1C61A2D6C8D3ADC1E57393
+          5ED862B71C6DA5BA1CA6EF72473DBEA77FF5C4BA04B0DC95FE075B429091DAFD
+          EB7FF4C52871A0F01D4E9AF84AC1B1BE2BCE1AEAB8DB8971C248BDF637B718B3
+          2C6494391DCB6ACF51CF38DC8DEEEAFB7BE3AE4509957175A1B0A70F485014B1
+          540EDB826F7E311CB72A4BB39E8EB9EDD36E829342D7602687DC127DCD6259AC
+          092868B01C2992A574FF0089E82CFA7236E47A5E0639447662A5C7CFF8B4B23A
+          8EB69B2972B723D6FF005DFB634BE189B1A4C490CB0D14BC3536A48141005847
+          E3354413F6F5C6611255F14E252EBC356F4B583BD93DBF2C3CCB7C490E5873F7
+          83287025D003BD307490280207BD1FA038799031F131A449D1D57436B012DA69
+          2B458E45DFBEC2BDAC805778859CBDACBDDFDDF0E2074AC852A882792543D2C0
+          1FDBEB73B974919734B84E1F9AD80A082494937C77EFB7DF1D0EAF2082C3CD06
+          6D635167A9A93A6AC7E9F9DE317E27CD1A9F10A23365B283D4424D79050DB1A1
+          F0A788E24A8ECC07A4B4D4CD01B57555456A03B5FDCE34AECF90CE4DD2534E48
+          1F12A5254873504A08F4FA5FE778C278BDA9AD38E7C448438DA9B0A4283653E5
+          3748D8F20DF1E98CEC10A8FF0085EBB1DCEF5C6D787B913626CAE9BA7A71DA05
+          4E38A17B8E3F3EE7B0ADB718D578599F9C9D1D421F6F5B4E39F85CA1E8374EEA
+          6CFD363DF16BE1A94CA62B414DB8CB2180D95FF1DA5A4A86C6B8AAE6EB7EC31A
+          FC965262648D17038DDA48EA38AAD47528F1FD42E8FAF3BE33B9BE5F1595E831
+          9A92D299D1F38957F312689DECDEE7FCA30AB2E53B19D1A5D4B74D21A4A87909
+          480079EB91C62E8F27F7AC7334C70A05E41477BA22955FD3B8E6FBF382643745
+          A10DD69C0555A5763E500029C16773BF1F6FE6180263CCABE112CA34865B69CB
+          D0362820120FA9A3CF63EBB60D7438E8EAC6698752D12A25B5D137543BEF40F3
+          B0E7B62BCB90C2B285664898D232E7129589694A88093A4D2FEC4DD903EB89AD
+          F662BAB49219650CF50E9E50541C40248E4EA27577AA02EB14B0865315309D79
+          6FADC0494B6000348D0DEFFA0F52013BE284A1E4A96DEA6E4B4021BD04680B40
+          5AEABD0DD7B71DB05E5BAE1864491F10AD83C902CB7C9163D77FD704BB98354E
+          3ED316B77535AC794EFB0D85F078247180D7A5E98E36474E42086D1E627559B6
+          C8DEA92358FBEFEC43AC2A732C32A01B71A587038D2CA8D794A87A7F3129E38C
+          1709E6CE56CC865FF8AFF12E02129B2D0057B5DD6D439E7EBCF27E6921505BCC
+          242982D416894B6A73429E20D691CEF5B69F5EF8AE59666490EB0C7C336DA0A0
+          0BAA1AC703E82C7A7DF17267A23C78CAD5D1696E924DD69A6C2AC13B7F5EE7DB
+          B606CB9A75CF0FC494A752D02E07D37E756EAF3F97DF707D36F4A2666536615B
+          8B8CC85A3E1DA4B41DF2975DDD45B164109D2144F1B84F27624A1E61B7A4FEF1
+          20C707531D559A26D29093DC9B290077B157841972DC4A244069C7571564BEE1
+          2ED9641584F4C8ADAC052C0039BBB1BE2CCD9E6A0C37BA6E36D36592A5A83452
+          EB4AAA2E0DC7F379BD4EE77277B9C7820BB32446224309042D44B67502B1AFE8
+          06FBEDBABB918AB2BCAA4B824499AD24975941650B57F10D024AC0E2C91636FC
+          046D8A3377A0994CC4755F1128AFA84A85EAEE9B1BEE02813B7A718EC52A4BAF
+          882F3CD30DA898E875A2A48209A3677E7B581D8E286253ADE4F0074630F8A780
+          3A2D1F0CA369510A076D2373F7F4DC9CF54AD1A5FD2E12E07DB6B5F7D65175D8
+          115F43D811B0B1E436634AE8CAD65B580FB410750ADFCDC00285FA591583D2E3
+          11588C5C7EA338DD152ED2B6C9AF25EFBED7BFB01C6062CBABCBA6B6DB8879C3
+          25C7921C1AC329504A5095707620915BD50BF58C82EB70DC69E79C0DB4D0F870
+          82406D402ED4A1B6C548D8760A3DB0C26347F72BC9EA340A5F5071C0E512D159
+          D245FF00CA3DCFAF70FC38F3EB7165F91D20DA5B05BA013E521001036AD543DF
+          5E352C3EEC99A92F7CE8EF3A5B5FE2B0802BCC91B277B1CD0E6F7C67F31F0DE5
+          EA98E2A321A79D68108694E16D2DA6B6BF4177EB75DF198CE838DADD65DD3211
+          D555A6BCA40276E7B56F5DF01B6CA1A6839ADB69B2351144A877FCBEA704E571
+          599529C90A717D408E48E001FE9FE9893CDA9C99A3E21A5B55B126F9EF58EE5B
+          96460E36B34A0D125C0DDD137F737FFE70C73600C052592D34DB2E20B45B36A4
+          242473B73C8A1D87D82D759D711E6E3B456B7052937B904FA77BAFD7076471DE
+          5C60ECD78A1C076B00ED5449DBEF5ED8BE0A63CC9F04D869B820A29B4F99D26E
+          858EDC2EB7DC022BBDEE2D979E494036DBA6BB79C822FF002BDFDF02CC8BF192
+          C4747E24AFCFBE3439242CBB259A80E33A090482ADEFCC9277A1BEE687BE2399
+          E49173D6D6DB996B10DD8E496E4B561479EC2B63B73EBDB1983E016C4CD2D49A
+          21925C61C162CA86DFA7E578D7E5E92931ADF7C2E2B61A051B0B6B6209FE6BF5
+          F6F738499D3325ACDD6D381B42C28E971B4E90E21C3E53EC6CD6097D99107246
+          564975686C0536A009AB001FCF083C4A874C570905C43BFC4228F4C71B632B19
+          9429FD052A00FCB04DFD8EF8B139130BCE6334F365D79D14E81B0477BDB935FD
+          F1AFCBD59BC094A6E3B2CFC12411A0AF412761401E2ABF5C3ACEA3339842EAB8
+          0223EA2406B70A20056F64D101253C727B59C26CBBC2B01C8EEADE69121A70A9
+          C491695290923481DC1A50FCECDED73756C65C878CC84A8AA694D82148012EA3
+          49BD1C55AB63E9679E05B94E7D29E7D12B763A69534036A09F395A77277AA1B7
+          E7CE1E65523A79C3C829438BB2CB8D07523629FC447600FBF6F2F3B959932D3C
+          DB8F3B2C10A64848D8B61DD45668ED477AAFCB938CF787D9CE23E53202A385B5
+          D67150DB3F2FA60240D26F716E0240E47BF61A0C55B21871C94CC977A6804386
+          838A3BA88F4F61832132C40534DC70D3DA99E88F2952C1477491DF4B6363CFD8
+          62E919589EEA65ADE0B74B3D26829AAA5D80577EB5B50F41E829534A703054A8
+          C86DD32A9B6DC736D0920E817FD6083BFAFB5025311DE990C940F8C5A8BAD8DC
+          01E95DC94A01AE49271171990DF83A4C6538CA223610EA80345E69D4F98A7FCA
+          40A3EE40C52D46EA15C642FF00C2B85B6D5D55EE82D927BF6E2C13CD5EDB011F
+          4B8A71727322243EE365948D6116029256681E763B1ADF8C3B4B89564699B218
+          71B94EFCE6DD2E92869248D200F4AAB357B9E701F89F28732DCAA4E6D19D6DAA
+          6DB712C83B3878228FADA00EF8261A15F01D48EE8F8753E8501415F84ACFE44F
+          F6BED8996DC96D2DD014F34BD495A96051A502689E0513C5FBF383B30656F459
+          31D9EB28B84B490948A2A290781BD8B24FFDD051C2A76732A736B61968C74283
+          2D9B4A68D8208036A340571EBD8D4AD6F36B4153082BE91D0E8A6D2A24055ABD
+          BBFD78F51C495BB26386E32964B6B3D408B04A4D74C93EA771ED5BD62875969F
+          61519A410DBCDADB34D871414E002C570695B71B7BF0D12E86B2C754971B0CA4
+          969DD028A1B5005BD35C9F3377D88C5F165B0DB2844B71BF896806F4A0585122
+          E80EDC022C7E98A1E1A3A25C659B74805B52079BF08D447A6E9DB8F5D8DE0370
+          3B156A665B280DC92A4A9FAF2B763CC4EE36ABE0EDEBE93CEE37C5CC3A7A327A
+          890A20021A56CB2093DECD6DEFBD8D8AC6DA9EDE524E6A0BADC68E5E75037052
+          4AF4B74289506C0B3DF71BF382B2E9EC8CBA2CB9AB486CADC5079C345C48D609
+          4FF5006FDEBD772788D6BCDA748968425C4B2D06474C0F949275AB61B76E79DA
+          BD711CE03A223432E9214F2DF6DB2A4A7F128148DCD6E3740FA1C2F78B102532
+          E86968710F064AF7093D45806BB7F3122AFF000EF5833381390EAFA65AD048E9
+          69729446C0900F622F6DC0D8FB616C469715D534DB5A9D580A6D92B1AFA7CEA0
+          39212B0B157EDBF6D365B0604896F35994A4C765A6DC7587544F2902EEF9344A
+          4FB0E78C0CFE5ED7C226221A425B53CDB9CD50E1B1EF4420FBE9175C61714154
+          7F8D7DBEB27AAEA9E4A1D23BAC048FBD5F1C9C3D9725B4B0961BD1D265545081
+          65601736079241208077D851E4E1716E1B115721E792E497506957BA5415DBE8
+          11DF8255DEB0CD32418DD44BA186653CAE93AAF981C4FAD915DC9FB7BE3B35C6
+          911E193AC29ED40BADB96002D9002B49AAD80BF7ED8CBE7D19C8911C2CA9B94C
+          AE4B86C6C5C26895FA1DEC6DB6DB6D8CCE61A9979D712140E80D0483B58E2F9B
+          143F5C1195C931D292F2D2D2688346FF002C4664CEA4757C336D29ED7764F6FE
+          D8AA36672512925C92B01C4D929349AFEDFF007B6248CD509529A402B0404149
+          365B00EDDFBFDFFEBD69C74C716BF96951A3555BF7375C1C4E566531194C9663
+          BFD593B7090687DFBF7FFCD86F96254A86E36561D4B9BBAE134EAC9B5EC3E963
+          12F89425D7D90D8B4941B5AEB58EC7E9CF18EA1D7CE74CBCB6CB2D3CA0DB8482
+          411D8FE44FE5DB1A4CC4B711A0A61CB5006C5F06B9A23D48230CB25CD211889B
+          70C72D2D41B1A4538003B5D5501EBC0ADF1566EA72447716E80F071212A4B268
+          F500583F71C8EDB0E37182594BCB4B6C25D7104A092574459BAE771679BC21CC
+          C4481E207432FA42C2ADD6C1A0750D46CF1609BDF14AA7B6DB4AF89783A1DD63
+          4D56D5DBDEF03498AD660F32C348252E72BDD686CD727FBDEF406134EC927B39
+          8841741A6C5AC550E76B1DF0FF00C2D1A1E5BD5939B2E33F2426C52882A15C0F
+          7DC7EA3D687CE65B8ACB3E3BA8B753D3055AC0411B9FB58FF4C26CBF3A9D027B
+          8A8886DF69C209045135B023DF0F58CD04C42E34FCBD098EA6C1222FCCE9EF7B
+          DF602F8C28CFA63938478CA424B2E25BEA0DC11ADCB045FD50457B57A618E542
+          33F9FEAD6DB6149D0F12D8A6EC8568ADAC5A569BAB167EEEA4B197CBCC5A5C87
+          BA203321290D8DC93F30EFB93C950FA01CF2D9A8D263651217D10FC7D2A78ACF
+          7512A25609D8A48D04240001D47B827259DCA9EA425D624B886490A71B2E1EFE
+          9E876DF8EF82A2C271515F6E3B35F2B45B9BD571BEFF00D67FF18BB52C3AE16C
+          0010ADDD41D54922B8EFFCFC6FB8F7C76329D4CA4B2A712E7CB6D952C0A48009
+          E9DDF736AB35BD7E5179B53A91122A12F296EB3214ED91A5B0028B45247AD58E
+          37048DB17BAA6511D2D3AF74A336EB6816A255A8A8F3B7628BD5C01F4C56FBD1
+          DD784C71C09911994B6DEA14037400DBB52528DFDAB638A73861A44661B4252C
+          A9E5A9495F50751C1FCAA15B11B01EC28ED60E29CD21496D56A72332F4B535F3
+          C39E6BD4544277FE6091FF00C7ED82986DB4659222A0345F8AA75B8CA2A01296
+          280681551DCD2B8FB835657661982CBD05A83D49CA2E1703AA4943608A0E1362
+          FF000AB6AE0D7A60ECBDA69B869662B6D957515D56FF0095BA4B600363D1078F
+          43EB58A21DFC22A5B691187C4B61BF9FE6D45D367EA5B6CF1DB7E456088EE3D1
+          A6BC5A61E0DB6953ADADC7345129DCE902EE850E00DC59B031390DB0CC753712
+          4B6F3EF36525777C114688A2901207249EFBE2A422705429810E2614B77E19A5
+          2BA65B6DC292A55F7DAC513F99BC1EF27E62CB54D06C538B4AEC280E0FAF347D
+          E80EC70AF2E9B2F4E62961C53ED32BEA0E9D530149F3117D924DE9E2F50E7860
+          DC8CBDE272C8CC988EB4D52A3B6CFE04D2A9C4A858D94950A1B8537EBB12DCB6
+          A6AE3B2948596010F28DA8E9F2A8FF00C44287B7E582613DD5EA352D4A7547CA
+          028951F4AB3EB5C600CC446790B66434BE938C16D4D17B757E10010383E7ADBD
+          8E14E44C9F817209292F352DD65A0401D3041514820FE2B50B02C803B8C54186
+          6432CC882EF543C905A59B4D8713D4077DEAEB6E415F6DF0B95293146568CD47
+          5A2C24B880D868D9FE2201200A20255C57FA56824CC8CEB719F43F242BA64971
+          0DF56D37C93DF723D77039A14B595C00DB8FBAA4CF501D4EA38E51681B1F8400
+          0EE162D3EFF4C5E86990D896D3A1223B4A2CDB9E624EE555B558B036E093C1BC
+          0332548CDB355CC319C290DE9703A6FD2C03746E891BF06F15CF7C499F97ADB4
+          82C32C166200694C82E0D7441DCF24DDF1B1DCD1C98EF36A6A124B2EC97CAC3A
+          0ABF80D8366CF2B06FDB81C562B7A34875879B08534DB65416B74DBBB9242C01
+          77DC5762476D859232C5BB96B8812DD8E95058699D927F192AD445D8363D0FD7
+          B467B92F2B802530B6FA4D39A9A50175A012057724847E58A1D61E765AE3B9D2
+          B54A0DC9709DD2E389FE8142CEE2EBCD47DF0D5B754F652F475F4FAACBE5C07A
+          655A5076B091BEE41E39A039E6D12A4A20B4998EA96F38AD41A3E53A08BBE3D1
+          49E7F4C4E3B595E6D95BEDB6CB81E676596C8B163617DF9ADFD3184CEDB732D9
+          CEC766D2D8177B7DF7FAED812036DAFCCE8A6C2B7DF8BFFBBC73316C4671D2DA
+          52E6800A86FB7BFB0C267DF55ACE9A1C234EC08DFF00F38E47EAA5E094AF48BF
+          5BDBD70DDE79B6DB0CAEFA6143551A03D6FF00EFD7166532984177A456A74BF6
+          A4837B81557F64F3DB0D72664A653B4E8084A029C585FE006C7E7BE0B62432FC
+          D2B90B68B2E0D9C0DD1ADB6DF7147D7DF1AD7988F1F2F57474B8E380369EA2C8
+          49D5E95DC6AEC714E63FBB652542CB8B4721BDB411642689DEC76BED8691A0AE
+          5E5A63988F34CB600014412A1B852686D740837EA301648EB497A53CA8CA69C0
+          694DA4EE951DED5EF5BEC4D5ED8B5A96EB8A11DD68D3CEE90EF50AA8581540FB
+          2FDF63B7176ADAB6573243ABCC094948753F2C25B513D3A02C1A048BAF7ADF18
+          AF1B330984EB8CB70158D4E34E13CD8FC245F70B077EE7D30E7F678CA5EC966C
+          A90A712A53848A6D400142C0077DC1AFFCE3532D72FA4E9D2924055A7B1556F5
+          B73DEB8BC66B3A3144B3D34175C403F2A80E9A09E687009BC66A73AB6E1A592E
+          D1249D17B247AE07658D452E075AB2B1442FB7D30547732F98C38907616D9D0E
+          11ACE9BFB8AB3FF8C6B32661A6F3765C621FC53A92534A166D04A00DF6B09A3B
+          6FB1E70247CA612633C994A7A486DD7408CD0D34DE9242AFBDF51BF7B739BDF0
+          E0E53154CC18712649417F515382DC2A480A4920A76D92091776A236C695B84D
+          BF91B6B321D2871B165160A4A567CC01B23B7AF6C2B7FE1A3E5E84BB23AA16E5
+          875C1E6D46C50F7BED8CAC382EE5B15C7029EB71B2A71E6D7B90011A8FA100EC
+          7D81DB8C35750DC8959726316CA99E9A5A484D90DF4AC3963B0D55F523D71094
+          DAF332E66719B095B097190CB4DD03E602C288A1B0B175B156F7785315D83024
+          65B98BA97DC4BF2CA597D212A28506CB8410A3C69248DA8DD77DFC8CBD6ECB71
+          C4391DC0EDBEF38817D352940D0B3BA4B6DA8006A8F7DCE3886E3C58CA8CEC6A
+          71B6D5D40536490569B277AB287295BFDF6C529758EB879B65B58A500CBA120B
+          2DE921B6C93F9D0DA86FBF26210ECB92EC7EA37AA22D6D871B16D066B722B63E
+          6700BF5476380660732FFF000F96890B069A9254D58597376EEE80FAD7735786
+          795C752835F0AFB652F0E9B4D155102CEAB29346BA6E717408E39C039B3FD18F
+          225B711C4C42A36E36955A0052F4DF7FC35638DBB727B1F2F9B3550950D0DB73
+          5D90A2E928B2A4A82758E38D409BD8F15E84380439356B82EA8BAC38B616F3CD
+          58592DA763EC0DD1FF002DF7AC1397C131A3A63BCFB91DD091A8AB67162EC280
+          1EB4B27EC05E272567E3E42D6038D16AD40274ECA14E240F5290403B6CB38B9E
+          3264CC8D1B2D84F3C8328EB4A424361A00EBA5723715C0EC76C1793B2D47CB0A
+          8A9CB0DBA5A237255D44AA977B126DC56FC6FF007F45CC14F4C8295B8D439B2C
+          361F7D682E27E50582DDDD83A8DA41D88D4AE6F06E7AE33AC3ADADB71C4C8F93
+          4AB49055D3DC8DFCC54904FBFA0C724BF1A64153E87198EEA0D3D1C1FC3FD3CF
+          29DC77B3BE154997220B8E32E30653EB74847C93C0E124EDB81FEB8F654D65ED
+          65715495EB5B4F8EAC902D2B75CD766FBA7EA2C5006B738BE582F444263791D2
+          1A7967B8740040240E38040E47188661144A4B31D98A0B8D470F208AF2849AAD
+          F6D46946AFDFB5156CC62E29C9301D69B6C45EB6976F752AFE5A93EA280247A1
+          DF8C77239795F4E23AFC3216F32024D170E91691BF0A248D8D7205738A73ECCD
+          0E496D2FAFE24294AB294926423414E9EC7FCC3BEFA3D710329D2EA4467416F6
+          EB2CD694D0A2A2BF4DD036F507D6FC98A72C8EC668D865C6C327A89046C9A202
+          D07DE91B7A01CE18B6AF82CB5CEA32A665496821402AFA4D900F4F63C5DFA7F2
+          8F6C2A9F98AA2C36D71A1CB70B8E74E83049E0F6FD7D0D6045F8865B8D9FFD12
+          6A15D3068B5482E1009DC8D80F38C3A8ABCAB3DCA582242849B73A6B6F8B00DE
+          C4EFB1C75F7C4BCCE43498AE17648B78801B6D612484AE8FE114A27EAE1AE0E1
+          BE5498D110C5B1A9F40223A15BF48ABCE5247AD7A5D50ABE71194C479F25A65D
+          71CEB46480D849A3F300E3F16A1B7FDF732064ABCAE1741F694E4F94E9580D28
+          14ECBE7EC9AB1BF18CEF8DA1A1DCB5D93D200B60809686CDD6B491B9DEEAFF00
+          5C67723CA644ACB94F21C428948A6C0E3B6FEBB9181739852D2CAD5203C87107
+          FC43845E9BDB7F63848603B2E518CD27528340D7627B0F4EF8A7A896666A70FC
+          D291B27B6DDFE9865067C66A23EA75A0FA9606F75E6DF71FF7EB81223EF32E34
+          B2E849426E80EC287FA8C37F0ACC5BAA75A71FF98B4246FB7DBDCED8719BB0FB
+          4FB4D299D0826D4E6C4AC0EC6BED87A87A44BCB588CD3EDAFA20296ADE9B04FE
+          33E95476E39C3ACAF2F82F652994F1415A0BA4BBD4AE980B5F7F5D2A20923704
+          E018F986645AF8A4393C96D294A83600EA93475D5EFDF622F7DC7ADB93A5A538
+          895FBC0BC5E69B9054949DCD0F37D2CF1B56C3BDE0EC8941E4BADC9752E0908D
+          D2A6E92A04123635B8B3F5F638216A2B6046510D831FA49D2D9D9C04807DED3D
+          FEFDB03788B22892105D94F38C36D0F98ED13D21B9E6B61B0B3DAEF6C4BC38E2
+          B298E5B4BA59699796C7CC482014A6CDF71676FA7B63B027F4C16A54FF008A5B
+          A508490A084B7600550DF936459EE076C66F357184446730212DB8036C970AEB
+          A8E01BA4F63441FC8612A5C4E668580420924815B81C1C318EDC76626A2CB6B4
+          2051277EFD8E2CCA6364CD4B94B7DC760A033A92A6C16CD93457B0B246D5B77C
+          1D95BF2D7014A0EB91BA5E678B891D415B825248DC86D048AD8923D69E204793
+          347F8A5C775C5B8E309D04EA68169C524D71B91639AAF4B05A66B793BF156809
+          432FF5D94B6D8D561B495003FA6835B002B9F5166E612A7478ADC9A6C214A70A
+          FA2536A07DB617E43B93F95E14C8932950D86DFD6C24AB4B8B6C94AD24B80074
+          90752AB915BEDBE2ACF60AA5A04761263B2F751A2439643655B591B1B0E6DDEA
+          FBD62A263AA2A909596D0DBA55A5A001AA6FCA2C1355B5D6F5857219CC9CCBCB
+          115D6A2BEDDB2EA1DBE9ADC52EB5278241A27D6A86D78162A24E60E370951F44
+          F0F16D44B6079A8248E4F940A208AFC446F4316E56E36B5370E5A925CD432F74
+          AF70D2D4A0755F1C5EFCD13DF62AB3979E851F35CB4B3D292CA9B475D4A05C5B
+          43525012289BA3A88B1EBBDDE2F851B3272387992D877A56E9BB539C826CF24A
+          47AFF2EF586705C8EFC5EAB4F95C4722BAD20BEB00A129A7359AE1475D5FAA2B
+          DC755342986BAED80E3CE87CB2F344892E02129BDE924022AB837E831D52841F
+          0FD16D0F3CCBAE487C10505E3D4594A05580A256E572280046F78A1FCB336CD5
+          13328F8A1052D38A75D5505E9538D1D48DFBEC48239FCB17CB69B662C76F2B5B
+          A7A5A96DACAE835A2D2124772693DE858DCD6E3B11196DA73F75C971280F96ED
+          201EA6916B7156280E00BF4D8E0643DD5F0CC7CD8BEA0A901D67A57B94A57E5D
+          CEF7B1AF40BE4E0F6186A46509CC185ECF344171BBD852C9E0FE3DFB7F4FBEE0
+          C64B8DBCE2A2494C4F870E34821C2146CE92137762AA86FC120F18771B2E9286
+          81992DA79BEA755ED0A009615AC94D1F5A685D77A36093884F6D71A1BCCBAB68
+          98A50E36A4B756AB149F5D20A89DB60142C9AC190CBEFB604B6C472E9F2A748E
+          A293436040A077036EFF00718A23B706530F432E1E8BE053AA510E04A53CD93B
+          F0287F29FA63D25E4C6CBDD9C95971A43C74B40E9EA242880DDD6F6955EDBEE9
+          AE3745E1260A7C56E05A8B4EB711C12E884A5D3AE9B557AD24F1EA2EB1A1438C
+          BB2228484C9D529B6522F67351E49E0D037B0AF5F4C0397C12E6639CC96A6A5A
+          8AE3C86D2C5DB8D90353846C6BF1255438BF5C08FE58C36C30DB8DF4F2E8CE24
+          3FA5DB2525275207AD8BDFDFEB8E244A31E4C45381A65A7C861B484ADCE98095
+          0457D7700EE52B036EE9A5472DC99D2BAAE953892FB49479C0703A416D24F360
+          57A0DFEF1663194FCA74445B6D486E901B0025D4825C2D9DECF9837B8E7D3638
+          D33F1DB0D98CF3CB714D00A5201B2E2924120FBD8EDEE3B8A0F368E03AF1610E
+          B8592DBC94025656402A2D907D7C9EB543D880F309D97E56E3E97DD6DC98E33F
+          3125CB076AAAEDB9A1DABD70A2367ED3F33AD3D1A5B734A1BA777362944A7B51
+          00F3BEA3C62ACD531B2AF10359B10C5B8E0D719B1A141C5571F63EC77FAE3659
+          A652D2B23665B6BF8479349515051295B940286E0820A8FBF1B0E305407996C3
+          4FA95D478B9D668955F512A092AE47344EDFFD3E78023E1E429A8F0F5067A21B
+          53AE128D2A4AD4A212011B6C1C20FAEAF61870A111FCAD6FC492990D34101B73
+          592143510A1EA7CA0DEFF5C54EE56C47F0F9654E38B56BFF0011BF2D550AA1B5
+          14EA2077513CE16A3238B964191372F04A4D1E93C7CC4D8AAA20F61CE03C9E34
+          895113F1ED25D965B3D75349A6EACD8A37BEDEE36C0862C68799B2F3D97B8F25
+          82101683BAC6D447E7B7E578439CE4197BD9ABEDC75B31491AC6A37BD1240FB8
+          231985E553E03BF35B4345C074A8278076AAF6ADB0D329C97A8CB91657550EB3
+          617ACD2503927B77D476C55E1D8F01A75C5B8F3AB28B70360100D1F5E7FF0018
+          7797C993272871C24B880E9B5AEC9207703DAB1A1F0D223975F8F124BAE1522C
+          A026C115BFF7C721668CE65062C26A23824B12B4BAAABF3051D4093B2B52426A
+          FF00D3053AA9699125A69CE905280516C79D055F8A8FD2B8DF8EF8EC36DA5C48
+          22135A1A600050955D369A201276DAABF2F4C76666772DC2A6430C976CB8B3A5
+          BBD9205FD41EF5BFB8A7996A54B4BACBAA6DB98A6F5AD2492AD2A2BAAE36B0AD
+          B7FA0EEC1C84ECC5E808704356A4ADBEC15A4D927F111DBD55AE8F18CEF8E67A
+          A364E98BD2F9AEA89556D7BEFC7BE33991C661A4F4E54A2D75881B2B81EC7B1C
+          3D4468B3A04E80A8ADA89AA0E921A2AA1B1BE08B036E79AC0872C8F02221D692
+          91F0A0853A816168208A1EBBD77E41F5C039B38A8CB4B301DEA2CA4751D2DEDE
+          DF4E6F17C569A9D39B1E4D7168B9E61C1D76076FC41186792F566E6EDBF21A2E
+          4975EE94AA6CA3A640B1B5D1F28456E76FA9B7E21263E6AC350191D171C21E3D
+          32740A748249E2BFFF007AADEC46330C871996196C994E8792C2AC875252071B
+          EE6B6039B177D96C09B97436DE90D210DB6F38EC891152CE969A17D3294F14A2
+          1077DB755EDC62E65E82CCC4B69714B4758741B774D8FC16163F94513448AFF5
+          2B306848752C296EB21C400EADD3A95A93A7D3B9483B77E6F907311E7B2B1335
+          214DA9B25AF224EA48160D83C1B571DC59EE2CA9F319910911159748783EAEA2
+          5B0E049241A551BD871ED55C6F85D1623EC382349454A714E490776F5B841074
+          2BD524367E890689C70C96D87213D0D4DBBD6714A50437E5A7351D437B24A541
+          CB3C92463D2BAAB71E79DFF03A83AEA7F9F52C27A6E026B7B0B6F9FD0EC2C311
+          0EC76DB4966436E0434DBCDBDB25AD8AA8806B76EB820D91D85C72D050A4B29D
+          085A941C74B60025DDDB25245EE4A2C0E6C714520B42FB51A52F3177A6E3F1DA
+          F8786C36DA6884FF000C1DE8AA9B6C577A15B937DEAC45B322100F88FD2500D3
+          8E7943882E052AFF009450AB3FEA30BA336DC075BF8F7006DF6C21E70EC9B4D0
+          6ACF2904528DD7E01F5C722B8EC486B839839D5E83AD967A0B00A9AB166F9280
+          54781EA7806BA3288EB71D8EB7FA655D490AE9C93A5E693B14A7FE148068D920
+          D9EE302C269A732C6E353B3F2F400DB459A4E9D4755D817F8740AF4F71BF3E3C
+          C3C9D53D0F4530A3482CC4656EA82B6736E9902A8D11DAB6EDAB05F869D32D87
+          E745783B0925B2A438D80E050BB4FB1D414400484F3DD2705E5A1E6DA7DE8CC7
+          560F916C949B0A6A8EC073640E36DEC7F5629F895BCE2744801606A92E74C829
+          4ABE5804FF00201DC50FE25F7BC3042D87E01532E222B65EA6DC6ECB8D1240A0
+          38B052001C5EDDB05F888C3498D09B71A6BF0AFCC40F97C79ABE86F6EC76E70A
+          9C811E54986CA57314DBCEBA5EA7BCAD280177DC6E46FEB5EBB8B15A799438DB
+          6C28BCDAD0E34EDA436A095254B709E358DD27D75FBED35379521A68478AED3A
+          8E9C53D4F28504F1BF7DC6E7B5FB60BF0C4784881F1F26436DADD8EDEB21DBDF
+          49D89EE48A24F7BBBC4551A28CC07C43AE7CD782C048E5402CDDFD1C5F3EFED8
+          836217FB42B54095D05B80A9C529D03CC52E52B707B691DB91C9C2CCCDA6DB85
+          21B7824B7ADC7CBFD4A3AC104BA837EAADF6AE7D3144A96D3733ABBC4752EB32
+          98699DFAA2EF4D716422C1FF00AEEF1E0F37A911DE6D6B68A915D803B8DFBDDD
+          9BC220F260A7E15C52D521921C729CF356A02D5EBBA09238ADBB632FE3BC924A
+          73C5CBDEDEE1A1C36840E6C7D0FF00AE326F75848E994ADC528ED5B924FA637F
+          9BB6986C689D1542336D694B6D02E1B3AEB7ECA16B37B706F1A6F06A9D7FC182
+          3668F2CC55B4E96D4F0F3B484A7924771A7559EF5CED86F934E867C3715321A0
+          C8A7105A48D89DE81DB8BF4DACFDB0004B0D64121B7DD7DB7D1A9C65E701E880
+          4DA4F72770AEC7D85619BECCA8850DB4C3AA79D5065C8A948D1A88F4A0403678
+          E6F6F7264F5D4BEA4B090AA03B82A3A6F52A8503B2B6BEFF004C279F25B8D07A
+          823B696D81A8D0F98D5FB7A515EFEE7DF1E6B3652652B2DF84690E8652A249B0
+          42AC24DA7B5F536F6F7BC65737F123E99721A86E83A2DB1D5A735D1FC7B611A4
+          2BE2497A512A71B3E71B1A26CFFE3BE18065BE987568F892A6C9403768256001
+          5C834177C5563CE5B8C4169E4D751E0DB960ABA42EF5103EA47FF8270366DD14
+          468EF46098EE5949680D445122BF4BFBEF582B219C97A5B4DAD686D0536A0BD8
+          13E9FEB8DD6490596D0E4D654969E524B80A55B50E07DF7E309836E4DCA24E52
+          D36525C94D4C43806F5E52D9163FCB60DF756C70D72F2E232F970121A9B31D7F
+          51DAC96F4F1A7B8D4028DEDC702AAF7A1B4CA997186DF74F48464AD67F89447E
+          3AE4ED77FDEEB034A025B4EAAC14C30E7CA5A0051B3692380455917C8583D8E0
+          EC9C2132A534CB7D6241718B26D41A3DB91CEAFEDE831A884DB1212ECB8F24B7
+          D6D010A47F304EBF5DCAB755FB57A602F11C06253CE4790C2D2F14EB0949E2F6
+          363D8FA7623D7194CBBC34EBC7E21E900381F296D6136A344DEDDB83FF007C38
+          7588CF65E65C20E3843A5E296CD5D11C016493678F7F6C2DF16E5D267E591D14
+          965F0AB43455E61E82AFB51F5EDE985BE0E845E71719F642A9236E0D7BFDC73E
+          D8730B2ECBE2C570BCEE991E7A6DA3F89BB2413EF401F6DF1764D0571B2F73A6
+          EB4EBACA9D74E91415E70A49207240000277FCF6752DF65CCA94C65D2C25C7C8
+          690E33F88D9DF6AB16093EDCE2B4C5064C4CA1B75908434A76417514086CA485
+          247A82458F7AEC2B36B94EC4F10673D179A32228296BAAB0E36E32EA1493B0A2
+          937B007FCDDB10CA5A75262A196CAD71FE425C0AB2A43BB07361614141149AAD
+          F6AEDA19D36565737496D53400DA1441DDCB3A55A6F8D3B28DF60773BE32CCB2
+          F2D52F30798752B79C074A593E5E982D8049EE0FAEFF005AC4A0CE719CDE266E
+          D86A5AD90E294DA896FABD4F537B502471DCF3C6059BD6CCA7F514D348CBA028
+          BC1344D870B80DDEC9B1649DAAFB6F45AA23CF4576349694CCB6DA6923A7A69A
+          2DA4727BDD0E2B923DCCB307D4E64ADC4545A723B6580AAFE2A86FA51AF9D8A4
+          F7E3BE323E2ACD064515E7E04473E74B29D2E8D3D0A4A74AABD4AB51FF00976D
+          ECE08FD99E74FE6F92CC12D6DBC63BE843646C1C706ED9559AF2D76ADD44DEC7
+          1BB65E486E5252A71E8E2529E4F94AB41484A86E00364D0B1F7F42BA1295984A
+          623A595435CE900A50EA12949708F5240253613EC45902A854BC963C3CE5F71D
+          92A79D9296C34D2C0213A6EB63C9F311F7AC2EF0BC754CF0ECE8ADCA41604972
+          334E96BF1334AF4EC7596C1DC52EEF6C348AD4C5786B2B97292A923A852B0A1A
+          DC681F2F4D24F988DAAB9036ED8A197D89711C2F3C85097D36DE532343852480
+          76E3558237EE06F8A3C4EC41721E70D84B3FE25216D32C9E98469490DF4EB700
+          248077AA06FF000E261A465C94319732E272C65D50658AF325B0DAE9D513B80B
+          26AA803D3DF938B61CC8914E60D4323E1915F2DD5D0EB10A3D85A117FA957BE2
+          C121197478B167484B33A437D4799D41492540059D575609DBD2BD0D61AB6B7D
+          BC99A622EA1D16820149AA208F35926C8344FA91F5C0501C714F528BADB9A875
+          8857CCD3477363D4D13F9FA62ACC50A796CA32F8EB69C0FF00C538D35F856900
+          A7615564856D60EE0EF4314B4EAD97FE438A694E943C9516F51E9DF98D5D7F40
+          DFB1BE0E2E78352DC46805871C6DB5321355D4082ADAFF009B6278FED589E491
+          1E620869DBE902406DB24DA34822F7BF448BF4FAE01CDA7144F96EADA2EB298C
+          DBEEBAD10497D4936147BDD0B1B04E8C5612DA5E6A5DB495252E36F210DD174E
+          C1560EFCA78160EDCD62D9AFC094E40661C301965A2BD06BA81C2B49B56DC5A9
+          5B7609F4E17E5519BCD2438EB52586D10FF8894F2EBA5277ADE80D43F4EFBE0C
+          71C60669227A921A2A77A960D1DC8DBDEABD76BAC073D0B92B9CFA23345C53A9
+          65BD44538D2C12ADEFE86BDBDF0AF32CDB2E4C368481314F34AE9C792011AC9F
+          2D13B83B000F02ECF158B721F0F65427A65C696B755A0A6D5B8DEF71E9EBBEFB
+          E19660E878BF05A8EB70BABB586D22CA4A5749A3B6E12687B9BD81A76E1662B1
+          132A31D4F2D4D0640697E635B0009DC93B0F5FCB1CF0F4861C5CE6598AA2D8D0
+          B5A4827AA1C2B56A6C84EFE6BE4724FBE24CADF7E1321E534A7034A4B69069D3
+          6E0525201F4F358EE49A3B635DE1DCC72C8994B0A295A4B918B4EA882A5AD5E5
+          2169DBC813F309E39AAF4CC662FC290B764250A84E294A6C243C6C25C56E7D8F
+          90558E473F8A82EA2CA96F0F9D0528538E242AC383724D76D22C7704FDB09E43
+          2961D529117E21A2D2DE8C100750B86E803DC558D5F4F5DF0289CC7CD5290F32
+          09D2AEAB4474FBD7FF009C5D224266BAC08615AAC10A1F86B9BC35CA512D13D3
+          19B981D8AA412A6892A3C723B81678DB7FA9C1B9438E3525E59D4E07122D6003
+          4AB201045DF3D8F6C09E24CAA4073E31AEAB81E6C0A366B8B1EB86196E592DC9
+          113E21A5F480A2E56C13EFF95636929463C16145AD498CBF2842794EE0D8EF43
+          7AEF859E1FE82B2098E30B6C4F690F00969B0BB70D14A4722ABCB5F5DC6C70D8
+          498AE6690F368111A0854B306515303A2D0DBCB75F8B647DC69DBB839A496FF7
+          A24BD14321F0E3DA46F6814936363A894A2BFE6EE08C1715F911A24D7A304A3A
+          A94A1A41481AD41B4800503B9E98EDFA63B92E5335B105ECBA5165DB71CE9925
+          34090A5100D809E4501E97CE37918B2C405F423A99945D256A58B48EC7A7C1DC
+          0BB3EA7D70B9F774CC6DB92A21F755F2957A54751573EBB01C727EE42C25A696
+          5B7232DB432EB8D34902965C50B1A7DCA4FE87014E9A58CC1B50CC5222BE3AA5
+          25BA007B91DC007F5F4030BE14B7DA99993B5D57DB20A4AB70749B3ABDC05922
+          AB623DF04AA529E2C9650CB45CB76BA7E52DD8B49E287980A3EBED8A213515AC
+          85B44D5325A93D4548F8A510E1D454425362F6D801D85615786E4488B1598A14
+          5ED5A9C64B8095068B8F06C1F53E417C593873964F79329971C2EAE73AE3BD21
+          B04ABF96C0AB3C7EA7BD80EE1C95FF00B471E225D0EB3261FC409555A894D0FB
+          10A1FAF7C66BC4F93371E76639BC24A61B315C4FC6071C3F39B154A4823622CD
+          6FB9DB6BC55E18766A72F71E8DF14EB802494B755A926DA71649FC5E5B35C51B
+          1CE34B98A7F7929F7242DD6F5A029DE98D4AB503B0AE36B3B6FC0276C67D4F3A
+          B71DE98474BAAA688D7A143A63823BD92E5F7EF66AC6721E62ACFB3DCC18F856
+          991D14F4C14EEA25B249DB7BBD1FAE34AF325C0D404C552919832B31DCBBAF2F
+          992A4F6FE5F615F4C09D172485445C60D25B64B724B854438426EA906C13B0DB
+          B591ED53AF4AE825D4A108901C01B78ABC876215C1EF647EB64D52EF1742656F
+          CB8798CA198A036A763164050794952C7CDE363448A3C156E2B176591D19565A
+          FC7890D0C476141C0CB24B6E36E81A53AEC572456AFE907BAAD8A56F25A6DF1A
+          1ED088D18B2C9D3A9D3F8837C704282AF7E38ED5E7C1FCC6535116B406752D41
+          862B58520D86C2B7A268A85D0342B9AC1B98B4A436ECAF8A714CC661C096D32A
+          BF028145F729E9DD9E46F7C562F931A2B39C411F0EB6DA0A534CB69D21B2ED2F
+          6291CFCB0A6EABFDE1BED62672C4A86C3AFC45C9953545D7E3D1A65974292AB2
+          9A24A6B56DBF1EF8CE06DB7D8CD72765A5BAFCD091E46FFDFA9C4800F2555440
+          DB717B7ACA6CC192BB21A0EF5B31291AFA4E02106D24ABD36238EDB8DEEB05E5
+          6FCC79B83327B7521D754D3EE24246B6B7E9909BDA8EFB734ABBE316E5196656
+          C4F92FBC1F764C84D3919B002423A814A17F6BBBE06DDF073ECB59815751264B
+          329B2DA1B75010140924EFB5580373E877A382254F545216929780275BE96CA8
+          22FD8D1AE7B5EF86397A23B2C35300614B3F31BF39503D804FAF2093EE9ABDF1
+          5C85CC6A5BB19A4B8E3C121D5A942E926C055FA6C7DF097305071D44B76FAA16
+          5B0EC7DFA40D6DF4BD777FE5E05D0CDF5F2EF85696E2832B0E7C0C9685F4D14B
+          147D4EE28EF7436C18B616FBF21A65B2DA96F7C3452E9D09080365DD514D8343
+          D06DCE06CE5F6E17516E3CDCBCBC105F3D32D92ABD8948E53A8DEE6F635CD622
+          FCC3F105890C32D1710E3480401450E023FE104A00EC381CE2B767BA734727B2
+          DC673621484021AA2162A86F653EF7611B73833C38629CB2E238A2DAD2657993
+          D3D364057D00D801E95DEC9AF30A5C66A6B6E7590A6B53679EA276E3D473C771
+          58F311D4EF972E6A9ADC8708B2E03B837EDC6E3B0AC0B2326627F99F252CA0D1
+          245A785809FF0094AAFEDCE2C4E52D330F515ADB49400F06DCDB5577AFB9DF0D
+          D7322E5D35D15D475C3D47CA681203677AEFB200AF7BEDB8529D6A5F8859CC0E
+          9696968B2DEE358491A8122F9043641F4708DF7C7724CD34A999AC21D972145D
+          2F163F953BD7737C573DBF2312F1673A4F5A5F5613EDADE61D0ABF99654458DE
+          AB573FE989AE44E69653A9D7598BD3536804526C1ADEAECF1DC6DDF00CA92882
+          EB3FE25B6C28F4DD2FEEA2A5023A86AB9D1A8F6155C5E226235FBA9B4B4EAC32
+          CB8E3E4A3CC5D42B59A14004EF678DAEB8A38A9B89F0B9A54B77A85B0A25D4EC
+          9D4BDF4D77A28ED5EBCF18C4657FE1E44398F13A9C24F49279B041F303C706B9
+          B1E869A64B94B2BA664C577A282024BA8D26CAE881E95B58F41DCF146639A986
+          530A3B694842ED4B013C03FCBB1EFBDFD307E5B1429A70C667F8B56CADDEA205
+          DAB5D6FB9BF6B15F7D8656D45910D1311607C406A5274D96CE90A6C8ABBB15F9
+          8C27F1464CF25996FA5E9321A61C2E05A524B65049208A37AEBEDB1DEB1A3F0B
+          223CDE8C872338501B0125AA21B550E7D890001BD5007BE09CEFC372B22CE218
+          CBDD5457F307025E68AA98536948E3B8291B023D6BB8C093D4987980CB274428
+          88B52DF8FF000EF11A5D1B6AE775134ABB2493677D8848EB9CB48960CB94A650
+          545B692A6DC56E37DAB93D80DFD011525C684B5B6DA66CB792C3856D34AA5EA0
+          9482A343F0F994B17E8BE6C270C60CF726A0C66DB6E2AA3C15AB52ED264D9D24
+          AD57FE570D0AE4ED60E344C294A08764890EC95325F414229AEFA4159EFB8236
+          E2FDF09672E4BFE14949598ECB858D45FA2A537E5579813C9DC9F29E4279AC02
+          C3D38C88E979E75A2B0D38B74EEA1B502AB02C1DEEBD0EF85F2B2FCC3339D25E
+          7BE0E329A786A0B06954E7F280371B20EFEA7D76A19CBFA72A12D4EBB27A3255
+          61C7010AD49201045D6E8B06EAAC7D18664D46CA664E6E0C56E5F51D11D51DB4
+          85166D292B708D8E91677F40AE3BD12602B25762C45BACBAB8509BE9975ED9D2
+          91B2555DCDA771BFD0702E5115A8F98BAEAD52170E54DEA0580A25A6DCD925CA
+          1FD4146873B9BDF7BE23EEBEC876532DFC3B48F84883A895EB6B80F501C69144
+          7D4F7DCFCB1E7187BAEB91D578474BA90ABA29539F36C2BFF6C903B0E36C06EB
+          39B66F312998FC37A2C57C3AB61C3A7E25BDEB61C9DB81FDAB19F7F3A6999F22
+          72DB087CC569A4B7D25243A5C7125C42870748DAF6DAF63786107C4DF1E5F69C
+          84623C07F843640491EA7950164D03BF3BDE1EB080DCE5BCD38A05C4F4ECB62C
+          3B67F0DD8E08B3B6E4FAECA110150F385AE3B0F2952DC36E583D3078A1EBF8FE
+          FEB783664369C751A5761A27E20B4B37A892689FF9AB6E314BA44B2A69B7FF00
+          C538F849254435D3481AF4A88D81F5EE41DAF12F133A232D6EA9A46A5B94F1E0
+          9DACD9EDD86D844CC38C1E6A521AE93AE3A524AF7502A768ED5676BB4EC4DFD6
+          CECB1F48CCD899296B6E3A908714E49DCA9C4A0A857A8B039EC4F7BC58C34207
+          891975F6DB6C381D90F2517A4129BF2FFCA057D4DFB859B6566478C152C39218
+          763462E005B0A014AD85D6F7B1200DCEC7B619E44F65CC6645EF8979E5498A88
+          7210E8D8046C9DC93FD2557F43C024119B6643F792A6AA4F52434A69B719213A
+          9D51D9CE9F1C2A9477DC6C0A6B0266EEB79764896E496933DD4AADE2E6A34E12
+          A1E6BDFCB5C503575CDFCE2467D2DA77A812DEA69D4BA1609052EA54695B77DF
+          71BDF1BE1FE57F0CE25FCE1C4BB529A7DD2D52806DEFE57359209166E89DBBDD
+          6FA3825D305A6CC868C9884FCC26C772DA6BE9B6F5B9B3DC6337906719887A59
+          75E4BBF0D114E33AB624A0A52137B58014A57A8D3F93AF0E67120458EF3D0FCE
+          E95341B081D44B4A49483742F8D5B8161606D86069861B6A3B6DBC5F34141769
+          A24D9BFD7FEB8B5C8B9A45819532C2A2969AF9521CBA3D34AAF4246F5B8FAF1E
+          F803C4B31FFDDB99B31E43F1DD96E21A69C20F9B402E117DB6277F4F7C2BF0EE
+          532B26852119FCAF866DF4900A015142AC79811B022873FF005C1B2D40B90620
+          7036D848702164EAA09034D8BA15AC6C7958AF662C4DEA3ED1F8A43B25C48E8B
+          8A24A49D2BD40D1ADC208D8F18AB3471A959934A791F14EC57752A25D8DCDA48
+          EE6881428F6DF72025D72DCF08CE8682E996F3CEA99BDBA0BA046F7B7CCF35F6
+          EA71B1C1D15B6DF92CC4756F74DC1A9F700D9CA0091DC59143EFF986262A0F88
+          62E5C1B0B892D0525240538CD5A8397B6C05DDFA8AE2B0D10E3890EB642CB0EA
+          000280085FAFB1EC79C4548931026430D2B527A6DB4DB20D841206AFB6FF006A
+          FB54A961C69A60A10C90F12E25161051BE8581EE40EFDC11EDDCDB54584EBA17
+          F1DA9C028DF4D1A079E81DACD6FDF738F3F98456DC42C04BACB6D865D538DEA0
+          A346C386F81640F4D637AAAA21C5442CDA521E92A5349510CB8E356A4B606C2B
+          9B006FF4049DE88F09DACF9A7DB063FC4A7AEDBCDA481A752C287A7502B949DB
+          C95BD0B70A65A9523F784F2F17827437D3F21A51D0A7755EF401DFDFE9833273
+          3598EA45B6E482EAD45C23CAE03C28D0D37C7B8C5B365BAC494341BA0E3C82EA
+          94D9D205A7856D64F1A7B79ACD55AFCB59756CBCD48613F0A801C73A6E50746F
+          C034402A51DBDBEE0392263DF0CF96D6C8080A75CFC17AC804D0E3926B7DC1F6
+          A5B9565F3BF7BDB6B6DB4968806AFA88DEFB7AFAF3F53870C38D147C4A906DD6
+          ED04D80A24D0BED4547FD7024B8703AAA919AC4548490D95D31F317B0AD86E3D
+          7D456C2F06E5EDC388CCA6DA965DA0861A71C6E9C7392926EB7A245FB13DF0DA
+          0C97CC75C161DA82EAC07805586884EEAEFDC020907B7A62EC9613D2A4661973
+          3294FC47E1B4E0742C243C9E99292391A0F56C007B1162F7B212B30C95B44340
+          4B06405250A79A494037A9B36374D53A4737A85F030BE72F3599992112A5C954
+          C8AB439094E97037C3814ABE4DA471EA923B60E632E6A74F92A9335725D6D942
+          146490D6872B516C9365A141B3B01F886F7583A333066C69D37309CD4927CCDB
+          09776612A00A52E9D812050AE059DCEF8845CADF9C7E256943C184165A76CB49
+          682884A88A02FB026E8906FBE21F0EACA261796EB41F0B2DD6A2E90E25B5B855
+          5E84280BBBABDF7C326F28CDE465AB7727654B1D52F27AC805A5796B607B58B3
+          CF98DFA8C139B65A2565288726525C7591D7425B6B5A946D40F9B8AA236EE2F1
+          598AC3AD7C2415A9C0CB8551DE5AC05D6AD242BEEAA1B9E7F310F41D8E57A124
+          31B7A93A55547E840F4EFB8C2376128E62E37B2DB69A2F389092936080929AFC
+          543A9468EE2AEF6C1EF7C0A5C94CC364BAF4861B0F970529C50D8052BBD61767
+          288BF0D283C86DD5ACABAEC81ABA849F7D884828B078A071DF0D659319CAA2C7
+          CDDD53410D8B716E6BA21B50526CECA175DB620EE6CE0C86D31F1AA7951CD283
+          67AA55B02A0012473B0009ED4AC7BE1D9D6DAA387987AC0650ED82959BEA3441
+          EFE5B20DF03D01C65A5BAF33E2466233682CBAA01B242DA0427703F99341C200
+          BAABE34D63272E00E9FC6CD783052BE9B6E36E04864EC0F23B922CFD30F627C4
+          3515C75B2C96DA68171B079401F8FF003F5BC3D9467A5D86F332505A4C94071B
+          093E5DF7AFCBD3D6F8C1A9247C238DBCA650C06A9D2AB0D822C6F7E87BF1DFB1
+          C720F966751992A087140BCBAE403648E411F8B7A181A6E68D35324B9D63F111
+          2D8EA3749D0A07CD746AB9F303B9AF4C0F3D54C4C77495B0D2945486DC0034F2
+          1AD5B3636E9D0493BF6DAAC81421A75D5C56A2B41D511F0C74B3F2C9A5A76DE8
+          EC1BFC8FB9C1F9390854B78458CEA5436700B2DA1A5683CF620837E83D6C62CE
+          834DA753B2D2A6104D59D5A75EA0948BFC49AA49F41DB0C33A8EB4C671C4321A
+          4325C2434E74D4479D3AAA803B56DEFEC6B3B92E4725BCCA419525A6DE5A4B6D
+          B049EAA90A1A5474F1C1FB51356366328A1FCAE4412DB4EBF112A73406D23AC3
+          A86B8FA8DB7DC8F5C67F3F6A7C96DD9AF1D4E428AD07190AB200013AD209DACA
+          ABB6C476C63DBC8E4CF79A9AC34421FB75A75C7C01B835C8F5DABFF38FA3B11C
+          4169B6586DA58641B6109F9AD8009DCD51F2EBF4EDF5C2ACF662A0788330CBA1
+          514B6EA90E485D179D2144590050EFC7DEF9C4D795A2166AFBCD2597A22E1165
+          64AFE7856DFC3AF2A524055957A6E6C104CCE3E11A22138F35D358E90292A56F
+          D8157D0817C71783B21851F2D8EE325D0C90BD641AF2DF7F61B0FCF17C952CC1
+          75B2E1B7124A1C2776B8162CFA9037DF7EFB633859F13B216DB3343886474DBE
+          AB7D85FB6DC23F3C5F1DA9BD075CCC6538E3E436CC65D582E5AD477DB8D20826
+          81F5C579445766BCCCC7D95A9F5AB5348BF338D114121278247CCD85D9F41589
+          C6708CDE6B0C34D69614D862852E93B834763FCFBF1EB405E286DE7671673043
+          CE35D5FF0008DAD43481E6164F3B58146C5D2BD2CDF222069D0D3C14A53803C0
+          DD6B40AB255DB6A1E95C7B519EA25AF29F8ACA5698EF21F73525E4F98B639A23
+          DF61EE05563A1A4B50595305417322A5F2E96776FA8D85015BD9B22CD6F8F787
+          5E767294CCC61BF8A8CE9AE9EE1CD5C107B5D57A6C6BD9E47654A78C52F9A426
+          D4D81E4340D6FDC7205FA7B620CB4DBED3EB555363A74B169E686C2F826F1623
+          AA02DB8EE06D47A89F30F9679F32C73B68AFAFA616688EEA036E38D06F5B6DEE
+          DF7A0157BEF44AFEA3D0D62C619539019664BA1CCC032A71A2E70E14790AB8A2
+          79BF71E9C79B88EB2EF5E2B51CFC53A1B780FE0A422F483B1A5127F16E3C9C0A
+          C1D11B7CB8B892DA0D859D2953C8D56DEEA0350DAACA8822FF001EE76C3570C3
+          4658E32E2BCE51BADAFE402FCD5DBEBC59E701BED3898AB319F52D35A082410A
+          5120A7737B8FFAE14CA32A34290F9704B6ACA9D0AD96106CB9445772A57D7BF7
+          C13D36D325A7BE39D5C790905294DE8149B07E808E0FAFAE21971B9A25502B04
+          108EA8DB6E37FAFD7F418EC678B2D2C194DB6D38E9F9524D213A1CA58278471B
+          1EE577CD617E4795D7861D69B714187653C07595F2D23AA00AEFD3D42C7B3978
+          7AEEA6B334BAD2C19281A1BD4ABEAFCA5B806AE4A2813C72D91479C0D2DD8EB7
+          D30E34F6DFF8C69C2EA48BE910DAFE61AEC0D03BFB020E1D7820B599F8D9DCA5
+          C28672D447D2DEA23486F7A47B82491575EE2C63439C48CBC46CC643D263F521
+          CD48487CEBF89693A1C3D349AB49A5020FA1AD540951E380731F14A0CA8FA406
+          63C969E4D9434B69C3D46428E916770A03902B8DB1EF0D063219335D96A54B71
+          28EA496E43A9EA75756C5356543484800024002ECDE13F89D7D7CD5D9B96B6EA
+          1F93E678164223A594EB536B006E55440BEF5DB92D331301A663659929CC5799
+          38EA0A03E1C5B096F512EA9DDF4A9AD0A3B8B27B6F430CB32CF532E3FC0E44F4
+          367A52B43B29B5E9595152494815BD87126F7A3B1DEF135266FEF248733075ED
+          6B55175E51D00822DB0A3CEDB8AFE63BE24B9298701C50145CF2B4D051F3395F
+          841F7BAFCF08274F98B4BEF320A10DEAD924269CF947723FA857E7C6E2EA94AE
+          BE5CF656F301595CF69E767BA1043AC929F311760EF62A88EE0ED58366B8C3B1
+          D85365DD295749B20798A3700D6F7DBEB42FD94C4EB4943F0164195D4E9F540A
+          4B9401047BF068EE08237ABC151D739D4C971FD7A9315DD0E248D67503CED637
+          DAC7A9F7BE466DA8F984949F894448F17AA049525B782C25214DA8286E5409F6
+          041DEAA8F8D307CBD711C59485059693A28905455BF1B1DFDC8EE0D75E9B1919
+          8C57571E3F45F7B532E074FCA7680B50E01A1CFD53DF19ECE65E62ECF5E5B294
+          C38CA5CD216101000D2349A06CA6CD1ADC14822FB299A80F4F4C07596925C00A
+          96D1B00A96E73B72686DC0D637E70B996561D46B796D971B035DDD83C7A6D645
+          8F4F4C3FCB8CD6F2C90736CC0BF9B30E90D16C25216916AB0456A22A8D01B737
+          B9C531E5661FBA1D71E88A75FD05B71A4A0A16A016BD36070403B5FF0059E30C
+          DF75D6B2F5E5BD26A4A3A87AC427497180000761D935C0DECF160E04D68CC1E5
+          B2DA1B5A6490CB6F170A4248E349A34095051BDE923FA8D571A17EEC7831987C
+          33CD49D4D0750DEC82BA1F80DD0BADF7AFCF05E6735FC9B21EBB4EA569135097
+          D4136ED8D23E5F228250093EB66FD4FF000D330FFDA6725B8E365C948597A391
+          E465694121201E524E9FC5B5253E830926672B6FC75161BEB7D898F4A6D2B0A7
+          ADB71B70F07B03B858BE6AB0EA4BB1A62F33CB571DD04252C795AB2AF35A4255
+          C95DEDDEBDA8605F11CC93F0120B2FF4DD0EA94DE91ADB58001146F71608EDFA
+          D60190E4288DA5D5B4EC590E2C38E3AF1AD40D1091B6C01247A5937CE0079D65
+          8CBE43AF3A4B6D8E9E8528704792EEC1D915CF6381F2ACC214D9F96468323E02
+          3747A6E35D21E64950215A88A26FE58EC014D8D8E0C8A925E91362F456CE5C29
+          D90EF0E871B713D30077B50377D89ABAC2E82F658E87DC758EBBA55E67B500EB
+          8770491F86F6F6EFB6FB79BCCD32FC429CBF2E61A565E592DBAF38DF48B54147
+          E5EAA1ABDA8F63E97A2CD96A9458656D21C750C0216B24B7B91A48EDBD7D4632
+          D3E3B99C48F90F24B886D0E2CB8BD858B15F6036C348115D682A374DC7748AB7
+          2EB6BDB8A238AFB63D273097F0EFB4E4192F749BD4F3A3528049BA3B0E6C703D
+          36EF856A96D2B2991D36DC61B7128E93A92760694563EC41F7FCF1E7B344B6C3
+          8FB924975B7431D22D2B672E9342AFB8AAE76C2E832DB7A63D21975C4B6F2888
+          8AB0DF557BEEB24D93B81DAF49DA80C5F233092D65EFE599DCA0B8FADB69B2D0
+          529C7A2AD44ED43CBA52373B5277DEC60B9399C16D4F3CFBA1B6DC73548D214A
+          126962C12780286C6C906C8BE6E0CCC46492B2799F10CEADE3820A57D57010E7
+          22C39E5BAEDBFA1C0799E6267E629623481960F92CBC49D0969B048B09EE2876
+          3DABEBB1F1AB70B2565C5C779ECAD71350EB2D7D40E0BAA559ADEC71577B615B
+          AE662FC5624498661BCFB0DA9D64EE40ABD26F8DF5103B59C4A2224B6D266F54
+          869C22D160A1BDAB8AEC4E2A69994DC2B72580D901A690E0254B24127715B915
+          B6DBDFAEC1E54AD4F33223341C64DA0824852C0201A3EF563FE0FAE0E69CCC1C
+          8F361751C92BE936A71B6DBD1A6ECAEAF6076513DFD8D609CA9E48723BEEBE12
+          DB20B6F16C791F495EA713D3AE40F2EDCDD6FB10C7205FC53132690EC6712F10
+          D88449B03B004FDAC7BFA6096331072571D7660796D3454EE850B5D6F5E9C50E
+          DBF61854FB798E5485C760B13A1C9756BF860E14D395760EE46C39E3736317AD
+          797CC8AE465499505A4B443ADBA8A7458DAE873BD8AFA73C71F9F1E0428F0D97
+          9A7188CC5A74BA00037A1F7DF033B3990E25D7DD8F15CA683C5CDDB6BA82F412
+          3604F4D5CFA6340C2F2F93AE12A5210F35A4CC4124D36A70F9B493B77A3F4F6C
+          199736EA24A9A732B25D6DBEA24A6E920A46AA51E76F522CF06C9AA1F71E7D9C
+          C1515D7E3BD0881A900803AB4695B760540D6C081F5C26F133B9A4699050E418
+          8F3B2CB8D36FB2A5758582AD3BF276BBAA1A6B4D70E20CD7F36F0CC3CD21B07A
+          61124BCE065494A5357A451D8950AB1BFA76B83597BD3A4A3338F0E42C895D76
+          DB719B4B4A0928E9923702B907B9BFAB1CB3C453BE36565D9D65AACAE5D07125
+          B74B8DB8D93A4E915600B49D35DCEF8867687BF7BA21B6953CB71D417B9D2F36
+          3775208DB501C81546B6DF0826C4665C8CC27B2896E426BA4AD4101694AB492A
+          16092760D9D3668014771864644C4220CACBE7AC079B4875E08B4A92A8E54483
+          FD24A1039364F1B8C732A9109ED7158911825DE9BF1969A6DF702C6A538A6D5B
+          8DD564F1BFB620A79C5404B9D69497541B4EA91C7508DB6B35FC4AF53A40BDB7
+          B1CCCD8744382A94F3899AC90CA1D4525CDAEC12349B4D903B8BE46259797D99
+          7225311127521C2A0BDA8123F33490413C59AEF6C26E692A6415A560A586DB0A
+          5A232ACB80D715B724D1EE01F6C269721D32A3BB1E199B93BCD3718AA2269D69
+          C2520A54DDDD049B246C003CE2E98FB1A1C5CF5B8E74DD2E5AD4481D34026DB1
+          77BA411C8B23EB8E44979BE61156B11D1125254E3AD2DC70AD4CA6CD852AAC8E
+          06DD89C0B390DC6CDCE6684B6D4B92F2010D9D4E75412A077BECDD1AD8904ED8
+          01DA622E70B75D5A1AA2F25D65B07A448DD84835FF00B74A2363677DC9C3D6A5
+          43721B49EBB3D579B010F35B0DD36741F4E39F5BC269B98AD2F4B762A69E510D
+          E95104A6920F23EB5CF6FA1C2ECAB3576466A8CBDE51331C0A545D4E70010480
+          288B1B0DFB1DAB0539F0F223486897A337A56ED34C9D4F1BD25B03806FB7EA77
+          A2F25922266C98130B572D6EFC33EE79438528D8F1EA9D3438DEFBD1507312EF
+          591212DA141F282DBADAA82ACA50E8BE4126B71BD73437A10C4BEBC89EE2BE2A
+          1388E97F504A82C5EAAFC2791A455D1DF03E5C5EF8467E11A75B703C4C968214
+          5B749BB4EE3B8503B7A6FDF1666EB94D787A0CCCC62CE6D998FA9896D9453AD5
+          38B1D4006E47941ADF6F41BE3B0F3533F286E44E11C2DF52BABA534DA5BDE9C2
+          A028121009038557AD617CC8D19B433017255210D02969E028A86FC0DCF9057A
+          9F7C0C8623A8B2E3D973B3E5B36DC67F49012502C8522F6068D13DE85DD60844
+          F799CC5A931DE4BD05D4B8F39D26C84B6A49200DF8B2761B1B26C6E70BBC4723
+          378F96C9A5B4D6A4B6A64BD7D46B7214B2917DF49E7B577C08B9099315103395
+          FC44790953AD292BA51606916481B551F4E4D0E700295323CE89197A1A796CFF
+          000B5FCE5B36B4A404D5DD904903F9F8009A25AC8CC3CE9A0FE60EC994D385D5
+          B086AD2D80937A459B3BEFB591640E6E52DCBC9D89C0DAC0536F0590853CD2C6
+          A0AB06BD78140D0E46054A23BED204D7151D9436953AD51B72C9A0681E680DBD
+          F7E30CDCF868EF0772F506161EDC38F6B0A3E64B84EC6FD39FAED58BF2E9CD34
+          DCF4E632E532E755C6D9612805B09ABF424924ABE97C77C23CAFF713597273EF
+          11C37D0D3D21C65B71806D2DEA2DDA9A23CA49246FBD11401C6B73F75865098F
+          9799E56E521B51E55BD0037F5D1C9FED842B9F3571F318EC4DF8A425E533250A
+          7882149AA6CD1A3B2B7F75734304417A666705943AC990FD1EBB6DA0A1B6D37A
+          51655413C0DAAC84EC303C2CADA990734CBF662580979285C72A7DA642DCAA50
+          3FCDB0D42C0E37AC039D2D89A888A0D68798574D360D24DACBA00FE5344D1AE5
+          7DF70610A0C76F2DFDE10DD75D7DA714547429290A3B84A8F98148B07609B3F6
+          039983CF4C755F14D075CD4080A00A9C50B483D322A94E8BA366AD3A4006CB9D
+          1A76639B37E0D84A44DCCA5BE961C90EBDA57153FEF1BBF36DD302D40922D43B
+          D618788F256B2A9AD4D859C0CCF358DD47923A5A03A8215A9201D5D954951AAB
+          EDCE0AF0A4BCB33DCA62E63511522034A881321BBF875802F93B2935CA4D6935
+          F47CCB4E2B2E465E663ADCBF8509EB3E029C78802D57DC9EE7D4E142240D4B88
+          B0A65DE9A1E5EBF3268F6001DBF051077FEF81A44F616197252541940E4025B6
+          C582D135B0DFB5F63D81C30821C28A414C8710505C4B8E75340DC137C0357B01
+          DBD06DC90DADA5BB2DD014FBB206B73A274A9BBAFE52781A8F22B8B38CF3301D
+          63AC631EAC55B8A5371DE3B336B3494288282363408E0D6D88E5999CE925D8F2
+          B2FD72A2905F61FF002AF7048375E61B2A883B7A8070EA3C08832853D94C265C
+          69E1E66C1090DF9780B346F6DC6DB13EF51C8A76530A24D2F65721D68A90F435
+          253E52D91A42426C513E7200146CFD303C633A265D37382894B8925F3D288EBB
+          D521A4903AD77B1B0AA48B02FE94B9B83F133DF30E53CC381DB4361074F1C8A3
+          A0FA7DBBF258E5EC4677355C4761F5A34DA6A43290353A40A6E811F8859F5B06
+          BBED665597C9C9FC472202B3270E5DF0C5A6C396DAA225545612A16A48496DB2
+          0A4ED4001C63410F33704D6F30D65F54B585215A892AA642548240A50BB3B0BF
+          2F72AC5ADCC7D0A9399E5D9B969894BF8679C56EDA5236493B6E79AAA2455155
+          0BA32B7A64F9B09C9294B12037A6FAA09E979438F58AD26955546EB62793A27A
+          4438B95BAE98BF0ACC766832BF236C3C28027550176A249D8EA1D8E2BF033797
+          34DBA8C9B36522443484BECE8161248E9A9402B901B23570458B3CE15E4CC359
+          678C24B39BB1327E6CE01198967FDDE9B7149166C0ADF7AB3DB04C3CD4665197
+          19CF8B69F4494988A5BC7FC3384ADB2750AF95A53C9EE7702CE0980E65773E1C
+          C8AE414BAA4C777FDDB0F2BA44DB6381E5B06A88AAAC5CBCBDA3965B0F0732D4
+          365B0DA4A7481741BA0685835B8D811C7744DB919F4658F4F75B44882DA0C665
+          D5255A5B28A277A29B0A205AB609EF789FC6C893054D3F19412FAB42416D4035
+          A521406C6DBFA9DAC017781D51644B8597BCE3C94C28C843C10B690EB2D34406
+          C853B61497002E0D27B71B834BFC3339BCDE6E7596F880AE0660894986C94596
+          0A482490A00949E3F10AF7276C35CBDECE99CBA36633589533A0B91A1719D6DB
+          71F6038A092E34486CAB6E45557BE2AC9B37061E4B372CAFDDF9823E6BF351A1
+          0DAA869DC76D008ADC957B92713467E730F154DC9511D8E94368BCD4969D2E32
+          A70FE1BD880ABB357D81EF4219866331ACEC18AA6A4177E7B214B086DE6921B1
+          44934DDA9C3E607D39AC153DA964CD92B9CCEAD212D10294820F986ADC11676A
+          3D8827D006CE5EF449320BE0B6DA1B2E17925C6F7DC28A8DEEAB41A3B6DB0AE7
+          AA8799B12B5AD2D36D96C8A0A24AAC9276F63FA938051116F40CD96FC875A871
+          DDEA36E389574895360F5028103F9CED636D27DF01CA4C8812F229896E1B32F3
+          0A1A7AA03915EAEA6E157E50451F507BD61DE4F3CB59B428F0E0B915D622FC4A
+          996DB4AA2B8E17029C292092372A02C0DB83CE0475B033486ECD2C80F3F6CA5D
+          0404B894F592E04D50A291B0A06CEF636EC65498AA54C5C87BA5D1EB3E9E97E1
+          05BA01162D27815C73B734CFC3051FBB1D5B0E36F065F4AE736C49F98CA94540
+          071ADC1F2EDC8268EC2E8879C6490F2DF0EAA0BF3A4C588FCB0A6901F6FA8A74
+          BA0A420DD0A238BFE6C6A26C1928F0C8F0E789F3943EE12B42E5368523A808B4
+          A4245A547D7FAAAE8E146559D7C543910B298E8F896C2125E701DD21206AE2C9
+          028D1ECA1EE4F2165115E5F4CC996E48074BDD12909D957441D803A81FB0AC06
+          B6244B6598ACE60E24A597194B13194B8C953674D39A47BF3F4F516044CB89CD
+          DCC967CB7E0BB275161A4D38DBEC253BA411454ADF7D9340770093D9909F9B99
+          48CAA6AE4A90C36E255A9286FAA169213754081AAFD7617A8DE2103C3E330913
+          C14B79664C543AAE201296900596D2146F6504D6F43A8716E67E1C44DCD179C4
+          B96F4F7D856A603C7A68EA12405D017B0241B3DD357CE14E69125272D4C9754A
+          438DBCD8217547CB560A685F6D7DF7C059566511B1225CD75B586120A1446EB0
+          41F37A034920900ECB56FDCABCA66CA93066C58F103ED339BB52D870BBD36ECF
+          98E94FE23A7A636BD3C6E38C376DB43CDA2426588891697920A8106ECA77B1E6
+          21BF36DC1007143C15467E6C990F365B663BE19EBA9D23538A1D4D20820A86E8
+          AFF4C0503354CCF0FCE9F062212D6532C05BA40075D124E9FEA4FBEDB7270499
+          EDCCC972FCC62CA2A87322D8EB21CD0BA26C91C8A36093E9E98927ACB99D2306
+          4BB65B6FA4BB4D5E9506520EFE62126B7DAAF8C18F2E4E45954B0B75422210A5
+          4C8E95870B441250560EC41AA24104F6C5791B0DBCDA73B6112DD321A4972435
+          242CBAC1A0420114DA490761D813BD1401D6ECA89E2563F7C65ED38D3AA11D98
+          CF9D21255A544DEC9D5449B206E9AD89DAB9F97CC7E6A3316610C912841769C7
+          02BAE001A7CA0E900737BFA77C5F24C2192A592C3A87D846953ACB6087524384
+          974950F6DAB9A37C8C2EF0E3B2A248879866C3AAB6E3BCD4254334DA49294002
+          8D3C06E493AB8DB85051E7380E9839EE6CFA1C92D1D2975AA0D3EC9052B24502
+          E3A15E52072A483441AC19FB3C84EE493A765F31327269329C54A2C4A4E94BCE
+          280003755B01A7D55E6AFA385C8CD10861E699092DB2A25B0D50B0355EFB8BA2
+          37AE7D456399BBA25E44ECB2D3AB2EB1AD8E93890157749A277D428F3DBDF751
+          94BCDCF46659B8992CC189D2696C7C2275B49DD455AA87645ED75D335B903166
+          773DD839644CC32965C9887A96A652A71B536140D91B50347513B0A077EE2FCC
+          3310D32DC686DB13A2A1E716F3CD900B47E692E5705AE05DDFD77001F0E3EDBA
+          64E532227C4AA53A14D3A93453E5B0D69B01B0790A076E0EE302E43166C0CAA7
+          4E1982D2A1296DC896E0D6EA6947A6DF5146D49D250A1775C9246C742C29898F
+          32F400E175009E91250123B3947758AE7D8D76BC30B82CCF197BAF3AC33D1517
+          63B60A92F22C82ABED5B1253EFDB1E949658CA65C087798CB1D43214CD6B4C62
+          772544D0A0A146FD2AF017C4A3389DF110E73522034F2997DB282CBCDA929149
+          3A85851DEEC1ED556093633284E710E43B274869E0A692DA2C2F8A2155D8D1BA
+          FE7F6C724E5BFBC442517DE4669181798699A69D6DC715E6777246FE62520907
+          7BBE00FE11FDEAEE4935A96D65F15F8AE12A6F46A78BAE5952C8228D92288AEE
+          3D2837A7CF773877277E3B71D96DAF8D3F0A8EB32C280ADE82485106856AB35C
+          6355E13CCA1FC01CAB2F0A67318CAD0F345202949B091EBBA8AAE80000E3B153
+          8F17F4F2982EC07663F254863AF22349682D0B248001008240DEEC81BEF8C7E6
+          933A1FB5BCA332F0F477E330FC149CC9725243724680B6A92AF3055B9B702CD1
+          E4E35B9CC9819C4D1318CB8329612E484CD748484E9BD4950246AB17C1DAAC9B
+          18C821CCC67E74F74132152988EA2EB4D38956B6D408295255C14AB46FC80BE0
+          DD86395CD7D7974F7637C645315B92C27E31AF330E84287CC2357512A1DD3A85
+          F72717854413E586E3BD1D66505BA22B81D43E9536908700D884A416F702ABD3
+          120F3FF322B8971C94DD868B881AD5AB5558046DC6F4287ADDE2C8C988A4C801
+          4E33D2683A5A4A95AD208B3B03FCBB763BD8363073D11B5B51DE42DB2B41E749
+          B252A25249155C0EDEDB770A3C7809CE653521A594BEC0711F0D69E987140750
+          E9FC428F07CDCEC7B2DC910A70E6191E6721E531FBC46A4E8D250D51295A74AB
+          706C055A45F987BE2CCCE6E5EF676ACA7A2E3D95258534FF004CF2A2745691B1
+          DC126AB83638AAA3B10DC69D660406A3C56C86DAA68A7A66BCA9A175B550A176
+          3D3024F8AD4961F7A22807A1BA1D4A1CF96A6DDE996CB77F8B4B97A8F6E08031
+          29B3623BE17C952DE5F326E6D222A9921294F554EB760BA1B1E54B3A957C7977
+          BF5C67722FDEADF86D09CF9FD7984D75C6A4B614035A529B4971B480951D283C
+          0DF6163605BE7D9EBD9A65F1E59CC023A40A5D6434036EBA1A252A07A9FC3BAD
+          F6360EDE8C732CE217C2A62332D6D3131D76D9713A083A48208E01BE36E6BB91
+          84CB94FB9058CD73504C146A6D282DD9B0ADDEE2C14D286FDC917B62067E5F96
+          CA6E6497825BE9A8170B74479822B71BB744AFFB5E1D7881B7A499395668A549
+          92D0EA0596ED3F0A00160B69A56EAA02F70057738510222110066319E76530E3
+          407534029293B82411B1DEAF9FB8D98787446CC96F4A9EF3312438E98F290FB3
+          D3EB2123E592AD92161CF36F7CF63443E5669AB2A69C57FEA2EF4D2EA8B6F7F1
+          1B15C6A344D0B06FFBE210F3280FC082E31D61093E511DD65295B6D367429369
+          57F30D54A04017C5583DCABA4C789B308119E763B0FBA1D8D0CB2908510D9BA5
+          26EAC5EC4FFBBB1DF044D5DC86A1A1D515D1205E91E9676ABFAF7BDB1447286A
+          530C74D0D29DB2249694A6B826CD10013405915BE134E9F9AC7CF21416BE1330
+          6DA901E6A536D04A99707650BD29041DD5FE73B1E30E7C5AF2DF4AE432643D34
+          2496D08654E2944126A85FBF35DBDB0A32E7E2C4CAA7F86F300D7EF35A9725C2
+          8D2B4BC1D3FC3D6090920114DF0A17A6F7C2CF109CE32E77E19988E4A68B6A29
+          0CA859236D85ED7FD87BD615AD8CF9ECD21CD9310969319D792D2DE4DB640D88
+          068022801CF277E6BB0E33711F6B347333CB5EE9B4E0F85719B4A14525208B55
+          EDB80AA1F415BADCA83AF495E66F4A485662871452012C366929D61360849D77
+          BF2093DF10CCE53D333D85064272B3988495FC225E2E75CE9ADC0A093B2BCA09
+          26C1DEB7B23C0F818F30BA888E39A4C76C3B21C4D1D569076361293A53A8F24D
+          DED44E4C27A7267A532CB0FA54D34CB5D35AA990144B9D3205069560D003F0F3
+          8519536F3399BB29DCC408AFEA4223A000D75355D9AD4146EC0A4F7A35C8D3A7
+          2E759873A63D09487A40254F3A13D65AB7D77762F802C76FB88C9869CC32D733
+          3950E54F61F16EBEFBCA432A2870A6A9D56970D83B51EFEA30B559BC28D93A72
+          E84DB32DD9A1B65D61E6BA6B8C8B495389492037E874F29EE285D09CAF2D8392
+          B99C32A8F98C1CB9E536DBB325EB794BE54134364EDA40B1B773CE0C5BCFCA69
+          D0853664466D8332229B25D46B52836D86EB4A1CD954003542C8BBC51022CF86
+          F3D9B25F395A4414B2E3CA710F824D904EC54D389005A6828FF51DF12CD83596
+          E6AE35E5F894C0297529702BAAFAC5192349A07724EAABA038C4DE794DF88D89
+          99114C3710E09D12D69521C71017A4B7A86936426EFB835BEF8D3C0CAD8F1721
+          8F11CC137319D95494F572E500D35124A88B55D0BA1BE9529542F6340E09CFD5
+          9A3BE1F5C8C8E230FCD71E0C6A69D0F744134A7286C4A6CED6058DF066779265
+          F93FECE5BCBDC8E5C6E2212218E99D61F4EE972F7A3A8151276DCF6C22FD9747
+          CBA478661E69357F1998C84D4C4BA90AE92B62406C6C06ABA3EC0DD9007BC4F9
+          4E5AA13DECC7309195348035B8CCC5A43692392955A6C6D42B82319FFD99339C
+          F8DF21CD113DD64A1124B0CCB4B1A5725040A53891F846C8A550FC46AE958D38
+          8797E5996369108BCE45496DAF3A90E1524ACA77493B5796CFE2D859C2F8AB0C
+          E672A24A88A7226AD6CF49D34E8367F09F2870817A6BB1B236C169660BC16D20
+          AF27CD949753D56DC2DEB095559248D6296D91A85F6F5C003C45272694B6BC49
+          D44C4D54A9CD329538C14824856935447A01C81BE346C488B3A6BEE092B85684
+          331A4C625C757A891B691DC81B707EB4305645010E3D3E4E5B9544714C1F8392
+          D2485186B209212AE0955DDF9AC55E922B093C2CF4656619F438487A434CCA49
+          7A2B8EAEA0AF4A8E9692A0080E55D0DACF2061DC2E86606407E3BAF869C3ADA2
+          F04C864A49045822DBB04EF5763D7012604471F5B0F17D497858EA1525E6D037
+          0504ED44F3B9146B622B11F06ADBCAE5665F1514662D3C7E1D6868518E1B2A20
+          2429452ABD4D82411B83B9E02CCF3C3CB91E328198E56B672111D6A54B7DA60F
+          5240006942DB04B7A4DFE23AB82461AE76DCCCD66661172C8E65CE8ACF58871C
+          D2C36CB8AEFB8A1E97B8008D80B106B3861AF132519938ACA9B90C7CD131D096
+          96A6F4E94B6EA95B294001F54D822C9339D9B99C9CD8E5ADBF953D05D529F6B3
+          05068EC74E904A8797CC8A236DF10C832F8BFBB616759665D214979C74478938
+          06DC505D8529A706CA077A26EC2BBD0A0326CD22E519AC1CAF346E7C67820429
+          ED3B102890E586DD6CB7B6927A7A92383F6C3085026C694C64F9A3410F092F2B
+          26484252EA99410B0A51D43AA4FAFF004A8D6342E474FEEF7333CC730F845B0F
+          6B0870EA4B4A0814520F6006DA85EC2EF92BF3363300DA5D7589C75283AEA56C
+          A825D4A412A4AC247513755BEFB8ED80A13D97F88A3A3C4193CD465ECB59920C
+          84058416DD693A92D9D8537BF2A4F9B50F414EFC3B9B37333098F4A8EE5758B2
+          CBC5414A690903E58039009B0A1DAAEB004D70663983F2B2B53AFBB02CC9501A
+          52D0D4B6ED468EF60F94037E97CA2CF73C8995BCD4175C42F2E7D6A8C8CC22EB
+          D3149BA37B6925CD8D8276E37205737380D6511179C09610E668596BA6F360B8
+          DF9405122E852AF511EA78048965399CDCB61E632CB323F7B75436C224E96838
+          082DEB7527E61AD29369346F61BE089D9B030E3E63984C623CB4A42412C74BF9
+          AC949DF4852A8EE6C8DC83778579DC65C721E6DE263C878A5A65A2086B5D8F8A
+          BB3455B92013406DCED56781ACBA035062438F934D6043626C953A561DD7A6EC
+          D96F73B91E602AC0F4B0B11F2B81D16243097D6E169D1245870DECE34E7F4F23
+          7A37B501A6D4408A0B28CE8873E11A214E25A49D6E3EABF28DC5AAEC8DAEC0F7
+          18D240C87AB2DA718949297017592E36681B2ABD0749077FEE39E5F8C8119DE5
+          FF00265C49516CB7266291D1F877424D01676512503D0DFD2F2B2179EF829E75
+          819739294835A9CB6C3A904F9411B5D5117D8D5DE3491CADE325871E432D4AA2
+          F32F33F31B241B04F09BB15EB5B6D884885319CB5D8A7A529C0425C4B2D74894
+          926FCD777567D710F0F4486F36E15C969A0979D4042DB4A542E86DB848143802
+          B73DEEC2F114596B6A5B32E5952A3B3D46FA4D6A5794795C6CEE54A0A054055D
+          501DEF99666FE2CCB9F661789602DD4484A4A9D9085C75209249B34A4916057E
+          13C0A1879132F6D50D333F783B2192EF55B4EB212904EE9001A346F72311CCB2
+          6CBE3E5F21A53CF25A14DA584151F964590281AE49DABED81181D1CA92B92892
+          1F7351296D4555B9A2083B76DBFBE0375C7BE6CA1224C979DF9AD32C91F2D036
+          BD375DC59ABA030BE12FAB13308D99664C09B0D6434DE5EE10DBB60DD3BA48F2
+          8A02859BBA38A3C225FCC334CC24BED88F97B71C370E74AD4CB8F1BF324A4EFB
+          50F350FA1DE88CEA2E53023392C44536E32095381C5052DBD26DC3BD55D903F2
+          1E6DEA859167AEC35E64CFC1325C66C265BA0EA05234AC375E5559EF46870390
+          2F819194E4AC38CE581A959849250BCCC325D714AFE92B22935B03557B7AE166
+          6F98788F43E63AF3095B069DE93016CFD373491CEE076EFD8AF04786E2A73093
+          9AE7B23A901C43419CBA2BA5E58B3E7515A6D4090483A4F17DF611FDA0ABC3AF
+          A1A6A065B3952984FF008661A6DC521A6D229293D6D922B6AE68FAEF83721CC2
+          666D9530D67105861329D75B94E152886C02A17441B1F8680279E76AC41D7A6C
+          9C99844E75D8ADC6B2D4775E0425A4AFE591574BD81DC7717E984B106559CE6E
+          A8D960939C660B2194C88ACBB29D653A8DD240A0455ED4093F520CF1340CF20C
+          19F1DDF0DCF851584B2B7A54F74B0FA42AC12904A850A24F2AB0281ED7654ECB
+          6BC3221ADDCEA3D10598712286E85F9C25C255AAD44F981EE6D3B0A599525F1E
+          2C5C4CA21B6F3999ABA4E012C3F258E4821408F2D1028A469005D79AF419EC05
+          65F9738F6710B312D65496D0E745C1D394C03B1648DC70526B8ADF6AC1DE19F0
+          FAB37CA9523294B6FE4ECCB53F96B8D168868EAB295375A8101C510956DC1AAA
+          B7B9436F64396F88E532F4D61D21A7151E3C44A43A2954E90456A26C1A50A09D
+          EB0EFC13061F87BC16C4894D4584C2817D5F309FC64ABCCE13B9DF9E3ED859E2
+          BF18C177287E241CC04190E24B6DBEFB1E46C9E1C3678ADFE98C1F812142CA33
+          4CDB2C6A3AE47C1B616243AA0E4698E2F73639EFCB7668F1408554725746641E
+          8B2DB6611FE35CB25A75D24293A41074807B556E3D00C5EACDA4E539C1F11E4C
+          E37227BCEA98919745FC65068B948491D4B23F11040A0A076AC3463C45947584
+          F9590E61970482873A4B0FF448ADE8691B914750201238E4893FC61E1A68478C
+          D4C764BAC6A52584B658BBFE528206DBDDD91B13B81815AB97E1591057032BB7
+          E4952DE9B2D1D60DA80257A93BA879469E46F60E9DB1E871A0E6F90C0CA9E96F
+          21F63537F0AE20BCC2CA755025E2770A06A881608E084E1C464B450FC48D04C6
+          5457421D0252125A700A22D44286D5BD1040E47245C95ECCFF007E3AD4398B45
+          8B9EE38FF4DC0E2051EA2856C42115B9BBAB04E1FB92728CD511F30F0F877289
+          13A426DAD6A74BEA555A835452A24D6F47EB62B04BD3DC198458D2F2F654FBAA
+          E9F401525AEB58DAC7CC015B804FF40DBD6B96DA5AF10217272F96FEAB534D21
+          F0E92E82B3E6B51046DFCC68501F5073295E18CD2148CA9B873E3E67F83E0D99
+          9D15F3A00B0B2D7F2EF6686E4E2CF0A99D0B2C53BE270DB199B89485BFD4488C
+          F8F3E8712A4D03401492907703602B0AFC671B39810A267F28AE23DD60DA24C5
+          77490D79C9534E58D568A252A04580381BE89A6BC2998C069E6B3A4E65982586
+          94EFC74CD14756AB4B4A490483C1A24F6AE7182FDA465F9E42F143113C225FCF
+          D6B6D6E4A61F6DA2D3093B6B1D2D2A6CD83CFA77C35CEFC459A650D985913CA9
+          12D968BA6132D3A5091AA8A94D70D027B01B59DF7A04B7332EC96033E20D70B3
+          E320B4CBC9CAA4A56595AB82A5146C06E372DD11F6C697386731C8C4A1E28CBD
+          53D6A6E985414EA434CA6C84BCCF0A51B1BA6D3607941C51E12CC3F7FF008014
+          A6739FDFB1DE7DD4177A042D84DD361C1B6E9DC92749A238001329D9C6692A5A
+          D9939C2DA8EB6D482A796901413B95296805482403A49367556E74E2AF0DCBCB
+          A3E4CF65F132F6C3E5F7048889FC5D5484F56D4479B4A6B7DB923D715E4D9C39
+          2E6B795E50DBEB96E3EE254DB2B53A869564856B0688558F2D8201A1DAAECE23
+          E7512121C8B9266CCE66A4A9892B69F6D454D8074EAD24A5CF5D26B916063379
+          539E1C9B3331859D66EB7D2A60980CC888E45EABB6A4A9E71211E65A28A76B16
+          A3C1030D7C5BE1EF0F788B2F7F33F0EC971C951D8E9C790B790F02EA469D6A5E
+          A3A8FB9079F5DF196F03E65E36C9BC571B309D95B19CAFA4B5F56445E905BA42
+          85B77A5479A06B62B511EFAAF18F885C733E396487BE04BC94B8F7EF14175A4A
+          1C568D49AFE4DC9DCED42C9DAF3B3F2D93E196E6C1CB9F819AE5EB7D3A4A1D25
+          2EA493412D27555A89E3735EC0023298F9866792663026E4B3F27CB034EBD2E2
+          7452E165CDBA4AB5685202AC8034936360010A1506E6CCF0DB39316153441655
+          25D7E1D16DDF352501F0051DCDD7981142F9C4A046760CE91E249EE44EA456C3
+          31D87101B42773E64B569534A469EE9A2A29209E40EBCB332726BCA8D99332DF
+          98F21C6E34F6DE3D1F29AE9BA3A895035646A3C1E31AC5486D9C859CBE4C85B2
+          12E1D6C05171B2371F3147CC546EED5FE98CF4A82D47323A2CA9D86D1D2ADC15
+          A4D7E0A03F093B56DB63AE6599B64B15998E325D325952D0D3CFADD8E86949E5
+          2A290A6CEF7446DEBCE3B976771B37535FBB7F7CE4EB4BADBCA643A25A7A75A2
+          D27F946F7F305707BE1AB70E6C3CFBF78C57125C27CCA5B1E626BCDB6D77CD7F
+          6C5AF2A5E62F99333398ED965D4292435D329E68851BDEF6D8EDE985B985BEC2
+          D4D788DB5B2A052243CEA947571B1AAE4DFF00D7B0B92B39E365020E65954A8C
+          F7F104471493755DCFF7279FA63D2333F14F87DC7DF9BE1A79E8AE3AA71C71A7
+          BAA06A15639D2361DB04F86FC530F3A92A663C579E75867CD0C3C12439CFE121
+          24D51F637C61AE5D9D6729812DACB998DA14A2428316750E4D8E2850A23D0E33
+          89C82738A664CC4175E71D2E04A5904858AF99A024D1E37D5BD0BC1996C3CD92
+          B5CDFDD92B316549A42E6294F2D2492766D6A0915ED63006731243CD26196A33
+          F08FCA7596886996C0156AD46EBBD9F4DB7C5729CCD24E44BCAE04F546CB1948
+          47C5262A4292A14080A2A24803F9A860ECDF2AF0F192DA5116606CA6DC4C482B
+          6288D95412837FFCB0B10E66C14CC4CBA1E7A729E9A93D773FC306C0DFC8546C
+          6DDBDCF3D8AF0F47C992E399641919564A98E80A71DCC0B94FB9DEA82AF7BD8A
+          C71EDBAE9D9F3F1B3A890B29C9B30CCF2F72BAB262C22AA3BEF57A6944DEEAD8
+          1E30C21E6F119B96A5E885285A6429A71B6DD1A8376091B6E6B604D8C67FC6D0
+          DA92F49772E0E2E2B40A4B65DD28EA7F579AB6AB0350DBD3B8D7FECCBF6829C8
+          BC3517288309A8E9600335E2EB65E790A3B6A20F9749355400D859EFA5CC3C6C
+          9F887184CD96A74903A50DA1D46CEC48528DDF2371B7BE32D13C4B936632A4AB
+          35126532DEE1B620BCEEAE0EA734A4923B52A8DDEDC6303E38FDD599300F837C
+          20FC0CC995F55E9A8703684B7AA9416D93C1240A357C6F747EABFB306B31CF3C
+          353DFCCD9633CCDFACDBD1BE1D1A1F65E4A4512DAB4B4CA356A01474EAD22EF6
+          C3EF0CE5EFF87F2C4B79DC9870F38515BE98864688C92A3E60902CAB6AB513F6
+          EE6C6F2C8EC3B214EB2F4A91292B242141D6B62BF2B4A56E9552B7DC03F4000F
+          93F8DBC571D3E03CCB2F8D167A2330E259FDDF9A481D4524D8240D9740802B51
+          142A80C32CAFC4121FC8DA4AF3762565D99C2432FCE0DAFA8D2CA2ABA6410026
+          94294458048DAB03647E248793B4DF8721E4CC6672A084D3E85952D4529012F0
+          05448B26810455550DB0065B96F8C332CEDFCC9ECBF388C1493D129696A69B70
+          EFAB4BBA8A81B3635027D30F320F143DE14CA7338FE22F0ACF6DC74948910E1B
+          C86DCF476C93556ADABBFB6F5BFE22C9335683B954E8CA52136199331B2B1416
+          4796D26AC82B1B5F1BF38699CE487C5BE144E593909892A2F4847CCE493E5775
+          00121CDD276236DB55D0C1196F8420CC7BF763E9851DD8A9421C8ECBA7A874F2
+          12A70DD1249A1DD3EC316CDF0E3B934B4C9CA981994379E6586B2C794925BA72
+          C90BDE93DCA8F157CE1D67DE1EF1435125AF237214843CE95101C21F60048A6D
+          04F948B06C9FC89E3993425E6FF1FD4CBA5F8664FF000DF71A475585D8BAA3C0
+          343F9481FD5CE14E7F953196809742330884754799D4BB15B028AEB5555806F7
+          36476C37F0908998670A832731CCB29CC1986171E4BEF21E7A4940DC796C13BA
+          BCA28815B55557093256ACED2F6712604661E16FA52D05B06ABCFBFCA4902C00
+          9039358CEE4929E4F8C1390F86A3C75CA96A530ECC75292B2A1AD4496DD162AF
+          917DE8EE6B55E25FD9FB898EC2179AA6586DE5BEF38585A14D856AB0DB46C034
+          48DC1E71F3FF0016E74A8DE268B9664125B9661250A565EE25719F928B14DB84
+          536458B2557CDF38D5E45E23C8BC499E48F0DE79E198794CB69A0EA92D41D6D5
+          DEDC592752F61A4026C8384B0F2E67226E6AF28F112A2954C55A6732B5352520
+          2921B46A04349B076D5760F623036551539DE52B399E42C46CE9950EA7459696
+          F21937F335ED4915BF7AADEF1765ED4593157963D0A14C311953EB662BC5953E
+          956E145A0E5694A763E5A277BF51B2C92EE75FB3F5A9AF104D9B98A1DE9BD05E
+          0EBAA68852B4B7A88D2906CF720ED6A3B61DF8213977885A8D90E7AFC883240E
+          944CBA330B0FBA840B2972436161E403577DAC1270278C56B48970724CCF2F95
+          9CC36D2DC94B4844875C0851284BBE60507F9458AF6BDF0BBC0F3A748F0FC99A
+          9CA5CF0ECD94CB944BFD58B29A52B7002688A29E3558037BD861DE479AE531BC
+          331A52F2796DE6ACA4F59C82B5A5686DB3A41EA82D859A361437DF7BAB26E6D9
+          C6779564433239ABD9FE5CF9D6877AA1B52DB3648EAA9A3C51E542E88DF09B2F
+          8BE1D8F1D59C64F9A6690B3B9C0B85934F7C4279015B8246C0D83C9C3099E18C
+          DD79834D351D7072D9C7AB30E823AEB29D2B71BA5794FF00C40F0361B10748CA
+          F3084D399530FE5921B2E175A7DD8C03E0A81251BB75FF00CB51ED7843261B9E
+          1C96BCED1E19CC4B9D1F3488B01890849F5D05C568208E74F1B6154292FF008D
+          9E5CDCB1B8F226658CEB7CBF03A450937F2CA42774FB0BE36A3861021458DE21
+          6E74BCCE0E6AD30C5B79504B884A55B9056083A80493E5F3761BD51F675E2B8E
+          B69D91993D1D6B6C533F06F2594B494D1D296851F32AACEE3D851C1FE08932B2
+          FCC573723195C9673142CC9438E075964206E96DDB49D42C5D5D7B6F84BFB676
+          4AE2E5B19CBCCD892753EB8ED5C86AB7B4BC751D3AB6D85D618E5F96FC4E5111
+          B82ECA7580DA817643C971C4DB8BFC4A1F880A20FD6B6ADFD0F2B6B247DCFDE0
+          CB32243E28331E7B4D294483560823BAF72051384CF2730CAE765E2166F35A86
+          827E2197E56BE9824DA944016403B0008C6FDBCB8486DE9591A589B099A4B623
+          A029EADC5EA48DA811C1AE76F5A9F852D6D25A12264475B0555D324293F9693F
+          6C263976631B3269D672A0E3360B85D92A4A4D9E420EC3E967B6349D0CB1E641
+          7E116D5C14800049BA1BD0FEF5BF7C2D7B2992D39A9B1054D11A6CB5A5407D41
+          F6FE9C2D8998E6196C8784F711964127C8E0944859BFF31F26DDB6C617C7C9FD
+          FB9FB337C2319F398C750EA4F8E85150BBAD6E0F2815B5EFF5DB1B0C9F367D9C
+          B9B93E2B542EB07005C88CF94B87EA5B046F476FCB06A33D65ACF251732F5120
+          20B2B7094A5B17D8016A276279FCF0B6778984D70C586EC15B649B021C8754E7
+          AA47CB35DF71F960794FE66F87E138DC4881691A02624A2E2391FCC9D8FDFE83
+          04E4392449218673186879029254ACB9F501DB510AD21C1F51F9E1BCB398B995
+          2224643ED44751A9B7D8613A9C1EA952525555CEE71092B9396E5C0CE5E6111A
+          48FE3BCD690A155B6A241FBFA9DB01C8CE18939005757385E59B214967A9449F
+          E9D3A52AAEF40FDF09B304C5CB327440CB7237984BCA417E54B82E853B5FCC0B
+          86B57DB09335CBE4E634CC6627C55B892A79B94C95214403A6DD516C5D77005D
+          F7C6CBC26FF895E8696FC612E0969847C969896DB492056CA0D1B29EDC59C2E4
+          E6194787A089B914C919631224294FE5CC8796853BB81452749EC781609DF13C
+          B7F63F98F89B28773D54D88DA1E56A763C994B2E050BFE22500E9F5A278DB15E
+          7F98F8E7C27E1C7F299D94E4AF650CB0D96DF6628D2900EE51446A2763E617B7
+          E72FD934EF0EE793E5F8833C8FE2A564AF696551C3ECC78C17A7CDA9BEA82A49
+          DEB48079E77C7DAF25F1A7ECB32C2F47C8B34F0D650E293A5494B61875639DCE
+          9B57E66B046699FE44F646ACC93E29C8A3306C3732591D107B7E229B1F71F5C6
+          462669E1CCDDB7B4788FC379932CA007FF0077C10541DBDD61414AAB3B8144FB
+          9C62E7783A32FC46EE7F94C2CDB3E60A036613C5E60851BDC15344149BE08AEF
+          78D07847C2DE3C78CB6F3DFD9FC0698595391D6975871E49A00F5145412AB000
+          D8278B383337F0C78922C6324F851B75905216D8CB9B75D51FC3BE952894806F
+          573EDB6E5651092EC87E3C6CA7C4BF1852975E4388783208EC1C40E913DAAEEB
+          D37182B387FC70B42588190C56DB2DDEA94C2C91CEC6C817ED8F8EF8AFF65FE3
+          1F12E79F159BC265A606CE2A0404B250A35DD46DCE791FE988A97E27F06371BC
+          36F6672E2C1490B4E6335F529848E7A634A49BBE0A850F4AC7D1F32899746F0C
+          A73179197F881BB4A83AC21835B6D6B71E4A89BEF63D2B0BBC2B232F650C17A4
+          468EDBAE3A90DAE3C90F2C156A3E6696A6F63D89EC316CF899A30FCB4E47E241
+          9917521C4C475CDC503B21447B8F52287BDA5F0AF8B246607316F35CA184CA69
+          09656DA242A438E83B28383458FAD9E783BE0ACC98872DB6DBCA44A8F11D6691
+          14E5C5C5249D88B4A8809F61A71E7B2ECE9E9CE8CCE1C1650CB01B6A7153AF29
+          D1FF00EC74A80BB3679D8DE393F304495BF94AF31CAD521EA28930DD49714B00
+          ECA652A2AF6D922BBF186BE1F765C560E5C9CAA02A5442141D9D96AE4BCE209B
+          AEAB22C56F5AC7DB15F8BF3DC9E66542066EDAB2D4BBE42B8F1131D441F4EB1D
+          408F61853E1C77C27914C6BC3F11521B912145D6644D96D3EEBDE5B275100276
+          15F8AB1764F90E5F3BC4CF67D94E6EC37345B4D29F79B407456FABA64872BD14
+          91CD8BDB0378DE6CB4BCECB8B9865C66EB00B2D4B90E32A20EF760807E9586DA
+          23AF2F8F21DCF7214CD2D91ADF0CA74F343525D6F61B8DD385AE2E14F6DC2FE6
+          195A259053D48F9837A4E8BA3AA88473EB84791C8F1165F224CACD73082DB2D2
+          8A93204C62438FB66EBA812B17A6EC1276F4ABC45ACCE32E515E6804792C10E3
+          0FCD682599C7512351D41B091BF04920ED8273F70232871DF0ECFC91A331D0F3
+          ACC67FA69717C9AEB2A9C07B58D81C150214A71E87D74BAFCB6ADE7614594DAB
+          A94756EE0242BEA41AEDEE0787673399E7B26266B0A165B9632EA16A6B3043E8
+          9CB036052E82D3408F5D3F9E359323FECEE0B2E3ED3F3DD785B67E1F3009717C
+          D8D2D8DFEA7EF8CC348F0E34957EE79D9FC434496DF8BF104559D896F57FF70C
+          2EF1078B3C571B2F4C7C97C4099A1344C7732D789481D941C594A07B10301786
+          7F683FB4CF12E609C85F5B66C1256D9436B424559F95563EBDBD6B0DE446CC17
+          028FEEB3993C489094E681FF00956380547CD63DABD7B6167849E5657E275B79
+          6C1972DE4341263C06D7208480400BE8851ADFB56192634C9B9818AEF87E7427
+          24DA64E68C65D2816537B00094AAFDC9FB76C3BF10F83DE6511CB5E20CAA5311
+          9B0D8E92D4D4875A028A1400344EFDCFD0E167855B8B92E60E4CCBE1A5F2C81F
+          0BD6C95C96D3478B491D3A57F9AAF61BE1843F1745799797E3342A028292A6DE
+          623C9BA04D82979A504700EC4E027FC499366B054B81E2AC9DF0141498CB93F3
+          92ADC6FF00CD75FCD743DF0CFC213737F0F78916589D0A740911C21F60C8614E
+          2A87F2B6542B7EE149BEFBEF86F99CF84752673EBCA53BA4AA4C27074C7D9F29
+          1F638C9E73FB3B9864379D4295954C85AD2F2264DD4CB4F37AACD3A93E53F4DA
+          BBE34905E872101307C689873D3A9B5349CE4C965CF6480E13A7DAB0D8B7E26C
+          BE3C80EC8F8D4245B6624856B50F42DB8D917F5C66B2FCF32DCD96236571BC4C
+          99964BED3B11A69B6FD6CB440BDB638519AC0F8E4BCEADBCE1A782F762443F8A
+          6F470764AB57A7A7D0E38A5E5F9721288ED658A74A901BE865D652E0F5D26C7E
+          B58365F89D396F532FCFDD8A8EB80068552493DAFA7FDC9C397B2F6730C8D12F
+          23CC1B5B01AA525D70246FFF00D45137F403108D976628415456D0B6B61A20E5
+          ACBE959AE54E57AFADFBE153AECB8324CFF11E7ACE58EC6D992E662B677F52DB
+          4CE93C0D89180A5E7DF16A5CC5E730730D22FA89925114A77E4AAB73E82B0D25
+          C9831F298B2DD9E2232B6C282C0E9B65777AB56A1C93862B46672A1A1B3E36F0
+          929A22D259CDA0A7F2D200C67330F0178725482FE6420E6EFF00650F19C76C03
+          EA0058AC1713C3795C389F0D1FC35953CC8E1BFF006C218FCD456547F3C1D967
+          85B2C79C4AD792F8521383F9A478983DFF00F64A17F9634AC787F28574A3487B
+          F652C424105210F250F248EE1C0E1378DBE58C7ECA1AD0EE6737C18FCA40FE3A
+          A7B4EAFF00F92B7FD716E6C3F6253D2F89798F87353C00716CCD0851038DD271
+          9DCA607EC63289F21E3E368F363487038B852D71DE6750E08A6B56DFF1634B9A
+          F8A7F6599BC2F813E2CCA1B680A4A52AD2903D2B61801390FEC5E6417221CDF2
+          97597C853A139A96B57D295607B023021FD9AFEC3C07571A665CD38E26BAAACC
+          132149F420BDAEB0D72DC97F67D04B495F8AC4A4B55A43AA6391EE96C57DB0ED
+          A9DFB3C608E966D05BD275795639EFB5608FF683C08F04A1ECC61CCD27C9D567
+          584FD3CB8691B37C857E68F332B40E0283C10AAFC860D6735CA9229399C13F59
+          40FF007C79CCDE001F2E765AB3FE69694FFA1C7119B4029F9B3B2C49EFA65A4F
+          FA0C2E94C78624C94C97B326BAA836929CD1400FB6BAFD319BF15786B23CDCA4
+          7FB4CB0CDDA99D711E4ABEEE827F5C267FF671E065AD4A39CE60D36482A65BCC
+          994364FAE949C56AFD9CFECF5FCC4CB9B983B98285696E6B8C3C8491DC58BFD7
+          1B1851BC371D9096E74435C15B8D7FFF0058BD0ACA34908CE32C6FD351457E8B
+          C04EB014AF278B7C3691FF00EEBBFF00FE7C71397C3252A77C6D19007E24B018
+          4A4FFF002D47F5C433EF0DF8133C8DD1CDE5651387F2A9FE82D43DC58C621DFD
+          8E7ECF9A9464659E309597A80A0DB13DB6DB4FD0365247E786D94780FC150E3F
+          4656791B315777644B756B3F72E9C5923C01FB3771B086E645668D8537328FE6
+          5476F6385CEFECDFC0895BEEA33924BDFC40972190AFA85237FBE0395E02F053
+          907E01536708BFFB4CBD05B41FAA4003F4C1591786BC25904753794499B0D079
+          0CB90123EBE98315372961BD2FCDCD26027971ECBF6FC88C5898DE049C82330C
+          D185B6A14B61F6E3A81FAE949FEF8CFCBFD987EC225495484B0D46755C9873DE
+          8E0FD90A03F4C5D957ECBFF62909CD51CEADEE9ECDA42C7E45787133C0BFB269
+          C9FF001072F5D6FBCE3CFDCE15B5FB2DFD91B1344C8935A61E6FF0FF008A4BC8
+          1FF238149FD3054DF0378326AD25DF13C675B06FA4E371C27F24A13F9E04F117
+          ECFBC3999C23162F8D1ACAB7BEA455A42BD392BC26CAFF00651E1FCBF2B7E21F
+          1D22675370EB8F84AEFDC85107F2C2495FB367E0B0E3395F88FC2F9B34A1B359
+          BBADAF4FD14A69C23ED58C8A3F64F2D539C76731943057B6BC8E7B26BE81D79A
+          D3F618FA2782FC2F2B20C81CCB22F887366D870DA805C00E1279B5F514A3F9E1
+          BAF2B6CB0B42DD98F920517A4463A6BD06BA1F963359FF0087572D9521C438BF
+          74B705763D085920FE98C94FCBBC5B974611B22765C5427609112306C7D9B26B
+          F2C237F22F1FE62A5A277899F65B50A285B93123F26E37FAE2AC9FF655900949
+          7F3F9CB788DD419893DE4ACFD0B0923F338DCB5072DCBA33513267185C466C34
+          C3D954F674DF3E7D279FA61942CEF35692A61BCAF2586C2E82FA2FBD4A1E850A
+          826FF3C1CACFA608E1829CB16C2534184A9E083F54A9803F2AC25633CF104390
+          E2B2AF0F784E29572E0D4CDFD74A09FD70C5CF1178C1F8A1B7DAF06848DEBACF
+          AC7FF128AFD708F39F1278A8DA2535954B4D5545CAC2E87A02E3A3FB610A643C
+          FBF7F05321857E22D6430CFF00756D86B0FC370DF79B92DF8B73286EF76E530C
+          A535E9415431B177288198C0447CC3C4FE1A71280024BB1A00550F5BE7EE319A
+          CEFC0D92BCA6931338F0AB486D564B798C58EBFB16C803F2C199565194E591DC
+          8EE667E197E21E5A9DE2A43CDFD68BA05FBD602CC98F06A50A42D8FD9A2D1AAC
+          96FC4ACA15F997B6C1905FF0825848666782E3B6D8E7FDB56B47E9ABF2C269F1
+          3236D4EBB91F8D7C1519E75409EB78AE3496C7AD25E4103ED58FFFD9}
+        Material.Texture.TextureMode = tmModulate
+        Material.Texture.TextureFormat = tfLuminance
+        Material.Texture.FilteringQuality = tfAnisotropic
+        Material.Texture.Disabled = False
+      end>
+    Left = 168
+    Top = 128
+  end
+  object EarthCombiner: TGLTexCombineShader
+    Combiners.Strings = (
+      'Tex0:=Tex0;'
+      'Tex1:=InterPolate(Tex0, Tex1, PrimaryColor);'
+      '')
+    DesignTimeEnabled = False
+    Left = 140
+    Top = 20
+  end
 end

+ 29 - 0
AdvDemos/Earth/fEarthC.h

@@ -7,10 +7,39 @@
 #include <Vcl.Controls.hpp>
 #include <Vcl.StdCtrls.hpp>
 #include <Vcl.Forms.hpp>
+#include "GLS.BaseClasses.hpp"
+#include "GLS.Cadencer.hpp"
+#include "GLS.Coordinates.hpp"
+#include "GLS.LensFlare.hpp"
+#include "GLS.Material.hpp"
+#include "GLS.Objects.hpp"
+#include "GLS.Scene.hpp"
+#include "GLS.SceneViewer.hpp"
+#include "GLS.SkyDome.hpp"
+#include "GLSL.TextureShaders.hpp"
+#include <Vcl.ExtCtrls.hpp>
 //---------------------------------------------------------------------------
 class TForm3 : public TForm
 {
 __published:	// IDE-managed Components
+	TGLSceneViewer *GLSceneViewer;
+	TGLScene *Scene;
+	TGLSkyDome *SkyDome;
+	TGLLines *ConstellationLines;
+	TGLLines *ConstellationBorders;
+	TGLDummyCube *dcEarth;
+	TGLCamera *CameraController;
+	TGLCamera *Camera;
+	TGLDummyCube *dcMoon;
+	TGLSphere *SphereMoon;
+	TGLSphere *SphereEarth;
+	TGLDirectOpenGL *DirectOpenGL;
+	TGLLightSource *LightSourceSun;
+	TGLLensFlare *GLLensFlare1;
+	TGLCadencer *Cadencer;
+	TTimer *Timer1;
+	TGLMaterialLibrary *MatLib;
+	TGLTexCombineShader *EarthCombiner;
 private:	// User declarations
 public:		// User declarations
 	__fastcall TForm3(TComponent* Owner);

+ 16 - 18
AdvDemos/Earth/fEarthD.dfm

@@ -31,10 +31,8 @@ object Form1: TForm1
     OnMouseDown = GLSceneViewerMouseDown
     OnMouseMove = GLSceneViewerMouseMove
     TabOrder = 0
-    ExplicitWidth = 739
-    ExplicitHeight = 559
   end
-  object Scene: TGLScene
+  object GLScene: TGLScene
     ObjectsSorting = osNone
     Left = 16
     Top = 16
@@ -90,11 +88,11 @@ object Form1: TForm1
         Direction.Coordinates = {0000803F000000000000008000000000}
         Up.Coordinates = {00000000000000000000803F00000000}
       end
-      object DCMoon: TGLDummyCube
+      object dcMoon: TGLDummyCube
         Up.Coordinates = {FC9D7FB10000803F0000000000000000}
         CubeSize = 1.000000000000000000
-        object SPMoon: TGLSphere
-          Material.MaterialLibrary = MatLib
+        object SphereMoon: TGLSphere
+          Material.MaterialLibrary = GLMatLib
           Material.LibMaterialName = 'moon'
           Direction.Coordinates = {DAD031BE000000005B1C7CBF00000000}
           Position.Coordinates = {CDCCECC100000000000000000000803F}
@@ -105,9 +103,9 @@ object Form1: TForm1
           Stacks = 32
         end
       end
-      object SPEarth: TGLSphere
-        Material.MaterialLibrary = MatLib
-        Material.LibMaterialName = 'earthDay'
+      object SphereEarth: TGLSphere
+        Material.MaterialLibrary = GLMatLib
+        Material.LibMaterialName = 'earth'
         Direction.Coordinates = {000000000000803F0000000000000000}
         TurnAngle = -150.000000000000000000
         Up.Coordinates = {00000000000000800000803F00000000}
@@ -121,21 +119,21 @@ object Form1: TForm1
         Blend = False
       end
     end
-    object LSSun: TGLLightSource
+    object LightSourceSun: TGLLightSource
       ConstAttenuation = 1.000000000000000000
       Position.Coordinates = {00D0044600D00446000000000000803F}
       Specular.Color = {0000803F0000803F0000803F0000803F}
       SpotCutOff = 180.000000000000000000
-      object GLLensFlare1: TGLLensFlare
+      object LensFlareSun: TGLLensFlare
         Seed = 1465
         FlareIsNotOccluded = True
       end
     end
   end
-  object Cadencer: TGLCadencer
-    Scene = Scene
+  object GLCadencer: TGLCadencer
+    Scene = GLScene
     MaxDeltaTime = 0.050000000000000000
-    OnProgress = CadencerProgress
+    OnProgress = GLCadencerProgress
     Left = 22
     Top = 92
   end
@@ -144,10 +142,10 @@ object Form1: TForm1
     Left = 348
     Top = 22
   end
-  object MatLib: TGLMaterialLibrary
+  object GLMatLib: TGLMaterialLibrary
     Materials = <
       item
-        Name = 'earthDay'
+        Name = 'earth'
         Tag = 0
         Material.FrontProperties.Diffuse.Color = {0000803F0000803F0000803F0000803F}
         Material.Texture.Image.Picture.Data = {
@@ -3483,7 +3481,7 @@ object Form1: TForm1
         Material.Texture.FilteringQuality = tfAnisotropic
         Material.Texture.Disabled = False
         Texture2Name = 'earthNight'
-        Shader = EarthCombiner
+        Shader = GLEarthCombiner
       end
       item
         Name = 'earthNight'
@@ -6929,7 +6927,7 @@ object Form1: TForm1
     Left = 134
     Top = 102
   end
-  object EarthCombiner: TGLTexCombineShader
+  object GLEarthCombiner: TGLTexCombineShader
     Combiners.Strings = (
       'Tex0:=Tex0;'
       'Tex1:=InterPolate(Tex0, Tex1, PrimaryColor);'

+ 23 - 23
AdvDemos/Earth/fEarthD.pas

@@ -37,20 +37,20 @@ uses
 
 type
   TForm1 = class(TForm)
-    Scene: TGLScene;
+    GLScene: TGLScene;
     GLSceneViewer: TGLSceneViewer;
     Camera: TGLCamera;
-    SPEarth: TGLSphere;
-    LSSun: TGLLightSource;
+    SphereEarth: TGLSphere;
+    LightSourceSun: TGLLightSource;
     DirectOpenGL: TGLDirectOpenGL;
-    Cadencer: TGLCadencer;
+    GLCadencer: TGLCadencer;
     Timer1: TTimer;
-    SPMoon: TGLSphere;
+    SphereMoon: TGLSphere;
     dcEarth: TGLDummyCube;
-    DCMoon: TGLDummyCube;
-    GLLensFlare1: TGLLensFlare;
-    MatLib: TGLMaterialLibrary;
-    EarthCombiner: TGLTexCombineShader;
+    dcMoon: TGLDummyCube;
+    LensFlareSun: TGLLensFlare;
+    GLMatLib: TGLMaterialLibrary;
+    GLEarthCombiner: TGLTexCombineShader;
     Cameracontroller: TGLCamera;
     SkyDome: TGLSkyDome;
     ConstellationLines: TGLLines;
@@ -58,7 +58,7 @@ type
     procedure FormCreate(Sender: TObject);
     procedure DirectOpenGLRender(Sender: TObject; var rci: TGLRenderContextInfo);
     procedure Timer1Timer(Sender: TObject);
-    procedure CadencerProgress(Sender: TObject; const deltaTime, newTime: Double);
+    procedure GLCadencerProgress(Sender: TObject; const deltaTime, newTime: Double);
     procedure GLSceneViewerMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState;
       X, Y: Integer);
     procedure GLSceneViewerMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
@@ -124,10 +124,10 @@ end;
 
 procedure TForm1.GLSceneViewerBeforeRender(Sender: TObject);
 begin
-  GLLensFlare1.PreRender(Sender as TGLSceneBuffer);
+  LensFlareSun.PreRender(Sender as TGLSceneBuffer);
   // if no multitexturing or no combiner support, turn off city lights
-  MatLib.Materials[0].Shader := EarthCombiner;
-  MatLib.Materials[0].Texture2Name := 'earthNight';
+  GLMatLib.Materials[0].Shader := GLEarthCombiner;
+  GLMatLib.Materials[0].Texture2Name := 'earthNight';
 end;
 
 function TForm1.AtmosphereColor(const rayStart, rayEnd: TGLVector): TGLColorVector;
@@ -212,7 +212,7 @@ var
   cosCache, sinCache: array [0 .. cSlices] of Single;
   pVertex, pColor: PVectorArray;
 begin
-  sunPos := LSSun.AbsolutePosition;
+  sunPos := LightSourceSun.AbsolutePosition;
   eyePos := Camera.AbsolutePosition;
 
   diskNormal := VectorNegate(eyePos);
@@ -339,14 +339,14 @@ begin
   GLSceneViewer.ResetPerformanceMonitor;
 end;
 
-procedure TForm1.CadencerProgress(Sender: TObject; const deltaTime, newTime: Double);
+procedure TForm1.GLCadencerProgress(Sender: TObject; const deltaTime, newTime: Double);
 // var
 // d : Double;
 // p : TAffineVector;
 begin
   // d := GMTDateTimeToJulianDay(Now-2+newTime*timeMultiplier);
   // make earth rotate
-  SPEarth.TurnAngle := SPEarth.TurnAngle + deltaTime * TimeMultiplier;
+  SphereEarth.TurnAngle := SphereEarth.TurnAngle + deltaTime * TimeMultiplier;
   { p := ComputePlanetPosition(cSunOrbitalElements, d);
     ScaleVector(p, 0.5*cAUToKilometers*(1/cEarthRadius));
     LSSun.Position.AsAffineVector:=p; }
@@ -356,8 +356,8 @@ begin
   { p := ComputePlanetPosition(cMoonOrbitalElements, d);
     ScaleVector(p, 0.5*cAUToKilometers*(1/cEarthRadius)); }
 
-  DCMoon.TurnAngle := DCMoon.TurnAngle + deltaTime * TimeMultiplier / 29.5;
-  SPMoon.TurnAngle := 180 - DCMoon.TurnAngle;
+  dcMoon.TurnAngle := dcMoon.TurnAngle + deltaTime * TimeMultiplier / 29.5;
+  SphereMoon.TurnAngle := 180 - dcMoon.TurnAngle;
 
   // honour camera movements
   if (dmy <> 0) or (dmx <> 0) then
@@ -450,10 +450,10 @@ begin
       Close;
     'm', 'M':
       begin
-        Camera.MoveTo(SPMoon);
-        Cameracontroller.MoveTo(SPMoon);
-        Camera.TargetObject := SPMoon;
-        Cameracontroller.TargetObject := SPMoon;
+        Camera.MoveTo(SphereMoon);
+        Cameracontroller.MoveTo(SphereMoon);
+        Camera.TargetObject := SphereMoon;
+        Cameracontroller.TargetObject := SphereMoon;
       end;
     'e', 'E':
       begin
@@ -468,7 +468,7 @@ begin
         GLSceneViewer.Cursor := crHourGlass;
         try
           SetCurrentDir(Path + '\map');
-          with MatLib do
+          with GLMatLib do
           begin
             LoadHighResTexture(Materials[0], 'earth_ocean_ice_4096.jpg');
             LoadHighResTexture(Materials[1], 'earth_ocean_ice_lights_4096.jpg');

BIN
Asset/Button/GLS.ico


BIN
Asset/Button/GLS_1.ico


BIN
Asset/Button/github-mark-white.png


BIN
Asset/Button/github-mark.png


BIN
Asset/Map/earth.jpg


BIN
Asset/Map/earthclouds.jpg


BIN
Asset/Map/earthnight.jpg


BIN
Asset/Model/lumpy.3ds


BIN
Asset/Model/spiral.3ds


BIN
Asset/Model/spiraltorus.3ds


BIN
Asset/Model/spring.3ds


BIN
Asset/Model/thing.3ds


+ 17 - 0
Asset/Shader/Fur_fp.glsl

@@ -0,0 +1,17 @@
+uniform vec4 furColorScale;
+uniform sampler2D Fur;
+uniform sampler2D FurColor;
+
+varying vec2 vTexCoord;
+
+void main(void)
+{
+    // Get the alpha component for this shaft
+    vec4 fAlpha = texture2D( Fur, vTexCoord );    
+    
+    // Get the hair shaft color, and scale by the color scale
+    vec4 fColor = furColorScale * texture2D( FurColor, vTexCoord ) * fAlpha;
+        
+    // Return the calculated color
+    gl_FragColor = fColor;
+}

+ 12 - 0
Asset/Shader/Fur_vp.glsl

@@ -0,0 +1,12 @@
+uniform float shell_distance;
+uniform float pass_index;
+varying vec2  vTexCoord;
+
+void main(void)
+{
+   vTexCoord    = gl_MultiTexCoord0.xy;
+   
+   vec4 Position = gl_Vertex;
+   Position.xyz += shell_distance * pass_index * gl_Normal; 
+   gl_Position = gl_ModelViewProjectionMatrix * Position;
+}

+ 32 - 0
Asset/Shader/Mandelbrot.frag

@@ -0,0 +1,32 @@
+#define MAX_ITER 64.0
+
+varying vec2 pixel;
+
+uniform float positionX;
+uniform float positionY;
+uniform float scale;
+
+uniform sampler2D colorMap;
+
+void main() {
+	float x, y, x0, y0;
+	x = x0 = (pixel.x * scale + positionX);
+	y = y0 = (pixel.y * scale + positionY);
+
+	float x2 = x*x;
+	float y2 = y*y;
+
+	float iteration = 0.0;
+
+	while(x2 + y2 < 4.0 && iteration < MAX_ITER) {
+ 		y = 2.0 * x * y + y0;
+	        x = x2 - y2 + x0;
+
+		x2 = x*x;     
+		y2 = y*y;
+
+		iteration++;
+	};
+					 
+	gl_FragColor = texture2D(colorMap, vec2(iteration/MAX_ITER, iteration/MAX_ITER));
+}

+ 7 - 0
Asset/Shader/Mandelbrot.vert

@@ -0,0 +1,7 @@
+varying vec2 pixel;
+
+void main() 
+{
+	gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
+	pixel = gl_Position.xy;
+}

BIN
Asset/Texture/colormap.jpg


BIN
Asset/Texture/cur.bmp


BIN
Asset/Texture/grass.jpg


BIN
Asset/Texture/hot_metal.bmp


BIN
Asset/Texture/rainbow.bmp


BIN
Asset/Texture/rock.jpg


BIN
Asset/Texture/rose.bmp


BIN
Asset/Texture/sand.jpg


BIN
Asset/Texture/skull.bmp


BIN
Asset/Texture/tp.tga


+ 13 - 0
Demos/glslshaders/FurShader/FurShaderD.dpr

@@ -0,0 +1,13 @@
+program FurShaderD;
+
+uses
+  Forms,
+  fFurShaderD in 'fFurShaderD.pas' {FormFur};
+
+{$R *.res}
+
+begin
+  Application.Initialize;
+  Application.CreateForm(TFormFur, FormFur);
+  Application.Run;
+end.

+ 966 - 0
Demos/glslshaders/FurShader/FurShaderD.dproj

@@ -0,0 +1,966 @@
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+    <PropertyGroup>
+        <ProjectGuid>{8D90BFDD-EE3B-4763-8C59-21324216CB13}</ProjectGuid>
+        <MainSource>FurShaderD.dpr</MainSource>
+        <Base>True</Base>
+        <Config Condition="'$(Config)'==''">Debug</Config>
+        <TargetedPlatforms>129</TargetedPlatforms>
+        <AppType>Application</AppType>
+        <FrameworkType>VCL</FrameworkType>
+        <ProjectVersion>19.4</ProjectVersion>
+        <Platform Condition="'$(Platform)'==''">Win32</Platform>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
+        <Base_Win32>true</Base_Win32>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''">
+        <Base_Win64>true</Base_Win64>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''">
+        <Cfg_1>true</Cfg_1>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win32)'!=''">
+        <Cfg_1_Win32>true</Cfg_1_Win32>
+        <CfgParent>Cfg_1</CfgParent>
+        <Cfg_1>true</Cfg_1>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''">
+        <Cfg_2>true</Cfg_2>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''">
+        <Cfg_2_Win32>true</Cfg_2_Win32>
+        <CfgParent>Cfg_2</CfgParent>
+        <Cfg_2>true</Cfg_2>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Base)'!=''">
+        <DCC_E>false</DCC_E>
+        <DCC_F>false</DCC_F>
+        <DCC_K>false</DCC_K>
+        <DCC_N>false</DCC_N>
+        <DCC_S>false</DCC_S>
+        <DCC_ImageBase>00400000</DCC_ImageBase>
+        <SanitizedProjectName>FurShaderD</SanitizedProjectName>
+        <DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;GLS;Winapi;$(DCC_Namespace)</DCC_Namespace>
+        <VerInfo_Locale>1049</VerInfo_Locale>
+        <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName=</VerInfo_Keys>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Base_Win32)'!=''">
+        <DCC_Namespace>System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
+        <BT_BuildType>Debug</BT_BuildType>
+        <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+        <VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)</VerInfo_Keys>
+        <VerInfo_Locale>1033</VerInfo_Locale>
+        <Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
+        <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
+        <Icon_MainIcon>Project1_Icon.ico</Icon_MainIcon>
+        <UWP_DelphiLogo44>$(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png</UWP_DelphiLogo44>
+        <UWP_DelphiLogo150>$(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png</UWP_DelphiLogo150>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Base_Win64)'!=''">
+        <Icon_MainIcon>Project1_Icon.ico</Icon_MainIcon>
+        <UWP_DelphiLogo44>$(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png</UWP_DelphiLogo44>
+        <UWP_DelphiLogo150>$(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png</UWP_DelphiLogo150>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_1)'!=''">
+        <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
+        <DCC_DebugInformation>0</DCC_DebugInformation>
+        <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
+        <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
+        <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
+        <AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_2)'!=''">
+        <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
+        <DCC_Optimize>false</DCC_Optimize>
+        <DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
+        <DCC_RangeChecking>true</DCC_RangeChecking>
+        <DCC_IntegerOverflowCheck>true</DCC_IntegerOverflowCheck>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_2_Win32)'!=''">
+        <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
+        <AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode>
+        <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+        <VerInfo_Locale>1033</VerInfo_Locale>
+        <VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)</VerInfo_Keys>
+        <Icon_MainIcon>..\..\..\Asset\Button\GLScene.ico</Icon_MainIcon>
+    </PropertyGroup>
+    <ItemGroup>
+        <DelphiCompile Include="$(MainSource)">
+            <MainSource>MainSource</MainSource>
+        </DelphiCompile>
+        <DCCReference Include="fFurShaderD.pas">
+            <Form>FormFur</Form>
+        </DCCReference>
+        <BuildConfiguration Include="Base">
+            <Key>Base</Key>
+        </BuildConfiguration>
+        <BuildConfiguration Include="Release">
+            <Key>Cfg_1</Key>
+            <CfgParent>Base</CfgParent>
+        </BuildConfiguration>
+        <BuildConfiguration Include="Debug">
+            <Key>Cfg_2</Key>
+            <CfgParent>Base</CfgParent>
+        </BuildConfiguration>
+    </ItemGroup>
+    <ProjectExtensions>
+        <Borland.Personality>Delphi.Personality.12</Borland.Personality>
+        <Borland.ProjectType/>
+        <BorlandProject>
+            <Delphi.Personality>
+                <Source>
+                    <Source Name="MainSource">FurShaderD.dpr</Source>
+                </Source>
+                <Excluded_Packages>
+                    <Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\GBE3D.bpl">File C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\GBE3D.bpl not found</Excluded_Packages>
+                    <Excluded_Packages Name="$(BDSBIN)\bcboffice2k280.bpl">Embarcadero C++Builder Office 2000 Servers Package</Excluded_Packages>
+                    <Excluded_Packages Name="$(BDSBIN)\bcbofficexp280.bpl">Embarcadero C++Builder Office XP Servers Package</Excluded_Packages>
+                    <Excluded_Packages Name="$(BDSBIN)\dcloffice2k280.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
+                    <Excluded_Packages Name="$(BDSBIN)\dclofficexp280.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
+                </Excluded_Packages>
+            </Delphi.Personality>
+            <Platforms>
+                <Platform value="Linux64">True</Platform>
+                <Platform value="Win32">True</Platform>
+                <Platform value="Win64">False</Platform>
+            </Platforms>
+            <Deployment Version="3">
+                <DeployFile LocalName="FurShaderD.exe" Configuration="Debug" Class="ProjectOutput">
+                    <Platform Name="Win32">
+                        <RemoteName>FurShaderD.exe</RemoteName>
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployClass Name="AdditionalDebugSymbols">
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Win32">
+                        <Operation>0</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidClasses">
+                    <Platform Name="Android">
+                        <RemoteDir>classes</RemoteDir>
+                        <Operation>64</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>classes</RemoteDir>
+                        <Operation>64</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidFileProvider">
+                    <Platform Name="Android">
+                        <RemoteDir>res\xml</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\xml</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidGDBServer">
+                    <Platform Name="Android">
+                        <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidLibnativeArmeabiFile">
+                    <Platform Name="Android">
+                        <RemoteDir>library\lib\armeabi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\armeabi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidLibnativeArmeabiv7aFile">
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidLibnativeMipsFile">
+                    <Platform Name="Android">
+                        <RemoteDir>library\lib\mips</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\mips</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidServiceOutput">
+                    <Platform Name="Android">
+                        <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\arm64-v8a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidServiceOutput_Android32">
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidSplashImageDef">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidSplashStyles">
+                    <Platform Name="Android">
+                        <RemoteDir>res\values</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\values</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidSplashStylesV21">
+                    <Platform Name="Android">
+                        <RemoteDir>res\values-v21</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\values-v21</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_Colors">
+                    <Platform Name="Android">
+                        <RemoteDir>res\values</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\values</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_DefaultAppIcon">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_LauncherIcon144">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-xxhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-xxhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_LauncherIcon192">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-xxxhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-xxxhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_LauncherIcon36">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-ldpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-ldpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_LauncherIcon48">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-mdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-mdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_LauncherIcon72">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-hdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-hdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_LauncherIcon96">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-xhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-xhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_NotificationIcon24">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-mdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-mdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_NotificationIcon36">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-hdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-hdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_NotificationIcon48">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-xhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-xhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_NotificationIcon72">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-xxhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-xxhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_NotificationIcon96">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-xxxhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-xxxhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_SplashImage426">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-small</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-small</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_SplashImage470">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-normal</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-normal</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_SplashImage640">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-large</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-large</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_SplashImage960">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-xlarge</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-xlarge</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_Strings">
+                    <Platform Name="Android">
+                        <RemoteDir>res\values</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\values</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="DebugSymbols">
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Win32">
+                        <Operation>0</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="DependencyFramework">
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.framework</Extensions>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.framework</Extensions>
+                    </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.framework</Extensions>
+                    </Platform>
+                    <Platform Name="Win32">
+                        <Operation>0</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="DependencyModule">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="Win32">
+                        <Operation>0</Operation>
+                        <Extensions>.dll;.bpl</Extensions>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Required="true" Name="DependencyPackage">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="Win32">
+                        <Operation>0</Operation>
+                        <Extensions>.bpl</Extensions>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="File">
+                    <Platform Name="Android">
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice32">
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\Resources\StartUp\</RemoteDir>
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents\Resources\StartUp\</RemoteDir>
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents\Resources\StartUp\</RemoteDir>
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="Win32">
+                        <Operation>0</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iOS_AppStore1024">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_AppIcon152">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_AppIcon167">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch2x">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_LaunchDark2x">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Notification40">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Setting58">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_SpotLight80">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_AppIcon120">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_AppIcon180">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch2x">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch3x">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_LaunchDark2x">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_LaunchDark3x">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Notification40">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Notification60">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Setting58">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Setting87">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Spotlight120">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Spotlight80">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectAndroidManifest">
+                    <Platform Name="Android">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectiOSDeviceDebug">
+                    <Platform Name="iOSDevice32">
+                        <RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectiOSEntitlements">
+                    <Platform Name="iOSDevice32">
+                        <RemoteDir>..\</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectiOSInfoPList">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectiOSLaunchScreen">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen</RemoteDir>
+                        <Operation>64</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen</RemoteDir>
+                        <Operation>64</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectiOSResource">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectOSXDebug">
+                    <Platform Name="OSX64">
+                        <RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectOSXEntitlements">
+                    <Platform Name="OSX32">
+                        <RemoteDir>..\</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>..\</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>..\</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectOSXInfoPList">
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectOSXResource">
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\Resources</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents\Resources</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents\Resources</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Required="true" Name="ProjectOutput">
+                    <Platform Name="Android">
+                        <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\arm64-v8a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Linux64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Win32">
+                        <Operation>0</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectOutput_Android32">
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectUWPManifest">
+                    <Platform Name="Win32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Win64">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="UWP_DelphiLogo150">
+                    <Platform Name="Win32">
+                        <RemoteDir>Assets</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Win64">
+                        <RemoteDir>Assets</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="UWP_DelphiLogo44">
+                    <Platform Name="Win32">
+                        <RemoteDir>Assets</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Win64">
+                        <RemoteDir>Assets</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="OSXARM64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
+            </Deployment>
+        </BorlandProject>
+        <ProjectFileVersion>12</ProjectFileVersion>
+    </ProjectExtensions>
+    <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
+    <Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/>
+    <Import Project="$(MSBuildProjectName).deployproj" Condition="Exists('$(MSBuildProjectName).deployproj')"/>
+</Project>

+ 105 - 0
Demos/glslshaders/FurShader/fFurShaderD.dfm

@@ -0,0 +1,105 @@
+object FormFur: TFormFur
+  Left = 188
+  Top = 109
+  Caption = 'Fur Shaser'
+  ClientHeight = 512
+  ClientWidth = 716
+  Color = clBtnFace
+  Font.Charset = DEFAULT_CHARSET
+  Font.Color = clWindowText
+  Font.Height = -11
+  Font.Name = 'MS Sans Serif'
+  Font.Style = []
+  Position = poScreenCenter
+  OnClose = FormClose
+  OnCreate = FormCreate
+  OnMouseWheel = FormMouseWheel
+  TextHeight = 13
+  object GLViewer: TGLSceneViewer
+    Left = 0
+    Top = 0
+    Width = 716
+    Height = 512
+    Camera = Camera
+    Buffer.BackgroundColor = clBlack
+    Buffer.ContextOptions = [roDoubleBuffer, roStencilBuffer, roRenderToWindow]
+    Buffer.AntiAliasing = aaNone
+    Buffer.DepthPrecision = dp24bits
+    Buffer.ColorDepth = cd24bits
+    FieldOfView = 151.506607055664100000
+    PenAsTouch = False
+    Align = alClient
+    OnMouseDown = GLViewerMouseDown
+    OnMouseMove = GLViewerMouseMove
+    TabOrder = 0
+    ExplicitWidth = 731
+  end
+  object GLScene1: TGLScene
+    Left = 24
+    Top = 16
+    object RenderDirectGL: TGLDirectOpenGL
+      UseBuildList = False
+      OnRender = RenderDirectGLRender
+      Blend = False
+    end
+    object CamBox: TGLDummyCube
+      CubeSize = 1.000000000000000000
+    end
+    object Scene: TGLDummyCube
+      CubeSize = 1.000000000000000000
+      object SceneMesh: TGLFreeForm
+        Direction.Coordinates = {00000000D7B35DBFFFFFFF3E00000000}
+        PitchAngle = -60.000000000000000000
+        Up.Coordinates = {00000000FFFFFF3ED7B35D3F00000000}
+      end
+    end
+    object Camera: TGLCamera
+      DepthOfView = 500.000000000000000000
+      FocalLength = 65.000000000000000000
+      TargetObject = Scene
+      CameraStyle = csInfinitePerspective
+      Position.Coordinates = {000040400000803F000016430000803F}
+      Direction.Coordinates = {00000000000000800000803F00000000}
+      object GLLightSource1: TGLLightSource
+        ConstAttenuation = 1.000000000000000000
+        SpotCutOff = 180.000000000000000000
+      end
+    end
+  end
+  object GLCadencer1: TGLCadencer
+    Scene = GLScene1
+    Enabled = False
+    MaxDeltaTime = 0.020000000000000000
+    OnProgress = GLCadencer1Progress
+    Left = 24
+    Top = 56
+  end
+  object Timer1: TTimer
+    Enabled = False
+    Interval = 650
+    OnTimer = Timer1Timer
+    Left = 24
+    Top = 136
+  end
+  object MatLib: TGLMaterialLibrary
+    Materials = <
+      item
+        Name = 'Fur'
+        Tag = 0
+        Material.Texture.Compression = tcHighSpeed
+        Material.Texture.Disabled = False
+        Material.FaceCulling = fcCull
+        Material.MaterialLibrary = MatLib
+      end
+      item
+        Name = 'FurColor'
+        Tag = 0
+        Material.Texture.Compression = tcHighSpeed
+        Material.Texture.Disabled = False
+        Material.FaceCulling = fcCull
+        Material.MaterialLibrary = MatLib
+      end>
+    Left = 24
+    Top = 96
+  end
+end

+ 274 - 0
Demos/glslshaders/FurShader/fFurShaderD.pas

@@ -0,0 +1,274 @@
+(* Created by Trinix *)
+unit fFurShaderD;
+
+interface
+
+uses
+  Winapi.Windows,
+  Winapi.Messages,
+  Winapi.OpenGL,
+  Winapi.OpenGLext,
+  System.SysUtils,
+  System.Variants,
+  System.Classes,
+  System.Math,
+  Vcl.Graphics,
+  Vcl.Controls,
+  Vcl.Forms,
+  Vcl.Dialogs,
+  Vcl.ExtCtrls,
+  Vcl.StdCtrls,
+  Vcl.Imaging.jpeg,
+  GLS.Texture,
+  GLS.FileTGA,
+  GLS.VectorLists,
+  VectorTypes,
+  GLS.Utils,
+  GLS.Context,
+  GLS.FileOBJ,
+  GLS.VectorGeometry,
+  GLS.OpenGLTokens,
+  GLS.XOpenGL,
+  GLS.Graphics,
+  GLS.BaseClasses,
+  GLS.RenderContextInfo,
+  GLS.Material,
+  GLS.Cadencer,
+  GLS.Scene,
+  GLS.VectorFileObjects,
+  GLS.Objects,
+  GLS.Coordinates,
+  GLS.SceneViewer;
+
+type
+  TFormFur = class(TForm)
+    GLScene1: TGLScene;
+    GLViewer: TGLSceneViewer;
+    GLCadencer1: TGLCadencer;
+    Camera: TGLCamera;
+    Scene: TGLDummyCube;
+    Timer1: TTimer;
+    CamBox: TGLDummyCube;
+    MatLib: TGLMaterialLibrary;
+    RenderDirectGL: TGLDirectOpenGL;
+    GLLightSource1: TGLLightSource;
+    SceneMesh: TGLFreeForm;
+    procedure FormCreate(Sender: TObject);
+    procedure GLCadencer1Progress(Sender: TObject; const deltaTime, newTime: Double);
+    procedure GLViewerMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState;
+      X, Y: Integer);
+    procedure GLViewerMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
+    procedure Timer1Timer(Sender: TObject);
+    procedure FormClose(Sender: TObject; var Action: TCloseAction);
+    procedure FormMouseWheel(Sender: TObject; Shift: TShiftState; WheelDelta: Integer;
+      MousePos: TPoint; var Handled: Boolean);
+    procedure RenderDirectGLRender(Sender: TObject; var rci: TGLRenderContextInfo);
+  private
+    Path: TFileName;
+    mx, my: Integer;
+    InitDGL: Boolean;
+    AltDGL: Boolean;
+    GLSLProg: TGLProgramHandle;
+    procedure PrepareTextures;
+    procedure DummyRender(dummy: TGLDummyCube; rci: TGLRenderContextInfo);
+  public
+  end;
+
+var
+  FormFur: TFormFur;
+
+implementation
+
+{$R *.dfm}
+
+procedure TFormFur.PrepareTextures;
+begin
+  SetCurrentDir(Path + '\texture');
+  with MatLib.LibMaterialByName('Fur').Material.Texture do
+  begin
+    Image.LoadFromFile('fur.tga');
+  end;
+  with MatLib.LibMaterialByName('FurColor').Material.Texture do
+  begin
+    Image.LoadFromFile('rainbowfilm_smooth.jpg');
+  end;
+end;
+
+procedure TFormFur.FormCreate(Sender: TObject);
+begin
+  Path := GetCurrentAssetPath();
+  SetCurrentDir(Path + '\model');
+  InitDGL := False;
+  AltDGL := False;
+  GLViewer.Buffer.FaceCulling := False;
+  SceneMesh.LoadFromFile('Torus.obj');
+  GLCadencer1.Enabled := True;
+  Timer1.Enabled := True;
+end;
+
+procedure TFormFur.DummyRender(dummy: TGLDummyCube; rci: TGLRenderContextInfo);
+var
+  i: Integer;
+begin
+  if (dummy.Count > 0) then
+  begin
+    for i := 0 to dummy.Count - 1 do
+    begin
+      if TGLSceneObject(dummy.Children[i]).Tag <> 1 then
+      begin
+        if dummy.Children[i].Visible then
+          dummy.Children[i].Visible := False;
+        gl.PushMatrix();
+        gl.MultMatrixf(PGLFloat(TGLSceneObject(dummy.Children[i]).AbsoluteMatrixAsAddress));
+        if dummy.Children[i].Count > 0 then
+          dummy.Children[i].DoRender(rci, True, True)
+        else
+          dummy.Children[i].DoRender(rci, True, False);
+        gl.PopMatrix;
+      end;
+    end;
+  end;
+end;
+
+procedure TFormFur.GLCadencer1Progress(Sender: TObject; const deltaTime, newTime: Double);
+begin
+  SceneMesh.Pitch(0.5);
+  GLViewer.Invalidate;
+end;
+
+procedure TFormFur.GLViewerMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState;
+  X, Y: Integer);
+begin
+  mx := X;
+  my := Y;
+end;
+
+procedure TFormFur.GLViewerMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
+begin
+  if (ssright in Shift) then
+    Camera.MoveAroundTarget(my - Y, mx - X);
+  mx := X;
+  my := Y;
+end;
+
+procedure TFormFur.Timer1Timer(Sender: TObject);
+begin
+  Caption := Format('Fur Shader. [%.2f] FPS', [GLViewer.FramesPerSecond]);
+  GLViewer.ResetPerformanceMonitor;
+end;
+
+procedure TFormFur.FormClose(Sender: TObject; var Action: TCloseAction);
+begin
+  AltDGL := True;
+  InitDGL := False;
+  GLCadencer1.Enabled := False;
+  Timer1.Enabled := False;
+  GLSLProg.Free;
+end;
+
+procedure TFormFur.FormMouseWheel(Sender: TObject; Shift: TShiftState; WheelDelta: Integer;
+  MousePos: TPoint; var Handled: Boolean);
+begin
+  Camera.AdjustDistanceToTarget(Power(1.1, WheelDelta / 120));
+end;
+
+procedure TFormFur.RenderDirectGLRender(Sender: TObject; var rci: TGLRenderContextInfo);
+var
+  v: TVector4f;
+begin
+  if (not InitDGL) then
+  begin
+    (*
+      if (not(GL_ARB_shader_objects and GL_ARB_vertex_program and GL_ARB_vertex_shader and
+      GL_ARB_fragment_shader)) then
+      begin
+      ShowMessage('Your hardware/driver doesn''t support GLSL and can''t execute this demo!');
+      Halt;
+      end;
+    *)
+    SetCurrentDir(Path + '\shader');
+    GLSLProg := TGLProgramHandle.CreateAndAllocate;
+    GLSLProg.AddShader(TGLVertexShaderHandle, LoadAnsiStringFromFile('Fur_vp.glsl'));
+    GLSLProg.AddShader(TGLFragmentShaderHandle,
+      LoadAnsiStringFromFile('Fur_fp.glsl'));
+    if (not GLSLProg.LinkProgram) then
+      raise Exception.Create(GLSLProg.InfoLog);
+    if (not GLSLProg.ValidateProgram) then
+      raise Exception.Create(GLSLProg.InfoLog);
+    gl.CheckError;
+    PrepareTextures;
+    InitDGL := True;
+  end;
+  v.X := 0.2196;
+  v.Y := 0.2202;
+  v.Z := 0.2202;
+  v.W := 1.0000;
+  if (InitDGL) and (not AltDGL) then
+  begin
+    with GLSLProg do
+    begin
+      UseProgramObject;
+      gl.ActiveTexture(GL_TEXTURE0_ARB);
+      gl.BindTexture(GL_TEXTURE_2D, MatLib.Materials[0].Material.Texture.Handle);
+      gl.ActiveTexture(GL_TEXTURE1_ARB);
+      gl.BindTexture(GL_TEXTURE_2D, MatLib.Materials[1].Material.Texture.Handle);
+      Uniform1f['shell_distance'] := 0.30000;
+      Uniform1f['pass_index'] := 0;
+      Uniform4f['furColorScale'] := v;
+      Uniform1i['FurColor'] := 1;
+      Uniform1i['Fur'] := 0;
+      DummyRender(Scene, rci);
+
+      gl.Enable(GL_BLEND);
+      gl.BlendFunc(GL_SRC_ALPHA, GL_ONE);
+      gl.BlendFunc(GL_DST_ALPHA, GL_ONE);
+      Uniform1f['pass_index'] := 1;
+      DummyRender(Scene, rci);
+
+      Uniform1f['pass_index'] := 2;
+      DummyRender(Scene, rci);
+
+      Uniform1f['pass_index'] := 3;
+      DummyRender(Scene, rci);
+
+      Uniform1f['pass_index'] := 4;
+      DummyRender(Scene, rci);
+
+      Uniform1f['pass_index'] := 5;
+      DummyRender(Scene, rci);
+
+      Uniform1f['pass_index'] := 6;
+      DummyRender(Scene, rci);
+
+      Uniform1f['pass_index'] := 7;
+      DummyRender(Scene, rci);
+
+      Uniform1f['pass_index'] := 8;
+      DummyRender(Scene, rci);
+
+      Uniform1f['pass_index'] := 9;
+      DummyRender(Scene, rci);
+
+      Uniform1f['pass_index'] := 10;
+      DummyRender(Scene, rci);
+
+      Uniform1f['pass_index'] := 11;
+      DummyRender(Scene, rci);
+
+      Uniform1f['pass_index'] := 12;
+      DummyRender(Scene, rci);
+
+      Uniform1f['pass_index'] := 13;
+      DummyRender(Scene, rci);
+
+      Uniform1f['pass_index'] := 14;
+      DummyRender(Scene, rci);
+
+      Uniform1f['pass_index'] := 15;
+      DummyRender(Scene, rci);
+      EndUseProgramObject;
+    end;
+  end;
+end;
+
+end.

+ 14 - 0
Demos/glslshaders/MandelbrotGLSL/GLSL_Mandelbrot.dpr

@@ -0,0 +1,14 @@
+{Mandelbrot demo by Grim}
+program GLSL_Mandelbrot;
+
+uses
+  Forms,
+  Unit1 in 'Unit1.pas' {Form1};
+
+{$R *.res}
+
+begin
+  Application.Initialize;
+  Application.CreateForm(TForm1, Form1);
+  Application.Run;
+end.

+ 1331 - 0
Demos/glslshaders/MandelbrotGLSL/GLSL_Mandelbrot.dproj

@@ -0,0 +1,1331 @@
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+    <PropertyGroup>
+        <ProjectGuid>{77B8162E-C52C-409E-9C53-FE8AB83847A4}</ProjectGuid>
+        <MainSource>GLSL_Mandelbrot.dpr</MainSource>
+        <Base>True</Base>
+        <Config Condition="'$(Config)'==''">Debug</Config>
+        <TargetedPlatforms>3</TargetedPlatforms>
+        <AppType>Application</AppType>
+        <FrameworkType>VCL</FrameworkType>
+        <ProjectVersion>19.4</ProjectVersion>
+        <Platform Condition="'$(Platform)'==''">Win32</Platform>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
+        <Base_Win32>true</Base_Win32>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''">
+        <Base_Win64>true</Base_Win64>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''">
+        <Cfg_1>true</Cfg_1>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win64)'!=''">
+        <Cfg_1_Win64>true</Cfg_1_Win64>
+        <CfgParent>Cfg_1</CfgParent>
+        <Cfg_1>true</Cfg_1>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''">
+        <Cfg_2>true</Cfg_2>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''">
+        <Cfg_2_Win32>true</Cfg_2_Win32>
+        <CfgParent>Cfg_2</CfgParent>
+        <Cfg_2>true</Cfg_2>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win64)'!=''">
+        <Cfg_2_Win64>true</Cfg_2_Win64>
+        <CfgParent>Cfg_2</CfgParent>
+        <Cfg_2>true</Cfg_2>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Base)'!=''">
+        <VerInfo_Locale>1049</VerInfo_Locale>
+        <DCC_S>false</DCC_S>
+        <SanitizedProjectName>GLSL_Mandelbrot</SanitizedProjectName>
+        <DCC_E>false</DCC_E>
+        <DCC_K>false</DCC_K>
+        <DCC_F>false</DCC_F>
+        <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName=</VerInfo_Keys>
+        <DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;$(DCC_Namespace)</DCC_Namespace>
+        <DCC_N>false</DCC_N>
+        <DCC_ImageBase>00400000</DCC_ImageBase>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Base_Win32)'!=''">
+        <UWP_DelphiLogo150>$(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png</UWP_DelphiLogo150>
+        <UWP_DelphiLogo44>$(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png</UWP_DelphiLogo44>
+        <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
+        <VerInfo_Locale>1033</VerInfo_Locale>
+        <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+        <Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
+        <VerInfo_Keys>CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(ModuleName);FileDescription=$(ModuleName);ProductName=$(ModuleName)</VerInfo_Keys>
+        <DCC_Namespace>System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Base_Win64)'!=''">
+        <DCC_Namespace>System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace)</DCC_Namespace>
+        <Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
+        <UWP_DelphiLogo44>$(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png</UWP_DelphiLogo44>
+        <UWP_DelphiLogo150>$(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png</UWP_DelphiLogo150>
+        <VerInfo_Locale>1033</VerInfo_Locale>
+        <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+        <VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=</VerInfo_Keys>
+        <BT_BuildType>Debug</BT_BuildType>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_1)'!=''">
+        <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
+        <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
+        <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
+        <DCC_DebugInformation>0</DCC_DebugInformation>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_1_Win64)'!=''">
+        <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
+        <AppDPIAwarenessMode>PerMonitor</AppDPIAwarenessMode>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_2)'!=''">
+        <DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
+        <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
+        <DCC_Optimize>false</DCC_Optimize>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_2_Win32)'!=''">
+        <BT_BuildType>Debug</BT_BuildType>
+        <DCC_ExeOutput>.</DCC_ExeOutput>
+        <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+        <VerInfo_Locale>1033</VerInfo_Locale>
+        <VerInfo_Keys>CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName)</VerInfo_Keys>
+        <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
+        <Icon_MainIcon>$(BDS)\bin\delphi_PROJECTICON.ico</Icon_MainIcon>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_2_Win64)'!=''">
+        <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
+        <AppDPIAwarenessMode>PerMonitor</AppDPIAwarenessMode>
+    </PropertyGroup>
+    <ItemGroup>
+        <DelphiCompile Include="$(MainSource)">
+            <MainSource>MainSource</MainSource>
+        </DelphiCompile>
+        <DCCReference Include="Unit1.pas">
+            <Form>Form1</Form>
+        </DCCReference>
+        <None Include="Shaders\Mandelbrot.frag"/>
+        <None Include="Shaders\Mandelbrot.vert"/>
+        <BuildConfiguration Include="Base">
+            <Key>Base</Key>
+        </BuildConfiguration>
+        <BuildConfiguration Include="Release">
+            <Key>Cfg_1</Key>
+            <CfgParent>Base</CfgParent>
+        </BuildConfiguration>
+        <BuildConfiguration Include="Debug">
+            <Key>Cfg_2</Key>
+            <CfgParent>Base</CfgParent>
+        </BuildConfiguration>
+    </ItemGroup>
+    <ProjectExtensions>
+        <Borland.Personality>Delphi.Personality.12</Borland.Personality>
+        <Borland.ProjectType/>
+        <BorlandProject>
+            <Delphi.Personality>
+                <Source>
+                    <Source Name="MainSource">GLSL_Mandelbrot.dpr</Source>
+                </Source>
+                <Excluded_Packages>
+                    <Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\GLScene_SDL_DT.bpl">File C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\GLScene_SDL_DT.bpl not found</Excluded_Packages>
+                    <Excluded_Packages Name="$(BDSBIN)\bcboffice2k280.bpl">Embarcadero C++Builder Office 2000 Servers Package</Excluded_Packages>
+                    <Excluded_Packages Name="$(BDSBIN)\bcbofficexp280.bpl">Embarcadero C++Builder Office XP Servers Package</Excluded_Packages>
+                    <Excluded_Packages Name="$(BDSBIN)\dcloffice2k280.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
+                    <Excluded_Packages Name="$(BDSBIN)\dclofficexp280.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
+                </Excluded_Packages>
+            </Delphi.Personality>
+            <Platforms>
+                <Platform value="Win32">True</Platform>
+                <Platform value="Win64">True</Platform>
+            </Platforms>
+            <Deployment Version="3">
+                <DeployFile LocalName="GLSL_Mandelbrot.exe" Configuration="Debug" Class="ProjectOutput">
+                    <Platform Name="Win32">
+                        <RemoteName>GLSL_Mandelbrot.exe</RemoteName>
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployFile LocalName="Shaders\Mandelbrot.frag" Configuration="Debug" Class="ProjectFile">
+                    <Platform Name="Win32">
+                        <RemoteDir>.\</RemoteDir>
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployFile LocalName="Shaders\Mandelbrot.frag" Configuration="Debug" Class="ProjectFile">
+                    <Platform Name="Win64">
+                        <RemoteDir>.\</RemoteDir>
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployFile LocalName="Shaders\Mandelbrot.vert" Configuration="Debug" Class="ProjectFile">
+                    <Platform Name="Win32">
+                        <RemoteDir>.\</RemoteDir>
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployFile LocalName="Shaders\Mandelbrot.vert" Configuration="Debug" Class="ProjectFile">
+                    <Platform Name="Win64">
+                        <RemoteDir>.\</RemoteDir>
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployFile LocalName="\GLSL_Mandelbrot.exe" Configuration="Debug" Class="ProjectOutput">
+                    <Platform Name="Win64">
+                        <RemoteName>GLSL_Mandelbrot.exe</RemoteName>
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployClass Name="AdditionalDebugSymbols">
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Win32">
+                        <Operation>0</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidClasses">
+                    <Platform Name="Android">
+                        <RemoteDir>classes</RemoteDir>
+                        <Operation>64</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>classes</RemoteDir>
+                        <Operation>64</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidClassesDexFile">
+                    <Platform Name="Android">
+                        <RemoteDir>classes</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidFileProvider">
+                    <Platform Name="Android">
+                        <RemoteDir>res\xml</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\xml</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidGDBServer">
+                    <Platform Name="Android">
+                        <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidLibnativeArmeabiFile">
+                    <Platform Name="Android">
+                        <RemoteDir>library\lib\armeabi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\armeabi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidLibnativeArmeabiv7aFile">
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidLibnativeMipsFile">
+                    <Platform Name="Android">
+                        <RemoteDir>library\lib\mips</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\mips</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidServiceOutput">
+                    <Platform Name="Android">
+                        <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\arm64-v8a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidServiceOutput_Android32">
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidSplashImageDef">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidSplashStyles">
+                    <Platform Name="Android">
+                        <RemoteDir>res\values</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\values</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidSplashStylesV21">
+                    <Platform Name="Android">
+                        <RemoteDir>res\values-v21</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\values-v21</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_Colors">
+                    <Platform Name="Android">
+                        <RemoteDir>res\values</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\values</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_DefaultAppIcon">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_LauncherIcon144">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-xxhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-xxhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_LauncherIcon192">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-xxxhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-xxxhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_LauncherIcon36">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-ldpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-ldpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_LauncherIcon48">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-mdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-mdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_LauncherIcon72">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-hdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-hdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_LauncherIcon96">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-xhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-xhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_NotificationIcon24">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-mdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-mdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_NotificationIcon36">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-hdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-hdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_NotificationIcon48">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-xhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-xhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_NotificationIcon72">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-xxhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-xxhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_NotificationIcon96">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-xxxhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-xxxhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_SplashImage426">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-small</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-small</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_SplashImage470">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-normal</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-normal</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_SplashImage640">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-large</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-large</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_SplashImage960">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-xlarge</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-xlarge</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_Strings">
+                    <Platform Name="Android">
+                        <RemoteDir>res\values</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\values</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="DebugSymbols">
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Win32">
+                        <Operation>0</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="DependencyFramework">
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.framework</Extensions>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.framework</Extensions>
+                    </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.framework</Extensions>
+                    </Platform>
+                    <Platform Name="Win32">
+                        <Operation>0</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="DependencyModule">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="Win32">
+                        <Operation>0</Operation>
+                        <Extensions>.dll;.bpl</Extensions>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Required="true" Name="DependencyPackage">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="Win32">
+                        <Operation>0</Operation>
+                        <Extensions>.bpl</Extensions>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="File">
+                    <Platform Name="Android">
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice32">
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\Resources\StartUp\</RemoteDir>
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents\Resources\StartUp\</RemoteDir>
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents\Resources\StartUp\</RemoteDir>
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="Win32">
+                        <Operation>0</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iOS_AppStore1024">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_AppIcon152">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_AppIcon167">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch1024">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch1024x768">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch1536">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch1536x2048">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch1668">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch1668x2388">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch2048">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch2048x1536">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch2048x2732">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch2224">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch2388x1668">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch2732x2048">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch2x">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch768">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch768x1024">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_LaunchDark2x">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Notification40">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Setting58">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_SpotLight80">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_AppIcon120">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_AppIcon180">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch1125">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch1136x640">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch1242">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch1242x2688">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch1334">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch1792">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch2208">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch2436">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch2688x1242">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch2x">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch320">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch3x">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch640">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch640x1136">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch750">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch828">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_LaunchDark2x">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_LaunchDark3x">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Notification40">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Notification60">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Setting58">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Setting87">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Spotlight120">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Spotlight80">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectAndroidManifest">
+                    <Platform Name="Android">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectiOSDeviceDebug">
+                    <Platform Name="iOSDevice32">
+                        <RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectiOSDeviceResourceRules">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectiOSEntitlements">
+                    <Platform Name="iOSDevice32">
+                        <RemoteDir>..\</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectiOSInfoPList">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectiOSLaunchScreen">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen</RemoteDir>
+                        <Operation>64</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen</RemoteDir>
+                        <Operation>64</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectiOSResource">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectOSXDebug">
+                    <Platform Name="OSX64">
+                        <RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectOSXEntitlements">
+                    <Platform Name="OSX32">
+                        <RemoteDir>..\</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>..\</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>..\</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectOSXInfoPList">
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectOSXResource">
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\Resources</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents\Resources</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents\Resources</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Required="true" Name="ProjectOutput">
+                    <Platform Name="Android">
+                        <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\arm64-v8a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Linux64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Win32">
+                        <Operation>0</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectOutput_Android32">
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectUWPManifest">
+                    <Platform Name="Win32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Win64">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="UWP_DelphiLogo150">
+                    <Platform Name="Win32">
+                        <RemoteDir>Assets</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Win64">
+                        <RemoteDir>Assets</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="UWP_DelphiLogo44">
+                    <Platform Name="Win32">
+                        <RemoteDir>Assets</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Win64">
+                        <RemoteDir>Assets</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="OSXARM64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
+            </Deployment>
+        </BorlandProject>
+        <ProjectFileVersion>12</ProjectFileVersion>
+    </ProjectExtensions>
+    <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
+    <Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/>
+    <Import Project="$(MSBuildProjectName).deployproj" Condition="Exists('$(MSBuildProjectName).deployproj')"/>
+</Project>

+ 32 - 0
Demos/glslshaders/MandelbrotGLSL/Shaders/Mandelbrot.frag

@@ -0,0 +1,32 @@
+#define MAX_ITER 64.0
+
+varying vec2 pixel;
+
+uniform float positionX;
+uniform float positionY;
+uniform float scale;
+
+uniform sampler2D colorMap;
+
+void main() {
+	float x, y, x0, y0;
+	x = x0 = (pixel.x * scale + positionX);
+	y = y0 = (pixel.y * scale + positionY);
+
+	float x2 = x*x;
+	float y2 = y*y;
+
+	float iteration = 0.0;
+
+	while(x2 + y2 < 4.0 && iteration < MAX_ITER) {
+ 		y = 2.0 * x * y + y0;
+	        x = x2 - y2 + x0;
+
+		x2 = x*x;     
+		y2 = y*y;
+
+		iteration++;
+	};
+					 
+	gl_FragColor = texture2D(colorMap, vec2(iteration/MAX_ITER, iteration/MAX_ITER));
+}

+ 7 - 0
Demos/glslshaders/MandelbrotGLSL/Shaders/Mandelbrot.vert

@@ -0,0 +1,7 @@
+varying vec2 pixel;
+
+void main() 
+{
+	gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
+	pixel = gl_Position.xy;
+}

BIN
Demos/glslshaders/MandelbrotGLSL/Textures/colormap.jpg


BIN
Demos/glslshaders/MandelbrotGLSL/Textures/hot_metal.bmp


BIN
Demos/glslshaders/MandelbrotGLSL/Textures/rainbow.bmp


+ 94 - 0
Demos/glslshaders/MandelbrotGLSL/Unit1.dfm

@@ -0,0 +1,94 @@
+object Form1: TForm1
+  Left = 237
+  Top = 172
+  Caption = 'Mandelbrot'
+  ClientHeight = 621
+  ClientWidth = 795
+  Color = clBtnFace
+  Font.Charset = DEFAULT_CHARSET
+  Font.Color = clWindowText
+  Font.Height = -13
+  Font.Name = 'MS Sans Serif'
+  Font.Style = []
+  Position = poScreenCenter
+  OnCreate = FormCreate
+  OnMouseWheel = FormMouseWheel
+  PixelsPerInch = 120
+  TextHeight = 16
+  object Viewer: TGLSceneViewer
+    Left = 0
+    Top = 0
+    Width = 795
+    Height = 621
+    Margins.Left = 4
+    Margins.Top = 4
+    Margins.Right = 4
+    Margins.Bottom = 4
+    Camera = GLCamera
+    Buffer.BackgroundColor = 16492697
+    FieldOfView = 161.704315185546900000
+    PenAsTouch = False
+    Align = alClient
+    TabOrder = 0
+  end
+  object Scene: TGLScene
+    Left = 16
+    Top = 16
+    object Mandelbrot: TGLDirectOpenGL
+      UseBuildList = False
+      OnRender = MandelbrotRender
+      Blend = False
+    end
+    object GLHUDText: TGLHUDText
+      Position.Coordinates = {0000204100002041000000000000803F}
+      BitmapFont = GLWindowsBitmapFont
+      Rotation = 0.000000000000000000
+    end
+    object GLCamera: TGLCamera
+      DepthOfView = 100.000000000000000000
+      FocalLength = 50.000000000000000000
+      TargetObject = Mandelbrot
+    end
+  end
+  object Timer1: TTimer
+    Interval = 100
+    OnTimer = Timer1Timer
+    Left = 344
+    Top = 16
+  end
+  object GLCadencer: TGLCadencer
+    Scene = Scene
+    OnProgress = GLCadencerProgress
+    Left = 96
+    Top = 16
+  end
+  object GLMatLib: TGLMaterialLibrary
+    Materials = <
+      item
+        Name = 'LibMaterial'
+        Tag = 0
+        Material.Texture.ImageClassName = 'TGLPicFileImage'
+        Material.Texture.Disabled = False
+      end>
+    Left = 24
+    Top = 72
+  end
+  object OpenDialog1: TOpenDialog
+    DefaultExt = 'bmp'
+    Filter = 
+      'All graphic files|*.bmp; *.jpg; *.jpeg; *.tga|JPEG|*.jpg; *.jpeg' +
+      '|TGA|*.tga|Bitmaps|*.bmp'
+    Title = 'Open Bitmap'
+    Left = 472
+    Top = 16
+  end
+  object GLWindowsBitmapFont: TGLWindowsBitmapFont
+    Font.Charset = RUSSIAN_CHARSET
+    Font.Color = clWhite
+    Font.Height = -11
+    Font.Name = 'Verdana'
+    Font.Style = []
+    Left = 192
+    Top = 16
+  end
+end

+ 200 - 0
Demos/glslshaders/MandelbrotGLSL/Unit1.pas

@@ -0,0 +1,200 @@
+unit Unit1;
+
+interface
+
+uses
+  Winapi.Windows,
+  Winapi.Messages,
+  Winapi.OpenGL,
+  Winapi.OpenGLext,
+  System.SysUtils,
+  System.Variants,
+  System.Classes,
+  Vcl.Graphics,
+  Vcl.Controls,
+  Vcl.Forms,
+  Vcl.Dialogs,
+  Vcl.ExtCtrls,
+  Vcl.StdCtrls,
+  Vcl.Imaging.Jpeg,
+
+  GLS.SceneViewer,
+  GLS.Texture,
+  GLS.Cadencer,
+  GLS.Scene,
+  GLS.Context,
+  GLS.Keyboard,
+  GLS.Utils,
+  GLS.FileTGA,
+  GLS.HUDObjects,
+  GLS.BitmapFont,
+  GLS.WindowsFont,
+  GLS.Material,
+  GLS.Coordinates,
+  
+  GLS.RenderContextInfo,
+  GLS.BaseClasses, 
+  GLSL.CustomShader, 
+  GLSL.Shader;
+
+type
+  TForm1 = class(TForm)
+    Scene: TGLScene;
+    Timer1: TTimer;
+    Viewer: TGLSceneViewer;
+    GLCadencer: TGLCadencer;
+    Mandelbrot: TGLDirectOpenGL;
+    GLMatLib: TGLMaterialLibrary;
+    GLCamera: TGLCamera;
+    OpenDialog1: TOpenDialog;
+    GLHUDText: TGLHUDText;
+    GLWindowsBitmapFont: TGLWindowsBitmapFont;
+    procedure FormCreate(Sender: TObject);
+    procedure Timer1Timer(Sender: TObject);
+    procedure GLCadencerProgress(Sender: TObject;
+      const deltaTime, newTime: Double);
+    procedure FormMouseWheel(Sender: TObject; Shift: TShiftState;
+      WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
+    procedure MandelbrotRender(Sender: TObject; var rci: TGLRenderContextInfo);
+  public
+    MandelbrotProgram: TGLProgramHandle;
+  end;
+
+const
+  HELP_TEXT = '+: Zoom in'#13#10 + '-: Zoom out'#13#10 +
+    'Arrow keys: Move around'#13#10 + 'F3: Load colormap';
+
+var
+  Form1: TForm1;
+  PositionX, PositionY, Scale: Single;
+
+implementation
+
+{$R *.dfm}
+
+procedure TForm1.FormCreate(Sender: TObject);
+begin
+  SetCurrentDir(ExtractFilePath(ParamStr(0)));
+  PositionX := -0.5;
+  PositionY := 0.0;
+  Scale := 1.0;
+  with GLMatLib do
+  begin
+    Materials[0].Material.Texture.Image.LoadFromFile('Textures\hot_metal.bmp');
+  end;
+
+  GLHUDText.Text := HELP_TEXT;
+end;
+
+procedure TForm1.Timer1Timer(Sender: TObject);
+begin
+  Caption := Format('Mandelbrot %.1f FPS', [Viewer.FramesPerSecond]);
+
+  Viewer.ResetPerformanceMonitor;
+end;
+
+procedure TForm1.GLCadencerProgress(Sender: TObject;
+  const deltaTime, newTime: Double);
+var
+  deltax, deltay: Single;
+  pt: TPoint;
+begin
+  if IsKeyDown(VK_F3) then
+    if OpenDialog1.Execute then
+      GLMatLib.Materials[0].Material.Texture.Image.LoadFromFile
+        (OpenDialog1.FileName);
+
+  if IsKeyDown('+') or IsKeyDown(VK_ADD) then
+    Scale := Scale * 1.0 / (1.0 + deltaTime * 0.5);
+
+  if IsKeyDown('-') or IsKeyDown(VK_SUBTRACT) then
+    Scale := Scale * (1.0 + deltaTime * 0.5);
+
+  if IsKeyDown(VK_UP) or IsKeyDown(VK_NUMPAD8) then
+    PositionY := PositionY + deltaTime * Scale * 0.5;
+
+  if IsKeyDown(VK_DOWN) or IsKeyDown(VK_NUMPAD2) then
+    PositionY := PositionY - deltaTime * Scale * 0.5;
+
+  if IsKeyDown(VK_RIGHT) or IsKeyDown(VK_NUMPAD6) then
+    PositionX := PositionX + deltaTime * Scale * 0.5;
+
+  if IsKeyDown(VK_LEFT) or IsKeyDown(VK_NUMPAD4) then
+    PositionX := PositionX - deltaTime * Scale * 0.5;
+
+  Viewer.Invalidate;
+end;
+
+procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;
+  WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
+var
+  DistDelta: Single;
+begin
+end;
+
+procedure TForm1.MandelbrotRender(Sender: TObject;
+  var rci: TGLRenderContextInfo);
+begin
+  // shader init
+  if not Assigned(MandelbrotProgram) then
+  begin
+    MandelbrotProgram := TGLProgramHandle.CreateAndAllocate;
+
+    MandelbrotProgram.AddShader(TGLFragmentShaderHandle,
+      String(LoadAnsiStringFromFile('Shaders\Mandelbrot.frag')), True);
+
+    MandelbrotProgram.AddShader(TGLVertexShaderHandle,
+      String(LoadAnsiStringFromFile('Shaders\Mandelbrot.vert')), True);
+
+    if not MandelbrotProgram.LinkProgram then
+      raise Exception.Create(MandelbrotProgram.InfoLog);
+
+    if not MandelbrotProgram.ValidateProgram then
+      raise Exception.Create(MandelbrotProgram.InfoLog);
+  end;
+
+  glPushAttrib(GL_ALL_ATTRIB_BITS);
+  glMatrixMode(GL_MODELVIEW);
+  glPushMatrix;
+  glLoadIdentity;
+  glMatrixMode(GL_PROJECTION);
+  glPushMatrix;
+  glLoadIdentity;
+
+  MandelbrotProgram.UseProgramObject;
+
+  MandelbrotProgram.Uniform1f['positionX'] := PositionX;
+  MandelbrotProgram.Uniform1f['positionY'] := PositionY;
+  MandelbrotProgram.Uniform1f['scale'] := Scale;
+
+  glEnable(GL_TEXTURE_2D);
+  glBindTexture(GL_TEXTURE_2D, GLMatLib.Materials[0].Material.Texture.Handle);
+  MandelbrotProgram.Uniform1i['colorMap'] := 0;
+
+  // drawing rectangle over screen
+  glDisable(GL_DEPTH_TEST);
+  glDisable(GL_LIGHTING);
+
+  glBegin(GL_QUADS);
+  glTexCoord2f(0.0, 0.0);
+  glVertex2f(-1.0, -1.0);
+  glTexCoord2f(1.0, 0.0);
+  glVertex2f(1.0, -1.0);
+
+  glTexCoord2f(1.0, 1.0);
+  glVertex2f(1.0, 1.0);
+  glTexCoord2f(0.0, 1.0);
+  glVertex2f(-1.0, 1.0);
+  glEnd;
+
+  MandelbrotProgram.EndUseProgramObject;
+
+  glPopMatrix;
+  glMatrixMode(GL_MODELVIEW);
+  glPopMatrix;
+  glPopAttrib;
+
+  /// -CheckOpenGLError;
+end;
+
+end.

+ 1 - 1
Demos/glslshaders/aGLSLShaders.htm

@@ -110,7 +110,7 @@ ul
 <p class=MsoNormal><img border=0 width=438 height=316 src=ShaderComponent.jpg></p>
 
 <ul style='margin-top:0cm' type=disc>
- <li class=MsoNormal><span lang=FR><a href="Ocean/OceanD.dpr"><b>Ocean</b></a><b>&nbsp;:</b></span></li>
+ <li class=MsoNormal><span lang=FR><a href="OceanShader/OceanD.dpr"><b>Ocean</b></a><b>&nbsp;:</b></span></li>
  <ul style='margin-top:0cm' type=circle>
   <li class=MsoNormal><span lang=FR>GLSL shader ocean. Yes, it’s almost real
       ocean waves. </span></li>

+ 13 - 0
Demos/interface/cursorcross/CrossCursor.dpr

@@ -0,0 +1,13 @@
+program CrossCursor;
+
+uses
+  Forms,
+  fCrossCursor in 'fCrossCursor.pas' {Form1};
+
+{$R *.res}
+
+begin
+  Application.Initialize;
+  Application.CreateForm(TForm1, Form1);
+  Application.Run;
+end.

+ 136 - 0
Demos/interface/cursorcross/CrossCursor.dproj

@@ -0,0 +1,136 @@
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+    <PropertyGroup>
+        <ProjectGuid>{030B77D7-D8D8-43E6-9987-969187B76CF0}</ProjectGuid>
+        <MainSource>CrossCursor.dpr</MainSource>
+        <Base>True</Base>
+        <Config Condition="'$(Config)'==''">Debug</Config>
+        <TargetedPlatforms>129</TargetedPlatforms>
+        <AppType>Application</AppType>
+        <FrameworkType>VCL</FrameworkType>
+        <ProjectVersion>19.4</ProjectVersion>
+        <Platform Condition="'$(Platform)'==''">Win32</Platform>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
+        <Base_Win32>true</Base_Win32>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''">
+        <Base_Win64>true</Base_Win64>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''">
+        <Cfg_1>true</Cfg_1>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_1)'=='true') or '$(Cfg_1_Win32)'!=''">
+        <Cfg_1_Win32>true</Cfg_1_Win32>
+        <CfgParent>Cfg_1</CfgParent>
+        <Cfg_1>true</Cfg_1>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''">
+        <Cfg_2>true</Cfg_2>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''">
+        <Cfg_2_Win32>true</Cfg_2_Win32>
+        <CfgParent>Cfg_2</CfgParent>
+        <Cfg_2>true</Cfg_2>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Base)'!=''">
+        <DCC_E>false</DCC_E>
+        <DCC_F>false</DCC_F>
+        <DCC_K>false</DCC_K>
+        <DCC_N>false</DCC_N>
+        <DCC_S>false</DCC_S>
+        <DCC_ImageBase>00400000</DCC_ImageBase>
+        <SanitizedProjectName>CrossCursor</SanitizedProjectName>
+        <DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;GLS;$(DCC_Namespace)</DCC_Namespace>
+        <VerInfo_Locale>1049</VerInfo_Locale>
+        <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName=</VerInfo_Keys>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Base_Win32)'!=''">
+        <DCC_Namespace>Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
+        <BT_BuildType>Debug</BT_BuildType>
+        <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+        <VerInfo_Keys>CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName)</VerInfo_Keys>
+        <VerInfo_Locale>1033</VerInfo_Locale>
+        <Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
+        <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
+        <UWP_DelphiLogo44>$(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png</UWP_DelphiLogo44>
+        <UWP_DelphiLogo150>$(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png</UWP_DelphiLogo150>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Base_Win64)'!=''">
+        <UWP_DelphiLogo44>$(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png</UWP_DelphiLogo44>
+        <UWP_DelphiLogo150>$(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png</UWP_DelphiLogo150>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_1)'!=''">
+        <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
+        <DCC_DebugInformation>0</DCC_DebugInformation>
+        <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
+        <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
+        <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
+        <AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_2)'!=''">
+        <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
+        <DCC_Optimize>false</DCC_Optimize>
+        <DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
+        <DCC_RangeChecking>true</DCC_RangeChecking>
+        <DCC_IntegerOverflowCheck>true</DCC_IntegerOverflowCheck>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_2_Win32)'!=''">
+        <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
+        <AppDPIAwarenessMode>PerMonitorV2</AppDPIAwarenessMode>
+    </PropertyGroup>
+    <ItemGroup>
+        <DelphiCompile Include="$(MainSource)">
+            <MainSource>MainSource</MainSource>
+        </DelphiCompile>
+        <DCCReference Include="fCrossCursor.pas">
+            <Form>Form1</Form>
+        </DCCReference>
+        <BuildConfiguration Include="Base">
+            <Key>Base</Key>
+        </BuildConfiguration>
+        <BuildConfiguration Include="Release">
+            <Key>Cfg_1</Key>
+            <CfgParent>Base</CfgParent>
+        </BuildConfiguration>
+        <BuildConfiguration Include="Debug">
+            <Key>Cfg_2</Key>
+            <CfgParent>Base</CfgParent>
+        </BuildConfiguration>
+    </ItemGroup>
+    <ProjectExtensions>
+        <Borland.Personality>Delphi.Personality.12</Borland.Personality>
+        <Borland.ProjectType/>
+        <BorlandProject>
+            <Delphi.Personality>
+                <Source>
+                    <Source Name="MainSource">CrossCursor.dpr</Source>
+                </Source>
+            </Delphi.Personality>
+            <Platforms>
+                <Platform value="Linux64">True</Platform>
+                <Platform value="Win32">True</Platform>
+                <Platform value="Win64">False</Platform>
+            </Platforms>
+            <Deployment> </Deployment>
+        </BorlandProject>
+        <ProjectFileVersion>12</ProjectFileVersion>
+    </ProjectExtensions>
+    <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
+    <Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/>
+    <Import Project="$(MSBuildProjectName).deployproj" Condition="Exists('$(MSBuildProjectName).deployproj')"/>
+</Project>

+ 78 - 0
Demos/interface/cursorcross/fCrossCursor.dfm

@@ -0,0 +1,78 @@
+object Form1: TForm1
+  Left = 271
+  Top = 212
+  Caption = 'Cross Cursor'
+  ClientHeight = 553
+  ClientWidth = 782
+  Color = clBtnFace
+  Font.Charset = DEFAULT_CHARSET
+  Font.Color = clWindowText
+  Font.Height = -11
+  Font.Name = 'MS Sans Serif'
+  Font.Style = []
+  Position = poScreenCenter
+  OnClose = FormClose
+  TextHeight = 13
+  object vp: TGLSceneViewer
+    Left = 0
+    Top = 0
+    Width = 782
+    Height = 553
+    Camera = Camera
+    Buffer.ContextOptions = [roDoubleBuffer]
+    FieldOfView = 149.647628784179700000
+    PenAsTouch = False
+    Align = alClient
+    OnMouseMove = vpMouseMove
+    TabOrder = 0
+  end
+  object GLScene1: TGLScene
+    Left = 8
+    Top = 8
+    object Player: TGLDummyCube
+      ShowAxes = True
+      CubeSize = 1.000000000000000000
+      object Actor: TGLCone
+        Direction.Coordinates = {00000000000080BF0000000000000000}
+        PitchAngle = -90.000000000000000000
+        Up.Coordinates = {00000000000000000000803F00000000}
+        BottomRadius = 0.500000000000000000
+        Height = 1.000000000000000000
+      end
+    end
+    object PlaneTarget: TGLPlane
+      Material.FrontProperties.Diffuse.Color = {0000803F00000000000000000000803F}
+      Material.FrontProperties.Emission.Color = {0000803F00000000000000000000803F}
+      Material.BlendingMode = bmTransparency
+      Material.Texture.ImageClassName = 'TGLPicFileImage'
+      Material.Texture.Image.PictureFileName = 'tp.tga'
+      Material.Texture.MinFilter = miLinear
+      Material.Texture.TextureMode = tmModulate
+      Material.Texture.TextureWrap = twNone
+      Material.Texture.TextureFormat = tfRGBA16
+      Material.Texture.Disabled = False
+      Direction.Coordinates = {000000000000803F0000000000000000}
+      ShowAxes = True
+      Up.Coordinates = {0000000000000000000080BF00000000}
+      Height = 1.000000000000000000
+      Width = 1.000000000000000000
+    end
+    object Camera: TGLCamera
+      DepthOfView = 100.000000000000000000
+      FocalLength = 75.000000000000000000
+      TargetObject = Player
+      Position.Coordinates = {0000000000002041000080BF0000803F}
+      object GLLightSource1: TGLLightSource
+        ConstAttenuation = 1.000000000000000000
+        SpotCutOff = 180.000000000000000000
+      end
+    end
+  end
+  object GLCadencer1: TGLCadencer
+    Scene = GLScene1
+    FixedDeltaTime = 0.025000000000000000
+    OnProgress = GLCadencer1Progress
+    Left = 8
+    Top = 40
+  end
+end

+ 93 - 0
Demos/interface/cursorcross/fCrossCursor.pas

@@ -0,0 +1,93 @@
+unit fCrossCursor;
+
+interface
+
+uses
+  Windows,
+  Messages,
+  SysUtils,
+  Variants,
+  Classes,
+  Math,
+  Graphics,
+  Controls,
+  Forms,
+  Dialogs,
+  GLS.Scene,
+  GLS.Cadencer,
+  GLS.Objects,
+  GLS.GeomObjects,
+  GLS.SceneViewer,
+  GLS.VectorGeometry,
+  GLS.VectorTypes,
+  GLS.FileTGA,
+  GLS.Coordinates,
+  GLS.GLS.BaseClasses;
+
+type
+  TForm1 = class(TForm)
+    GLScene1: TGLScene;
+    vp: TGLSceneViewer;
+    Camera: TGLCamera;
+    Player: TGLDummyCube;
+    Actor: TGLCone;
+    GLCadencer1: TGLCadencer;
+    GLLightSource1: TGLLightSource;
+    PlaneTarget: TGLPlane;
+    procedure vpMouseMove(Sender: TObject; Shift: TShiftState;
+      X, Y: Integer);
+    procedure FormClose(Sender: TObject; var Action: TCloseAction);
+    procedure GLCadencer1Progress(Sender: TObject; const deltaTime,
+      newTime: Double);
+  private
+    { Private declarations }
+  public
+    { Public declarations }
+  end;
+
+var
+  Form1: TForm1;
+
+  _mx,_my:integer;
+  _look:boolean=false;
+
+implementation
+
+{$R *.dfm}
+
+procedure TForm1.vpMouseMove(Sender:TObject;Shift:TShiftState;X,Y:Integer);
+var
+   d,c:single;
+begin
+  _mx:=x;
+  _my:=y;
+  _look:=true;
+  {
+  d := round(Form1.GLSceneViewer1.Width / 2);
+  c := round(Form1.GLSceneViewer1.Height / 2);
+  Form1.Actor.RollAngle := round(NormalizeDegAngle(radtodeg(arctan2(X - d + 32, Y - c + 32))));
+  Form1.Caption := inttostr(round(NormalizeDegAngle(radtodeg(arctan2(X - d + 32, Y - c + 32)))));
+  }
+end;
+
+procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
+begin
+  glcadencer1.Enabled:=false;
+  vp.Free;
+end;
+
+procedure TForm1.GLCadencer1Progress(Sender: TObject; const deltaTime,
+  newTime: Double);
+var v:TVector4f;
+begin
+  PlaneTarget.Roll(deltatime*50);
+
+  if _look then begin
+    vp.Buffer.ScreenVectorIntersectWithPlane(vectormake(_mx,vp.height-_my,0),player.AbsolutePosition,player.AbsoluteUp,v);
+    PlaneTarget.AbsolutePosition:=v;
+    player.PointTo(v,player.AbsoluteUp);
+    _look:=false;
+    end;
+end;
+
+end.

BIN
Demos/interface/cursorcross/tp.tga


+ 18 - 0
Demos/specialsFX/PFXCursor/PfxCursor.dpr

@@ -0,0 +1,18 @@
+(*
+   PFX Cursor Demo
+   Use the mouse left and right buttons
+   to change cursor TGLHUDSprite
+*)
+program PfxCursor;
+
+uses
+  Forms,
+  fPfxCursor in 'fPfxCursor.pas';
+
+{$R *.res}
+
+begin
+  Application.Initialize;
+  Application.CreateForm(TForm1, Form1);
+  Application.Run;
+end.

+ 1046 - 0
Demos/specialsFX/PFXCursor/PfxCursor.dproj

@@ -0,0 +1,1046 @@
+<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+    <PropertyGroup>
+        <ProjectGuid>{51F85A14-91D8-4A96-901C-7ECAB6BD08EA}</ProjectGuid>
+        <MainSource>PfxCursor.dpr</MainSource>
+        <Base>True</Base>
+        <Config Condition="'$(Config)'==''">Debug</Config>
+        <TargetedPlatforms>1</TargetedPlatforms>
+        <AppType>Application</AppType>
+        <FrameworkType>VCL</FrameworkType>
+        <ProjectVersion>19.4</ProjectVersion>
+        <Platform Condition="'$(Platform)'==''">Win32</Platform>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Base)'=='true') or '$(Base_Win32)'!=''">
+        <Base_Win32>true</Base_Win32>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win64' and '$(Base)'=='true') or '$(Base_Win64)'!=''">
+        <Base_Win64>true</Base_Win64>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Release' or '$(Cfg_1)'!=''">
+        <Cfg_1>true</Cfg_1>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Config)'=='Debug' or '$(Cfg_2)'!=''">
+        <Cfg_2>true</Cfg_2>
+        <CfgParent>Base</CfgParent>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="('$(Platform)'=='Win32' and '$(Cfg_2)'=='true') or '$(Cfg_2_Win32)'!=''">
+        <Cfg_2_Win32>true</Cfg_2_Win32>
+        <CfgParent>Cfg_2</CfgParent>
+        <Cfg_2>true</Cfg_2>
+        <Base>true</Base>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Base)'!=''">
+        <DCC_S>false</DCC_S>
+        <VerInfo_Locale>1049</VerInfo_Locale>
+        <DCC_K>false</DCC_K>
+        <DCC_F>false</DCC_F>
+        <DCC_N>false</DCC_N>
+        <VerInfo_Keys>CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName=</VerInfo_Keys>
+        <DCC_E>false</DCC_E>
+        <SanitizedProjectName>PfxCursor</SanitizedProjectName>
+        <DCC_ImageBase>00400000</DCC_ImageBase>
+        <DCC_Namespace>Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;$(DCC_Namespace)</DCC_Namespace>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Base_Win32)'!=''">
+        <UWP_DelphiLogo44>$(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png</UWP_DelphiLogo44>
+        <UWP_DelphiLogo150>$(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png</UWP_DelphiLogo150>
+        <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
+        <DCC_Namespace>System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)</DCC_Namespace>
+        <VerInfo_Locale>1033</VerInfo_Locale>
+        <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+        <Icon_MainIcon>Project1_Icon.ico</Icon_MainIcon>
+        <VerInfo_Keys>CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(ModuleName);FileDescription=$(ModuleName);ProductName=$(ModuleName)</VerInfo_Keys>
+        <Manifest_File>$(BDS)\bin\default_app.manifest</Manifest_File>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Base_Win64)'!=''">
+        <UWP_DelphiLogo150>$(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png</UWP_DelphiLogo150>
+        <UWP_DelphiLogo44>$(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png</UWP_DelphiLogo44>
+        <Icon_MainIcon>Project1_Icon.ico</Icon_MainIcon>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_1)'!=''">
+        <DCC_DebugInformation>0</DCC_DebugInformation>
+        <DCC_SymbolReferenceInfo>0</DCC_SymbolReferenceInfo>
+        <DCC_Define>RELEASE;$(DCC_Define)</DCC_Define>
+        <DCC_LocalDebugSymbols>false</DCC_LocalDebugSymbols>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_2)'!=''">
+        <DCC_Optimize>false</DCC_Optimize>
+        <DCC_GenerateStackFrames>true</DCC_GenerateStackFrames>
+        <DCC_Define>DEBUG;$(DCC_Define)</DCC_Define>
+    </PropertyGroup>
+    <PropertyGroup Condition="'$(Cfg_2_Win32)'!=''">
+        <BT_BuildType>Debug</BT_BuildType>
+        <Icon_MainIcon>$(BDS)\bin\delphi_PROJECTICON.ico</Icon_MainIcon>
+        <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
+        <VerInfo_Locale>1033</VerInfo_Locale>
+        <AppEnableRuntimeThemes>true</AppEnableRuntimeThemes>
+        <VerInfo_Keys>CompanyName=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName);FileDescription=$(MSBuildProjectName);ProductName=$(MSBuildProjectName)</VerInfo_Keys>
+    </PropertyGroup>
+    <ItemGroup>
+        <DelphiCompile Include="$(MainSource)">
+            <MainSource>MainSource</MainSource>
+        </DelphiCompile>
+        <DCCReference Include="fPfxCursor.pas"/>
+        <BuildConfiguration Include="Base">
+            <Key>Base</Key>
+        </BuildConfiguration>
+        <BuildConfiguration Include="Release">
+            <Key>Cfg_1</Key>
+            <CfgParent>Base</CfgParent>
+        </BuildConfiguration>
+        <BuildConfiguration Include="Debug">
+            <Key>Cfg_2</Key>
+            <CfgParent>Base</CfgParent>
+        </BuildConfiguration>
+    </ItemGroup>
+    <ProjectExtensions>
+        <Borland.Personality>Delphi.Personality.12</Borland.Personality>
+        <Borland.ProjectType/>
+        <BorlandProject>
+            <Delphi.Personality>
+                <Source>
+                    <Source Name="MainSource">PfxCursor.dpr</Source>
+                </Source>
+                <Excluded_Packages>
+                    <Excluded_Packages Name="C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\GLScene_SDL_DT.bpl">File C:\Users\Public\Documents\Embarcadero\Studio\22.0\Bpl\GLScene_SDL_DT.bpl not found</Excluded_Packages>
+                    <Excluded_Packages Name="$(BDSBIN)\bcboffice2k280.bpl">Embarcadero C++Builder Office 2000 Servers Package</Excluded_Packages>
+                    <Excluded_Packages Name="$(BDSBIN)\bcbofficexp280.bpl">Embarcadero C++Builder Office XP Servers Package</Excluded_Packages>
+                    <Excluded_Packages Name="$(BDSBIN)\dcloffice2k280.bpl">Microsoft Office 2000 Sample Automation Server Wrapper Components</Excluded_Packages>
+                    <Excluded_Packages Name="$(BDSBIN)\dclofficexp280.bpl">Microsoft Office XP Sample Automation Server Wrapper Components</Excluded_Packages>
+                </Excluded_Packages>
+            </Delphi.Personality>
+            <Platforms>
+                <Platform value="Win32">True</Platform>
+                <Platform value="Win64">False</Platform>
+            </Platforms>
+            <Deployment Version="3">
+                <DeployFile LocalName="PfxCursor.exe" Configuration="Debug" Class="ProjectOutput">
+                    <Platform Name="Win32">
+                        <RemoteName>PfxCursor.exe</RemoteName>
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
+                <DeployClass Name="AdditionalDebugSymbols">
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Win32">
+                        <Operation>0</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidClasses">
+                    <Platform Name="Android">
+                        <RemoteDir>classes</RemoteDir>
+                        <Operation>64</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>classes</RemoteDir>
+                        <Operation>64</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidClassesDexFile">
+                    <Platform Name="Android">
+                        <RemoteDir>classes</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>classes</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidFileProvider">
+                    <Platform Name="Android">
+                        <RemoteDir>res\xml</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\xml</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidGDBServer">
+                    <Platform Name="Android">
+                        <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidLibnativeArmeabiFile">
+                    <Platform Name="Android">
+                        <RemoteDir>library\lib\armeabi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\armeabi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidLibnativeArmeabiv7aFile">
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidLibnativeMipsFile">
+                    <Platform Name="Android">
+                        <RemoteDir>library\lib\mips</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\mips</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidLibnativeX86File"/>
+                <DeployClass Name="AndroidServiceOutput">
+                    <Platform Name="Android">
+                        <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\arm64-v8a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidServiceOutput_Android32">
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidSplashImageDef">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidSplashStyles">
+                    <Platform Name="Android">
+                        <RemoteDir>res\values</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\values</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidSplashStylesV21">
+                    <Platform Name="Android">
+                        <RemoteDir>res\values-v21</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\values-v21</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_Colors">
+                    <Platform Name="Android">
+                        <RemoteDir>res\values</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\values</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_DefaultAppIcon">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_LauncherIcon144">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-xxhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-xxhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_LauncherIcon192">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-xxxhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-xxxhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_LauncherIcon36">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-ldpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-ldpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_LauncherIcon48">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-mdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-mdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_LauncherIcon72">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-hdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-hdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_LauncherIcon96">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-xhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-xhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_NotificationIcon24">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-mdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-mdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_NotificationIcon36">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-hdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-hdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_NotificationIcon48">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-xhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-xhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_NotificationIcon72">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-xxhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-xxhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_NotificationIcon96">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-xxxhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-xxxhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_SplashImage426">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-small</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-small</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_SplashImage470">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-normal</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-normal</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_SplashImage640">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-large</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-large</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_SplashImage960">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-xlarge</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-xlarge</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_Strings">
+                    <Platform Name="Android">
+                        <RemoteDir>res\values</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\values</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="DebugSymbols">
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Win32">
+                        <Operation>0</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="DependencyFramework">
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.framework</Extensions>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.framework</Extensions>
+                    </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.framework</Extensions>
+                    </Platform>
+                    <Platform Name="Win32">
+                        <Operation>0</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="DependencyModule">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="Win32">
+                        <Operation>0</Operation>
+                        <Extensions>.dll;.bpl</Extensions>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Required="true" Name="DependencyPackage">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
+                    <Platform Name="Win32">
+                        <Operation>0</Operation>
+                        <Extensions>.bpl</Extensions>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="File">
+                    <Platform Name="Android">
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice32">
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\Resources\StartUp\</RemoteDir>
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents\Resources\StartUp\</RemoteDir>
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents\Resources\StartUp\</RemoteDir>
+                        <Operation>0</Operation>
+                    </Platform>
+                    <Platform Name="Win32">
+                        <Operation>0</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iOS_AppStore1024">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_AppIcon152">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_AppIcon167">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch1024">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch1536">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch2048">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch2x">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Launch768">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_LaunchDark2x">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Notification40">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Setting58">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_SpotLight80">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_AppIcon120">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_AppIcon180">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch2x">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch320">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch3x">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch640">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Launch640x1136">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_LaunchDark2x">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_LaunchDark3x">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Notification40">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Notification60">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Setting58">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Setting87">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Spotlight120">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Spotlight80">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectAndroidManifest">
+                    <Platform Name="Android">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectiOSDeviceDebug">
+                    <Platform Name="iOSDevice32">
+                        <RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectiOSDeviceResourceRules">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectiOSEntitlements">
+                    <Platform Name="iOSDevice32">
+                        <RemoteDir>..\</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectiOSInfoPList">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectiOSLaunchScreen">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen</RemoteDir>
+                        <Operation>64</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen</RemoteDir>
+                        <Operation>64</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectiOSResource">
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectOSXDebug">
+                    <Platform Name="OSX64">
+                        <RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectOSXEntitlements">
+                    <Platform Name="OSX32">
+                        <RemoteDir>..\</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>..\</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>..\</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectOSXInfoPList">
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectOSXResource">
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\Resources</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents\Resources</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents\Resources</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Required="true" Name="ProjectOutput">
+                    <Platform Name="Android">
+                        <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\arm64-v8a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSDevice64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Linux64">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSX64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Win32">
+                        <Operation>0</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectOutput_Android32">
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="ProjectUWPManifest">
+                    <Platform Name="Win32">
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Win64">
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="UWP_DelphiLogo150">
+                    <Platform Name="Win32">
+                        <RemoteDir>Assets</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Win64">
+                        <RemoteDir>Assets</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="UWP_DelphiLogo44">
+                    <Platform Name="Win32">
+                        <RemoteDir>Assets</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Win64">
+                        <RemoteDir>Assets</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="OSXARM64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
+            </Deployment>
+        </BorlandProject>
+        <ProjectFileVersion>12</ProjectFileVersion>
+    </ProjectExtensions>
+    <Import Project="$(BDS)\Bin\CodeGear.Delphi.Targets" Condition="Exists('$(BDS)\Bin\CodeGear.Delphi.Targets')"/>
+    <Import Project="$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj" Condition="Exists('$(APPDATA)\Embarcadero\$(BDSAPPDATABASEDIR)\$(PRODUCTVERSION)\UserTools.proj')"/>
+    <Import Project="$(MSBuildProjectName).deployproj" Condition="Exists('$(MSBuildProjectName).deployproj')"/>
+</Project>

+ 319 - 0
Demos/specialsFX/PFXCursor/fPfxCursor.dfm

@@ -0,0 +1,319 @@
+object Form1: TForm1
+  Left = 403
+  Top = 221
+  ClientHeight = 516
+  ClientWidth = 761
+  Color = clBtnFace
+  Font.Charset = DEFAULT_CHARSET
+  Font.Color = clWindowText
+  Font.Height = -11
+  Font.Name = 'MS Sans Serif'
+  Font.Style = []
+  Position = poScreenCenter
+  OnCreate = FormCreate
+  OnShow = FormShow
+  TextHeight = 13
+  object vp: TGLSceneViewer
+    Left = 0
+    Top = 0
+    Width = 600
+    Height = 516
+    Cursor = -1
+    Camera = GLCamera1
+    Buffer.BackgroundColor = clNavy
+    Buffer.ContextOptions = [roDoubleBuffer, roRenderToWindow]
+    FieldOfView = 158.064254760742200000
+    PenAsTouch = False
+    Align = alClient
+    TabOrder = 0
+  end
+  object Panel1: TPanel
+    Left = 600
+    Top = 0
+    Width = 161
+    Height = 516
+    Align = alRight
+    TabOrder = 1
+    object RadioGroup1: TRadioGroup
+      Left = 18
+      Top = 72
+      Width = 137
+      Height = 105
+      Caption = 'Fire'
+      ItemIndex = 0
+      Items.Strings = (
+        'Burn'
+        'No Burn')
+      TabOrder = 0
+      OnClick = RadioGroup1Click
+    end
+    object RadioGroup2: TRadioGroup
+      Left = 18
+      Top = 200
+      Width = 137
+      Height = 105
+      Caption = 'Perlin'
+      ItemIndex = 0
+      Items.Strings = (
+        'Trail'
+        'No Trail')
+      TabOrder = 1
+      OnClick = RadioGroup2Click
+    end
+  end
+  object GLScene1: TGLScene
+    Left = 224
+    Top = 16
+    object GLParticleFXRenderer1: TGLParticleFXRenderer
+    end
+    object Light1: TGLLightSource
+      ConstAttenuation = 1.000000000000000000
+      Position.Coordinates = {000000000000A040000000400000803F}
+      SpotCutOff = 180.000000000000000000
+    end
+    object cur: TGLHUDSprite
+      Material.FrontProperties.Diffuse.Color = {000000000000803F000000000000803F}
+      Material.BlendingMode = bmTransparency
+      Material.MaterialOptions = [moNoLighting]
+      Material.Texture.ImageAlpha = tiaAlphaFromIntensity
+      Material.Texture.TextureMode = tmModulate
+      Material.Texture.TextureWrap = twNone
+      Material.Texture.Disabled = False
+      Position.Coordinates = {00C08A4300C08A43000000000000803F}
+      Width = 32.000000000000000000
+      Height = 32.000000000000000000
+      Rotation = 0.000000000000000000
+    end
+    object dc_cur: TGLDummyCube
+      CubeSize = 0.009999999776482582
+      VisibleAtRunTime = True
+      object dc1: TGLDummyCube
+        Visible = False
+        CubeSize = 1.000000000000000000
+        EffectsData = {
+          0458434F4C02010203061254474C536F75726365504658456666656374020202
+          00120000000002000200060470667831050000000000000080FE3F0206020009
+          00000000000000BF0000000000000000020008020008050000000000CDCCCCFC
+          3F050000000000CDCCCCFC3F0500000000000AD7A3F83F020002000905000000
+          000000000000000902000200020202001200000000020002000617474C506F69
+          6E744C696768745046584D616E6167657232050000000000000080FD3F020602
+          0008020008020008050000000000CDCCCCFD3F050000000000CDCCCCFC3F0500
+          000000000AD7A3F83F0200020009050000000000000000000009020002000202
+          02001200000000020002000617474C506F696E744C696768745046584D616E61
+          67657233050000000000000080FF3F0206020008020008020008050000000000
+          000000000005000000000000000000000500000000000AD7A3F73F0200020009
+          0500000000000000000000090200}
+      end
+      object dc2: TGLDummyCube
+        Visible = False
+        CubeSize = 1.000000000000000000
+        EffectsData = {
+          0458434F4C02010201061254474C536F75726365504658456666656374020202
+          00120000000002000200060470667832050000000000000080FF3F0206020009
+          00000000000000400000000000000000020008020008050000000000000080FE
+          3F050000000000CDCCCCFC3F0500000000008FC2F5F83F020102010905000000
+          00000000000000090201}
+      end
+      object dc3: TGLDummyCube
+        CubeSize = 1.000000000000000000
+        EffectsData = {
+          0458434F4C02010201061254474C536F75726365504658456666656374020202
+          00120000000002000200060470667833050000000000000080FF3F0206020008
+          0200080200080500000000000000800040050000000000CDCCCCFB3F05000000
+          00000AD7A3F73F02000200090500000000000000000000090200}
+      end
+    end
+    object rend: TGLParticleFXRenderer
+    end
+    object GLDummyCube3: TGLDummyCube
+      CubeSize = 1.000000000000000000
+      object GLCone1: TGLCone
+        Material.FrontProperties.Emission.Color = {CDCC4C3FACC8483E9A99193F0000803F}
+        Direction.Coordinates = {000000002EBDBBB3000080BF00000000}
+        PitchAngle = 180.000000000000000000
+        Position.Coordinates = {000080BF00000000000000000000803F}
+        Up.Coordinates = {00000000000080BF2EBDBB3300000000}
+        BottomRadius = 0.300000011920929000
+        Height = 0.500000000000000000
+        object GLDummyCube1: TGLDummyCube
+          Position.Coordinates = {000000009A9919BE000000000000803F}
+          CubeSize = 1.000000000000000000
+          EffectsData = {
+            0458434F4C02010201061254474C536F75726365504658456666656374020202
+            001200000000020002000613474C5065726C696E5046584D616E616765723105
+            0000000000000080FD3F0206020009000000000000803F000000000000000002
+            0008020008050000000000000000000005000000000000000000000500000000
+            00CDCCCCFB3F02000200090500000000000000000000080200}
+        end
+      end
+      object GLCone2: TGLCone
+        Material.FrontProperties.Emission.Color = {0000803FF8FEFE3E000000000000803F}
+        Direction.Coordinates = {000000002EBDBBB3000080BF00000000}
+        PitchAngle = 180.000000000000000000
+        Position.Coordinates = {0000803F00000000000000000000803F}
+        Up.Coordinates = {00000000000080BF2EBDBB3300000000}
+        BottomRadius = 0.300000011920929000
+        Height = 0.500000000000000000
+        object GLDummyCube2: TGLDummyCube
+          Position.Coordinates = {000000009A9919BE000000000000803F}
+          CubeSize = 1.000000000000000000
+          EffectsData = {
+            0458434F4C02010201060A54474C424669726546580201020012000000000200
+            02001200000000}
+        end
+      end
+    end
+    object GLCamera1: TGLCamera
+      DepthOfView = 100.000000000000000000
+      FocalLength = 50.000000000000000000
+      TargetObject = GLDummyCube3
+      Position.Coordinates = {0000000000000040000080400000803F}
+    end
+  end
+  object GLMaterialLibrary1: TGLMaterialLibrary
+    Materials = <
+      item
+        Name = 'plane'
+        Tag = 0
+        Material.FrontProperties.Emission.Color = {DFDEDE3EDCDB5B3F9493133F0000803F}
+        Material.Texture.ImageClassName = 'TGLBlankImage'
+        Material.Texture.Image.ColorFormat = 6408
+        Material.Texture.ImageAlpha = tiaAlphaFromIntensity
+      end>
+    Left = 224
+    Top = 80
+  end
+  object GLCadencer1: TGLCadencer
+    Scene = GLScene1
+    Enabled = False
+    OnProgress = GLCadencer1Progress
+    Left = 312
+    Top = 16
+  end
+  object pfx1: TGLPointLightPFXManager
+    Cadencer = GLCadencer1
+    Renderer = rend
+    Friction = 1.000000000000000000
+    ColorMode = scmFade
+    ParticleSize = 1.000000000000000000
+    ColorInner.Color = {0000803F000000000000803F0000803F}
+    ColorOuter.Color = {0000803F00000000000000000000803F}
+    LifeColors = <
+      item
+        LifeTime = 5.000000000000000000
+        SizeScale = 2.000000000000000000
+      end>
+    Left = 312
+    Top = 80
+  end
+  object GLAsyncTimer1: TGLAsyncTimer
+    Enabled = True
+    Interval = 800
+    OnTimer = GLAsyncTimer1Timer
+    ThreadPriority = tpNormal
+    Left = 384
+    Top = 16
+  end
+  object GLPointLightPFXManager2: TGLPointLightPFXManager
+    Cadencer = GLCadencer1
+    Renderer = rend
+    Acceleration.Coordinates = {00000000000040BF0000000000000000}
+    Friction = 1.000000000000000000
+    ParticleSize = 0.500000000000000000
+    ColorInner.Color = {000000000000803F0000803F0000803F}
+    ColorOuter.Color = {0000803F0000803F0000803F0000803F}
+    LifeColors = <
+      item
+        LifeTime = 3.000000000000000000
+        SizeScale = 0.500000000000000000
+        RotateAngle = 0.300000011920929000
+      end>
+    Left = 224
+    Top = 136
+  end
+  object GLPointLightPFXManager3: TGLPointLightPFXManager
+    Cadencer = GLCadencer1
+    Renderer = rend
+    Friction = 1.000000000000000000
+    ColorMode = scmFade
+    ParticleSize = 0.500000000000000000
+    ColorInner.Color = {ACC8483ECDCC4C3FACC8483E0000803F}
+    ColorOuter.Color = {0000803F0000803F000000000000803F}
+    LifeColors = <
+      item
+        LifeTime = 1.000000000000000000
+        SizeScale = 1.000000000000000000
+      end>
+    Left = 224
+    Top = 208
+  end
+  object pfx2: TGLCustomSpritePFXManager
+    Cadencer = GLCadencer1
+    Renderer = rend
+    Friction = 1.000000000000000000
+    OnPrepareTextureImage = pfx2PrepareTextureImage
+    ColorMode = scmFade
+    ParticleSize = 0.750000000000000000
+    ColorInner.Color = {0000803F1283C03E000000000000803F}
+    LifeColors = <
+      item
+        ColorInner.Color = {0000003F0000003F0000000000000000}
+        LifeTime = 0.750000000000000000
+        SizeScale = 3.000000000000000000
+      end>
+    Left = 384
+    Top = 80
+  end
+  object pfx3: TGLCustomSpritePFXManager
+    Cadencer = GLCadencer1
+    Renderer = rend
+    Acceleration.Coordinates = {000000009A9999BE0000000000000000}
+    Friction = 1.000000000000000000
+    OnPrepareTextureImage = pfx3PrepareTextureImage
+    ParticleSize = 0.750000000000000000
+    ColorInner.Color = {0000803FAE47E13D7B142E3F0000803F}
+    LifeColors = <
+      item
+        ColorInner.Color = {CDCC4C3FACC8483E9A99193F00000000}
+        LifeTime = 0.750000000000000000
+        SizeScale = 3.000000000000000000
+        RotateAngle = 0.949999988079071000
+      end>
+    Left = 456
+    Top = 80
+  end
+  object GLPerlinPFXManager1: TGLPerlinPFXManager
+    Cadencer = GLCadencer1
+    Renderer = GLParticleFXRenderer1
+    Friction = 1.000000000000000000
+    Smoothness = 1.000000000000000000
+    Brightness = 1.000000000000000000
+    Gamma = 1.000000000000000000
+    ParticleSize = 1.000000000000000000
+    ColorInner.Color = {0000803F000000000000803F0000803F}
+    LifeColors = <
+      item
+        LifeTime = 3.000000000000000000
+        SizeScale = 1.000000000000000000
+      end>
+    Left = 552
+    Top = 80
+  end
+  object GLFireFXManager1: TGLFireFXManager
+    FireDir.Coordinates = {00000000000000BF0000000000000000}
+    InitialDir.Coordinates = {00000000000080BF0000000000000000}
+    Cadencer = GLCadencer1
+    ParticleSize = 0.250000000000000000
+    FireDensity = 1.000000000000000000
+    FireEvaporation = 0.860000014305114700
+    ParticleLife = 5
+    FireBurst = 1.000000000000000000
+    FireRadius = 0.250000000000000000
+    Disabled = False
+    Paused = False
+    ParticleInterval = 0.100000001490116100
+    UseInterval = True
+    Left = 672
+    Top = 80
+  end
+end

+ 173 - 0
Demos/specialsFX/PFXCursor/fPfxCursor.pas

@@ -0,0 +1,173 @@
+unit fPfxCursor;
+
+interface
+
+uses
+  Winapi.Windows,
+  Winapi.Messages,
+  System.SysUtils,
+  System.Variants,
+  System.Classes,
+  Vcl.Graphics,
+  Vcl.Controls,
+  Vcl.Forms,
+  Vcl.Dialogs,
+  Vcl.StdCtrls,
+  Vcl.ExtCtrls,
+
+  GLS.VectorTypes,
+  GLS.Cadencer,
+  GLS.Texture,
+  GLS.SceneViewer,
+  GLS.Scene,
+  GLS.VectorGeometry,
+  GLS.Graphics,
+  GLS.Keyboard,
+  GLS.ParticleFX,
+  GLS.Objects,
+  GLS.HUDObjects,
+  GLS.AsyncTimer,
+  GLS.PerlinPFX,
+  GLS.Material,
+  GLS.Coordinates,
+
+  GLS.BaseClasses,
+  GLS.FireFX,
+  GLS.GeomObjects,
+  GLS.Utils;
+
+type
+  TForm1 = class(TForm)
+    GLScene1: TGLScene;
+    GLMaterialLibrary1: TGLMaterialLibrary;
+    GLCadencer1: TGLCadencer;
+    pfx1: TGLPointLightPFXManager;
+    cur: TGLHUDSprite;
+    dc_cur: TGLDummyCube;
+    GLAsyncTimer1: TGLAsyncTimer;
+    rend: TGLParticleFXRenderer;
+    dc1: TGLDummyCube;
+    dc2: TGLDummyCube;
+    GLPointLightPFXManager2: TGLPointLightPFXManager;
+    GLPointLightPFXManager3: TGLPointLightPFXManager;
+    pfx2: TGLCustomSpritePFXManager;
+    vp: TGLSceneViewer;
+    dc3: TGLDummyCube;
+    pfx3: TGLCustomSpritePFXManager;
+    GLDummyCube3: TGLDummyCube;
+    GLCone1: TGLCone;
+    GLDummyCube1: TGLDummyCube;
+    GLCone2: TGLCone;
+    GLDummyCube2: TGLDummyCube;
+    Light1: TGLLightSource;
+    Panel1: TPanel;
+    RadioGroup1: TRadioGroup;
+    RadioGroup2: TRadioGroup;
+    GLCamera1: TGLCamera;
+    GLPerlinPFXManager1: TGLPerlinPFXManager;
+    GLFireFXManager1: TGLFireFXManager;
+    GLParticleFXRenderer1: TGLParticleFXRenderer;
+    procedure GLCadencer1Progress(Sender: TObject; const deltaTime, newTime: Double);
+    procedure pfx2PrepareTextureImage(Sender: TObject; destBmp32: TGLImage; var texFormat: Integer);
+    procedure pfx3PrepareTextureImage(Sender: TObject; destBmp32: TGLImage; var texFormat: Integer);
+    procedure GLAsyncTimer1Timer(Sender: TObject);
+    procedure FormShow(Sender: TObject);
+    procedure RadioGroup1Click(Sender: TObject);
+    procedure RadioGroup2Click(Sender: TObject);
+    procedure FormCreate(Sender: TObject);
+  public
+    Path: TFileName;
+  end;
+
+var
+  Form1: TForm1;
+
+implementation
+
+{$R *.dfm}
+
+
+procedure TForm1.FormCreate(Sender: TObject);
+begin
+  Path := GetCurrentAssetPath() + '\texture';
+  SetCurrentDir(Path);
+  cur.Material.Texture.Image.LoadFromFile('cur.bmp');
+end;
+
+
+procedure TForm1.GLCadencer1Progress;
+var
+  m: TPoint;
+  v: TGLVector;
+begin
+  with mouse.CursorPos do
+    cur.Position.SetPoint(x - left, y - top, 0);
+  cur.Rotation := cur.Rotation - deltaTime * 50;
+  v := cur.AbsolutePosition;
+  v.y := vp.Height - v.y;
+  vp.Buffer.ScreenVectorIntersectWithPlaneXY(v, 0, v);
+  dc_cur.AbsolutePosition := v;
+  dc1.Visible := IsKeyDown(VK_LBUTTON);
+  dc2.Visible := IsKeyDown(VK_RBUTTON);
+  dc3.Visible := IsKeyDown(VK_MBUTTON);
+  GLDummyCube3.Turn(1.5 * deltaTime * 60);
+end;
+
+//
+// skull
+//
+procedure TForm1.pfx2PrepareTextureImage;
+var
+  bmp: TBitmap;
+begin
+  bmp := TBitmap.Create;
+  bmp.LoadFromFile('skull.bmp');
+  destBmp32.Assign(bmp);
+  bmp.Free;
+end;
+
+//
+// rose
+//
+procedure TForm1.pfx3PrepareTextureImage;
+var
+  bmp: TBitmap;
+begin
+  bmp := TBitmap.Create;
+  bmp.LoadFromFile('rose.bmp');
+  destBmp32.Assign(bmp);
+  bmp.Free;
+end;
+
+procedure TForm1.RadioGroup1Click(Sender: TObject);
+begin
+  if RadioGroup1.ItemIndex = 0 then
+    GLFireFXManager1.Disabled := False
+  else
+    GLFireFXManager1.Disabled := True;
+end;
+
+procedure TForm1.RadioGroup2Click(Sender: TObject);
+begin
+  if RadioGroup2.ItemIndex = 0 then
+    GLPerlinPFXManager1.Renderer.Visible := True
+  else
+    GLPerlinPFXManager1.Renderer.Visible := False;
+end;
+
+//
+// fps
+//
+procedure TForm1.GLAsyncTimer1Timer(Sender: TObject);
+begin
+  caption := 'PFX Cursor Demo: ' + vp.FramesPerSecondText(2) +
+    ' / use the mouse left and right buttons';
+  vp.ResetPerformanceMonitor;
+end;
+
+procedure TForm1.FormShow(Sender: TObject);
+begin
+  GLCadencer1.Enabled := True;
+end;
+
+end.

+ 16 - 15
Packages/GLScene_DT.dpk

@@ -40,23 +40,24 @@ requires
   GLScene_RT;
 
 contains
-  FRFaceEditor in '..\Source\FRFaceEditor.pas',
-  FRMaterialPreview in '..\Source\FRMaterialPreview.pas',
-  FRColorEditor in '..\Source\FRColorEditor.pas',
-  FRTextureEdit in '..\Source\FRTextureEdit.pas',
-  FmGuiLayoutEditor in '..\Source\FmGuiLayoutEditor.pas',
-  FmGuiSkinEditor in '..\Source\FmGuiSkinEditor.pas',
-  FmShaderMemo in '..\Source\FmShaderMemo.pas',
-  FmShaderUniformEditor in '..\Source\FmShaderUniformEditor.pas',
-  FmVectorEditor in '..\Source\FmVectorEditor.pas',
-  FmSceneEditor in '..\Source\FmSceneEditor.pas',
-  FmPlugInManagerEditor in '..\Source\FmPlugInManagerEditor.pas',
-  FmXCollectionEditor in '..\Source\FmXCollectionEditor.pas',
-  FmInfo in '..\Source\FmInfo.pas',
+  FRColorEditor in '..\Source\FRColorEditor.pas' {RColorEditor: TFrame},
+  FRTextureEdit in '..\Source\FRTextureEdit.pas' {RTextureEdit: TFrame},
+  FmGuiLayoutEditor in '..\Source\FmGuiLayoutEditor.pas' {GLLayoutEditorForm},
+  FmGuiSkinEditor in '..\Source\FmGuiSkinEditor.pas' {GLSkinEditorForm},
+  FmShaderMemo in '..\Source\FmShaderMemo.pas' {ShaderMemoForm},
+  FmShaderUniformEditor in '..\Source\FmShaderUniformEditor.pas' {GLShaderUniformEditor},
+  FmVectorEditor in '..\Source\FmVectorEditor.pas' {GLVectorEditorForm},
+  FmSceneEditor in '..\Source\FmSceneEditor.pas' {GLSceneEditorForm},
+  FmPlugInManagerEditor in '..\Source\FmPlugInManagerEditor.pas' {GLPlugInManagerEditorForm},
+  FmXCollectionEditor in '..\Source\FmXCollectionEditor.pas' {GLXCollectionEditorForm},
+  FmInfo in '..\Source\FmInfo.pas' {GLInfoForm},
   GLS.SceneRegister in '..\Source\GLS.SceneRegister.pas',
   GLS.XCollectionRegister in '..\Source\GLS.XCollectionRegister.pas',
-  FmMaterialEditor in '..\Source\FmMaterialEditor.pas',
-  FmLibMaterialPicker in '..\Source\FmLibMaterialPicker.pas';
+  FmLibMaterialPicker in '..\Source\FmLibMaterialPicker.pas' {GLLibMaterialPickerForm},
+  FRTrackBarEdit in '..\Source\FRTrackBarEdit.pas' {RTrackBarEdit: TFrame},
+  FRFaceEditor in '..\Source\FRFaceEditor.pas' {RFaceEditor: TFrame},
+  FRMaterialPreview in '..\Source\FRMaterialPreview.pas' {RMaterialPreview: TFrame},
+  FmMaterialEditor in '..\Source\FmMaterialEditor.pas' {GLMaterialEditorForm};
 
 end.
 

+ 19 - 3
Packages/GLScene_DT.dproj

@@ -120,8 +120,6 @@
         <DCCReference Include="vcl.dcp"/>
         <DCCReference Include="VclSmp.dcp"/>
         <DCCReference Include="GLScene_RT.dcp"/>
-        <DCCReference Include="..\Source\FRFaceEditor.pas"/>
-        <DCCReference Include="..\Source\FRMaterialPreview.pas"/>
         <DCCReference Include="..\Source\FRColorEditor.pas">
             <Form>RColorEditor</Form>
             <DesignClass>TFrame</DesignClass>
@@ -159,11 +157,29 @@
         </DCCReference>
         <DCCReference Include="..\Source\GLS.SceneRegister.pas"/>
         <DCCReference Include="..\Source\GLS.XCollectionRegister.pas"/>
-        <DCCReference Include="..\Source\FmMaterialEditor.pas"/>
         <DCCReference Include="..\Source\FmLibMaterialPicker.pas">
             <Form>GLLibMaterialPickerForm</Form>
             <FormType>dfm</FormType>
         </DCCReference>
+        <DCCReference Include="..\Source\FRTrackBarEdit.pas">
+            <Form>RTrackBarEdit</Form>
+            <FormType>dfm</FormType>
+            <DesignClass>TFrame</DesignClass>
+        </DCCReference>
+        <DCCReference Include="..\Source\FRFaceEditor.pas">
+            <Form>RFaceEditor</Form>
+            <FormType>dfm</FormType>
+            <DesignClass>TFrame</DesignClass>
+        </DCCReference>
+        <DCCReference Include="..\Source\FRMaterialPreview.pas">
+            <Form>RMaterialPreview</Form>
+            <FormType>dfm</FormType>
+            <DesignClass>TFrame</DesignClass>
+        </DCCReference>
+        <DCCReference Include="..\Source\FmMaterialEditor.pas">
+            <Form>GLMaterialEditorForm</Form>
+            <FormType>dfm</FormType>
+        </DCCReference>
         <RcCompile Include="..\Resources\GLScene.rc">
             <Form>GLScene.res</Form>
         </RcCompile>

+ 0 - 1
Packages/GLScene_RT.dpk

@@ -95,7 +95,6 @@ contains
   GLS.FileDDS in '..\Source\GLS.FileDDS.pas',
   GLS.FileDXF in '..\Source\GLS.FileDXF.pas',
   GLS.FileGL2 in '..\Source\GLS.FileGL2.pas',
-  GLS.FileGLB in '..\Source\GLS.FileGLB.pas',
   GLS.FileGLTF in '..\Source\GLS.FileGLTF.pas',
   GLS.FileGRD in '..\Source\GLS.FileGRD.pas',
   GLS.FileGTS in '..\Source\GLS.FileGTS.pas',

+ 0 - 1
Packages/GLScene_RT.dproj

@@ -200,7 +200,6 @@
         <DCCReference Include="..\Source\GLS.FileDDS.pas"/>
         <DCCReference Include="..\Source\GLS.FileDXF.pas"/>
         <DCCReference Include="..\Source\GLS.FileGL2.pas"/>
-        <DCCReference Include="..\Source\GLS.FileGLB.pas"/>
         <DCCReference Include="..\Source\GLS.FileGLTF.pas"/>
         <DCCReference Include="..\Source\GLS.FileGRD.pas"/>
         <DCCReference Include="..\Source\GLS.FileGTS.pas"/>

+ 0 - 77
Packages/GR32_RT.dpk

@@ -1,77 +0,0 @@
-package GR32_RT;
-
-{$R *.res}
-{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users}
-{$ALIGN 8}
-{$ASSERTIONS ON}
-{$BOOLEVAL OFF}
-{$DEBUGINFO OFF}
-{$EXTENDEDSYNTAX ON}
-{$IMPORTEDDATA ON}
-{$IOCHECKS ON}
-{$LOCALSYMBOLS OFF}
-{$LONGSTRINGS ON}
-{$OPENSTRINGS ON}
-{$OPTIMIZATION ON}
-{$OVERFLOWCHECKS OFF}
-{$RANGECHECKS OFF}
-{$REFERENCEINFO OFF}
-{$SAFEDIVIDE OFF}
-{$STACKFRAMES OFF}
-{$TYPEDADDRESS OFF}
-{$VARSTRINGCHECKS ON}
-{$WRITEABLECONST OFF}
-{$MINENUMSIZE 1}
-{$IMAGEBASE $400000}
-{$DEFINE RELEASE}
-{$ENDIF IMPLICITBUILDING}
-{$DESCRIPTION 'Graphics32'}
-{$RUNONLY}
-{$IMPLICITBUILD ON}
-
-requires
-  vcl;
-
-contains
-  GR32 in '..\external\GR32\GR32.pas',
-  GR32_Backends in '..\external\GR32\GR32_Backends.pas',
-  GR32_Backends_Generic in '..\external\GR32\GR32_Backends_Generic.pas',
-  GR32_Backends_VCL in '..\external\GR32\GR32_Backends_VCL.pas',
-  GR32_Bindings in '..\external\GR32\GR32_Bindings.pas',
-  GR32_Blend in '..\external\GR32\GR32_Blend.pas',
-  GR32_BlendASM in '..\external\GR32\GR32_BlendASM.pas',
-  GR32_BlendMMX in '..\external\GR32\GR32_BlendMMX.pas',
-  GR32_BlendSSE2 in '..\external\GR32\GR32_BlendSSE2.pas',
-  GR32_Brushes in '..\external\GR32\GR32_Brushes.pas',
-  GR32_ColorGradients in '..\external\GR32\GR32_ColorGradients.pas',
-  GR32_ColorPicker in '..\external\GR32\GR32_ColorPicker.pas',
-  GR32_ColorSwatch in '..\external\GR32\GR32_ColorSwatch.pas',
-  GR32_Containers in '..\external\GR32\GR32_Containers.pas',
-  GR32_ExtImage in '..\external\GR32\GR32_ExtImage.pas',
-  GR32_Filters in '..\external\GR32\GR32_Filters.pas',
-  GR32_Gamma in '..\external\GR32\GR32_Gamma.pas',
-  GR32_Geometry in '..\external\GR32\GR32_Geometry.pas',
-  GR32_Image in '..\external\GR32\GR32_Image.pas',
-  GR32_Layers in '..\external\GR32\GR32_Layers.pas',
-  GR32_LowLevel in '..\external\GR32\GR32_LowLevel.pas',
-  GR32_Math in '..\external\GR32\GR32_Math.pas',
-  GR32_MicroTiles in '..\external\GR32\GR32_MicroTiles.pas',
-  GR32_OrdinalMaps in '..\external\GR32\GR32_OrdinalMaps.pas',
-  GR32_Paths in '..\external\GR32\GR32_Paths.pas',
-  GR32_Polygons in '..\external\GR32\GR32_Polygons.pas',
-  GR32_PolygonsAggLite in '..\external\GR32\GR32_PolygonsAggLite.pas',
-  GR32_RangeBars in '..\external\GR32\GR32_RangeBars.pas',
-  GR32_Rasterizers in '..\external\GR32\GR32_Rasterizers.pas',
-  GR32_RepaintOpt in '..\external\GR32\GR32_RepaintOpt.pas',
-  GR32_Resamplers in '..\external\GR32\GR32_Resamplers.pas',
-  GR32_System in '..\external\GR32\GR32_System.pas',
-  GR32_Transforms in '..\external\GR32\GR32_Transforms.pas',
-  GR32_VectorMaps in '..\external\GR32\GR32_VectorMaps.pas',
-  GR32_VectorUtils in '..\external\GR32\GR32_VectorUtils.pas',
-  GR32_VPR in '..\external\GR32\GR32_VPR.pas',
-  GR32_Text_VCL in '..\external\GR32\GR32_Text_VCL.pas',
-  GR32_XPThemes in '..\external\GR32\GR32_XPThemes.pas';
-
-end.
-
-

+ 0 - 155
Source/FLibMaterialPicker.dfm

@@ -1,155 +0,0 @@
-object GLLibMaterialPickerForm: TGLLibMaterialPickerForm
-  Left = 326
-  Top = 157
-  BorderStyle = bsDialog
-  Caption = 'LibMaterial Picker'
-  ClientHeight = 261
-  ClientWidth = 460
-  Color = clBtnFace
-  Font.Charset = DEFAULT_CHARSET
-  Font.Color = clWindowText
-  Font.Height = -11
-  Font.Name = 'MS Sans Serif'
-  Font.Style = []
-  PixelsPerInch = 96
-  TextHeight = 13
-  object Label1: TLabel
-    Left = 152
-    Top = 8
-    Width = 78
-    Height = 13
-    Caption = 'Material Preview'
-  end
-  object Label2: TLabel
-    Left = 8
-    Top = 8
-    Width = 88
-    Height = 13
-    Caption = 'Available Materials'
-  end
-  object LBMaterials: TListBox
-    Left = 8
-    Top = 24
-    Width = 137
-    Height = 223
-    ItemHeight = 13
-    TabOrder = 0
-    OnClick = LBMaterialsClick
-    OnDblClick = LBMaterialsDblClick
-    OnKeyPress = LBMaterialsKeyPress
-  end
-  object BBOk: TBitBtn
-    Left = 376
-    Top = 24
-    Width = 75
-    Height = 25
-    Kind = bkOK
-    NumGlyphs = 2
-    TabOrder = 2
-  end
-  object BBCancel: TBitBtn
-    Left = 376
-    Top = 56
-    Width = 75
-    Height = 25
-    Kind = bkCancel
-    NumGlyphs = 2
-    TabOrder = 1
-  end
-  object GLSceneViewer: TGLSceneViewer
-    Left = 151
-    Top = 54
-    Width = 210
-    Height = 191
-    Camera = Camera
-    FieldOfView = 71.620002746582030000
-    PenAsTouch = False
-    TabOrder = 3
-  end
-  object cbObject: TComboBox
-    Left = 151
-    Top = 27
-    Width = 90
-    Height = 21
-    ParentShowHint = False
-    ShowHint = False
-    TabOrder = 4
-    Items.Strings = (
-      'Cube'
-      'Sphere'
-      'Cone'
-      'Teapot')
-  end
-  object ComboBox1: TComboBox
-    Left = 247
-    Top = 27
-    Width = 113
-    Height = 21
-    TabOrder = 5
-    Items.Strings = (
-      'on a pattern background'
-      'on a white background'
-      'on a black background'
-      'on a blue background'
-      'on a red background'
-      'on a green background')
-  end
-  object GLScene: TGLScene
-    ObjectsSorting = osNone
-    Left = 56
-    Top = 48
-    object BackgroundSprite: TGLSprite
-      Width = 1.000000000000000000
-      Height = 1.000000000000000000
-      Rotation = 0.000000000000000000
-    end
-    object World: TGLDummyCube
-      CubeSize = 1.000000000000000000
-      object Cube: TGLCube
-        Material.MaterialLibrary = GLMaterialLibrary
-        Material.LibMaterialName = 'LibMaterial'
-      end
-      object Sphere: TGLSphere
-        Material.MaterialLibrary = GLMaterialLibrary
-        Material.LibMaterialName = 'LibMaterial'
-        Radius = 0.500000000000000000
-      end
-      object Cone: TGLCone
-        Material.MaterialLibrary = GLMaterialLibrary
-        Material.LibMaterialName = 'LibMaterial'
-        BottomRadius = 0.500000000000000000
-        Height = 1.000000000000000000
-      end
-      object Teapot: TGLTeapot
-        Material.MaterialLibrary = GLMaterialLibrary
-        Material.LibMaterialName = 'LibMaterial'
-      end
-    end
-    object Light: TGLDummyCube
-      CubeSize = 1.000000000000000000
-      object LightSource: TGLLightSource
-        ConstAttenuation = 1.000000000000000000
-        Position.Coordinates = {000040400000A040000020410000803F}
-        SpotCutOff = 180.000000000000000000
-      end
-      object FireSphere: TGLSphere
-        Radius = 0.300000011920929000
-      end
-    end
-    object Camera: TGLCamera
-      DepthOfView = 100.000000000000000000
-      FocalLength = 132.365310668945300000
-      TargetObject = Cube
-      Position.Coordinates = {000000400000A040000020410000803F}
-    end
-  end
-  object GLMaterialLibrary: TGLMaterialLibrary
-    Materials = <
-      item
-        Name = 'LibMaterial'
-        Tag = 0
-      end>
-    Left = 56
-    Top = 128
-  end
-end

+ 0 - 141
Source/FLibMaterialPicker.pas

@@ -1,141 +0,0 @@
-//
-// The graphics rendering engine GLScene http://glscene.org
-//
-unit FLibMaterialPicker;
-
-(* Allows choosing a material in a material library *)
-
-interface
-
-{$I GLScene.inc}
-
-uses
-  System.Classes,
-  VCL.Forms,
-  VCL.StdCtrls,
-  VCL.Buttons,
-  VCL.Controls,
-
-  GLS.Scene,
-  GLS.Objects,
-  GLS.GeomObjects,
-  GLS.HudObjects,
-  GLS.SceneViewer,
-  GLS.Material,
-  GLS.BaseClasses, GLS.Coordinates;
-
-type
-  TGLLibMaterialPickerForm = class(TForm)
-    GLScene: TGLScene;
-    LBMaterials: TListBox;
-    Label1: TLabel;
-    Label2: TLabel;
-    BBOk: TBitBtn;
-    BBCancel: TBitBtn;
-    GLMaterialLibrary: TGLMaterialLibrary;
-    GLSceneViewer: TGLSceneViewer;
-    Camera: TGLCamera;
-    BackgroundSprite: TGLSprite;
-    World: TGLDummyCube;
-    Light: TGLDummyCube;
-    Cube: TGLCube;
-    Cone: TGLCone;
-    Sphere: TGLSphere;
-    Teapot: TGLTeapot;
-    cbObject: TComboBox;
-    LightSource: TGLLightSource;
-    FireSphere: TGLSphere;
-    ComboBox1: TComboBox;
-    procedure LBMaterialsClick(Sender: TObject);
-    procedure LBMaterialsKeyPress(Sender: TObject; var Key: Char);
-    procedure LBMaterialsDblClick(Sender: TObject);
-  private
-  public
-    function Execute(var materialName: TGLLibMaterialName;
-      materialLibrary: TGLAbstractMaterialLibrary): Boolean;
-  end;
-
-function GLLibMaterialPickerForm: TGLLibMaterialPickerForm;
-procedure ReleaseLibMaterialPickerForm;
-
-//-------------------------------------------------
-implementation
-//-------------------------------------------------
-
-{$R *.dfm}
-
-var
-  MX, MY: Integer;
-
-
-var
-  vGLLibMaterialPickerForm: TGLLibMaterialPickerForm;
-
-function GLLibMaterialPickerForm: TGLLibMaterialPickerForm;
-begin
-  if not Assigned(vGLLibMaterialPickerForm) then
-    vGLLibMaterialPickerForm := TGLLibMaterialPickerForm.Create(nil);
-  Result := vGLLibMaterialPickerForm;
-end;
-
-procedure ReleaseLibMaterialPickerForm;
-begin
-  if Assigned(vGLLibMaterialPickerForm) then
-  begin
-    vGLLibMaterialPickerForm.Free;
-    vGLLibMaterialPickerForm := nil;
-  end;
-end;
-
-
-function TGLLibMaterialPickerForm.Execute(var materialName: TGLLibMaterialName;
-  materialLibrary: TGLAbstractMaterialLibrary): Boolean;
-begin
-  with LBMaterials do
-  begin
-    materialLibrary.SetNamesToTStrings(LBMaterials.Items);
-    ItemIndex := Items.IndexOf(materialName);
-    if (ItemIndex < 0) and (Items.Count > 0) then
-      ItemIndex := 0;
-    BBOk.Enabled := (Items.Count > 0);
-  end;
-  LBMaterialsClick(Self);
-  Result := (ShowModal = mrOk);
-  if Result then
-  begin
-    with LBMaterials do
-      if ItemIndex >= 0 then
-        materialName := Items[ItemIndex]
-      else
-        materialName := '';
-  end;
-end;
-
-procedure TGLLibMaterialPickerForm.LBMaterialsClick(Sender: TObject);
-begin
-  with LBMaterials do
-    if ItemIndex >= 0 then
-      {MPPreview.}LibMaterial := TGLAbstractLibMaterial(Items.Objects[ItemIndex]);
-end;
-
-procedure TGLLibMaterialPickerForm.LBMaterialsKeyPress(Sender: TObject;
-  var Key: Char);
-begin
-  LBMaterialsClick(Sender);
-end;
-
-procedure TGLLibMaterialPickerForm.LBMaterialsDblClick(Sender: TObject);
-begin
-  BBOk.Click;
-end;
-
-//-----------------------------------------------------------------
-initialization
-//-----------------------------------------------------------------
-
-finalization
-
- ReleaseLibMaterialPickerForm;
-
-end.
-

+ 0 - 2
Source/FRColorEditor.dfm

@@ -7,7 +7,6 @@ object RColorEditor: TRColorEditor
   TabOrder = 0
   TabStop = True
   OnResize = FrameResize
-  PixelsPerInch = 96
   object Label1: TLabel
     Left = 0
     Top = 2
@@ -155,7 +154,6 @@ object RColorEditor: TRColorEditor
     TabOrder = 5
     Text = '0'
     OnChange = AlphaEditChange
-    OnDblClick = PAPreviewDblClick
   end
   object ColorDialog: TColorDialog
     Left = 232

+ 8 - 0
Source/FRColorEditor.pas

@@ -45,6 +45,7 @@ type
     procedure PAPreviewDblClick(Sender: TObject);
     procedure ColorEditorPaintBoxPaint(Sender: TObject);
     procedure FrameResize(Sender: TObject);
+    procedure RTrackBarEdit1EditChange(Sender: TObject);
     procedure ColorEditorPaintBoxMouseDown(Sender: TObject;
       Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
     procedure ColorEditorPaintBoxMouseMove(Sender: TObject;
@@ -186,6 +187,13 @@ begin
   GreenEdit.Height := 18;
   BlueEdit.Height := 18;
   AlphaEdit.Height := 18;
+
+end;
+
+procedure TRColorEditor.RTrackBarEdit1EditChange(Sender: TObject);
+begin
+//  RTrackBarEdit1.EditChange(Sender);
+
 end;
 
 function ColorValueToColorViewPosition(ColorValue : integer) : integer;

+ 24 - 22
Source/FRFaceEditor.dfm

@@ -2,20 +2,19 @@ object RFaceEditor: TRFaceEditor
   Left = 0
   Top = 0
   Width = 305
-  Height = 180
+  Height = 186
   AutoSize = True
   TabOrder = 0
-  PixelsPerInch = 96
   object Label1: TLabel
     Left = 0
-    Top = 0
+    Top = 6
     Width = 60
     Height = 20
     Caption = 'Shininess'
   end
   object PageControl: TPageControl
     Left = 0
-    Top = 50
+    Top = 56
     Width = 305
     Height = 130
     ActivePage = TSEmission
@@ -78,25 +77,28 @@ object RFaceEditor: TRFaceEditor
       end
     end
   end
-  object Edit: TEdit
-    Left = 219
-    Top = 3
-    Width = 41
-    Height = 21
+  inline TBEShininess: TRTrackBarEdit
+    Left = 50
+    Top = 0
+    Width = 201
+    Height = 33
     TabOrder = 1
-    Text = '0'
-  end
-  object TrackBar: TTrackBar
-    Left = 63
-    Top = 3
-    Width = 150
-    Height = 20
-    Max = 255
-    PageSize = 10
-    Frequency = 32
-    TabOrder = 2
-    ThumbLength = 10
-    TickMarks = tmTopLeft
+    ExplicitLeft = 50
+    ExplicitWidth = 201
+    ExplicitHeight = 33
+    inherited TrackBar: TTrackBar
+      Left = -2
+      Top = 1
+      Max = 128
+      Frequency = 16
+      OnChange = TBEShininessTrackBarChange
+      ExplicitLeft = -2
+      ExplicitTop = 1
+    end
+    inherited Edit: TEdit
+      Left = 160
+      ExplicitLeft = 160
+    end
   end
   object ImageList: TImageList
     Left = 264

+ 5 - 67
Source/FRFaceEditor.pas

@@ -21,6 +21,7 @@ uses
   VCL.Controls,
   VCL.Graphics,
 
+  FRTrackBarEdit,
   FRColorEditor,
   GLS.Texture,
   GLS.Material,
@@ -35,33 +36,21 @@ type
     TSSpecular: TTabSheet;
     CEAmbiant: TRColorEditor;
     Label1: TLabel;
+    TBEShininess: TRTrackBarEdit;
     ImageList: TImageList;
     CEDiffuse: TRColorEditor;
     CEEmission: TRColorEditor;
     CESpecular: TRColorEditor;
-    Edit: TEdit;
-    TrackBar: TTrackBar;
     procedure TBEShininessTrackBarChange(Sender: TObject);
-    procedure TrackBarChange(Sender: TObject);
-    procedure EditChange(Sender: TObject);
   private
     FOnChange: TNotifyEvent;
     Updating: Boolean;
     FFaceProperties: TGLFaceProperties;
     procedure SetGLFaceProperties(const val: TGLFaceProperties);
     procedure OnColorChange(Sender: TObject);
-    procedure SetValue(const val: Integer);
-    function GetValue: Integer;
-    procedure SetValueMin(const val: Integer);
-    function GetValueMin: Integer;
-    procedure SetValueMax(const val: Integer);
-    function GetValueMax: Integer;
   public
     constructor Create(AOwner: TComponent); override;
     destructor Destroy; override;
-    property Value: Integer read GetValue write SetValue;
-    property ValueMin: Integer read GetValueMin write SetValueMin;
-    property ValueMax: Integer read GetValueMax write SetValueMax;
     property OnChange: TNotifyEvent read FOnChange write FOnChange;
     property FaceProperties: TGLFaceProperties read FFaceProperties
       write SetGLFaceProperties;
@@ -73,57 +62,6 @@ implementation
 
 {$R *.dfm}
 
-procedure TRFaceEditor.TrackBarChange(Sender: TObject);
-begin
-  Edit.Text := IntToStr(TrackBar.Position);
-end;
-
-procedure TRFaceEditor.EditChange(Sender: TObject);
-var
-  i: Integer;
-begin
-  try
-    i := StrToInt(Edit.Text);
-    TrackBar.Position := i;
-  except
-    // ignore
-  end;
-end;
-
-procedure TRFaceEditor.SetValue(const val: Integer);
-begin
-  TrackBar.Position := val;
-  TrackBarChange(Self);
-end;
-
-function TRFaceEditor.GetValue: Integer;
-begin
-  Result := TrackBar.Position;
-end;
-
-procedure TRFaceEditor.SetValueMax(const val: Integer);
-begin
-  TrackBar.Max := val;
-  TrackBarChange(Self);
-end;
-
-function TRFaceEditor.GetValueMax: Integer;
-begin
-  Result := TrackBar.Max;
-end;
-
-procedure TRFaceEditor.SetValueMin(const val: Integer);
-begin
-  TrackBar.Min := val;
-  TrackBarChange(Self);
-end;
-
-function TRFaceEditor.GetValueMin: Integer;
-begin
-  Result := TrackBar.Min;
-end;
-
-
 constructor TRFaceEditor.Create(AOwner: TComponent);
 begin
   inherited;
@@ -187,8 +125,8 @@ procedure TRFaceEditor.TBEShininessTrackBarChange(Sender: TObject);
 begin
   if not Updating then
   begin
-    TrackBarChange(Sender);
-    FFaceProperties.Shininess := Value;
+    TBEShininess.TrackBarChange(Sender);
+    FFaceProperties.Shininess := TBEShininess.Value;
     if Assigned(FOnChange) then
       FOnChange(Self);
   end;
@@ -202,7 +140,7 @@ begin
     CEDiffuse.Color := val.Diffuse.Color;
     CEEmission.Color := val.Emission.Color;
     CESpecular.Color := val.Specular.Color;
-    Value := val.Shininess;
+    TBEShininess.Value := val.Shininess;
   finally
     Updating := False;
   end;

+ 13 - 11
Source/FRMaterialPreview.dfm

@@ -5,7 +5,19 @@ object RMaterialPreview: TRMaterialPreview
   Height = 230
   AutoSize = True
   TabOrder = 0
-  PixelsPerInch = 96
+  object GLSceneViewer: TGLSceneViewer
+    Left = 0
+    Top = 27
+    Width = 202
+    Height = 203
+    Camera = Camera
+    FieldOfView = 71.615516662597660000
+    PenAsTouch = False
+    OnMouseDown = SceneViewerMouseDown
+    OnMouseMove = SceneViewerMouseMove
+    OnMouseWheel = SceneViewerMouseWheel
+    TabOrder = 2
+  end
   object CBObject: TComboBox
     Left = 0
     Top = 0
@@ -36,16 +48,6 @@ object RMaterialPreview: TRMaterialPreview
       'on a red background'
       'on a green background')
   end
-  object GLSceneViewer: TGLSceneViewer
-    Left = 0
-    Top = 27
-    Width = 202
-    Height = 203
-    Camera = Camera
-    FieldOfView = 71.615516662597660000
-    PenAsTouch = False
-    TabOrder = 2
-  end
   object GLScene: TGLScene
     ObjectsSorting = osNone
     Left = 24

+ 11 - 12
Source/FRMaterialPreview.pas

@@ -3,7 +3,7 @@
 //
 unit FRMaterialPreview;
 
-(* Material Preview frame. *)
+(* Material Preview frame *)
 
 interface
 
@@ -12,17 +12,17 @@ interface
 uses
   System.Types,
   System.Classes,
-  VCL.Graphics,
-  VCL.Forms,
-  VCL.StdCtrls,
-  VCL.ComCtrls,
-  VCL.Controls,
+  Vcl.Graphics,
+  Vcl.Forms,
+  Vcl.StdCtrls,
+  Vcl.ComCtrls,
+  Vcl.Controls,
 
   GLS.Scene,
   GLS.VectorTypes,
   GLS.Objects,
   GLS.Texture,
-  GLS.HudObjects,
+  GLS.HUDObjects,
   GLS.SceneViewer,
   GLS.GeomObjects,
   GLS.Color,
@@ -33,6 +33,7 @@ uses
 type
   TRMaterialPreview = class(TFrame)
     GLScene: TGLScene;
+    GLSceneViewer: TGLSceneViewer;
     CBObject: TComboBox;
     Camera: TGLCamera;
     Cube: TGLCube;
@@ -46,7 +47,7 @@ type
     Light: TGLDummyCube;
     FireSphere: TGLSphere;
     GLMaterialLibrary: TGLMaterialLibrary;
-    GLSceneViewer: TGLSceneViewer;
+   
     procedure CBObjectChange(Sender: TObject);
     procedure CBBackgroundChange(Sender: TObject);
     procedure SceneViewerMouseMove(Sender: TObject; Shift: TShiftState;
@@ -64,8 +65,7 @@ type
   public
     constructor Create(AOwner: TComponent); override;
     property Material: TGLMaterial read GetMaterial write SetMaterial;
-    property LibMaterial: TGLAbstractLibMaterial read GetLibMaterial
-      write SetLibMaterial;
+    property LibMaterial: TGLAbstractLibMaterial read GetLibMaterial write SetLibMaterial;
   end;
 
 // ------------------------------------------------------------------
@@ -155,8 +155,7 @@ end;
 
 procedure TRMaterialPreview.SetMaterial(const Value: TGLMaterial);
 begin
-  GLMaterialLibrary.Materials[0].Material.Assign
-    (Value.GetActualPrimaryMaterial);
+  GLMaterialLibrary.Materials[0].Material.Assign(Value.GetActualPrimaryMaterial);
 end;
 
 function TRMaterialPreview.GetLibMaterial: TGLAbstractLibMaterial;

+ 7 - 8
Source/FRTextureEdit.dfm

@@ -6,7 +6,6 @@ object RTextureEdit: TRTextureEdit
   ParentShowHint = False
   ShowHint = True
   TabOrder = 0
-  PixelsPerInch = 96
   DesignSize = (
     230
     187)
@@ -73,7 +72,7 @@ object RTextureEdit: TRTextureEdit
     Left = 75
     Top = 48
     Width = 154
-    Height = 21
+    Height = 28
     Style = csDropDownList
     TabOrder = 0
     OnChange = CBMagFilterChange
@@ -82,7 +81,7 @@ object RTextureEdit: TRTextureEdit
     Left = 75
     Top = 72
     Width = 154
-    Height = 21
+    Height = 28
     Style = csDropDownList
     TabOrder = 1
     OnChange = CBMinFilterChange
@@ -91,7 +90,7 @@ object RTextureEdit: TRTextureEdit
     Left = 75
     Top = 120
     Width = 154
-    Height = 21
+    Height = 28
     Style = csDropDownList
     TabOrder = 2
     OnChange = CBTextureModeChange
@@ -100,7 +99,7 @@ object RTextureEdit: TRTextureEdit
     Left = 75
     Top = 144
     Width = 154
-    Height = 21
+    Height = 28
     Style = csDropDownList
     TabOrder = 3
     OnChange = CBTextureWrapChange
@@ -118,7 +117,7 @@ object RTextureEdit: TRTextureEdit
     Left = 75
     Top = 0
     Width = 138
-    Height = 21
+    Height = 28
     Style = csDropDownList
     Anchors = [akLeft, akTop, akRight]
     TabOrder = 5
@@ -128,7 +127,7 @@ object RTextureEdit: TRTextureEdit
     Left = 75
     Top = 24
     Width = 154
-    Height = 21
+    Height = 28
     Style = csDropDownList
     TabOrder = 6
     OnChange = CBImageAlphaChange
@@ -137,7 +136,7 @@ object RTextureEdit: TRTextureEdit
     Left = 75
     Top = 96
     Width = 154
-    Height = 21
+    Height = 28
     Style = csDropDownList
     TabOrder = 7
     OnChange = CBFilteringQualityChange

+ 4 - 4
Source/FmLibMaterialPicker.dfm

@@ -66,6 +66,10 @@ object GLLibMaterialPickerForm: TGLLibMaterialPickerForm
     ExplicitLeft = 157
     ExplicitTop = 25
     ExplicitHeight = 222
+    inherited GLSceneViewer: TGLSceneViewer
+      Top = 19
+      ExplicitTop = 19
+    end
     inherited CBObject: TComboBox
       Height = 21
       ExplicitHeight = 21
@@ -74,10 +78,6 @@ object GLLibMaterialPickerForm: TGLLibMaterialPickerForm
       Height = 21
       ExplicitHeight = 21
     end
-    inherited GLSceneViewer: TGLSceneViewer
-      Top = 19
-      ExplicitTop = 19
-    end
     inherited GLScene: TGLScene
       inherited World: TGLDummyCube
         inherited Cube: TGLCube

+ 1 - 2
Source/FmLibMaterialPicker.pas

@@ -72,8 +72,7 @@ begin
   begin
     materialLibrary.SetNamesToTStrings(LBMaterials.Items);
     ItemIndex := Items.IndexOf(materialName);
-    if (ItemIndex < 0) and (Items.Count > 0) then
-      ItemIndex := 0;
+    if (ItemIndex < 0) and (Items.Count > 0) then ItemIndex := 0;
     BBOk.Enabled := (Items.Count > 0);
   end;
   LBMaterialsClick(Self);

+ 2 - 10
Source/FmMaterialEditor.dfm

@@ -42,7 +42,7 @@ object GLMaterialEditorForm: TGLMaterialEditorForm
         Left = 0
         Top = 0
         Width = 305
-        Height = 180
+        Height = 186
         AutoSize = True
         TabOrder = 0
         inherited Label1: TLabel
@@ -69,10 +69,6 @@ object GLMaterialEditorForm: TGLMaterialEditorForm
             ExplicitHeight = 102
           end
         end
-        inherited Edit: TEdit
-          Height = 21
-          ExplicitHeight = 21
-        end
         inherited ImageList: TImageList
           Top = 0
         end
@@ -85,7 +81,7 @@ object GLMaterialEditorForm: TGLMaterialEditorForm
         Left = 0
         Top = 0
         Width = 305
-        Height = 180
+        Height = 186
         AutoSize = True
         TabOrder = 0
         inherited Label1: TLabel
@@ -112,10 +108,6 @@ object GLMaterialEditorForm: TGLMaterialEditorForm
             ExplicitHeight = 102
           end
         end
-        inherited Edit: TEdit
-          Height = 21
-          ExplicitHeight = 21
-        end
       end
     end
     object TSTexture: TTabSheet

+ 2 - 0
Source/FmMaterialEditor.pas

@@ -45,6 +45,8 @@ type
     Label2: TLabel;
     CBPolygonMode: TComboBox;
     procedure OnMaterialChanged(Sender: TObject);
+  private
+     
   public
     constructor Create(AOwner: TComponent); override;
     function Execute(AMaterial: TGLMaterial): Boolean;

+ 0 - 357
Source/GLS.FileGLB.pas

@@ -1,357 +0,0 @@
-//
-// The graphics rendering engine GLScene http://glscene.org
-//
-
-unit GLS.FileGLB;
-
-(* GLB binary file for glTF format implementation. *)
-
-interface
-
-uses
-  System.Classes,
-  System.SysUtils,
-
-  GLS.VectorFileObjects,
-  GLS.Texture,
-  GLS.ApplicationFileIO,
-  GLS.VectorTypes,
-  GLS.VectorLists,
-  GLS.VectorGeometry,
-  GLS.Material,
-  GLS.Utils,
-  GLS.PersistentClasses;
-
-type
-  (* The GLB binary glTF format is a runtime asset delivery format
-    for GL APIs: WebGL, OpenGL ES OpenGL and Vulkan. *)
-  TGLBVectorFile = class(TGLVectorFile)
-  public
-    class function Capabilities: TGLDataFileCapabilities; override;
-    procedure LoadFromStream(aStream: TStream); override;
-    procedure SaveToStream(aStream: TStream); override;
-  end;
-
-// ------------------------------------------------------------------
-implementation
-// ------------------------------------------------------------------
-
-// ------------------
-// ------------------ TGLGLBVectorFile ------------------
-// ------------------
-
-
-class function TGLBVectorFile.Capabilities: TGLDataFileCapabilities;
-begin
-  Result := [dfcRead, dfcWrite];
-end;
-
-procedure TGLBVectorFile.LoadFromStream(aStream: TStream);
-
-  procedure AllocateMaterial(const name: String);
-  var
-    matLib: TGLMaterialLibrary;
-  begin
-    if Owner is TGLBaseMesh then
-    begin
-      matLib := TGLBaseMesh(GetOwner).MaterialLibrary;
-      if Assigned(matLib) then
-      begin
-        if matLib.Materials.GetLibMaterialByName(name) = nil then
-        begin
-          if CompareText(name, 'null.bmp') <> 0 then
-          begin
-            try
-              matLib.AddTextureMaterial(name, name)
-            except
-              on E: ETexture do
-              begin
-                if not Owner.IgnoreMissingTextures then
-                  raise;
-              end;
-            end;
-          end
-          else
-            matLib.AddTextureMaterial(name, '');
-        end;
-      end;
-    end;
-  end;
-
-var
-  i, j, k, nVert, nTex, firstFrame: Integer;
-  nbBones, boneID: Integer;
-  mesh: TGLSkeletonMeshObject;
-  sl, tl: TStringList;
-  bone: TGLSkeletonBone;
-  frame: TGLSkeletonFrame;
-  faceGroup: TFGVertexNormalTexIndexList;
-  v: TAffineVector;
-
-  boneIDs: TGLVertexBoneWeightDynArray;
-  weightCount: Integer;
-begin
-  sl := TStringList.Create;
-  tl := TStringList.Create;
-  try
-    sl.LoadFromStream(aStream);
-    if sl[0] <> 'version 1' then
-      raise Exception.Create('SMD version 1 required');
-    if sl[1] <> 'nodes' then
-      raise Exception.Create('nodes not found');
-    if sl.IndexOf('triangles') >= 0 then
-    begin
-      mesh := TGLSkeletonMeshObject.CreateOwned(Owner.MeshObjects);
-      mesh.Mode := momFaceGroups;
-    end
-    else if Owner.MeshObjects.Count > 0 then
-      mesh := (Owner.MeshObjects[0] as TGLSkeletonMeshObject)
-    else
-      raise Exception.Create('SMD is an animation, load model SMD first.');
-    // read skeleton nodes
-    i := 2;
-    if Owner.Skeleton.RootBones.Count = 0 then
-    begin
-      // new bone structure
-      while sl[i] <> 'end' do
-      begin
-        tl.CommaText := sl[i];
-        with Owner.Skeleton do
-          if (tl[2] <> '-1') then
-            bone := TGLSkeletonBone.CreateOwned
-              (RootBones.BoneByID(StrToInt(tl[2])))
-          else
-            bone := TGLSkeletonBone.CreateOwned(RootBones);
-        if Assigned(bone) then
-        begin
-          bone.boneID := StrToInt(tl[0]);
-          bone.name := tl[1];
-        end;
-        Inc(i);
-      end;
-    end
-    else
-    begin
-      // animation file, skip structure
-      while sl[i] <> 'end' do
-        Inc(i);
-    end;
-    Inc(i);
-    if sl[i] <> 'skeleton' then
-      raise Exception.Create('skeleton not found');
-    Inc(i);
-    // read animation time frames
-    nbBones := Owner.Skeleton.RootBones.BoneCount - 1;
-    firstFrame := Owner.Skeleton.Frames.Count;
-    while sl[i] <> 'end' do
-    begin
-      if Copy(sl[i], 1, 5) <> 'time ' then
-        raise Exception.Create('time not found, got: ' + sl[i]);
-      frame := TGLSkeletonFrame.CreateOwned(Owner.Skeleton.Frames);
-      frame.name := ResourceName + ' ' + sl[i];
-      Inc(i);
-      while Pos(Copy(sl[i], 1, 1), ' 1234567890') > 0 do
-      begin
-        tl.CommaText := sl[i];
-        while StrToInt(tl[0]) > frame.Position.Count do
-        begin
-          frame.Position.Add(NullVector);
-          frame.Rotation.Add(NullVector);
-        end;
-        frame.Position.Add(GLStrToFloatDef(tl[1]),
-          GLStrToFloatDef(tl[2]), GLStrToFloatDef(tl[3]));
-        v := AffineVectorMake(GLStrToFloatDef(tl[4]),
-          GLStrToFloatDef(tl[5]), GLStrToFloatDef(tl[6]));
-        frame.Rotation.Add(v);
-        Inc(i);
-      end;
-      while frame.Position.Count < nbBones do
-      begin
-        frame.Position.Add(NullVector);
-        frame.Rotation.Add(NullVector);
-      end;
-      Assert(frame.Position.Count = nbBones, 'Invalid number of bones in frame '
-        + IntToStr(Owner.Skeleton.Frames.Count));
-    end;
-    if Owner is TGLActor then
-      with TGLActor(Owner).Animations.Add do
-      begin
-        k := Pos('.', ResourceName);
-        if k > 0 then
-          Name := Copy(ResourceName, 1, k - 1)
-        else
-          Name := ResourceName;
-        Reference := aarSkeleton;
-        StartFrame := firstFrame;
-        EndFrame := Self.Owner.Skeleton.Frames.Count - 1;
-      end;
-    Inc(i);
-    if (i < sl.Count) and (sl[i] = 'triangles') then
-    begin
-      // read optional mesh data
-      Inc(i);
-      if mesh.BonesPerVertex < 1 then
-        mesh.BonesPerVertex := 1;
-      faceGroup := nil;
-
-      while sl[i] <> 'end' do
-      begin
-        if (faceGroup = nil) or (faceGroup.MaterialName <> sl[i]) then
-        begin
-          faceGroup := TFGVertexNormalTexIndexList.CreateOwned(mesh.FaceGroups);
-          faceGroup.Mode := fgmmTriangles;
-          faceGroup.MaterialName := sl[i];
-          AllocateMaterial(sl[i]);
-        end;
-        Inc(i);
-
-        for k := 1 to 3 do
-          with mesh do
-          begin
-            tl.CommaText := sl[i];
-
-            if tl.Count > 9 then
-            begin
-              // specifies bones and weights
-              weightCount := StrToInt(tl[9]);
-              SetLength(boneIDs, weightCount);
-              for j := 0 to weightCount - 1 do
-              begin
-                boneIDs[j].boneID := StrToInt(tl[10 + j * 2]);
-                boneIDs[j].Weight := GLStrToFloatDef(tl[11 + j * 2]);
-              end;
-
-              nVert := FindOrAdd(boneIDs,
-                AffineVectorMake(GLStrToFloatDef(tl[1]),
-                GLStrToFloatDef(tl[2]), GLStrToFloatDef(tl[3])),
-                AffineVectorMake(GLStrToFloatDef(tl[4]),
-                GLStrToFloatDef(tl[5]),
-                GLStrToFloatDef(tl[6])));
-              nTex := TexCoords.FindOrAdd
-                (AffineVectorMake(GLStrToFloatDef(tl[7]),
-                GLStrToFloatDef(tl[8]), 0));
-              faceGroup.Add(nVert, nVert, nTex);
-              Inc(i);
-            end
-            else
-            begin
-              // simple format
-              boneID := StrToInt(tl[0]);
-              nVert := FindOrAdd(boneID,
-                AffineVectorMake(GLStrToFloatDef(tl[1]),
-                GLStrToFloatDef(tl[2]), GLStrToFloatDef(tl[3])),
-                AffineVectorMake(GLStrToFloatDef(tl[4]),
-                GLStrToFloatDef(tl[5]), GLStrToFloatDef(tl[6])));
-              nTex := TexCoords.FindOrAdd
-                (AffineVectorMake(GLStrToFloatDef(tl[7]),
-                GLStrToFloatDef(tl[8]), 0));
-              faceGroup.Add(nVert, nVert, nTex);
-              Inc(i);
-            end;
-          end;
-      end;
-      Owner.Skeleton.RootBones.PrepareGlobalMatrices;
-      mesh.PrepareBoneMatrixInvertedMeshes;
-    end;
-  finally
-    tl.Free;
-    sl.Free;
-  end;
-end;
-
-procedure TGLBVectorFile.SaveToStream(aStream: TStream);
-var
-  str, nodes: TStrings;
-  i, j, k, l, b: Integer;
-  p, r, v, n, t: TAffineVector;
-
-  procedure GetNodesFromBonesRecurs(bone: TGLSkeletonBone; ParentID: Integer;
-    bl: TStrings);
-  var
-    i: Integer;
-  begin
-    bl.Add(Format('%3d "%s" %3d', [bone.boneID, bone.name, ParentID]));
-    for i := 0 to bone.Count - 1 do
-      GetNodesFromBonesRecurs(bone.Items[i], bone.boneID, bl);
-  end;
-
-begin
-  str := TStringList.Create;
-  nodes := TStringList.Create;
-  try
-    str.Add('version 1');
-
-    // Add the bones
-    str.Add('nodes');
-    for i := 0 to Owner.Skeleton.RootBones.Count - 1 do
-    begin
-      GetNodesFromBonesRecurs(Owner.Skeleton.RootBones[i], -1, nodes);
-    end;
-    str.AddStrings(nodes);
-    str.Add('end');
-
-    // Now add the relavent frames
-    if Owner.Skeleton.Frames.Count > 0 then
-    begin
-      str.Add('skeleton');
-      for i := 0 to Owner.Skeleton.Frames.Count - 1 do
-      begin
-        str.Add(Format('time %d', [i]));
-        for j := 0 to Owner.Skeleton.Frames[i].Position.Count - 1 do
-        begin
-          p := Owner.Skeleton.Frames[i].Position[j];
-          r := Owner.Skeleton.Frames[i].Rotation[j];
-          str.Add(StringReplace(Format('%3d %.6f %.6f %.6f %.6f %.6f %.6f',
-            [j, p.X, p.Y, p.Z, r.X, r.Y, r.Z]), ',', '.', [rfReplaceAll]));
-        end;
-      end;
-      str.Add('end');
-    end;
-
-    // Add the mesh data
-    if Owner.MeshObjects.Count > 0 then
-    begin
-      str.Add('triangles');
-      for i := 0 to Owner.MeshObjects.Count - 1 do
-        if Owner.MeshObjects[i] is TGLSkeletonMeshObject then
-          with TGLSkeletonMeshObject(Owner.MeshObjects[i]) do
-          begin
-            for j := 0 to FaceGroups.Count - 1 do
-              with TFGVertexNormalTexIndexList(FaceGroups[j]) do
-              begin
-                for k := 0 to (VertexIndices.Count div 3) - 1 do
-                begin
-                  str.Add(MaterialName);
-                  for l := 0 to 2 do
-                  begin
-                    v := Vertices[VertexIndices[3 * k + l]];
-                    n := Normals[NormalIndices[3 * k + l]];
-                    t := TexCoords[TexCoordIndices[3 * k + l]];
-                    b := VerticesBonesWeights^[VertexIndices[3 * k + l]]^
-                      [0].boneID;
-                    str.Add(StringReplace
-                      (Format('%3d %.4f %.4f %.4f %.4f %.4f %.4f %.4f %.4f',
-                      [b, v.X, v.Y, v.Z, n.X, n.Y, n.Z, t.X, t.Y]), ',', '.',
-                      [rfReplaceAll]));
-                  end;
-                end;
-              end;
-          end;
-      str.Add('end');
-    end;
-
-    str.SaveToStream(aStream);
-  finally
-    str.Free;
-    nodes.Free;
-  end;
-end;
-
-// ------------------------------------------------------------------
-initialization
-
-// ------------------------------------------------------------------
-
-RegisterVectorFileFormat('glb', 'Binary glTF files', TGLBVectorFile);
-
-end.

+ 34 - 11
Source/GLS.FileGLTF.pas

@@ -3,7 +3,7 @@
 //
 unit GLS.FileGLTF;
 
-(* glTF/GLB formats implementation. *)
+(* glTF/glb formats implementation. *)
 
 interface
 
@@ -25,13 +25,21 @@ uses
 type
   (* The glTF format is a runtime asset delivery format
     for GL APIs: WebGL, OpenGL ES OpenGL and Vulkan. *)
-  TGLTFVectorFile = class(TGLVectorFile)
+  TGLglTFVectorFile = class(TGLVectorFile)
   public
     class function Capabilities: TGLDataFileCapabilities; override;
     procedure LoadFromStream(aStream: TStream); override;
     procedure SaveToStream(aStream: TStream); override;
   end;
 
+
+{$IFDEF USE_MULTITHREAD}
+  threadvar
+{$ELSE}
+  var
+{$ENDIF}
+  glTFUseEmbeddedColors: Boolean;
+
 // ------------------------------------------------------------------
 implementation
 // ------------------------------------------------------------------
@@ -41,12 +49,12 @@ implementation
 // ------------------
 
 
-class function TGLTFVectorFile.Capabilities: TGLDataFileCapabilities;
+class function TGLglTFVectorFile.Capabilities: TGLDataFileCapabilities;
 begin
   Result := [dfcRead, dfcWrite];
 end;
 
-procedure TGLTFVectorFile.LoadFromStream(aStream: TStream);
+procedure TGLglTFVectorFile.LoadFromStream(aStream: TStream);
 
   procedure AllocateMaterial(const name: String);
   var
@@ -95,13 +103,19 @@ begin
   tl := TStringList.Create;
   try
     sl.LoadFromStream(aStream);
-    /// then reading glts/glb file for GLS skeleton
+    /// then reading glTF/GLB files to assign in TGLSkeletonMeshObject
+    if sl[0] <> 'gltf' then 
+      raise Exception.Create('GLB extention required');
+    if sl[1] <> 'nodes' then
+      raise Exception.Create('nodes not found');
+
 (*
-    if sl[0] <> 'version 1' then
-      raise Exception.Create('GLTF version 1 required');
+    if sl[1] <> 'glb' then  // needs also .bin and .png files for anim and textures 
+      raise Exception.Create('GLTF extention required');
     if sl[1] <> 'nodes' then
       raise Exception.Create('nodes not found');
 *)
+
     if sl.IndexOf('triangles') >= 0 then
     begin
       mesh := TGLSkeletonMeshObject.CreateOwned(Owner.MeshObjects);
@@ -110,7 +124,7 @@ begin
     else if Owner.MeshObjects.Count > 0 then
       mesh := (Owner.MeshObjects[0] as TGLSkeletonMeshObject)
     else
-      raise Exception.Create('Cant load GLTF with an animation');
+      raise Exception.Create('Cant load glTF with an animation');
     // read skeleton nodes
     i := 2;
     if Owner.Skeleton.RootBones.Count = 0 then
@@ -132,7 +146,14 @@ begin
         end;
         Inc(i);
       end;
+    end
+    else
+    begin
+      // animation file, skip structure
+      while sl[i] <> 'end' do
+        Inc(i);
     end;
+	
     Inc(i);
     if sl[i] <> 'skeleton' then
       raise Exception.Create('skeleton not found');
@@ -253,7 +274,7 @@ begin
   end;
 end;
 
-procedure TGLTFVectorFile.SaveToStream(aStream: TStream);
+procedure TGLglTFVectorFile.SaveToStream(aStream: TStream);
 var
   str, nodes: TStrings;
   i, j, k, l, b: Integer;
@@ -345,7 +366,9 @@ end;
 initialization
 // ------------------------------------------------------------------
 
-RegisterVectorFileFormat('gltf', 'ASCII glTF files', TGLTFVectorFile);
-RegisterVectorFileFormat('glb', 'Binary glTF files', TGLTFVectorFile);
+glTFUseEmbeddedColors := False;
+
+RegisterVectorFileFormat('gltf', 'ASCII glTF files', TGLglTFVectorFile);
+RegisterVectorFileFormat('glb', 'Binary glTF files', TGLglTFVectorFile);
 
 end.

+ 1 - 1
Source/GLS.FileSTL.pas

@@ -45,7 +45,7 @@ type
 
 type
 
-  TglSTLVectorFile = class(TglVectorFile)
+  TGLSTLVectorFile = class(TGLVectorFile)
   public
     class function Capabilities: TGLDataFileCapabilities; override;
     procedure LoadFromStream(aStream: TStream); override;

+ 0 - 1
Source/GLS.ObjectManager.pas

@@ -1,7 +1,6 @@
 //
 // The graphics rendering engine GLScene http://glscene.org
 //
-
 unit GLS.ObjectManager;
 
 (*

+ 1 - 0
Source/GLS.SceneRegister.pas

@@ -395,6 +395,7 @@ uses
   GLS.FileASE,
   GLS.FileB3D,
   GLS.FileGL2,
+  GLS.FileGLTF,
   GLS.FileGTS,
   GLS.FileLMTS,
   GLS.FileLWO,

+ 0 - 1
external/#external.txt

@@ -1 +0,0 @@
-The directory for external DLL libraries

+ 0 - 75
external/GR32/CleanGR32.bat

@@ -1,75 +0,0 @@
-echo off
-del *.exe /s  
-del *.scr /s
-del *.dcu /s 
-del *.ddp /s
-del *.ppu /s
-del *.o /s
-del *.~* /s
-del *.log /s
-del *.dsk /s
-del *.dof /s
-del *.bk? /s
-del *.mps /s
-del *.rst /s
-del *.s /s
-del *.a /s
-del *.map /s
-del *.rsm /s
-del *.drc /s
-del *.2007 /s
-del *.local /s
-
-rem delete more files
-
-del *.bak /s
-del *.xml /s
-del *.cvsignore /s
-del *.identcache /s
-del *.otares /s
-del *.tvsconfig /s
-del *.stat /s
-del *.db /s
-del *.~dbg /s
-del *.spider /s
-
-rem delete cpp builder files
-
-del *.hpp /s
-del *.#00 /s
-del *.pch /s
-del *.tds /s
-del *.ilc /s
-del *.ild /s
-del *.ilf /s
-del *.ils /s
-del *.pdi /s
-del *.vlb /s
-
-
-echo _
-echo ************************************************
-echo             Don't delete some files
-echo ************************************************
-echo _
-
-attrib +R "AdvDemos/Q3Demo/Model/animation.cfg"
-rem del *.cfg /s  - there are quake's animations
-attrib -R "AdvDemos/Q3Demo/Model/animation.cfg"
-
-rem del *.res /s
-rem del *.ico /s  - some projects have own icos
-rem del *.cur /s  - cursors
-del *.obj /s 
-
-echo---------------------------------------------------------
-echo delete debug and Platform directories with all subdirectories and files 
-for /r %1 %%R in (Win32) do if exist "%%R" (rd /s /q "%%R")
-for /r %1 %%R in (Win64) do if exist "%%R" (rd /s /q "%%R")
-for /r %1 %%R in (Debug) do if exist "%%R" (rd /s /q "%%R")
-for /r %1 %%R in (Release) do if exist "%%R" (rd /s /q "%%R")
-for /r %1 %%R in (Debug_Build) do if exist "%%R" (rd /s /q "%%R")
-for /r %1 %%R in (Release_Build) do if exist "%%R" (rd /s /q "%%R")
-for /r %1 %%R in (__history) do if exist "%%R" (rd /s /q "%%R")
-for /r %1 %%R in (__recovery) do if exist "%%R" (rd /s /q "%%R")
-for /r %1 %%R in (__astcache) do if exist "%%R" (rd /s /q "%%R")

+ 415 - 24
external/GR32/Examples/Drawing/AntiAliasing/AntiAliasing.dproj

@@ -7,7 +7,7 @@
         <MainSource>AntiAliasing.dpr</MainSource>
         <Platform Condition="'$(Platform)'==''">Win32</Platform>
         <ProjectGuid>{B915CC3D-BFD6-4142-85E4-59EA686F43FE}</ProjectGuid>
-        <ProjectVersion>18.7</ProjectVersion>
+        <ProjectVersion>19.4</ProjectVersion>
         <TargetedPlatforms>3</TargetedPlatforms>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
@@ -118,10 +118,6 @@
             <Form>Media.res</Form>
         </RcCompile>
         <DCCReference Include="MainUnit.pas"/>
-        <BuildConfiguration Include="Debug">
-            <Key>Cfg_2</Key>
-            <CfgParent>Base</CfgParent>
-        </BuildConfiguration>
         <BuildConfiguration Include="Base">
             <Key>Base</Key>
         </BuildConfiguration>
@@ -129,6 +125,10 @@
             <Key>Cfg_1</Key>
             <CfgParent>Base</CfgParent>
         </BuildConfiguration>
+        <BuildConfiguration Include="Debug">
+            <Key>Cfg_2</Key>
+            <CfgParent>Base</CfgParent>
+        </BuildConfiguration>
     </ItemGroup>
     <ProjectExtensions>
         <Borland.Personality>Delphi.Personality.12</Borland.Personality>
@@ -185,6 +185,12 @@
                 <Platform value="Win64">True</Platform>
             </Platforms>
             <Deployment Version="3">
+                <DeployFile LocalName="$(BDS)\Redist\Osx32\libcgunwind.1.0.dylib">
+                    <Platform Name="OSX32">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Overwrite>true</Overwrite>
+                    </Platform>
+                </DeployFile>
                 <DeployFile LocalName="$(crossvcl)\Redist\crossvcl.icns">
                     <Platform Name="OSX32">
                         <RemoteDir>Contents\Resources</RemoteDir>
@@ -198,39 +204,33 @@
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile LocalName="$(BDS)\Redist\Osx32\libcgunwind.1.0.dylib">
+                <DeployFile LocalName="$(crossvcl)\Redist\libcrossvcl32.dylib">
                     <Platform Name="OSX32">
                         <RemoteDir>Contents\MacOS</RemoteDir>
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile LocalName="..\..\..\Binaries\OSX32\Debug\AntiAliasing.rsm" Configuration="Debug" Class="DebugSymbols">
-                    <Platform Name="OSX32">
-                        <RemoteDir>Contents\MacOS\</RemoteDir>
-                        <RemoteName>AntiAliasing.rsm</RemoteName>
-                        <Overwrite>true</Overwrite>
-                    </Platform>
-                </DeployFile>
                 <DeployFile LocalName="..\..\..\Binaries\OSX32\Debug\AntiAliasing.entitlements" Configuration="Debug" Class="ProjectOSXEntitlements">
                     <Platform Name="OSX32">
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile LocalName="..\..\..\Binaries\OSX32\Debug\AntiAliasing" Configuration="Debug" Class="ProjectOutput">
+                <DeployFile LocalName="..\..\..\Binaries\OSX32\Debug\AntiAliasing.info.plist" Configuration="Debug" Class="ProjectOSXInfoPList">
                     <Platform Name="OSX32">
-                        <RemoteName>AntiAliasing</RemoteName>
+                        <RemoteName>Info.plist</RemoteName>
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile LocalName="$(crossvcl)\Redist\libcrossvcl32.dylib">
+                <DeployFile LocalName="..\..\..\Binaries\OSX32\Debug\AntiAliasing.rsm" Configuration="Debug" Class="DebugSymbols">
                     <Platform Name="OSX32">
-                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <RemoteDir>Contents\MacOS\</RemoteDir>
+                        <RemoteName>AntiAliasing.rsm</RemoteName>
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
-                <DeployFile LocalName="..\..\..\Binaries\OSX32\Debug\AntiAliasing.info.plist" Configuration="Debug" Class="ProjectOSXInfoPList">
+                <DeployFile LocalName="..\..\..\Binaries\OSX32\Debug\AntiAliasing" Configuration="Debug" Class="ProjectOutput">
                     <Platform Name="OSX32">
-                        <RemoteName>Info.plist</RemoteName>
+                        <RemoteName>AntiAliasing</RemoteName>
                         <Overwrite>true</Overwrite>
                     </Platform>
                 </DeployFile>
@@ -246,6 +246,16 @@
                         <Operation>0</Operation>
                     </Platform>
                 </DeployClass>
+                <DeployClass Name="AndroidClasses">
+                    <Platform Name="Android">
+                        <RemoteDir>classes</RemoteDir>
+                        <Operation>64</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>classes</RemoteDir>
+                        <Operation>64</Operation>
+                    </Platform>
+                </DeployClass>
                 <DeployClass Name="AndroidClassesDexFile">
                     <Platform Name="Android">
                         <RemoteDir>classes</RemoteDir>
@@ -257,6 +267,10 @@
                         <RemoteDir>res\xml</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\xml</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="AndroidGDBServer">
                     <Platform Name="Android">
@@ -269,138 +283,252 @@
                         <RemoteDir>library\lib\armeabi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\armeabi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidLibnativeArmeabiv7aFile">
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="AndroidLibnativeMipsFile">
                     <Platform Name="Android">
                         <RemoteDir>library\lib\mips</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\mips</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="AndroidServiceOutput">
                     <Platform Name="Android">
                         <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\arm64-v8a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="AndroidServiceOutput_Android32">
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="AndroidSplashImageDef">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="AndroidSplashStyles">
                     <Platform Name="Android">
                         <RemoteDir>res\values</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\values</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="AndroidSplashStylesV21">
                     <Platform Name="Android">
                         <RemoteDir>res\values-v21</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\values-v21</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_Colors">
                     <Platform Name="Android">
                         <RemoteDir>res\values</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\values</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_DefaultAppIcon">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_LauncherIcon144">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-xxhdpi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-xxhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="Android_LauncherIcon192">
+                    <Platform Name="Android">
+                        <RemoteDir>res\drawable-xxxhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-xxxhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_LauncherIcon36">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-ldpi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-ldpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_LauncherIcon48">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-mdpi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-mdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_LauncherIcon72">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-hdpi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-hdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_LauncherIcon96">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-xhdpi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-xhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_NotificationIcon24">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-mdpi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-mdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_NotificationIcon36">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-hdpi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-hdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_NotificationIcon48">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-xhdpi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-xhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_NotificationIcon72">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-xxhdpi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-xxhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_NotificationIcon96">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-xxxhdpi</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-xxxhdpi</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_SplashImage426">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-small</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-small</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_SplashImage470">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-normal</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-normal</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_SplashImage640">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-large</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-large</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_SplashImage960">
                     <Platform Name="Android">
                         <RemoteDir>res\drawable-xlarge</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\drawable-xlarge</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="Android_Strings">
                     <Platform Name="Android">
                         <RemoteDir>res\values</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>res\values</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="DebugSymbols">
                     <Platform Name="iOSSimulator">
@@ -425,6 +553,11 @@
                         <Operation>1</Operation>
                         <Extensions>.framework</Extensions>
                     </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.framework</Extensions>
+                    </Platform>
                     <Platform Name="Win32">
                         <Operation>0</Operation>
                     </Platform>
@@ -452,6 +585,11 @@
                         <Operation>1</Operation>
                         <Extensions>.dylib</Extensions>
                     </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
                     <Platform Name="Win32">
                         <Operation>0</Operation>
                         <Extensions>.dll;.bpl</Extensions>
@@ -480,6 +618,11 @@
                         <Operation>1</Operation>
                         <Extensions>.dylib</Extensions>
                     </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                        <Extensions>.dylib</Extensions>
+                    </Platform>
                     <Platform Name="Win32">
                         <Operation>0</Operation>
                         <Extensions>.bpl</Extensions>
@@ -489,6 +632,9 @@
                     <Platform Name="Android">
                         <Operation>0</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <Operation>0</Operation>
+                    </Platform>
                     <Platform Name="iOSDevice32">
                         <Operation>0</Operation>
                     </Platform>
@@ -506,10 +652,40 @@
                         <RemoteDir>Contents\Resources\StartUp\</RemoteDir>
                         <Operation>0</Operation>
                     </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents\Resources\StartUp\</RemoteDir>
+                        <Operation>0</Operation>
+                    </Platform>
                     <Platform Name="Win32">
                         <Operation>0</Operation>
                     </Platform>
                 </DeployClass>
+                <DeployClass Name="iOS_AppStore1024">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_AppIcon152">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_AppIcon167">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
                 <DeployClass Name="iPad_Launch1024">
                     <Platform Name="iOSDevice32">
                         <Operation>1</Operation>
@@ -642,6 +818,16 @@
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
+                <DeployClass Name="iPad_Launch2x">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
                 <DeployClass Name="iPad_Launch768">
                     <Platform Name="iOSDevice32">
                         <Operation>1</Operation>
@@ -664,6 +850,66 @@
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
+                <DeployClass Name="iPad_LaunchDark2x">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Notification40">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_Setting58">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPad_SpotLight80">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_AppIcon120">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_AppIcon180">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
                 <DeployClass Name="iPhone_Launch1125">
                     <Platform Name="iOSDevice32">
                         <Operation>1</Operation>
@@ -763,6 +1009,16 @@
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
+                <DeployClass Name="iPhone_Launch2x">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
                 <DeployClass Name="iPhone_Launch320">
                     <Platform Name="iOSDevice32">
                         <Operation>1</Operation>
@@ -774,6 +1030,16 @@
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
+                <DeployClass Name="iPhone_Launch3x">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
                 <DeployClass Name="iPhone_Launch640">
                     <Platform Name="iOSDevice32">
                         <Operation>1</Operation>
@@ -818,10 +1084,93 @@
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
+                <DeployClass Name="iPhone_LaunchDark2x">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_LaunchDark3x">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Notification40">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Notification60">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Setting58">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Setting87">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Spotlight120">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
+                <DeployClass Name="iPhone_Spotlight80">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
                 <DeployClass Name="ProjectAndroidManifest">
                     <Platform Name="Android">
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="ProjectiOSDeviceDebug">
                     <Platform Name="iOSDevice32">
@@ -862,6 +1211,16 @@
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
+                <DeployClass Name="ProjectiOSLaunchScreen">
+                    <Platform Name="iOSDevice64">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen</RemoteDir>
+                        <Operation>64</Operation>
+                    </Platform>
+                    <Platform Name="iOSSimulator">
+                        <RemoteDir>..\$(PROJECTNAME).launchscreen</RemoteDir>
+                        <Operation>64</Operation>
+                    </Platform>
+                </DeployClass>
                 <DeployClass Name="ProjectiOSResource">
                     <Platform Name="iOSDevice32">
                         <Operation>1</Operation>
@@ -878,6 +1237,10 @@
                         <RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="ProjectOSXEntitlements">
                     <Platform Name="OSX32">
@@ -888,6 +1251,10 @@
                         <RemoteDir>..\</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>..\</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="ProjectOSXInfoPList">
                     <Platform Name="OSX32">
@@ -898,6 +1265,10 @@
                         <RemoteDir>Contents</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Name="ProjectOSXResource">
                     <Platform Name="OSX32">
@@ -908,12 +1279,20 @@
                         <RemoteDir>Contents\Resources</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents\Resources</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                 </DeployClass>
                 <DeployClass Required="true" Name="ProjectOutput">
                     <Platform Name="Android">
                         <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\arm64-v8a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                     <Platform Name="iOSDevice32">
                         <Operation>1</Operation>
                     </Platform>
@@ -934,10 +1313,20 @@
                         <RemoteDir>Contents\MacOS</RemoteDir>
                         <Operation>1</Operation>
                     </Platform>
+                    <Platform Name="OSXARM64">
+                        <RemoteDir>Contents\MacOS</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
                     <Platform Name="Win32">
                         <Operation>0</Operation>
                     </Platform>
                 </DeployClass>
+                <DeployClass Name="ProjectOutput_Android32">
+                    <Platform Name="Android64">
+                        <RemoteDir>library\lib\armeabi-v7a</RemoteDir>
+                        <Operation>1</Operation>
+                    </Platform>
+                </DeployClass>
                 <DeployClass Name="ProjectUWPManifest">
                     <Platform Name="Win32">
                         <Operation>1</Operation>
@@ -966,15 +1355,17 @@
                         <Operation>1</Operation>
                     </Platform>
                 </DeployClass>
-                <ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="Android64" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="iOSDevice32" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="iOSDevice64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
                 <ProjectRoot Platform="Linux64" Name="$(PROJECTNAME)"/>
-                <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="OSX32" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="Android" Name="$(PROJECTNAME)"/>
                 <ProjectRoot Platform="OSX64" Name="$(PROJECTNAME).app"/>
-                <ProjectRoot Platform="iOSSimulator" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="OSXARM64" Name="$(PROJECTNAME).app"/>
+                <ProjectRoot Platform="Win32" Name="$(PROJECTNAME)"/>
+                <ProjectRoot Platform="Win64" Name="$(PROJECTNAME)"/>
             </Deployment>
         </BorlandProject>
         <ProjectFileVersion>12</ProjectFileVersion>

+ 5 - 5
external/GR32/Examples/Drawing/ArrowHead/ArrowHead.dproj

@@ -7,7 +7,7 @@
         <MainSource>ArrowHead.dpr</MainSource>
         <Platform Condition="'$(Platform)'==''">Win32</Platform>
         <ProjectGuid>{8F2344F8-B629-4A56-917A-8F0C7AD2EA06}</ProjectGuid>
-        <ProjectVersion>18.7</ProjectVersion>
+        <ProjectVersion>19.4</ProjectVersion>
         <TargetedPlatforms>3</TargetedPlatforms>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
@@ -120,10 +120,6 @@
         <DCCReference Include="MainUnit.pas">
             <Form>FmArrowHead</Form>
         </DCCReference>
-        <BuildConfiguration Include="Debug">
-            <Key>Cfg_2</Key>
-            <CfgParent>Base</CfgParent>
-        </BuildConfiguration>
         <BuildConfiguration Include="Base">
             <Key>Base</Key>
         </BuildConfiguration>
@@ -131,6 +127,10 @@
             <Key>Cfg_1</Key>
             <CfgParent>Base</CfgParent>
         </BuildConfiguration>
+        <BuildConfiguration Include="Debug">
+            <Key>Cfg_2</Key>
+            <CfgParent>Base</CfgParent>
+        </BuildConfiguration>
     </ItemGroup>
     <ProjectExtensions>
         <Borland.Personality>Delphi.Personality.12</Borland.Personality>

+ 5 - 5
external/GR32/Examples/Drawing/Blurs/Blurs.dproj

@@ -7,7 +7,7 @@
         <MainSource>Blurs.dpr</MainSource>
         <Platform Condition="'$(Platform)'==''">Win32</Platform>
         <ProjectGuid>{BFCA59E0-A4B6-40D4-B514-023E7E6A8034}</ProjectGuid>
-        <ProjectVersion>18.7</ProjectVersion>
+        <ProjectVersion>19.4</ProjectVersion>
         <TargetedPlatforms>3</TargetedPlatforms>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
@@ -118,10 +118,6 @@
             <Form>Media.res</Form>
         </RcCompile>
         <DCCReference Include="MainUnit.pas"/>
-        <BuildConfiguration Include="Debug">
-            <Key>Cfg_2</Key>
-            <CfgParent>Base</CfgParent>
-        </BuildConfiguration>
         <BuildConfiguration Include="Base">
             <Key>Base</Key>
         </BuildConfiguration>
@@ -129,6 +125,10 @@
             <Key>Cfg_1</Key>
             <CfgParent>Base</CfgParent>
         </BuildConfiguration>
+        <BuildConfiguration Include="Debug">
+            <Key>Cfg_2</Key>
+            <CfgParent>Base</CfgParent>
+        </BuildConfiguration>
     </ItemGroup>
     <ProjectExtensions>
         <Borland.Personality>Delphi.Personality.12</Borland.Personality>

+ 5 - 5
external/GR32/Examples/Drawing/Curves/Curves.dproj

@@ -7,7 +7,7 @@
         <MainSource>Curves.dpr</MainSource>
         <Platform Condition="'$(Platform)'==''">Win32</Platform>
         <ProjectGuid>{761ACFE2-5309-4CE3-9BDC-110F69756397}</ProjectGuid>
-        <ProjectVersion>18.7</ProjectVersion>
+        <ProjectVersion>19.4</ProjectVersion>
         <TargetedPlatforms>3</TargetedPlatforms>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
@@ -114,10 +114,6 @@
             <Form>Media.res</Form>
         </RcCompile>
         <DCCReference Include="fCurves.pas"/>
-        <BuildConfiguration Include="Debug">
-            <Key>Cfg_2</Key>
-            <CfgParent>Base</CfgParent>
-        </BuildConfiguration>
         <BuildConfiguration Include="Base">
             <Key>Base</Key>
         </BuildConfiguration>
@@ -125,6 +121,10 @@
             <Key>Cfg_1</Key>
             <CfgParent>Base</CfgParent>
         </BuildConfiguration>
+        <BuildConfiguration Include="Debug">
+            <Key>Cfg_2</Key>
+            <CfgParent>Base</CfgParent>
+        </BuildConfiguration>
     </ItemGroup>
     <ProjectExtensions>
         <Borland.Personality>Delphi.Personality.12</Borland.Personality>

+ 0 - 2
external/GR32/Examples/Drawing/GammaBlur/GammaBlur.dpr

@@ -1,7 +1,5 @@
 program GammaBlur;
-
 {$R 'Media.res' 'Media.rc'}
-
 uses
   Forms,
   fGammaBlur in 'fGammaBlur.pas' {FormGammaBlur};

+ 5 - 5
external/GR32/Examples/Drawing/GammaBlur/GammaBlur.dproj

@@ -7,7 +7,7 @@
         <MainSource>GammaBlur.dpr</MainSource>
         <Platform Condition="'$(Platform)'==''">Win32</Platform>
         <ProjectGuid>{E643766C-DD64-4635-B4C5-0CE641333990}</ProjectGuid>
-        <ProjectVersion>18.7</ProjectVersion>
+        <ProjectVersion>19.4</ProjectVersion>
         <TargetedPlatforms>3</TargetedPlatforms>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
@@ -120,10 +120,6 @@
         <DCCReference Include="fGammaBlur.pas">
             <Form>FormGammaBlur</Form>
         </DCCReference>
-        <BuildConfiguration Include="Debug">
-            <Key>Cfg_2</Key>
-            <CfgParent>Base</CfgParent>
-        </BuildConfiguration>
         <BuildConfiguration Include="Base">
             <Key>Base</Key>
         </BuildConfiguration>
@@ -131,6 +127,10 @@
             <Key>Cfg_1</Key>
             <CfgParent>Base</CfgParent>
         </BuildConfiguration>
+        <BuildConfiguration Include="Debug">
+            <Key>Cfg_2</Key>
+            <CfgParent>Base</CfgParent>
+        </BuildConfiguration>
     </ItemGroup>
     <ProjectExtensions>
         <Borland.Personality>Delphi.Personality.12</Borland.Personality>

+ 5 - 5
external/GR32/Examples/Drawing/GammaCorrection/GammaCorrection.dproj

@@ -7,7 +7,7 @@
         <MainSource>GammaCorrection.dpr</MainSource>
         <Platform Condition="'$(Platform)'==''">Win32</Platform>
         <ProjectGuid>{17AA58A2-58EC-44B5-8DFB-A99A175AE11F}</ProjectGuid>
-        <ProjectVersion>18.7</ProjectVersion>
+        <ProjectVersion>19.4</ProjectVersion>
         <TargetedPlatforms>3</TargetedPlatforms>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
@@ -118,10 +118,6 @@
             <Form>Media.res</Form>
         </RcCompile>
         <DCCReference Include="MainUnit.pas"/>
-        <BuildConfiguration Include="Debug">
-            <Key>Cfg_2</Key>
-            <CfgParent>Base</CfgParent>
-        </BuildConfiguration>
         <BuildConfiguration Include="Base">
             <Key>Base</Key>
         </BuildConfiguration>
@@ -129,6 +125,10 @@
             <Key>Cfg_1</Key>
             <CfgParent>Base</CfgParent>
         </BuildConfiguration>
+        <BuildConfiguration Include="Debug">
+            <Key>Cfg_2</Key>
+            <CfgParent>Base</CfgParent>
+        </BuildConfiguration>
     </ItemGroup>
     <ProjectExtensions>
         <Borland.Personality>Delphi.Personality.12</Borland.Personality>

+ 5 - 5
external/GR32/Examples/Drawing/GradFills/GradFills.dproj

@@ -7,7 +7,7 @@
         <MainSource>GradFills.dpr</MainSource>
         <Platform Condition="'$(Platform)'==''">Win32</Platform>
         <ProjectGuid>{3E4E7C53-90FF-4679-81AA-3957CC462B2F}</ProjectGuid>
-        <ProjectVersion>18.7</ProjectVersion>
+        <ProjectVersion>19.4</ProjectVersion>
         <TargetedPlatforms>3</TargetedPlatforms>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Config)'=='Base' or '$(Base)'!=''">
@@ -119,10 +119,6 @@
             <Form>Media.res</Form>
         </RcCompile>
         <DCCReference Include="MainUnit.pas"/>
-        <BuildConfiguration Include="Debug">
-            <Key>Cfg_2</Key>
-            <CfgParent>Base</CfgParent>
-        </BuildConfiguration>
         <BuildConfiguration Include="Base">
             <Key>Base</Key>
         </BuildConfiguration>
@@ -130,6 +126,10 @@
             <Key>Cfg_1</Key>
             <CfgParent>Base</CfgParent>
         </BuildConfiguration>
+        <BuildConfiguration Include="Debug">
+            <Key>Cfg_2</Key>
+            <CfgParent>Base</CfgParent>
+        </BuildConfiguration>
     </ItemGroup>
     <ProjectExtensions>
         <Borland.Personality>Delphi.Personality.12</Borland.Personality>

+ 0 - 4
external/GR32/Examples/Drawing/GradFills/MainUnit.pas

@@ -269,11 +269,7 @@ var
   Color: TColor32;
   ColorStr: string;
 begin
-{$IFDEF COMPILER2005_UP}
   FormatSettings.DecimalSeparator := '.';
-{$ELSE}
-  DecimalSeparator := '.';
-{$ENDIF}
   Gradient.ClearColorStops;
   for i := 0 to s.Count - 1 do
   begin

Some files were not shown because too many files changed in this diff